Centos-kernel-stream-9/drivers/dma-buf/dma-fence-array.c

325 lines
9.2 KiB
C
Raw Permalink Normal View History

// SPDX-License-Identifier: GPL-2.0-only
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
/*
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
* dma-fence-array: aggregate fences to be waited together
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
*
* Copyright (C) 2016 Collabora Ltd
* Copyright (C) 2016 Advanced Micro Devices, Inc.
* Authors:
* Gustavo Padovan <gustavo@padovan.org>
* Christian König <christian.koenig@amd.com>
*/
#include <linux/export.h>
#include <linux/slab.h>
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
#include <linux/dma-fence-array.h>
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
#define PENDING_ERROR 1
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static const char *dma_fence_array_get_driver_name(struct dma_fence *fence)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
return "dma_fence_array";
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static const char *dma_fence_array_get_timeline_name(struct dma_fence *fence)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
return "unbound";
}
static void dma_fence_array_set_pending_error(struct dma_fence_array *array,
int error)
{
/*
* Propagate the first error reported by any of our fences, but only
* before we ourselves are signaled.
*/
if (error)
cmpxchg(&array->base.error, PENDING_ERROR, error);
}
static void dma_fence_array_clear_pending_error(struct dma_fence_array *array)
{
/* Clear the error flag if not actually set. */
cmpxchg(&array->base.error, PENDING_ERROR, 0);
}
static void irq_dma_fence_array_work(struct irq_work *wrk)
{
struct dma_fence_array *array = container_of(wrk, typeof(*array), work);
dma_fence_array_clear_pending_error(array);
dma_fence_signal(&array->base);
dma_fence_put(&array->base);
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static void dma_fence_array_cb_func(struct dma_fence *f,
struct dma_fence_cb *cb)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
struct dma_fence_array_cb *array_cb =
container_of(cb, struct dma_fence_array_cb, cb);
struct dma_fence_array *array = array_cb->array;
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
dma_fence_array_set_pending_error(array, f->error);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
if (atomic_dec_and_test(&array->num_pending))
irq_work_queue(&array->work);
else
dma_fence_put(&array->base);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static bool dma_fence_array_enable_signaling(struct dma_fence *fence)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
struct dma_fence_array *array = to_dma_fence_array(fence);
Merge DRM changes from upstream v6.10..v6.11 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.11 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: drivers/gpu/drm/vmwgfx/vmwgfx_msg_x86.h Conflict resolution: diff --cc drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c index 323c33c9c37aa,c6b669866fed1..349a0ef6fd1fc --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c @@@ -16,14 -16,10 +16,10 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> - #define JD9365DA_INIT_CMD_LEN 2 - - struct jadard_init_cmd { - u8 data[JD9365DA_INIT_CMD_LEN]; - }; + struct jadard; struct jadard_panel_desc { const struct drm_display_mode mode; Commit list: commit 869e54d4d54b1b0ee16c98c2149f5785eea08c02 commit 06e7139a034f26804904368fe4af2ceb70724756 commit 8f21f82d8b7652e11e6800612e34547bffdc7fd2 commit 1cb4db30cf685709584743d8bf8a0db2eac620c9 commit dec793860d5137c58c633712554abfed71642a88 commit 98e62805921cebcd2fcac3692037ca2ebef63b4a commit 11294bf38fa2f71619ebb5c7baa3bbe380cbcf0c commit e42a51fb9c0f386d3ebb115d081896d41eb844af commit b00240b6a28a36986c4021daabaecc81c708c01c commit 2cab6319b41023e4ad7b1c4604b9aa994fa2d4d0 commit 5a8c292f74c2b0dc84653c7b59323368a849a3ad commit 49f853c78e688780cacb9712be4136869f3e34fe commit f332625733b967afca3ccbc32553e3003d847b44 commit 082a634f608200d569412114fc0ee4d8c9f0f2aa commit c8d4524ecc79f8b5a3bf58c6bd4438127c54a4cd commit fb74b205cdd26357469cab8957f5935f10b810e2 commit 692818678e80e5999ee1975953f7c6f82cb4a2be commit 8ed9aaae39f39130b7a3eb2726be05d7f64b344c commit 6b8ef44cc0a952549a6773a0233cee853f807a79 commit ad4ca914de384681ce8984785f4ee2078945a759 commit b5ef80879dfec1c8e2a992dc186196687293e1fe commit cbf7579304c234208569d767355cc39c0665bd5b commit 4befb17e83ed8747049c91f5009e786bb858e446 commit 7547a23cae4145836dbb94522453af4e7d0ccc92 commit 3cd1585e57908b6efcd967465ef7685f40b2a294 commit 6e78e0719d0ed5ec230e8e28bd59e47acb3dbc04 commit 3d44d67c441a9fe6f81a1d705f7de009a32a5b35 commit 3f371a98deada9aee53d908c9aa53f6cdcb1300b commit f85ada84f60cdcccb0ce897d7e54bac8c6f0722e commit 03b3517630ce2ad079d1863c408d5d4df7d80388 commit 1a1563e3245d96a30b62c30c4e6861ec9518699f commit 3713a383f5402c57007d341703ce447fb6df1083 commit edc9f11af3adab20ede4a0289a1335f0d8125998 commit a1adb3d250925ddccd5270106d39aa09493d6edf commit c79828e0c7795cccc92abcd24107aa478168628c commit c832541ca8d5b04cbf957ffce5f4a2a4ee6b396e commit d6c5bac8e3638de85190ff381f75b8120feafb9c commit e77dff51baf565c2a6b8c77b979c42e814ed0c73 commit 445237d67a818c18a748602f8eaa4b52f8c6b39c commit 6898837d43355c182ab5613bf2d2981d345d30db commit 3ab28b7d8d99c574fd35c0b4618f5d6575f9d7c3 commit 9745097ca730478e242e7c46538b3e37cc62f38e commit 5284e4202aa0dc68bc9e903dd666a36e14704791 commit 6a2a90cba12b42eb96c2af3426b77ceb4be31df2 commit b58a0bc904ffa091fc020f7fd00e91808fec820e commit 77f2ef3f16f511c8a8444061d59c8eadc634d33b commit 75192758d640227b68e4e21de811891219f3d0e2 commit 0a34c12449de4b09f74808c6f6c39205ee5071f0 commit 701109f2e3a45b9748f0f98849fde9a35d391efb commit 5f677a9b6537dbfe061ec9ab1c5b34b21e4855a3 commit 4dbbe4579490b4dbc89bf9c79ef3b9f1d94366c3 commit bf69918b7199ffa5bb6213f2b0a2c0b1be8f87dd commit 22cfdd286572decf5225cc219205ca3348cfc4af commit 61e3270ef9610ab40b1b56aa62e2b8471c32f1f7 commit fda75ef80bddf2f08b0e597d59da69a3d8eb5be2 commit 5aa5eea09af08ad446f78f3de10388c98f52f19c commit c4f18703629dd0112641d6974eb295a53c4a4615 commit 98ad158e543426561fa5df5c4387d4368601866f commit 7ceb94e87bffff7c12b61eb29749e1d8ac976896 commit 7d09d80b93ab15c1ff969facb8f6111fb9c084ce commit 96557f785a7701c7e0c327bd25b701d0eb5dcee0 commit 59a0c03a50e7f058e599c313e6a129562147016d commit 70839da6360500a82e4d5f78499284474cbed7c1 commit 5bdf199db700706cdbd61a0bb8204a900ce9b5cb commit a64a521231a4643e2e2db3ea5d40253bf887e615 commit 08502cebee7c54d58fee0a54a98064dade4cc4de commit da87132f641ed33fb65e2638d0545f55c863c5b3 commit 00c391102abc13763e2bfc90e05503109b19f074 commit 0c28ba60f4c2abfa9424251ab4ace273f1d0b15a commit 9f4c6256d0cf887ef64fe87a48a34d50b4bde493 commit aa463cc850c464091cb749317372b70415d3e7d9 commit 75b68f22e39aafb22f3d8e3071e1aba73560788c commit bb442bfb9b3d1bc6ebd9fc64fa566e12d64627ce commit 4caf410766add8cf376a3afc910b17dd0961dd75 commit 4cfca03f76413db115c3cc18f4370debb1b81b2b commit e29a7a34c3cf140ceb2f994a8eae0b68d21e357e commit c0d6bd3cd209419cc46ac49562bef1db65d90e70 commit 155ce502e9adf9001d6fa35ca85843b7f0e538c7 commit 4754cbc77e2a8e4a2681c1911147456b8efa0bdb commit 2b6c4a4b7ae5a4dc80138a2e7c0419417088e164 commit c1d35284e68482fc74beb92e57813e8eb0701813 commit a4a755c422242c27cb0f7900ac00cf33ac17b1ce commit cbc7d7d4469faa490ff535fbcc6fa9f5a97788fe commit 899d92fd26fe780aad711322aa671f68058207a6 commit c83ad4c3f943f1e3354cd52e69bfafae6bc660e1 commit d0f2181d6529d94b7df15c3afb266ac3fb51188e commit 239b31bd5c3fef3698440bf6436b2068c6bb08a3 commit 10839ee6a977ed1f7d0f4deb29f2d7e5d1f2a9dd commit 8acb83689258a606a43940191156ed1b24733a94 commit b01d98caba5dabf94721ff1c807ce2470bd1354c commit db4f0d544edf941941a96a2dd92ef65a418b6b73 commit ec426766a45201f14f8ac974855a9a47a39286ab commit dc2be9c68ffb2d2b960e6b1835327438b929b814 commit ef4af63e1009a5215f970203fd87bd16122f1462 commit 98b912c50e449b921d71456312289229c4a5661c commit 81f3d3c9a03705328f5368d19e23796ed077610a commit dacb68ca947921e8ce533231d21cb50a3c878179 commit 0c9c0674f81add3edb2bb992b3e89be8a44f03db commit f63f86b5affcc2abd1162f11824b9386fc06ac94 commit e7f5f9d6222ec9264b160b622544cd7e1091e4b4 commit 2862b1637ea2bdaaf13d9b5e3635c096297a0f1d commit a8ac994cf0693a1ce59410995594e56124a1c79f commit 4d4d3ff16db2642ade8b2fd64cb1abd65bddcf49 commit ffda7081489b2c14650798b3b46fb76292f163a3 commit 337b0a3d494151dc32dde1e0cbbf6fb216009ecc commit 486eb6b5a86cf2d935d27937b3da840e17a2f8b1 commit ff518e13eb5b7efd4740bcb4a25ea1fdfb76be90 commit e76207bfa072f66e72cb483f4ceeba0f45dbe229 commit d22c0756768f30025061803ecb64597c4b9847f3 commit b0ce597bbf223cfe07524b86eba4f9a057aa1ac6 commit 84d3c6b05c8cf4e015ba7b79201783ea6f3e39e2 commit 3a99045c56d0b98f91d092044b04a2321b5e2f8f commit 66eba12a5482b79ed8cc45ae6f370b117b8e0507 commit 7e0357bef402875425de0296800c34c41842ba82 commit e582c097d3d1baf5d721ea9c4bad77713c300d43 commit dff0360a49b3dd4d9de4d7719137712b15d33690 commit 6b042da49c45aab31638e22672ac2af91eb6a08d commit f1bf3bc6cb932b2094c71d5b45cf4e56b8450852 commit 9e9ad05631b6cf7957a981bef324794b4e6fdd44 commit b9f5fcef7280b76a959291a19dc2bce4085ad5ad commit 033656afabaceaec31c99248a2aca88b5ada606f commit c5a45ee19cc610e0af7e1affc58b91e4c39a590d commit a82a632c1b6cef2cf54fdbde92ea0907873de552 commit 90a7f0ddfece79d360fc7a5334dea250372a61d5 commit 97da9c7d8f3516cbc633b6a017ca616997f16edb commit 02fb803db110dbdac9f0d446180f0f7b545e15ff commit 69925c00368887676c64eaf7f80e0d268a163cc1 commit ae308e93db35e8e7652d3ff1696adfc240bc1749 commit 202dc359addab29451d3d18243c3d957da5392c8 commit 6aa96aa8ffbed1efab4c6f3b0d6106e6bbadfc68 commit 3d1967ec9b990219c960b6da107231bf101e2255 commit 9ba971b25316b7e3a11b63b770a3a48bf3b69904 commit 47745acc5e8dd9b92dc877d3436801106c5e6864 commit f2303026a5b6327247ba61152d00199b2d1be294 commit 532a0d2ad2920bc18e73566a112feccfd55ff4de commit 3351c608f373bc76dcfa773723c2d1f7c5b5c55e commit f9c7818c9d653e40dbd3c7e9c857e5b00dfca622 commit 984debc133efa05e62f5aa1a7a1dd8ca0ef041f4 commit 05c5ffaac770bbf815def6a18f93d54fcf47cc5b commit 523ee6f4419bbeccbe43399d999f37381b5958c7 commit a8baec4623aedf36d50767627f6eae5ebf07c6fb commit e6a901a00822659181c93c86d8bbc2a17779fddc commit d2c5cb0c3561d7aaa5d1cbe30ec4dd50c09291be commit 5419a2076de1dd9b0b4a191d0dd07de7c4fa7040 commit afca033f10d346b6be794e468ed614a6fdc68a14 commit 2d696cc837eaf5394d79bfd2b0b0483c4778aa83 commit 35df442d813d9a6c766b116d3799eff4757eb59c commit cb696a88fa582e0c236dffefd2fe6b5840f4e742 commit fbbbf6fb3f7c29c0d18cdb8e6217570cdc97961f commit b2dba064c9bdd18c7dd39066d25453af28451dbf commit 7005b169da89eeb3ecbd00347e601e63977c0f3c commit 8e9f1575d188f8d8c36b55164a672ad6a7b0ec04 commit 8fb20d9551368f0b1ef5b31fa0b4634f4be37157 commit 76ad30f51aa0d1bd99f12658d4775a86df6e4282 commit 5eccab32c15f1e5cf9651d865fb20012d3563c96 commit 22a5daaec0660dd19740c4c6608b78f38760d1e6 commit ebbc2ada5c636a6a63d8316a3408753768f5aa9f commit 2c0410fbee4e119ea250032d97239fbac752627e commit 3ca73073f46a74dd53c3c1222c2486a593052e72 commit 579f0c21baec9e7506b6bb3f60f0a9b6d07693b4 commit 7c836905520703dbc8b938993b6d4d718bc739f3 commit cfec96c16890db08fa5c62b548c652cb37fee93e commit 86df36b934640866eb249a4488abb148b985a0d9 commit 01d6606beca0b7e84ce9d7a8d5cd4a9a850a00d0 commit d53ce02352058639cacccc88cdbdbf48f1ee3b5a commit f9d8c5c7855d8f3e4c3e678777d02a49046eafb0 commit 17e3bea65cdc453695b2fe4ff26d25d17f5339e9 commit a89a05e3ca3e6426b92cd0719410ad255693fac6 commit 27694eace58fcd9c35c4b458cd6e693b88a95b7a commit 47677629f64a41490881472c5ea8316be5633017 commit 2d1d8756565f0dedf6abf2446d0e63ba20f8c80b commit 075b44aa210bd8be1c2c23ba742218fc4fc2bfa8 commit 52666d8cc7f9c7810d25d5ef41f1a0b62153f368 commit f3c3dd120723907787e59e0bd610e0ef5b6d1fca commit 980a0a9452e1a74cb1384378989d0c5237ad8cd2 commit 04790139c59ab9dc02337c5ee0d878b213fe45c2 commit 1b838189edea95ad65a4fc7061894e0d0a355f4b commit d34420f20303f9715e6f2a3ee791af87e27ca821 commit e8a31b4e811a04e5d83dc036fa9542210867b7ca commit 6769a23697f17f9bf9365ca8ed62fe37e361a05a commit 9d0532c86fde034ef8b04172cbcd93451af8ca14 commit 9989a924aa89e54ca8e1ab34175798559b986714 commit b96033424d4c6a97dc01bc80c506baa035b9e50c commit 7c0ac603383a03b8725fb6e254b8a883129af188 commit b412351e91bde3a6ec546b598087bdc3fcc458ee commit 5251b56e3850cd9187f019b785fc4d9bf1dedec3 commit 807d90b5ef1dafd484330b3e1a3c3c43abfbd8e9 commit 4badb9999bd1dd3fb018c2ce497698407113d18d commit f45ed399d7ef464b25c21b7a76c83d3ee11e8d79 commit c8c19ebf7c0b202a6a2d37a52ca112432723db5f commit 6e46b89f40e39e2054f2e179e8e8c3132e7a9d57 commit 12c6967428a099bbba9dfd247bb4322a984fcc0b commit 0fa4c25db8b791f79bc0d5a0cd58aff9ad85186b commit 5fa7d540d95d97ddc021a74583f6b3da4df9c93a commit 4a9a567ab101e659a4fafb7a691ff6b84531a10a commit 13d56abef172e8ef793fbab58268b60687698f15 commit 235e60653f8dbe4441d9ddca9fbeeb3e8083faa9 commit d457519c942d4885d92f6367e42ca67f4c7471ad commit a1ea30b69e02eb02043b0d6d7c42abcfafe99bd0 commit e91a36b472862a1d199ea8d1b1ca192a347bf33e commit ae22b2f1c8ccd9a3e5f19e3ebb4ef6ec1e8655e0 commit b0a835db17434473dfb84f7646de1cedc4ecdb94 commit 73ef0aecba78aa9ebd309b10b6cd17d94e632892 commit 150f431a08317e0e0363a7f9147b6246d3b40ba6 commit fcb3694af57128cef06970ed979d01a6298303cb commit 994c6277e68dc889bf73baf72987848f8fd96b98 commit b3e328dcedc11f1a17dfbc9baedebf6938b5c878 commit b1fd6da2438d65ff05bce1b1e62a4a218845fe4b commit 92e7a368917be73a83d83b7197e4495158e8295a commit eb9479a98c61982720f81bf20f4674bc27217321 commit 5bd79b70a29304eb8935957170b79e2346b1ebf9 commit 049f75bd0b0d6464a41ddaf482f0055a45ac055e commit 5134fa750e7110cca3076b0f0f2ad835bf3fc16e commit 0f8c7314772fb28e481d49ce4e0d96ff4dec2bb2 commit 8b1bb818b234c69f32853d1ba8a4c9ecef570a2e commit d2b42634fd41be2abc5ca82fb941e22c573cc426 commit 808a40b6946804ec04dad84ff17797ee1b92f0bb commit f3796250799c74db9b8c76c4d7d874ca925b2a44 commit 70c82ee1acac5c8ccf09466f6e36c659bd23c551 commit b3fdbd60d35ce340062b5232076df2d3613b44cd commit ff5cea0f03a607e6988169a50678c4d995a266d5 commit 90d0799af3c25d36f89e60cdb785bea00cea5b6d commit a9a0f08df54a41c0c1621fd73e640070d621c43c commit 6447acb8b3530e3d32452ca3fe524efa44ceaec5 commit 5ab91447aa13b8b98bc11f5326f33500b0ee2c48 commit 18c6e51f16f0512750b9aabf5d0a5509f445537e commit 4f229b50b2de73e8867250226125c35620e2be33 commit 6a09ecfe2867031bd50324e9fc1bb37bda64e5bb commit 9317ff69170d334545603b689585d5b54e41bdef commit 01849b42e7a7a2b7394511881238b0995a02da39 commit 85c8e3ec806b043b449d5646bae4eb8f40acb45d commit c32705b5915fbc737710e95a6f4e8eddf3f2ab4f commit aae4682e5d66c1e1dc181fa341652e037237f144 commit 18bc074c226bfecd205bf031678f5e35ee55c3da commit 8e056b50d92ae7f4d6895d1c97a69a2a953cf97b commit 8ad0e1810bf23f22cedb8a2664548b15646570c7 commit d17846a096b3127e6b3d4164874385cbc39367c4 commit 2fde4fdddc1f1a7dbdbf4faa27a3fb05e1b2cc85 commit bc19b490c00f17aaf4de2e56480506fdaac929fd commit 45ebfaa44c2b5471e5c2bcb2d80350469808b12b commit 3bcc0ee14768d886cedff65da72d83d375a31a56 commit f5007c67fc77ec555cf824fb8c2038a834201b38 commit f4322b9f8ad5f9f62add288c785d2e10bb6a5efe commit 25c01191c2555351922e5515b6b6d31357975031 commit a5b843269a8f664df85948ec41db1dbcbc2a2d8b commit 6e4aa08fa9c6c0c027fc86f242517c925d159393 commit ff75caceb93d8793bd81f69863c7644423ed09dd commit c6f79832b8bf6a0ff40d36d3cb22e27419ec8aef commit 3f19cffde93585b25a007b108cc4b5bd149226c1 commit 97d814fe4f697791abfbe27e035f0b943c483243 commit 4752cac300fec50530aab69788f48b62c35aa627 commit 2d6f49ee849b58f115e36c4c5615d22a830f8030 commit c45211adfa3d82c3862f7aa8d6b1c6cfa09ffdd4 commit 3d1bb1a2e0f5f3fbbd1a4051e4e771095259fb15 commit 1dbd59f3f4d3fd75287aa16ff0976f25213e4c03 commit a6bcffa596770b0c54b3ddccbc115bdab4df08e9 commit 5f571c61b90f905e881c3bd591de65d9d0e1722c commit e56b042118ecacf5787cae6881e82fca8dd05fe3 commit 226e4ca5d4f683b3013947e495c6b433b35718b7 commit 5638b1cfa72a79f7d76394a7cb6127dab294716e commit d8fd91f9055222a5b49dd385477edad2712852c8 commit e3a911bb3823f010087048af2c933525391627ee commit 00c903563314669af40eddfd68c23e21e40fe8c8 commit 415fcb8c50882d78f6de9fff730e94a286bf1605 commit 69d4c44e5184f2dd0808f669e6e3ef1bee9b8d97 commit 785f0f9fe74202e64a7af94a8efc92d4bed742b0 commit 6628f7762b8e23e7524d61c7ed126662348fd6b4 commit 745f46b6a99fa4a9da1b9aa8cbdce0b9e7ed09e5 commit d817c470cb2207539ef3e34ce70f755489de088e commit 46c47666106942389b022d05ea370bbf24c4494b commit 4632bec9fa682a231e4548dc793da2f1e209c798 commit 52cb80c12e8a647aa9c903903d58916e6c1c4d38 commit af204b76a7cab18a54c6fcf78b57c1dff7bbc0b5 commit 32d1637689893971b65658a359d03ef4fa30e049 commit 29d36a9cfdb648fb15017e6f104fd1b4a1296b90 commit 36b2ce477528964dd0fd7b8ae735d4dc185a1bb2 commit 2502af906b75a2e73735c3f4350c56c41d0363a4 commit f5b4c3236f491889c86f557e21438fbe6ec160af commit 1e740df77f5d4dfa75e1ca21b7ca3ebc1a907421 commit 53efeba35d71db3ef5fd4c483748945c1e765adc commit 60917ce8f88980ed26ddeb7577ae3bcc0e30311c commit 043869be5a1e312383473c09172123402c1cd565 commit 56159fffaab5c42a8897eac0824c58af3b369914 commit 044feb8e2aff101362d7afffa3444c771140728d commit b32edc2340c6ed9164093aaf43f8fe8eb04e20e7 commit e781af666341ccbc099bd3154f920eca6f74fb16 commit a2211e475cc0641cd49d019f9c70b1f69fd30e1c commit 19e69a5d2872ac185333c3a314fb3aa0c6032182 commit 2f983d3ca5bf2e917662634c6b9e325f87ceeb8b commit 592a5d7de454049455157e2f347908cb2fb5c45d commit 8aa89b69d6b3d4d847535fac1b6f81e29f193b3a commit 48f0bdf4e38e42b8285622cfcfc7e6e490b1a719 commit 47fa09b7889c53a8a9bbdf9092ee03596fd7de65 commit 90e4fc8369e9ae10f5cf5bbd2e5f26e9359a50b7 commit 385093fde8a1d874d1ad22e7fe2577293f18c35e commit f2810033360503989dee81c5a04cd4c4904ad231 commit 450abfe4330a4131a02bd0682b1f742c424c30f3 commit cf338b5dfe9d3a00f3c9d56fda05d70f78719af4 commit 782b93436afff4105c725163b26fd7dd99198baa commit fda3f378c4c4607b942f2e3c1a18c1156174b440 commit 984b265ff604aa608aefc571a2db173b38fe88ce commit 9243240bed3859fba2d15c016902a4c73a186249 commit a921c35ae5f81089ce98442694d5b11d0bd0d715 commit c5faf18bbe00862429a73afdcd4b95e78285395d commit a8a4615ba0fa3ee1248ae2184e7e848d7b644e70 commit 628e1ace23796d74a34d85833a60dd0d20ecbdb7 commit 15ddc4e6931b747b5d241a4e61dbd4d4b95c8360 commit d2e2c9be78d089a95464ee01d7210c636773cd81 commit 6ce03bd3a4a80268a6c5eecea4498d0db0a09b86 commit 4c2439f908e70efe4ec9f4ba4c5780c97bd0996e commit 663bbfaf68971fa09d69a6ef8a6c4ef8bff9274d commit fcc5df722dbc47c3a84386a1c70647cfe153e65d commit ad5c0a79dfca06ee7f1d5a9cf4f6b4a2113f5d04 commit 3dc434ad2635f067b67f2d167f78a31e6124fe2e commit 03f4b8c3ca7ad34d812d5760f0712e5c126c64c6 commit 5e676d7180c0cc01184d9860fd9004092c0a7efc commit 0a75dc9831af72f1b85f80f0b8e8a711e5ebfe75 commit da43e93d1becce2d757ae217baa09a9b9bae3171 commit f8f8e95c5f1b115f117977ff837c1440407cf7b5 commit f19cfce87d9416d050399ae56a00f2060eab85f4 commit 117f85139382c5a9699eae96edc781c9d9c6e86f commit 856d1ed4b2c3583afe5daebc5bf4b3c94ca26e8d commit 81b09cedb37bc7aa80712361a60f1396c8c3d0a0 commit af472f68c731baffd12f5a44bc1afcd7332b444e commit 0b6662eb2a039b76777850bf718b6c5944b50e17 commit 6f6bb3909cf7c45a7d36963368d718d1d2f31a97 commit 598a3b753af1947adbc542d1ebcc1863877589b0 commit b9f5d0f9788968739fad3404dc0dad45716d67f7 commit dd8707295d55bfe044b5c145f7060cc1a91b7157 commit 174fdc07c05e33353040b5a5d05f219ecd4550b5 commit b1d852920b316181cc3e622a0fe0483d2db6a5d1 commit 94b51a3d01ed498c753fe474157ca62f0b8a4bc2 commit ade887c63394f81de7f363c1fe72fc7e631f1afa commit 3474e02ed5b30c625c1739f10375ef940bb23382 commit 01a0bae9fbdcf1489b1a2df3f085008b8e6c8483 commit ee7c6979f17e79ec675398b9d465810ab94c899a commit 8172fa66332c442c381d642cb543da4915fbd629 commit f5d75327d30af49acf2e4b55f35ce2e6c45d1287 commit 0a8d25285feb68608acdf778983ee5f4d72707e8 commit 9419da172221eb1dd672bcbaa2e27bb5f8ca807a commit 687fe329f18ab0ab0496b20ed2cb003d4879d931 commit 2a5626eeb3b5eec7a36886f9556113dd93ec8ed6 commit 6e41709eb1d9207d88e46026baf9cc850206b374 commit 84723eb6068c50610c5c0893980d230d7afa2105 commit cf8b16857db702ceb8d52f9219a4613363e2b1cf commit 3941a3aa4b653b69876d894d08f3fff1cc965267 commit 9ba2ea6337b4f159aecb177555a6a81da92d302e commit 5524fa301ba649f8cf00848f91468e0ba7e4f24c commit 4e70c0f5251c25885c31ee84a31f99a01f7cf50e commit b38a4815f79b87efb196cd5121579fc51e29a7fb commit efabdce3db9f3d306084c8946983f3d895810a6b commit fa71face755e27dc44bc296416ebdf2c67163316 commit 52cbcf980509e6190740dd1e2a1a437e8fb8101b commit 8aa2864044b9d13e95fe224f32e808afbf79ecdf commit 871cd9d881fa791d3f82885000713de07041c0ae commit 176abbcc71952e23009a6ed194fd203b99646884 commit c6077aa66fa230d12f37fef01161ef080d13b726 commit 3d49b60030bf888a6244aaf3e98965cf8e78a965 commit ca46da75cab99381b8c9f181de50a8022c2862c8 commit 674704a5dabe4a434645fdd11e35437f4e06dfc4 commit 1cbb91cb29a71f0a22f6909bf9c0ad43bd315bae commit ae13c8a5cff92015b9a3eb7cee65ebc75859487f commit 55ec7679e6a5f67d2831b87a24fe2d5066311fdd commit 83c0c8361347cf43937348e8ca0a487679c003ae commit 9d25ac51f5bc952a4454bad9c0d0ca09c3827003 commit ecda00059b14b95a5b84f3efc1c1f341e1fd7dbc commit 8e2734bf444767fed787305ccdcb36a2be5301a2 commit a54f7e866cc73a4cb71b8b24bb568ba35c8969df commit 922c2877827dcc474f3079e464773ab31ac13b79 commit 188fd1616ec43033cedbe343b6579e9921e2d898 commit 6cd2b872643bb29bba01a8ac739138db7bd79007 commit 0fe113ad47589b2c6ea59e8c5ff346e57432b28f commit 75521e8b56e8f9dc673b782df7bc3660f51f329a commit 87ea92a19216a454a6eb5710501a470dcdb8577d commit 9f79e24485494f35740fd85ffb2c67fefb8c67b2 commit 233e8d1de827b58ec92c60b86a3b0f5bdf7c3892 commit c8bafa0d9898f37cb3618f5883656cc382831533 commit 4df0f2ed25735e7da5a9015befda5199fe6fec73 commit 7c800d957173298a5c80576db7384ebfe6efc10c commit b24d361420c46c3b1a0594f63f88b52e1afc6792 commit 2081c6aec0a4f34e1414a6172b88ef3aaebb6120 commit 4b31961a1c6388ec67c05ce4033088d9bdf00f95 commit 786754124189e3f67fc52e8fe08703e3f50b1894 commit b3f4ee8e4a168b78a3ca8341e18a50c620ed7344 commit 9243e0e206bbf8799add08cc66f807cbe085c9d2 commit b0923d5d80facb205cc2b7f82994ab5c3eef3181 commit aa66c93d5f69d48809468c4e2124e408e31fa931 commit 7f071dde0bc97d40d8e80a374e155b6c0cd72174 commit 37153b0ad3d3c26fd4b6091b124245a4401da6fd commit 080b76d8111711a726f368361e0bc9ae339fed7d commit 68cd73716216f04ef12433a6486821a291736ce3 commit 32e73fef7ea2b4728d2580d043613cfeabd90b6c commit 96b0ffecc0b3cca0437166668c6ab6bee606ae82 commit 75b87e9f3dab7304982e90627c7ceec108ea83c7 commit 59c27724b24aa54f0dc2600f71b50e620874a050 commit 2de02cb17f90df9115ae46a5d7915d8c436c9878 commit 0dffea1e2d762178b76c7840edd4edfa763048f0 commit 772933b3ab3a8157bb718154883c248c5693d81e commit 0f6a95582de3065d27b52bb75195d666a40ab575 commit a8c026d0e67119af490b8c284a4a4b4d180fb688 commit c528aaa36db031591bfa9d4cb86f23dda4f413b9 commit 98b1c87a5e51b86d1fad390ad4756cc2bc03cd05 commit 1372708168e50c08bbbe092e00036701c7adf547 commit c01c6066e6fa6f13888f06a210f9a1d600590f42 commit 4071ada7ae313da2e6bb2c1ebc097bd12f9da761 commit ca5d5ecbb90df41b125876796e1bc85db9514da4 commit e9c190b9b8e7e07bc0ef0ba9b87321fa37b456c5 commit 1d231cd89841d1538d984a872041e5579b403bca commit 676a6a1c99182a193b7515faebbe3cafc653e706 commit f9f8f8471785e1f312db59d1d14304fa333754f6 commit 7a7a4c4eeba4a546f3be6d33b6d9f37a0c3e4a3d commit cf3d5f89a669dc29d2145d5e75d5ee5efc97ddea commit 4c3cbdb12d4d9b5581e3e6d8497747bc71c64bed commit 218f3d28d113d5143f938052f77c5c1458794c56 commit 5aa0cb6b1e74830c0e354ae9fdadd7d674c3ba6b commit 83f4ccb3f3f941b23c064f3ae898d7a34d2bbb5d commit 9b0dddd50e6810ec9c3c6792c084fdff4c76fd41 commit ccd5bc537b0842a089d158253911cff2c77608c0 commit d82d1a6be60de19486c96777d3322550976bed7d commit a0d1cfa86cc9e4421e459d471bdd7faa61ee15d9 commit dd17285e94c2462848aa6e60f0e8edc880e9c19f commit db92d423dc360ba957314e3c87ae67108216a6da commit 13b77ac5dc91a8aaac23d8be3a9a9d4c9a2dd4cf commit 94e760584a277d4fe683937a737ca2bec6e42f17 commit 7f4eae0a9439225837c1a5d96439abfcaf1db54f commit accd3e041e8fe510e957513b419bac1cada04e21 commit a6cd27d92a96e13473006d43ad03edac609ec493 commit c462f81b695a7cfde5ba3b0ea1a52c6abaa52a0b commit e7192f0162a069bc80a519c087bd2a2f18597d52 commit 06e69a424930154bf030a56f8ddf781aee71f0e3 commit a4b725767d93e3564019906ad43908b8bf3d4d9e commit a0862cf2febcc37188ab47441b69960c8c8f3fa3 commit 72c7163f27483c333a1f27916505459efa1a373a commit 9fbd0adbcbe81e207eb030d9ad59953905625dd1 commit 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de commit 5b882c1e5a355d034c0e08fba2402b4451765ab2 commit c286f6a973c66c0d993ecab9f7162c790e7064c8 commit ef283674a17e000bb6b2ff05dd2ac5cbf2e3ae0d commit a4cb575d910a5c65c5f8b764e2b5f56b66019522 commit 749670a58d935303ad1ce529acc73f12de25832e commit c18a5e3e61650110b5d8523292abaf6ae19ebdd2 commit 7348a9a1122884ccfc414166daaf3977100d1c30 commit 93dd6ad89c7d436da988cb5917daf406a3941893 commit b7f6318a9c3d9c79b724b20ff5382775a9c58346 commit ee7284230644e21fef0e38fc5bf8f907b6bb7f7c commit 6dd2bd94d2ef82a356c6580e3f59d93208ac4755 commit 19e74ba7f894f5e95c1c56ebcdbe1fdfcf20b9c4 commit c06387ab4472fc5af857d02323fc1073ff7923e0 commit 8b69ac66d68907deb473b310b4f2c2a6b26ef191 commit d082c05a635e59764c5337a5da7f4287b8a80476 commit 3797783b1c966885e8bae4a7e6b99ca2f0fae4f0 commit 7fb8af6798e8d013017e4607505f58d9942fd671 commit 7043141fbbbecfa1d26c538d502649079fe6e095 commit d9981f36e4f372bbf03af7a9c1f3bfdd79440589 commit 7234f948b58b04b11ec7d32c1d358887f9e700e6 commit 6ac67ccf4c898ff29ffba4cb4b6213deae05c8fb commit 8e26690851f9b49551dc6c48c720700f44c8986a commit 10632fcbf057af326e8b7d9b18120f939f4f1aa0 commit e760a7dade4ba88d417e355ca7a109571abe2ac3 commit a17b317c11fa1d66e2a0bfcf680e3eb6a14a5c57 commit c58f254be3bd6276133735c8b7762c51589b4d03 commit 22794e6cee284c154a464ef6c58219e35739a3fe commit 2e8b8073178a898f56e6d1512de016f644306fb5 commit 2318da471a8af705083836967ad3acd13ee59d3c commit 98fe6aed8ae8590065eca04b6f0be98ae64c066a commit 2f1aa210fefa08dc998ccffbf5a67d5be11edf3e commit f7d5b5ff088fc85baa563182f5ff2cd501ed56d5 commit 55c6b98676ed667f8900d46257b96eff47abef55 commit 8e94221f78018338e1a5791cec0394b13dd0b13d commit 95f4cbc8fb323b5174dcdde87da0b04161796a63 commit e547b97e9d79c1b8a8f935a398a41bb3d9bf4c48 commit e225161e2aff5dffd1ff754d86c17c7f9b6457f5 commit afa1bf2d5df261e3e0dbecce1204106f11a8d351 commit 9bc6b35635318f36adf5b526ae85302605646a57 commit fdbebda16c29e0d5c456e8012801ebbcb4f78b30 commit 76f1cf76ef4197663593b85b8b911ac6cf809489 commit 9bda347a7d5c669be2184a6b6d35bbf1144e04d3 commit ad3323a6ccb7d43bbeeaa46d5311c43d5d361fc7 commit 9f15bc83822b988b61be1179ae43d5d765071962 commit bc2dcfb6b68c91a658c5fd5e0d78392846980da4 commit cb094188f5ca64f5fcc6e1bbcb0f3950766e5027 commit 4baedbe2c38f05d2e7121e0f78fc3469011b0dfd commit a7566ba47ba6c97df369fe7acf820d07ff3a9191 commit 2b22b1b88c739348b79284ad3a216b7f3cb141c7 commit d9a6dfdbe7d4daa8db017ad690144d3116db1d1d commit 62b695b8c92ecfd26f486615f4075fe0862dbf7a commit c23e1dc1d508f8a5209f11f54b5d6ec8e8ae4ace commit cd6891f8e3714172cb2ff374d07cb6884b44b530 commit 0097ecd06d9dcf671da4bc643d215a4696f1c130 commit d26238c6806d56d04488ec28e2c94468ddcc33cf commit 23554c3ec85a7d7300f896e5a75bbb1e6a06f5c6 commit 504a336a57df8e5c7e136b1a594ffc4a1875dae8 commit 4482b4f6c2cce51a3e28eb814ea61ac5a1690412 commit 0127f0445f7c1f3338186d8c59ddcadf46a7036f commit 4a7fe0576e936b7ef8220698132c183410fb1ede commit e34a7238bd530941ea96da74343541db7b1568d8 commit 6d46a50934c84f9db9502a8265617ffc621c407b commit 8c59c8709e3039e31174ee4941d5ac69d81ffbb0 commit 1cfce526351f8aa959dcfa3f0d743b070f623d93 commit f0edd66e3428a4e1bb98923ec1bfdedf4f418d55 commit b9b5a82c532109a09f4340ef5cabdfdbb0691a9d commit d1ae412d74a63615f89f195afb950223174e6e43 commit 0cfdfebedc5b48aeee63bc808bcac85d5ab63176 commit 5b600c1f49962c1dbc62719916bf47c791ac0777 commit 5922deae69beabae98644f3cd902df45da932297 commit b33f1d128cffa99f08631b22c8fb982db465985b commit 3706bf2eba8d90887bdb7e05f9227686848e1342 commit 176278d8bff2c2be000b9c9509a7fc8120b5278d commit 36d1861725b2139b2d2e1b63fbe56222bc6a256e commit ede045c091b19f8ac702f717f1fc1279b62bdd97 commit b911505e6ba45be6ad161793d7f272d52054c69f commit b4e394e843a1fcbbc040928dcc73254fdc855080 commit 3b3c9e865e1d7c1c926ea768a03d01997c991ede commit 89773b85599affe89dfc030aa1cb70d6ca7de4d3 commit 56fd1f8868d8042aeb801a27a33c1ea3e05af33a commit b2871de6961d24d421839fbfa4aa3008ec9170d5 commit 336c8f558d596699d3d9814a45600139b2f23f27 commit df4409d8a04dd39d7f2aa0c5f528a56b99eaaa13 commit 7e39d7ec35883a168343ea02f40e260e176c6c63 commit 421226e5c9982573016aa4cdc02883c3d43a21af commit a641c25fa45c95b4eaa036beba4624956a8fd461 commit be1684930f5262a622d40ce7a6f1423530d87f89 commit 547033b593063eb85bfdf9b25a5f1b8fd1911be2 commit 3aa6b72045b1edaba44ea5d5a77d8e0150d1c9ff commit 8f184f8e7a07fddc33ee4e6a38b717c770c3aedd commit 85a24a3ea09e93c05ff59609fde6c3d825a014c2 commit 329cec8f18fc8bed7570b68b18936724af2f5593 commit 9e5da942594034ec377ba8c0caa9c15e1d26ba08 commit a735b4a4ad9b61f87944b77527f626cae8b4e3c8 commit 29292b0c82e8177cdc7a27af665da62d98c95104 commit 2b3b9d2150c02c340f2ad50bae1a20f6913587ce commit 24e82654e98e96cece5d8b919c522054456eeec6 commit 0617cdde84621ba3309a985492136fb0c36e9303 commit cab62e4839d50bba1f0b15e6c4358e962985fb02 commit b2648640b924c575ce72b87576df7d91c887914c commit 9d0e2915c4c6815b222545a526fa599f58f498c7 commit f9a2274b33cfbc34c00b91a8de8b4369118a1f76 commit 42ad8ac6bd3722a04abd1feb630f69ead6b24433 commit cacbbfbd24422c0b7bdb2a689dce4b822001bc84 commit 454847c9f41f5b3c9a26498d92ef8917b9a5174d commit ffd3d6e780a525a74b61b6932f440ca5a8fcb4bf commit 3345f7ec0d852880b176b07abe8e8c4201a346ca commit 30f45a8ea46beba74710a75b3e1c4c54c22932b9 commit c866201cdc2a05a7fe94009eda2644ceb54e8303 commit 1dd8b24acc0f951d9fea1b03d0c9ac4630a82e44 commit cdca89bce4984f1bb6e53cd4084820d4ff54f977 commit d768394fa99467bcf2703bde74ddc96eeb0b71fa commit 0991e49d2b73bb4189f83a49eb41cdf16976bbf6 commit f683f24093dd94a831085fe0ea8e9dc4c6c1a2d1 commit 8944acd0f9db33e17f387fdc75d33bb473d7936f commit 51dfc0a4d609fe700750a62f41447f01b8c9ea50 commit ffd574459df43bbb31a0ee67ce9c5b2f4d88eddb commit e35ba81bb308aabf7194fe49e2533d9c4732afcd commit 598dc939edf8d7bb1d69e84513c31451812128fc commit 85cfc412579c041f1aaebba71427acec75ceca39 commit d6219e1cd5e321351954e317b362db2c1d34402a commit 7578c2f811fffd7178de3075a19bddcbb7e0b2e7 commit fe0154cf8222d9e38c60ccc124adb2f9b5272371 commit c4dcb47d46144d8f5b1ace1d8d2fcddeb5dacd8e commit 10f624ef239bd136cdcc5bbc626157a57b938a31 commit 205e5c4b20c3c2e2033338a935f6a59843dc69de commit 515f08972355e160f896f612347121fbb685e740 commit 62010b3cd6030ff743930c9ae898d8e4e943100d commit c3203ca3b8a6aab7c5a5dc3f5e165a53410461f6 commit 6907d4fa5ecac7b08fb5ee5536e48b0a3895be31 commit 6a3691ca4799997b90da50883c170edb67bd6c49 commit 975a0f68f0d532d98ed3a8e385f82a46eea3d91a commit eadb8f40e1ed3c5cc36169d4ad9b7c49af98d950 commit d9d2f4419554b0ff1478d35c97740f00af0b05b0 commit 3043b74f2ebd5809e0cc8aae3621f1e2c37711d3 commit 8ae4afceed9e582bba0a27e4a2e69c2daf5b466b commit 2e6cb8775f5cf4867917d00d4293bc5537afbd46 commit e050e2acedcfd82b472cb40e9a2e7b762f7997ed commit 48d47a40835376b9a8365d089ed626b7d79f3795 commit 0f5b235f87604ab745d918aaeca678fac42bfd7a commit deac76110108a362cf791780258a0c1474e5cb0e commit 7050ef3554190769843009661b48abca2d1e33b9 commit 1301ce346aae3236e9956a2f4b618bf559335819 commit c22a814bc2176f73fdf563e2cc2c4044c5d4a044 commit e5f827c5796f1da029fdc36bb64df0f01c49d2d7 commit 56ac367dbf8d72274b0a77b817e583b6d6171191 commit 11cdc8f2bde4bc548da6f995556c4b7183431088 commit 79c520bc0fbb4e763316659d03d54196fbbb5f4a commit dabe0f9f2b17088c51a9c50b990fba19e9a7e1d4 commit 7d24900c8460e6eef1bbfa5db1d5bbed7bfa45ef commit 7ac0331344168414cea48ea377b93d78fea8644f commit f60ce4bd058cdc54bd7a2eb6067cbbf054cda1a2 commit b0944c983d274ac485f44f1b0d3a31a52fc3f6e2 commit 84ceb14076592abd08d06d403ebe18aa60d5d505 commit 5aed213c7c6c4f5dcb1a3ef146f493f18fe703dc commit bf1754789386e2f3ffc06aa77818ff80fe27475f commit 9f2b334bd280dd18965f57f93108e71bc57e4992 commit 90e0fd1e6c85469a6ff4ebd4352d2187be30c559 commit 2262e917b3da5c129086b035677291b2e3e4bab9 commit 56c12ec72ae8bd90cce1ea59dba2b93f986606be commit a3598d7d9ae9b4c9ded0f052d96ca5800758d949 commit 67f5728a895454108383d46e14ccecf8db117ea3 commit 6eca4dbe499890ce4340f49d309029e131e1e3e7 commit 9e9402b64a9bb217be5a713758082808425b64ae commit c7df997b260919e4d18b2dee21cae6bcf765babc commit f0a83a2cf9eb99be74b81ff655b01b5a9710525d commit 482ade3ec1c5528811c878bd4329e0e1cbc6c59c commit 0f4bca4e1be3d1a725ac12a632950d7bb3d51e59 commit a8f856bf054aeba9bb9c1a8b296c61711e9d76fb commit 8761a39e3f9d9f41a593af2fce1ba41537c35b83 commit 41e6ed85e4575bba9d62fd03e9b555f9eaa2c241 commit b24fd6e9eb66ff8695526c9e5d4409c1def13c0a commit 0a59deb2fedb8b6d9299327c4a9a5f4e77002e3b commit 80221a89ff95ede55be4bdf2c272eb35b6d410c0 commit 91942a37ebba1b810fa2e0ac20926f0c45f38023 commit ec74951a75070ab969943e438ead202beeec5134 commit 591255853a37b1c02afb046588b64e2a4cda484e commit 37f3821c7cc86dfce7836f6018d2ea365c560946 commit 8aa8781ba3c1de4da2775a16049d0a216222cf26 commit 7c585f9a71aa036eb36532a1c29a0304c429441b commit 78e90e003b96efaa822a6c29d7caabf2481f8c83 commit 5c465601d4232e5d7b71454c13445bab5a5fdaa2 commit ac15c653fb0926f18fef080bbb653a52b3562fcb commit 304aa805ee8e82adc30159ff43038cd96eb69eb9 commit c5d9c6690ed4cefe9390f8d73ad690332dbc7142 commit 38830bfe287f9ad97be87a844237beb8e7e64f4a commit 664de50cbfae048d08e9f3c1c0da377d1269e6d1 commit bd7247e6df124dc9dfe048e319f364e0613d54c3 commit 8a5fc5f0031edcc9fef547866547b748c2bdb039 commit 9095e5544061b16d1b331aca3f32c76cbd656d72 commit 745e0a90be2eebe6aae9735b80de05c060d6cb9a commit d2d3a44008fea01ec7d5a9d9ca527286be2e0257 commit 949658cb9b69ab9d22a42a662b2fdc7085689ed8 commit e22e0e483b2c76728ccd119fdcfea81eb176b3a5 commit df0a9bd92fbbd3fcafcb2bce6463c9228a3e6868 commit adb9de4dd207fb1264ea70b9eacab9f70ee4707a commit 10fe1a79cd1bff3048e13120e93c02f8ecd05e9d commit a166ec28dbc0d13cd6f3d84818cdce778055f2e4 commit 4b0497d25dc0f01ead2d38b54900063620f0a97c commit 98a2e3a0d155f25b15f523a794a75e9f4818c612 commit 78d18b6655fea3d9d8b30fd2b78b11749b4b981f commit 7662bc61c030edae9346dc56daa6109ce353f5b4 commit 9bf115ac6613279730cae3b60f63db47cce8083f commit 9ab1278123d85b43a1cde56fd19f1a698c99fdfa commit 9de99fa8c1eab5d7d1f363dcba0786a9b9cc51f4 commit 30c646afea03d848a38366e998351fa879e9acae commit 6690d949df04dac7997080e51ce4759919957fab commit d5192c15fa6a8bb594e9ea23561019f77565a227 commit f9d48a88eba547d87d8ea7bfd25abd1836cdf06a commit 4655b4d953067c176ecdbee4167cc85fc0058be1 commit c49e44ede5cdfe650c2f769d8bd58cbe289e87cd commit 4eaf110f97ae55d18a3b0cb727eb6d8c0e8ce7db commit 1dd50e634cb46880f3364ce629b09a37a5b3f888 commit 6ac05ae5fff84866a56358740681869c3bc62af3 commit 61f880039eea17a181fb3286881704c2c4287335 commit 2eb7d4b98700fe7612521e5226437fb9e7a65af5 commit bd051aa2fcfb803b94708429970f71596a4748e4 commit fa73ec95c969c7af292caf622ef499e7af7cb062 commit f45957432351b58a77fab63989ca842c314847b4 commit 85cf43c554e438e2e12b0fe109688c9533e4d93f commit 56116dc7a9fdd2ce2b0e01d16f772a766a0219e0 commit 1a00f2ac82d6bc6689388c7edcd2a4bd82664f3c commit 7fc7db824cd4785c91ed5ca14711ae55d12e9610 commit 948e209475a7b447ddde3b11a9b40b69265f02e7 commit 7cda0a90426e0d6448789d97760555ee9ed1750b commit d1dd0802b3fc975c2277558d686d3519e3ccf952 commit b1f7810b05d1950350ac2e06992982974343e441 commit 1940708ccf5aff76de4e0b399f99267c93a89193 commit b55bf19eb95e0ee3f97281d67dcaea9c8f5271d9 commit f0574a56fb1ea9afdfbe1b9563a9feaa12241001 commit 0ce8ef2639c112ae203c985b758389e378630aac commit 7f684a67f80adaf98fa9b0b1363f518e65c02289 commit ff284ecac32a98f8b052e271e173e80df456793e commit a3ac9d1c9751f00026c2d98b802ec8a98626c3ed commit 9f436a0075cbcc6bf7cbc6e4b60cb8babc889eb8 commit e2bff63ba6f875cb879c90758662f193f040d033 commit 1b016f87a8f5387b9b66b05e3e2cfde8b8876bd4 commit 269435aef45da369a345d23c28bf1b34134ec7da commit 67024471616e090c994a46630bd23c42d6962a34 commit 1a296827feef4dbad1e2863b0e2d7d7d8afc781a commit 68de5d31b15b4c923da4c8b7df7d4046139f9f80 commit 3b7d552ea1a03ae007783ef934cfa32a45c28258 commit d190b459b2a4304307c3468ed97477b808381011 commit e6ae021adb79e5f4c4bc4362dd651d7b8b646340 commit 76cb763e6ea62e838ccc8f7a1ea4246d690fccc9 commit f76059fe14395b37ba8d997eb0381b1b9e80a939 commit ef168e6de96531a2aa1b0ba77f07c7c56791d418 commit b61467778e69c8e7e43dff9d1e2e8940c5df42fa commit 8e8c68f4c90d80ba9a3b52fe832917f6878a15fa commit 61549a2ee5940af4d49ba227d7e7798ccf6f04a5 commit 402c014cbcc7c9ada6d62ee646b2b359d4793ce2 commit 65c4de2a9148385114b3ff1121143ef1af805a1a commit 45b9066ec351518657cd09599872f737ceb25f09 commit d1855d284e9f6580c0eaba66bfa04722f4d4dc9b commit 3dbfbd101a5844f851da9ae6e90f59753c10ff42 commit c81858eb52266b3d6ba28ca4f62a198231a10cdc commit 4c0be90e6874b8af30541c37689780fc7c8276c9 commit 04f4a70a183a688a60fe3882d6e4236ea02cfc67 commit 3df01f5c72b0b4ecdca2b3da88a4b6fac809986b commit 4071e0872fcad846381f86f5164236827f7e91c8 commit 1564d411e17f51e2f64655b4e4da015be1ba7eaa commit abdea2847acfe41313620a5359940522990018e3 commit b31cfb47b27ae02ea7fb3f956b99c79356730e2a commit cdfad4db7756563db7d458216d9e3c2651dddc7d commit 1e52db8a439b147f314681129f9ee33f16900767 commit d07a578703dbf839ea39bffc425fba2321f45543 commit 56e65164b832d777c1f0a8af47af8cc26e6506d5 commit ba7cf33f233efcd7e0a20ae8a73ffe75bf7337dc commit 4b526132cce81cd2430d6548ea031b364538c5c0 commit 3a745dfc715c50d57e52be744c05c66d65853e94 commit d210d8c0df2f05a081758f3b0b9dc2f4f247b661 commit 29fb595d48758a6804f6f5ad29df9508eeba242b commit 54599011b7569f6bb027b17248015c622705d741 commit 328add8892c261f28dbf2ef060e8a0707f795c43 commit c66c670ded611ba4528898a2520996e5f55cb03e commit 3425b2205d30c9d639217a32368422e4ab95e999 commit af52e168fd5a7b579c349cb67b5d253433b12212 commit 8c8667682e8414fd766c376219487a085f03e823 commit 8cecf4aec31397f2cd7f9a1d277bef374dfea5c6 commit 88b2f5fbcc4c42e0cc5349577d750dc2a66cb58a commit b86f87af3460747a829508d26a0fdf42daf807bd commit 9d7d1e8b1c13322982da169176cbdd94f66f371d commit 72d2031070e26f1de192cbcbbb45ba774183ab30 commit 94b110106b48bd84be6c7fca3bc36a77f974a9a1 commit 86a30fb1224d407cb03e178d4cbebc94e1c38463 commit 14947416b1e412123ecb6cb7e819ebb4c74b1f81 commit 7deb50baf87a026a20c6e89f19f9e31dae329bc3 commit b7d4e9074ac06ea507f1927192ddf6c9cae8e085 commit 6f320c6a00ce4c7d917021b64bab1571b860915c commit 1b455361d57016e820803b9c61eb68cd1db48a88 commit 09fc93141d4c6ba3f6e78ce3c995c9dedac4a37c commit 19be15dcc0f6bcb4be9109faf2d50771fc9a80e1 commit d831e62aa276977f05af6a6730bb6e1172e9d2c3 commit 216afc2c11b7e920c81e356c7bc1221d81b8436b commit c8ff26b82c5b0f589516edcf7628704e3a6bc426 commit 432ed92bfb5576865cd1fcc4cfed8a84d731b54a commit 41c0f8a36f15fab58cbbcf64f641250230725da8 commit 7b43a37348b7a3f07d2d7996539eb85f89e8acac commit 5c8c22adc802b2abe6fc7933087d5a029545fdff commit aa3d586e16242ada8e865f79249e4b6ac0c7704c commit bfbda472276704d7b7f065a646a67b30b7a89730 commit 7858cc0b55e3d44cb0a5a033207c78fc2d5f4df9 commit d2c4b1db1c4f9e59ccb2d65aa1840420a059bf46 commit 75fe5f347167aceb8b78b9f6ad0ba01a38a34e16 commit 0b03829fdece47beba9ecb7dbcbde4585ee3663e commit 24acbcce5cc673886c2f4f9b3f6f89a9c6a53b7e commit 7d3f6acaf87c7db6dcd868694a2f65e7040478dc commit 3b724909a380fddb44dfa0072fc459c698a52658 commit 966e397e4f6032b73438f8d775756541513e7daf commit d6fcbec281a2ed16794fabea49d4ac93db2d2944 commit d6ddb6624a7fc4fc3d7750bccaf43c66b55beab9 commit 95951654ca57786c658942a7c6f4471ef3f0d47e commit 6f6fd690de1aef476e631ac03779e7d1de3fe451 commit ac9b8b7fee6578015483c5f130bad78d368c00cd commit f558d676cfbc388f2c3175c3c1f99c57902ea3c1 commit 2c3d1bd284c5141a85188f48e7f42112e81ffcd8 commit 9aa8586063a465da986a39ef55e3e5c12140cde5 commit 60a2f25de7b8b785baee2932db932ae9a5b8c86d commit e1eb97c211859ed4a86f63be24c6723316450bcf commit 0f1bb41bf39695c84c83ce6f69e125b562d1d7ab commit 93160b2d1747500b5610569b549c8d7b7e9d0f21 commit 0edd2d251b7bdbf33f45924bb3c3cace38a00c42 commit 99ab1a29dafe1a091ed57e82b74581b4bbad0c96 commit 224689e14a2223320aeeabea273fe5207b2e196a commit 2f757b4c401fbeffcd6d92e4a8b4b9b25f0070c7 commit 3de9076e9f823ec8418c053c734d6e0fff30a635 commit 79a0bcadb4ca1bd9af126faecf22999bef859b2d commit 11abdbc22b1ad8fd0d41ca0742c79a153b2ade97 commit e6946ea8fcb5625c46754435fef5523f12659c11 commit b1ce52fbf6ebfc3815773045856c695ce86ca679 commit 7aefee83fcdfe5a6a443b87650f3b6cb5721d3ad commit 629df234bfe73dacb4bb0daa4bc2c14824dba159 commit c4f5ded082bb9433b180dbfbb8352f92e319149b commit d5e12fffcc01b3a22157a9cd4a7474ee6355182e commit 335d62ade5feaa46082f8da755ffdc569ae51768 commit 1c99d3d3edab25617afbb1592564d3ecc233bc5d commit 364e039827ef628c650c21c1afe1c54d9c3296d9 commit e158cf936114661044dface6da794437a91b53c4 commit 769551c45c2b66b4d0bbe5a78aab4156f85c6331 commit c454f1a6b994e44e338ac837981441a298c941b8 commit f2345ed5374ef964ff97e13e82f53b07c827b373 commit 25275c8a4f1be38494caae25cfbac116280a5351 commit 63d8cb8fe3ddf74627003f99ad085887baf91e60 commit 0ef94554dc40fbdb7e57ff90cd1e7fa71e1e89fd commit 1173db117634b42383cf5d397ddfd4d4860ae20b commit 3179338750d83877bbc491493032bdf192266ad9 commit ecde5db1598aecab54cc392282c15114f526f05f commit eb1ae34e48a09b7a1179c579aed042b032e408f4 commit 23368d7b9c1a7d7f0b1435f69a3bee12d836b2ec commit f2e9952449c07ed324b39c7b86a6369c16eb3d18 commit 21cd078519ed10ad32d603982e80a3830e5d9236 commit 814ebf50bb284c72ae10bedf36b81ceb680030eb commit ddadc87f14986886d0d9934219644a07409ac313 commit b7e04af37edc5b6fd9a5aa206ca4dc73346c688b commit 66d58ec0bc659fafcda962a5678dbb3f061d7359 commit 46c131986030d48c64a1df43b8512db168a8d8b0 commit 844f3228d225d25af8a21a7e1554d78c20823a37 commit 51f9183e4af8c7f00e81180cbb9ee4a98a0f0aa1 commit f79d6d28d8fe77b14beeaebe5393d9f294f8d09d commit 91329f921283b995ac125a0c6e61be0c1399f66f commit 510ba36e86eeb3ca89326dd51da32806e1ede693 commit 0f43988fb9c1c0a0c2f5ccf2d1bdb914f6e4e79b commit 67ba7a82d99a8a8b4bcc1b8124b5640c63dd51bf commit 85cb9d603953d77de5cb311d229a79c439ff6bfb commit 4488cd671c77d155bed3341925e16c5f1cbc2b22 commit ff422eb7a91ae2ce313e207015c10284eca8e107 commit d1a6bfff94010ecdda469bd9d6580982491aedca commit 01b32973367bbcd12ef38f7a9fbed3a0f1603b6e commit c02c1960c93eede587576625a1221205a68a904f commit 00dedab07b52ca16107e82ce5ca7caaaedf6a417 commit 74ab6253dc077263a61bebfbdd3766b5c11e94be commit ef5715846283e9ea6031d773e3c772034f4879f4 commit 2531e5dced848e60dbe9597f8a87dabf5a947687 commit 75125e6b4c204129ab73e95d7fbfcd5a26c5b92c commit 73fbc3e00003fb8d84eb41f708f4b74ca9930237 commit b6420021e17e262c57bb289d0556ee181b014f9c commit ce798376ef6764de51d8f4684ae525b55df295fa commit 0cdb3f9740844b9d95ca413e3fcff11f81223ecf commit 8ce97959ecc23a49c8a24975f5566287e5b15944 commit b194d21b9bcc15b50df1bc3ff7428e51c2918a6f commit f326d7cc745683f53052b84382bd10567b45cd5d commit 599142f948cf65ec054c84fb4bc170fe2838411a commit 4c11d30c95576937c6c35e6f29884761f2dddb43 commit 2ac72cbc7e61ef24e8ee2f39d02b3b8b59c14a41 commit b2aa3d4b3048598e665230e2da46a62ad1f48d52 commit d19fb10085a49b77578314f69fff21562f7cd054 commit 7be73af53b57c98cf48e37b66da4dc00c63bd6e2 commit d8cd2d617a264734e94c29bcee5e5b5d6b7f3e92 commit c14d5b5095cc805b0f3f04182b5e18e618258b86 commit 2581f22fd849d7c8a5fedb8b1531d20d2dcd59aa commit b80160a53a4aad05987ead30125cdca3991bac09 commit 9a55c77978308695cded564d6b17390f7bb879f4 commit d430e856ed009f9a98f12b6d6812d7ee1d7f3e1c commit b712d7c20133b67f13aa134e7534369f19e1214f commit 3ed181b8ff43fc03c85d43a726e578bd131d39e4 commit b72fa761fc6be316bbf3ef9af4b7f145a208b1f3 commit 0cce5f285d9ae81c33993f3270fe77f5e74a69ab commit 736f911204ec30707c24817781de5f990a5f545d commit 5d32b7e77b892c1eada532f37841f504175e4b64 commit d3620eeae82cccf8316e6754f8ddb52473e2e5ea commit 512b322b9a16c2465b9926b98ab067421e5669f9 commit 347eccc4053f0a34e564dd98b029808f365ee479 commit 48fdcadb2c404c4156a45dcff8d5760aa0e8ae44 commit 72e6ea95c41d4b61b509037cdaec09194f577d81 commit 985f7758529083f35941d49f38a6f23a4430f59c commit a1a9143c96ba185cda6ed193e7b13c77fc90dafc commit 1446226d32a45bb7c4f63195a59be8c08defe658 commit e060c7ba7e335e2e0b76972a1efa0715915bcb7a commit 26e20235ce00219a1ca2fb617d82fa24607190ae commit 8fb0efb10184c8121719247e5d59e68e7f5617de commit 50bff04d0250d6606eb5fa3907bee43b4a6c5742 commit f6bce954f432c556659a57be9e18fecdc575affb commit 4d154b1ca580fd724f384a7042a5f24611809476 commit ec41bdd82e9b043a53e8cd80746e406cb1ed72b9 commit e07c5a35d178d5f86f7c3ee7125d7b22b7e6d166 commit 83b90b138bc291769d212008d7b6952225a1eba0 commit 20897c6e711595b4bbd8da45fe9fec3905e19fea commit 7794e99848de19e37b45a17a23115e973021b7ae commit 258ed689bc3163f86204f75df6c23f92b59b3fad commit 5d6f66b542a6a6f8b0c5b4698fefe0f7fd5e065a commit 546e6309d14cfdc584b92eb6f2274618e629b3f5 commit 062a7ce676e092faf03daa6c579224bb3d904ae1 commit 45430e7b7c8de9ed910d99cc8906db3db5a1334d commit 30dee753ca0a1b565da5eec8d0686315f595d171 commit d370a9dba5c4a9bc1b6bc0643037700a03fceae1 commit 36b75080e68b4a27ae1c40beffb3d6131f8eeeff commit f33fe58298e686e7cc2d24f747c980457812b566 commit 673087d8b023faf34b84e8faf63bbeea3da87bab commit 964cf2c28da7d525c40e126006511629575fe3e9 commit 9eb5c2a29afafc39505216e577292f0faa255295 commit 872c0de315d2ebad16d0ff574f8c9ce26dd5c6f2 commit 290c0462e0bb68b0878e25c15e7096626dd5bc15 commit 7f46daca139985cbfb79f1c3a41f4df065d45b1e commit 70bb97d95fe149607f8e148087ee7e48cc3e94d6 commit 7a1dd866c5ac7d25bd1795e1cd507cabe29958ea commit bea00fab2b0e5359ee88a2b127f15a35cd48872b commit 7991585b7743fb9b88e8cd2317ce7a87c4f86450 commit c801cf3d25a622b96057f5cb9110785c56c43510 commit 67a4888dc38c1d90d22b051cdb68c9144a6bc317 commit c6bce984b8917b4a2fba17b5f19f1b44cf69d736 commit ccb167104a8fea3cca08d1d1d451858436a4b9c8 commit afa91e2d1e58a1896067c55873a962704d5840e9 commit a329598e9eab8cb0f33ec0ede1f7a4e290b1be1c commit ecfd1bc18a5b8c5b679513f75c75ad2b8deafa13 commit 3aec7a5af4d6248b7462b7d1eb597f06d35f5ee0 commit 5745cb2da6fe08899420d695ce436df0166e7807 commit 6b7fd8306efbd406fca9e8d27b2c103f951760c8 commit 44b9a7cfc035166f23b9fddecac3219133a8a15f commit 9716bae1eaaf35e308cdb97b631211495cbb44d9 commit 79d92dbaf60c30fe4da7a047c523ec752828678d commit fa3c5a8edc0447ddcca8e3ab4647d05ddaff38fa commit 5f56be33f33dd1d50b9433f842c879a20dc00f5b commit 6e3726419bfc8ab52e7a54b376b4c73282203807 commit 3a19a8af64eaff8a8b230796741a1a8277205344 commit 5434bc03f52de2ec57d6ce684b1853928f508cbc commit 28e782b2c7137f68569730ec4205e729cc21152d commit 2aadb520bfacec12527effce3566f8df55e5d08e commit 9488d7affe01641eb3639fd8eeddd22451f1eaf8 commit 04806c1a21d7669b0d05130cf62f5b983b165801 commit f88e570d4b1fb97dc4d1b27235757cedec7707d3 commit 64af3d3d66c741c5cf6a62606ae37834973a2428 commit e7d1f1162bb1de369be3a51ca6346bd862b6cc1c commit 90bc75b08f30ac2ed98bdff60ced0e6d97eb813d commit 191ef65b4ecb27a7e1fefd71c78e8d0aba9fc3aa commit 1cd04b5c44a2c2e3e0751d543c9097d218182673 commit fb63d6fdcd3cbca829ddfba5f35b8b5e5674cfe5 commit 9c1a429217d294ade1a88eddde987a183d4d3ae4 commit e7f67d0388e77e3863f2f2e9ae4a5f8bce2a718a commit b593ea9406237739d2da42e6f245c390d8a69f43 commit cc2db2ef8d9eebc0df03808ac0dadbdb96733499 commit 587c48f622374e5d47b1d515c6006a4df4dee882 commit 6320b9199dd99622668649c234d4e8a99e44a9c8 commit 554c00181968d43426bfe68c86541b89265075de commit 6a7bd6cde73f0fb7e5faa964dbdeb45b55c64698 commit 509eaa8aeee64bd7a41ca53d8728e497a9991074 commit 676a079fb3be66aed12cf40f236c77b8e7c189c3 commit a2ab7cb169da38757323929f7b3b4cf396ec53b5 commit d9ca4b760ef6d93766b9d87df8cf5a33c807ea51 commit ab689514b6ac518ef6e88afa245b834b0dae15a5 commit bd49e50d81b543e678965118a86958d87c045c73 commit 9b090d57746d965684f53a1aefcb363bab653ad3 commit f2f6b667c67daee6fe2c51b5cec3bb0f1b4c1ce0 commit 6109f24f87d75122cf6de50901115cbee4285ce2 commit baa14865529bf1f3c12dc6145bd9109ef289e038 commit 6aa18d7436b0c11f7e62fd6cdb707eaeab1dc473 commit 188ced1e0ff892f0948f20480e2e0122380ae46d commit 995f7dafd110eecbeef1e02846d897d64839d838 commit 8a0a7b98d4b6eeeab337ec25daa4bc0a5e710a15 commit a856a53de93ef25e44b315fc1aedce609ba2d453 commit 735940f99966a5d510c43d05c932da536b33715a commit 01d71dff61c7e1efae1d7f11b71dfa4549c172bb commit cfa7772880f845f5d6dbee69c441c6efbffa425b commit 3c7bbd4c9dc42e05218d489bd487580336d42fc7 commit 484436ec5c2bffe8f346a09ae1cbc4cbf5e50005 commit 1155de965e6a4987e2897f78ea56f07c7140764e commit 76e220d4d88266a1b9f44b409959079292e409ad commit bdc9abed51b52965557f9c46d541b5ca3fc66da3 commit 2291c091107d0635f10269098152900c0a12fd00 commit de1429a99fd37f706e6bdbf5e9ad318e1523442c commit a6bc7cda37d1ad52cdc59a8d4c4d654836f8c238 commit 31a278b5a11e6785db7f4976419d2b284591720e commit 26a22952c8551763f3ecc3251e3d8d213dc08aa4 commit f7e20cfb59c9f6dad45539286a1c804b24fd86c7 commit 7065b19bd542e5dfdcfc421aed4ab9e4fefa19cc commit d8a417c4bd510e7ed8ccd30045bf2bf307c00c57 commit bb3c3e79d9a1331eb03696e9a4274293767af594 commit 4465b8c6d3539811ce576f163cb3bf3890e5c883 commit c60f91bbc4bcd91f9c7f3de36c541951b12d165a commit 3a1c27cd0122409a9fc425106fff79655ceeaa20 commit 241f5d25ff198f86bbd812a655ddc86834dedb94 commit 19fa7aa4d235cd21b1c62977b2e8d6331976286f commit c9f422de07b1c62ab6da0a240802ac24efe26dc4 commit 6d95155ae71963ebf43a8df60f39704294f09dae commit bbc9651fe9f4c081e9931e2b3f6a6c5b2d05a942 commit bc54f42c0efaa81b42b53ce5f2423f7778d82516 commit cee70645a7499e3a2731953db80124c9d5405d5f commit cf13ae6b81d5402ba93c46635dd46eb19ab49c4c commit 1bd985ff9fc463a72e4ceb65ae6bcb735ce93c25 commit cd506a33b0d9759e0a58556799b1b38650fa3698 commit a0b834c8957a7d2848face008a12382a0ad11ffc commit c7117419784f612d59ee565145f722e8b5541fe6 commit 5b6937b65e45e31af56a5bba47f69acc550acf26 commit 48d74a0a45201de4efa016fb2f556889db37ed28 commit dc51c682ddb0104851c8ccbe1d644163ae38262b commit 2689390b4ecc27d6f0a97f24544d75bd168a21b8 commit df798d43b35521f004c2f209dbb264c47488218f commit 9cad70a9401f4d962e1baa9d607a291bfdc8f010 commit 199bc8c175d712be1610dcad7f7240ad5c864281 commit 04c09e4b879b225f3747606bcfc97d00d82d800f commit 0ff7639bb1a6299930b7d66214bc6b0a293d8833 commit 9871927034d177aacc7054e30c74e11fcddf8ee1 commit 561608610bca0353b567298ce0e683b517fa872f commit 514ca6dffb2b76c1593b558527e2c84bd7faa249 commit c0086b71441d8af3f65a065f582b5e73891c9910 commit 48dd4a5e81005d26fdd88fbff439cc91f9992830 commit ddb904d6d08730bd54bc842a2d85fcfcfa27aff5 commit a9940ce97d1dc5fe8e6b2f607e9da62073d5bca2 commit 7acacca1b157fcb258cfd781603425f73bc7370b commit 3ec3b42752a29af22369e72d2935f36cf4c77713 commit 40672b792a36894aff3a337b695f6136ee6ac5d4 commit 444f396c62420a010270de9a7963c72473928dc3 commit 242136edda0f405ebdd93ea788f2ed9a907ce897 commit 8032e67f79497e4cad26d3d229905b349a2a1c76 commit 42505ab1201918585b2627b171b064193a815c0d commit adcea136b4e865b11cf414321e397d872558e767 commit 3d9d313d518c5bc9e5ab6aeab86c9fa4bece095c commit 4bfa8a140db33599e666400fe4007d27fbacc96f commit ee6af5de1cf438cbf4f82d6d7c453daa47dcaff9 commit 46edb0a3eb16cebc2db6f9b6f7c19813d52bfcc9 commit 967c5d7c64e207c9cb1b99ff3d2aec95e3316af7 commit ad1e331fc451a2cffc72ae193b843682ce237e24 commit 73ba282e7faf625faf26a09861e91a9fd20ea9a8 commit e7b180b22022f52e3f5fca695cc75d63bddc5a1c commit 8d490e019b3b8da9cd9986d75b493ac3aa8d3269 commit f91806033fb7ed1eb7e110849dd48f41c4fe4d4a commit e8ac8048a759ab59042019fd84e6db98c7dc32f8 commit b10d0c5e9df7059be5bbfe2c6b293d8e4883f975 commit 83ee002df0ccdd7429d6355f65af3845af016ffe commit fcc8f80517ff71fab24f63dcb4bdb43e63b52fbd commit b0ac1b42dbdcc990ad32d6f8107a1d5214c33e67 commit 9262f411dc2e765d8a1d52d33c84d2ebb0580cec commit 29c03edecd090de105b9353d8eb4e430132218a8 commit 030ffd4d43b433bc6671d9ec34fc12c59220b95d commit 64da71ea76418550aafd85740dfde074c99a3a6c commit fa1040811678afc0fad043d7be1de252de74a035 commit 806e8c5579405a1920902ae58bd7907341a37f7d commit 0ea55445554209913a72eab86b60f5788776c4d6 commit 19f0edd897f73c4eebb3b5825d8910f0edfa894e commit 8d7b1496754dcbc7a7155c85d919ad435979a887 commit cf85764e2bf1acbefb45e09919a8e9fafc58e119 commit 0b6dc64b4e2254a8aa6318116f684ffb440a6e4c commit f889f9c68bcc2da0286ee22a566ed07d16b509d9 commit e21e0b782430c7731b0f12ebb7a5e2ff7c20d86b commit 6b18376ef37c3dd2bbf34ed4b42fefaa1f348a3d commit 621a4e9efb18078d5426b3628d52a629eafe4bc2 commit 74feef5667ef326122054d11257b2a2e1098dac0 commit 0f83227bc8f09da9a11cbbdfdaa9d724f83086f4 commit 8444453dced3e5d81a1ca0368fc6227834b9eb8f commit 29b1fc665cc9290335dab7014fd8c9e7386dc7ad commit 836bc350a59bf151e99919ba10bca95dc2b1bd70 commit eb14b8f50516b543b3483a14b1f30001940e6305 commit b5812822d9c9829187efe1ef99141b5edcfc8c7c commit 015a04a59e3f9ff4a8f8a8e70c2da645a2e4b82f commit 400c49e27d28ebe4651e19d29b3009698e309a67 commit 368c33ac8ab984616b862a3f20e57cef5f8417e0 commit 498906d3761070f8c0e54d3a486e01a0c26b4ff4 commit fa4c500ce93f4f933c38e6d6388970e121e27b21 commit cfe34d6a4c0f2754ab9b0fb0cd23d4c9f50a3859 commit 2468c0dd01d1b911b9d8ae6c13b8ba28d1e01bb6 commit be30c827e16e5527644f3126ceb050cb60301a0f commit c09b5ddb6e21e839f27daac6ca45f27bb5f2f45d commit 26d0ecc758accce04baa844723be8935f9d516ee commit cd962cdb33a799a37d4ade1af023a9edf2a44a94 commit 3ebfafa75c1e1250bd1f735e4f48f3b20ece5b99 commit a99b1e7f6395ec17266d790a5e9d6cab6cb33ba2 commit 9e93147f121e9c333316c87ee6be29507c817186 commit d434ac6252768a5aecf7004fddb939a1d945085f commit 495d6f77dfa79b26bfa95eca3215179659c2cf8e commit 89b85751b4fda1918cf314318d61a184218d3df3 commit 17c99a03b7768f6ae8fa128e72c6a5d95b184eda commit 90fa6a4210b78b39091627f4bd10f28835c4c5c2 commit 491097568a55238017356dba341cf6726a35b6bc commit 1572fc3162de89f484d544beac6ae1204440f3c7 commit eff70dac16d1f87c262049783b3281b706448593 commit 4edadc41a3a444566cbf1f5204867a9c8f44b255 commit e70aa1016e5b54762e922318d0e20bc646993c13 commit 2948b24233cfe3c8f2c071b6c83efc3e05881023 commit fcc6b719ae8576a00ddd3e261b18443594250189 commit 9081f8ca2713356650c6db7e1e989ce7c68267dd commit 5cef84939723f96352d7087b0ea596a65fb972c6 commit fdd0b80172758ce284f19fa8a26d90c61e4371d2 commit 983095eaf6c161ef73d96152bfc1a99ca051cd57 commit eef3811433a53b7db2ea7d2be809e23a70ff42bc commit bf9ca9f36975efc8306622d29e521cb5459bd168 commit 375c4d1583948cf2439833e4a85d5a0aee853895 commit fabdb275e5ed13271d8fa218a22616ba7ae5aeea commit 5f128aa1052e7d28074ac9b5279d0a09232b699a commit 325257f2e9cb753a1581f8ca50e84012010d2718 commit 454772c7f7ecf6c51fadb7f35bc3ee430bd86885 commit 3c5426740ee84f2d03c5bdc831c52c89334bbf69 commit ff2a391349afcf62e99897de9bfd854ecf9d21b8 commit 56056ef643fcda3343a2318091d27ea3addd4be5 commit 9a7f6aeac2948e4212e100b3f939a0cc8d0126be commit ea797cf4b7f8470f1b23cd084096cb93fb93e6c3 commit d79e8cab32371b0f08ae0ed6f1b2b9bd8b7a2873 commit 08f7200899ca72dec550af092ae424b7db099abd commit e183910ae4015214475b3248ce0b4c70f104f254 commit 0ac7a2c745e8a42803378b944fa0f4455b7240f6 commit 577b83b0f45f7b36d734708f5cad8b35e21ffb7d commit 50e52592fbe791d96ec2cb431d158cc6bc495be5 commit 45bb564de0a6f87e9f502ceb4ff4d9f936365c85 commit ce62827bc294ba5f8b3909bfa5d7dbf9de8aab6b commit 92cd5d046a96870abb0e9ad9922891066b5e5fb9 commit fdc97fdc0469583e7960a5b6acc4de9ed1f595e6 commit de49b912d2adfe5447c978036aeed1ccb6fe1db0 commit dc368a87457abf53178af774852b5a839efabf4a commit 07776fb3c8b37a45a106cc501423ff9e8521ace5 commit b758cd8057e9f982498efd73b3176987e996e5de commit 582d79f34330db4ccee85620cf95ee7ccb9a0d01 commit 68aaa74da5b44dbc742742057964cf25b2b6add0 commit 54cb39e2293b1e221708d3ac157ecc59086e1b46 commit aadb3e16b8f30cc1c1efdfe162f400e026385bfb commit c6d219fb0335e6a37a4a2a29fb4a537329823c83 commit cc13f2937725cf0c5fb67008959125d42da3fb80 commit 093acd131600ebf3d581a55ec0f20269abc8f588 commit 7e6e5519bb998acdf8bc755718ff4980a8e3be6d commit 0f1fe26137f12f9208bf2e0bed6b84def1f9c82a commit 16645d59b9074bed42cd9d2eef5e17e687258762 commit 5c99db622a12ad915a0e4ce201de8aaac06ac3eb commit 5159e72a930ee647d5addd709d4a1592b74cf535 commit cf8361def4f6c09063061da945ddf560c54ac693 commit a154f9ae877751f4ba2c81a5fd0fa1dea500ba31 commit b31a97af9f6c37fda9aceebeaf2ddb486479c6bb commit c34474b48cf12ee806132c269ccba1395b10f724 commit eb66d34d793ed48494820ce908c8c821b8e6cae5 commit 948f01d5e5595023c2e7cfc0184a322be00ef214 commit 08eeaa134e1d801e2d935c16b9200535bd580b8a commit 40167bcbd19c241fc30a912fa8a8276b9ed1a12e commit abb6f74973e20956d42e8227dde6fb4e92502c14 commit f035f4097f1e0a35a457b72427bb0c06ca0c81c4 commit 62eea520755e867aac35e087634ac40ad54d3201 commit e5030a74f976b4e808e28e78805c87203ac1a48d commit a6cb58a2c13b931743d83404b6ad798c32280586 commit 26ff1c38fc29ec5eb51c84cfeda1bc3e27de3c13 commit 945f516ed3468bef72f0da7c84a64a95c0ad28eb commit ab52af4ba7c7dc2e226ede5935a0587743b747d3 commit 73af58c1b441701a740b9157123b2ffd14aa3e0d commit 027d435906490812d4568ff371a8b63c24a36bcd commit 4af70f19e55904147c0515ff874204a5306ac807 commit f378b77227bc4732922c57f92be89438bb1018a1 commit 4fa04f4cccc4d81fd6272ca94b879b4d7630ed53 commit c602e4959a0c356b3dfa9e0b8b4ad4c501df3eb4 commit 38007fa96419a9db9719f170b9e8a7877821cdd1 commit 82e0b1299a3ef81a672398c547d8e7f553be793e commit 6ca728975654a7247b2e4aa2e9eb61043c833570 commit 0aa256252dbe74f48300824b9e65d5e93fe631ff commit 5c9464e2c7a74ce7b0288a7d3c8b96b1321fce55 commit c7ce956bb6d0f32ab921b6ffba1a6a834df96f21 commit 9276bcc22f52ab52ae77b7b19133943d88b9a3f8 commit 38e8c4184ea0eebe478a9e6fc8d1062561223429 commit 598dc42f25cc3060fd350db0f52af1075af3f500 commit 3c24e31c908eb12e99420ff33b74c01f045253fe commit 1985e3512b5a3777f6a18c36e40f3926037120bb commit 3904f317fd977533f6d7d3c4bfd75e0ac6169bb7 commit ec7629859331fb67dbfb6bcd47f887a402e390ff commit f9055051292442d52092f17e191cf0a58d23d4ed commit eeb133ff78476eb1e6e88154dfb75a741e8a034a commit 157c1381780a453e06430f8b35bb8c5d439eb8c6 commit 68c205ef3c39edce4a3346b8a53fd2b700394a0c commit f124478dd18c519544489caddce78e7c5796a758 commit b7ca446ecb53205944968617b158f073bcacaedc commit 2b8c19b9d7bc9d03e8c44bd391d21e95c07a2c83 commit 3357f6f465e62c0bc5e906365063734740c9f6d4 commit b605f257f386b7f4b6fc9c0f82b86b75d0579287 commit 2a9487b5aa55753993fde80e4841128c8da4df71 commit 5a847750aac8454a1604070ab99d689c0a6e4290 commit 49869668ff0e3f380858b4c20b8d0cb02b933f48 commit 2a1c99d7159b798288bfb20a76c1e665e2344126 commit bc62654df3c888dec735343f5db9907ac93aea60 commit 4e5e6fa77a9d40cdf85ade7f86d07dc8929941c9 commit ac9e1786271f771ff1f774742602330be2d57a12 commit 3004d2e9cca5d59d25dff670a03a005d40601ded commit 718bd8a1a5ee873778a72523c06da054a89108b4 commit e28df86aeeff0b84c13e676f641ea879abbdb809 commit 6afebd850d1ab5518c273b32532f0b2086cc633a commit e4f9fd9edbc22faceb4c9c57242440bb9e17924b commit 336dca397dcefc5d7436be1fee3c814ed6512996 commit fa171d49e49af89dfece89ade803a5d471d919a8 commit 73baf72eb193c6a30d883a380f2f8d26fd6d5ff9 commit 2f602531db4c5b522073aff1b09d2d5408352a1c commit 1566b50a439cb8f5b50c7f1e6543e38d1e1848f6 commit f0faeb2e701ca51115ff4f025152dfc685f9ca07 commit fec7efe7bf2d7fd7824a5d0420e13d4a03bbfb47 commit f008baf08d3eb778c19890bff81869d6d3481bd1 commit a17aceb34e2f0ef36ffab0a96c51240e88a1c5fa commit dac81a9adbf0d57a77d566fea65e8153003e5bc2 commit 0c02cebc7fe943f92dae0e61628a7723fe1739b7 commit e90f7a58e659a30656b3a83173d4bdee1e2b853d commit 7e4333567db8f7d82929cb95458ceb6eb43bb4e4 commit 37ea1aee18e7418ad5a3aa5f14c87c8e0736fad1 commit 87dfeb47a5f48e0831071f5b69eb4ec3147fd56b commit ca0bfaad4fb1c70c494953791780d52c513ee324 commit 04c1ea9d6482a012c050720e13fcb858884af75d commit f2a1fbdd1f193f3d9b5b28349d924ca45046f541 commit ab47fa8358f73c25543e6bcfe98fa952c151666e commit 511a623fb46a6cf578c61d4f2755783c48807c77 commit 3c603b1fa8b44de94c97dd0baf9b40a74586b55d commit c2edec1676ca40abf40d1d895765a6cf801decba commit 2998bccfa4197ff49bf70cbe14563d1417fe3ccf commit ddef2cfbb8927f7236f1e0d12ffd35b5d576e300 commit 91b586cc05fdcddf3c63109dee5c7960cfb2e852 commit a00e85713c372f19a81432e44f0bd5cb5102c644 commit b7a08552e11fb5f1b9544e251f56660fcfee3dc2 commit e7595e3740e64b824cb8adda1dd5c3b7e1057f5c commit 7da55c27e76749b98401fe307d3e243fe6ceb53d commit 00ee2e58c144f425345be65ce71f3b37119a673b commit d0a6d85072b02c02697bc60f2115756aa1bf89d8 commit 7920af262ad1ffa60de091794aeac9531a9d4226 commit c75bfd1567fec225b53574f5b7f392c4951de729 commit 234e94555800d644ae970ff8da50f1f03dbc6ff9 commit d4ab6c409b16954d977959e1b9848910f58f32bc commit 7978c4d41496becda1c1cbd5b783c60e9b64d618 commit e864180ee49b4d30e640fd1e1d852b86411420c9 commit eab57bf22f07a9242171bcc6909b30f4c737ee5f commit 2e216b1e6ba218afc873f4cdaf383e8d18403d74 commit ef5c0f897ec91e43b1d719dec170279e4c68382c commit 6670142d25f3cc3166f2a6c8454acd310bf2776a commit ff4e49f446ed24772182c724e0ef1a5be23c622a commit dec4f2d224ed7cae488189013a238432b383bfeb commit c5e358913d92bf32ce0d199c133b2c5ffd1e980d commit 3027ce13e04eee76539ca65c2cb1028a01c8c508 commit 88c61827cedc14cd305d4266dc18ff0fdb3f8d4c commit 6d438caaeaa1a7fae7b523e7bc4cee262b9f101a commit 669d6b078ed8991266da4c68c46ce7d2e942c474 commit f8718c482572181ca364ffca3c27365cc83cfe9e commit 0568a4086a6c7386885eb2ac2dae3f7186eb503f commit 264eecdba211bbeb8c0ed313ffe03e9dd1e20262 commit 5575d7b661887760f385e8c68913da5cf202a8cf commit 45fe957ae769b9122f4a40f2528c516132fe7e3d commit b2c2f2df6f01174eefc1ea2aa9aef8b1a6c69575 commit ed43c40e1f10e0ee1d49b841ee35b23a3a7113ee commit aa71584b323acf62f42844e4f1b4d472b7958a0b commit 73fc975318e0ab3385c5b3372c7b296ae58c8d6b commit f5a5f04b6019b9b61a1d744ea80376c1365218af commit d498771b0b830140a70cb8118ee0ee522be94f39 commit 0af86604e34188e1a7263dac739f2b8faa6e892c commit 391acbc6899791a963716e7be4ffe5e682bd7acf commit d0e78f535cbcda9a4574e8d329d099cebda64df4 commit 86266829ea755f737762ebda614c59b136c8feac commit 9bbfab1c7cf7801e50b131ccf04af8d32b01dcec commit 1c4324793e9bfb5a29c02844023c8ad412fa0467 commit 2adfc4e022f397913a23756a08fbfca3c4ee9c8b commit 2d8865b27724117022a67984e4a6ef94c9555ec7 commit 8c52ca22b15b5b3ce62b3e2a9ec9f3fbb6302783 commit 638d1c79cbf15c14f1bcf98fd8135ea83a04dc50 commit 9d85821a58f4ff2839d7d3290e0256c1b42dd9da commit 2d3789e325e6aa91d228aa461c152d8e8f107bc4 commit c4e3267868e1debb3d87d21a36efc8a2255298e2 commit dd73925e3b84bcf2b29c20d6276843e7ed7cd771 commit 8bdbde7c4c84286aff55c0af37bcf0a72828d98f commit b09469817812ed30c2fda685831a1779437c9c11 commit 15438b32598744cf207398dc3e02bf88db42cf9a commit 5a9b255fdb2b235502bcfc0951d71c0c3f6d030e commit 42493f7cb2c96ef96cce5809878ee2fa0ce63b1f commit 54698865addac97faa8dea4e07be838219128186 commit ae6daede02d2a31171fd20887363e59f4aec3768 commit cb9d05b9c2696431db1501160dab9f81a23ab0e3 commit fdf531b80345aa0ffb15dd6b3c3db52f1f194abe commit 785778ce21cf50cbd3ce6cad0bf4e6c0ba3a3b41 commit f498d28977ab76ede14d4a78047e54a215c0a9d9 commit 54836ee194f9be651d5efde0037d51b700e6b3e9 commit b27259626a4f7f83ef0addf84e068e298ef7a231 commit 16b79b3397a314bfc7f08d8e5d52e9b09c6a0481 commit 53d916d9a425fb10e974318991b9748a05efaaea commit c9402efe492bb46ccbf94fedc4783eb8f8747567 commit 4fab6b8b3033c02f11837a26d24297cce9a5b6ae commit 5010375afab51fe80867ac15900f49bdb2908b9e commit b84641c0a1742b79084ddc4124e2010f3f09888a commit edd27f8ee89d66a42dbd691567ca01909f33138d commit 1fea297844413e3e775332faa61229be8ff3679e commit 9677dd01ca1ada359f22cd129ccaeab9cd383567 commit 5316dd0d617bb98956f75cb33982efe1b26d8f19 commit 5b7f65acf1b083868e0fa9bf0617168794c201ff commit d3e80f2dcf8c2aae09eca6b394eb253505e37dda commit 68cc33f6137071cf634bfb3869f69accfa13eaef commit eccd1dbc49946e7621ec6545c4b31dd557375ee6 commit dd7d72c9a45c8d0a6544970846378aecbec4d35e commit 4adb24f7341a972ac013fc523d33482e34dcbe71 commit f8e1c8f5b05fd2f11e8c611bede20cb738bc34cf commit c063cce7df3a765539e2a2d75ab943f334446cce commit b156a3e9bf4fdb6bc3bf4152f70b56573ff1350d commit b95702e275a78d0b65b4877fa83ab817a18df855 commit 05255ccbf172cb3e4c18200e077b46cc109698f5 commit 0706d57100fd0b2b34d50855726f648b8bfa7d2b commit 1bb01bdab03f43e324dcc3a4f0cfc15c5a2e215e commit a1ed6865df70d0b022f510691059219d0b715d84 commit 03c7918d0d52378d215712ff66c06a980a2119ab commit cce3819a5f5a55e08e5a3c9dcd1f46a3c5276ea8 commit aef8dc4398c6c6fde0d4c746e8343a33c683cc33 commit e051d64b0a8f5fba923ffbe2003d691ef03f0607 commit 3acbde3e9ef941fe6c847a007f72aefee0746226 commit f2bf9e95989c0163650dbeaede658d0fcf929063 commit 877517f2dcba58867b64e3e0c616f26c62d4a8db commit 0e3771f459ad84a286802ee22896f7a64a744f21 commit 13d1359d67485c220832594fa044436992597823 commit 0a8c581ce01c84214b8221fcc5d52b45c09d0007 commit 16b65af8b746ca6af74fd45156e755f2c8fa2379 commit 04d0aed08206a235470ca82c08f46aa7b73e97fc commit b330568f0c51b0b80e463841b0062206011a4746 commit 62ea2eeba7bf11f4b04e080475de93c2f8ee0f92 commit e82290a2e0e8ec5e836ecad1ca025021b3855c2d commit 3747c9818954368020c6de7602e7a8869213f053 commit 35e7a72a67190a3846cfe2f87add4ed1229b2248 commit 30ca6365bb4200f55e59bf1ab2a24e65406e9eac commit 131328aa5699c35ad0db0a4da75b38fae2379d23 commit c393538e01a1b92a63899023857b8140100ca7f3 commit 8b01f970ee890574b3607c85781354a765c849bd commit 310ec03841a36e3f45fb528f0dfdfe5b9e84b037 commit 7f57f21510de2c76596af7a51804e6f1abc0be00 commit 738f3d86182ed5f6d09205db6f0ba3c498c20d69 commit 81d604f44b1880a278197a4d076bddc83e763af5 commit 8b329d74fb6dbc920c17185a36089b3b7f4f64e1 commit ccb6ba9eba6f267e4ca3689152ddedb6351f673b commit 1c1bfd8b0b7ccf1d82b531875f13e35d7f96e086 commit 1ec6defe71ee8ecab72399a29f258c12f826c8df commit 7bd7cfa83359d7204b5c479f91f03bc153d69832 commit 31951bbe3e9f9399bf903cc68a2c0c7eedbb26b7 commit fddb9fa961a1ba5ddf0e076df3374137906ca48a commit 17419f5c6d409bcce5d094279a6fed5d5dbdba12 commit dd3cac0ac7ec4921dc93af884997a44c4e59b4e8 commit f6c823f9b9d40f6811a6da4bcf6005a52f28c6d6 commit eba791dc17547c78727778426962f855b52b266b commit 813e7d4cd05e16fa578563e4c4e62f3de4ee34fc commit fda812ebe3d95ed9c7c894b9a2d4bfc2926d46ec commit 76bec2a031630124002260c0ddc613b761819e2b commit 473af28d3e63b9b679c7878df33616c7ca6ea947 commit 730ac573868b03ea668d368d5d279c5434ae205c commit 7d3b9668e668506bfee97806756b5945bbc45d78 commit 2bac084468847cfe5bbc7166082b2a208514bb1c commit a474161e84fc0b15534a80f8dfcbaf5e48fd8249 commit c09d2eff81a997c169e0cacacd6b60c5e3aa33f2 commit 745f7170db4ffd2f2e9751a2c719a97c9a5fc438 commit 514dc965b26affc5f6c56d2fe367438932a286ae commit 173ef9182ae7242c3d2a8e3c59d6d51b88c70a0d commit 34b8d94b6ce478528467ece25191c69ba97c8180 commit 33837d62a4cb5ef316dec4fada5c1012ddbc0239 commit a1a049bd59b3a4b91619383a41b64a5b4e5a444d commit 34a6aa4e12dfa7a9cac031193bfc586bc015adf3 commit b7e2170b87938f8a4664018111de3ba8c1ed2db3 commit 301dfbfc84e81f2ee80a84574432df52125d2b4a commit 392829010238319689ee7aab5f9acffc23a53899 commit dfe190aff8814227314744d8ca5e946d0ca72e24 commit 73e1d104ef7f5c9843abf4686513b3706538572a commit b592d01df6efa2a4a93e360358b1f45057c80dda commit a9ebd10482d302831af3790da22954801ebdd525 commit 975507d73c44e9382478d6fd2d49c5e660cca4f4 commit 7069484dbebc293f3696553ba1e38c67dba438f6 commit 57c4982169dfca65ed35081228857312dfa04c4c commit e86e8798d3655d17ff6adf63191613d4b96bd294 commit 1349db1581545a9e7253f74ccd9eabbcdf99b294 commit e902dd7f3e3b93a401e1d3c0322cce933e75e809 commit 4002a6c55e99046b4a09ae255d38d3620b31fb1d commit c5afb313e7e623a06cd3428f0a651b2235211430 commit cc4d6ea0f21e782d8f1c8feeb6bb3133579570dd commit 2770b91588c2786809fdbdba589d9742dfc7af4f commit 4621e10e0158941d44223fd5f7451312473f73da commit e69d43356ffdfb968c0c515bd42a8ad9a7399fcb commit 46eb63ec8a98f9ec88f0a34d5a209968b8fc1ac9 commit 8178cfb0b48b122dd72ba6ffc2251926f62a0002 commit b5b561621d5d6bc0ddd6cc442893f6768d151c27 commit 45bd39fb3bf677b2bde8d7b36d85b3524dde0014 commit 50151b7f1c79a09117837eb95b76c2de76841dab commit 8332f1aaf571bec1c023a3b13ba35c86aaa2524d commit 5e211d2cf2d3b1a65b64dde4f4a9387510390692 commit 3e538e43222c37de60cefa6e662beb8b30297300 commit 2656e1ce783a90fa1aa0e11f2915d7c0442bf06f commit 239612c3762d280338169880aa180c4d43249fa0 commit 978f5428c938f2837ac9442c3e1bfb4910e5b0bc commit 3c7758beb269667373421fe7c7c44adcc7129d02 commit dbe2c4c8ab92211a57ca4d23bf8eaf6f23e31a54 commit 5d74be8c3a941993299c78f7d3d70c27f826af0b commit 2874129903600907bb29b5df15258b95630548f3 commit c8ad1bbbc2751063c7a5825911e58996ef849628 commit 7f7f43f28eb325c4ed8ed3f0534cdb00c9831e0d commit 1ff6631baeb1f5d69be192732d0157a06b43f20a commit 17035a45f1ae40b974920a4d097aeca5e9f92fda commit 15c2990e0f0108b9c3752d7072a97d45d4283aea commit b95fa494d6b74c30eeb4a50481aa1041c631754e commit b3181f433206a1432bc7093d1896fe36026f7fff commit 3494f5f5f675d84385b0f6bfcca1e10c739bf9bb commit 3ad7d18c5dad75ed38098c7cc3bc9594b4701399 commit 6d3581edffea0b3a64b0d3094d3f09222e0024f7 commit c5d86c19086fa752f0ef7ff8bca5df2dfc2fb00f commit ca1a453361cd1cc73752998d1acd8616582c2a64 commit 27e3b4ee6320b466dec3f6f342ca4b372893b36b commit 03f8db65ad8616ed8be67efc4379fdd60903235b commit 8411aa0c5541a1f2f03938c83445e2a1e7ce84a5 commit 37310936c36bd3e4d2a6415f3ca0dc5e1eae899a commit 61e22c77ded6dec109d1bfadaf0c4afd27095970 commit 208f53102a0b66d5735868c717de32ef49a20050 commit b67be58fafb21b6b75f792674ce8f9f5635694d1 commit d242f39dd10164d3d82e1922277c16c1f3704687 commit 3ddb4f80990407c3262bde7867d288967b8da6b8 commit 8e712bd7966c0f9024b1b30ac4bd6b8988a592dc commit 92959898fdd6f398a799faf0bdcb1f7afc35d055 commit 05e49e0c7cb839a7c4d1ae82ceb1fd940c561370 commit d9cf98e79ebfdeea8844c282b627d07c3512650c commit 5bfae679d39966fb12c8e390a80e7ecf05693dfe commit df433a3fac078c79dc4efab81015dec012322668 commit 3ed96977a3c5b0a9b017d626600402be3089d4fc commit cc806b74466672a9bbd4e9a04265d44eb506b686 commit 9c5219349b5bc588071529985eacd779a0dacfb7 commit 0493be3ba118ecb928afd9fe807ef77aa42755ae commit 225d3de749d0c76564a59aaa3e5b772fce6f0cf7 commit 460a336398e084ae061a661338123863239eb45c commit e2ef28ea15b461a394377c41b20f50ca59f98059 commit 5d30de4311d2d4165e78dc021c5cacb7496b3491 commit 8d1330d24788e1e28f6939779391ce835f19fbd2 commit 9ab4a7e181823793cdd8ba7c7aceebaf52e3824e commit 0d11307022978f1f395da587285c06c9cea47288 commit 0d5edcc60abe9a02501f01e032bfa2432c1364de commit 178c0a33c421d9716e734645a5d0da271bf4695f commit c2ef66e9ad882ab4b055a86657c20c61d203f003 commit ce79b73336d51288129f510569f389b93affe56c commit 21b708554648177a0078962c31629bce31ef5d83 commit 6800e63cf97bae62bca56d8e691544540d945f53 commit 6ef078383a50dded4bb9e71250ea6f7b533a6109 commit d6b933912df0daf23d88daa7f96f6a3a65a67894 commit 349f4f1e6aaa313ee9e334b61bbeec83b847125c commit 9a875f958062950d5b7a862c9403a99adc1ff41b commit 6ba1e81433e1a5b63394bfa38af9b5ede6aaae13 commit e5799743ee06f1733420ff87f96e800e6acf4f39 commit 7d8ee788659968790786f69baeff3edce27bbfe7 commit 9b2db3bbc7b5d1033f5e4d108fa87814c1f633e0 commit b3e773f6d5b131ca5a3a0ead2ec2a80fa9d4e05b commit 45f1039335861705bdbf71aff4d890a692662980 commit 9cacbd237f51a9646da04c0cba08d542069b73b0 commit d96fdbf04cece60b8c88d94b08095acafb0a2b27 commit 8925350cd3514fdad88de6d94c79f4aa6b713564 commit 454a498978b113af11585a843b2f7920ac8e4449 commit 5734c976717d4d7027c387d167c19ba52d3498ed commit 8232a3bfba3ea3ee41d49ee0353ae7db30ee798c commit 201008c44fd745e44f1fc6d7bbc235012a8995af commit 62148804b6e2ff49d19f58b34f247d2974061dc8 commit 23501e567a71cd8fa2eba4ef0572c2e938abeb01 commit 6d3a843b0efb4ddfc71b4c67053714e37b98b337 commit 984b61c35866fc0729801b74c3ce03812a121368 commit 840e748285cbd5cdde32f9a4d1a075cdcafdc6a3 commit 849a7f0ea571c5b9e0c9a30832a6247262fa09ac commit eb3750ea338471b6e59b515d498fe2e3a5fbfd51 commit 30d41e3fe153160714b01065320fde64639c3fd0 commit 03de2e10cf948101eee7e9cb73d911341c7d3dee commit 58d18ae5655f7c2d122ccb23f35de83872fbb48b commit f0fea981483220a9152e69bd0adfda8b1b2db907 commit 42879a65203f9a563c82114b916bb7e9a1f79dc2 commit 51946d0c75fd4c047694d8e06b5d5b13f0d3c12b commit 446db74bd372bc0baaace57c01897d9ad71c8abc commit 8edbb0ee171796cc96bb65fd85a8bc8e6d6ca2a3 commit 2501a0b68e8e5989eb782c8ac42eb4bd26713b10 commit 65313768a4e2da9e0abc104afa6d82ee193b01ed commit c8f1392f4849b4e92ea344da29c86834fd54b2cf commit 3b24925e54daf6e2afbbdc7ec9c301da47f0504e commit eefd93d8f632acb376eb06af67dddd515e6eb63a commit b9089184ba9f26dce6482d6afa200500b8c6bbb6 commit 5702d5d4125a03afcb1cf3c5746eb7704fe815ed commit 12967c4f21707269de2bd9cd525acf32d3e0a8ee commit ddbdeb6c591ed52f104d1cfd862bae6e581df004 commit 9ffd21103d064c382110bd0c4bdec0c2a4db9960 commit 3c461986e8ab2bc126a2bb7868b4f9f3b125e965 commit 0b406cc993297a0cd718e041a8456ffb7ee5445b commit 04f657cf6677d7606c2ebcb6d8643cec0ec683c7 commit 2d557d3abafb92b813f8dff613c9fd54161cbbc8 commit b092d6ad277363eb5e8fe89b0b34070f3dc8f66b commit 76f1b2b1a4481e31a6c9d10a933ebac5073e1e19 commit 3cd5a36df1a9dd8c92fb5b15e2c2ec99e1031120 commit b11bf614f9ce4540593c4cf287a50ee2918c3163 commit 0623993cad61186856a83ef25312708c5079098e commit e4a4142bf31673faf153f39c666a01da6f0c42df commit d9abe5f9e575e7df0e245694c13a0aa4e787f009 commit 37e017311c650ba0502aec6ec531ed9bc84d70da commit 09b286950f2911615694f4a1ff491efe9ed5eeba commit 106fb076aa5ce24bfac3037aa655dbeb26cc8ff8 commit 78247e48a118948cbb7126fa3ebe0e2cb4215bfd commit 80c414772d93f2f21af2483497f424c6cc7b1132 commit 3e8daf14c47d79a35a4ad69d12f5a9b6450e9ecd commit f34f014c84122d38c70455911e7343016fc8eb14 commit df3fb27a74a4eeb1436129024a7e957c2e83a95e commit 4aebb79021f3e6c2b6fbb92a7d9c5d1e6ad0324a commit aa61186951cc1fd302e7d2d180061a8d568dff90 commit ba9bbbe1499a8f14858e89cd4a21bf2990cfb0de commit 3d420e9fa84866cb3b98b6baa05d682850ef2952 commit 7ecea18e8cdf9efbe2a1f96573a185b83a5d9e85 commit 4468d0488ecb91639f12659f8a025139120a431b commit 76dbc41608167d531f9c45d60054fd1f76498785 commit bd7246a19ed85451befc3c8fc6038a7d955e7d5f commit ecc24fc3718c573c105766f2589228500a8ae04a commit 22cb31088eff3170cd36847c44e7055db3575b22 commit b321cb83a375bcc18cd0a4b62bdeaf6905cca769 commit 3a3fc10cce3b6cc6ac252f3b6f5d750f0b1d735e commit 7eea2580994b4eb266fd9aa60b1c913be4151925 commit 3438558284c8a219c1a72c2094a05bc12e9fcb8f commit 2c232f9b3875c1471c7b478d87da3daad5b13a3b commit 27039de42b575a92df5464d45ae35bbf3fc93a1b commit 665415092ecabf24eae5dfedeadd49f4c742d5b3 commit eef5a55af31792fc7a2082dbebac68a7df4d7643 commit 24d07f114e4ec7608659a4ef18307f76739c72a8 commit 54034bebb22fd4bef45a0404ed5f2d0c7d7ac126 commit 1f020495458396766496ee067130f507a4d718e4 commit 004370a82ae1f5a0fd5abc1077733f9b1a42e7c0 commit 162e48cb1d84c2c966b649b8ac5c9d4f75f6d44f commit 78c4c0011bb577a29906d8ca135795af2293c49e commit 9a8ac1ec9efddce525c94822028fb6140c523be0 commit 8814444e62b8a8b573fba2cbbb327d5817b74eb0 commit 3541e19d0d3b30ad099c0c26ba87561aedfbd652 commit 35feb8dbbca627d118ccc1f2111841788c142703 commit 7957066ca614b63aa6687e825ccbc215fa4584ea commit 1ddaaa244021aba8496536a6627b4ad2bc0f936a commit fc8fc81cb8302831146f806f96a50d6debf5aaf3 commit 6eb82761887a6e031b6cb85d4491f434b9c7e73c commit 06173340336c8f21ed5151a93a5398a8725c4704 commit de065ceeaa2f78c770d5dc586fbd4fa4f915c606 commit a20c6d954d75b2e188618e36de43d13d413d4e06 commit eba88f28121507b14b328c6e61818c794f313b17 commit 0612514db728a28982759e62da3c76444ae15281 commit 5922f45329cd67e1c37c2c01513a59da82a65b96 commit 1676ecd303acca213852156fed0873c265d88512 commit 12866fdcfb9ebbe1b175804390195b99a234d5e7 commit 2ccc698c68333256621abc1146de0d3fb0cc6ebd commit 2469cb5c41b4774a6fb5ed799ae53ad16b407a9a commit 6ac427c0cd21c7260d6b5133a70084aa35267a72 commit db45a6991d9e33e852419f8bb0bb8d70b8d633ac commit 16661a0dd54168826edb2fe5a7b9a183cff0c69b commit 9a3f7eb7811a4c5f36eee93b83bbd72bf6adeac8 commit c99e387afed197c3f22d73d8649c54f7c8da30ec commit 7c9526e58f74e9d725a9607b1ec24ba675f5b00b commit 2098604605adf35c9a0936355252d676f4cbc38b commit 698acd40aee3ab2dfff4472ec3c16ce42e70e4f3 commit c8f67cd1d931f2e61a3456d0122ffdeb90b699f7 commit e9864996b44e8add09fd612cb7d00d9b54cd9ef1 commit f10b4577da3e8c8e457016c77ce2c2fb8d2d5023 commit 155739579969d9653f9c2e69141129a824cbd6b8 commit 728290006afba80108b3ce9dd33018f05e454cf0 commit 316bb1473c78f415a99a10d3c903ed70e0014ae3 commit d7d473d8464e7b9931c0b19f68ea0df807e01b4c commit 804c4d0a20437bca3f017aaf96416f3cec7951c9 commit b3494ccb04124ab3ae08fcd01f9571d209ce97f2 commit b7c906d68078f235c1d017a5a820fbeac5a53904 commit 78f15847bdb8fe04b1753b1fed4984c183661ef5 commit 21925ee8e68fdb9e7b7d1898f34b5ad0b7c3f5c9 commit 1fceeb85de3b76cfafa3c3649b56c864f04f49cd commit f36b4810f082d1d8c11362cde82b86390616a179 commit 955446ed6e822b86751993bd69022d347b43a99e commit 91930fc0394b3b54c6a8a3333b2b52c923cf6c52 commit 32f0045f905c3cc17e8c6ae81959b3db95bb0091 commit 92d03bdee41adaf5221b201fc7e67e8761888a71 commit 672670b5dc6143601ca9cb457d82c8c98322d0f4 commit 51ee1f29a9aceb8a52037ba4759d44c70e966fe5 commit 2e8938a1c56e60fcd6e52de254808615d0eccea4 commit aeafa46ee30c95dbad77db19b1400fb6fd78245f commit 99fcf463903d5236e6e693230c142284a1e19164 commit ca8a170f73d93cca2be791162fcbf12941c47558 commit 91524b3a09b4eaa87bd9e073c289d502d6a7c8d0 commit 4ca1a12a1b3520681cc274a38333d4294ac8050f commit 79655e867ad6dfde2734c67c7704c0dd5bf1e777 commit c677f31c857632ca678a4a145b74855bacb72d17 commit 24d0d98af1c32ac6452fe04e0b5464a59303b5c9 commit 000d1940c90984a9a2af9c02bc17e3ca0d87f71d commit c12907be57b16eed5a73f75a44ebea8f30629c85 commit 6b4468b0c6ba37a16795da567b58dc80bc7fb439 commit afe12a055d2de6b8c5ef1d4d8d5ca81220f3c31d commit d960c58010293cc9bddd81a6a2effde02d6a8fa7 commit f80437eb25f711a71f3143d3f0ebc597431aebc8 commit ec8727568299255798da50ffa97c9b479da56543 commit 513ea833c20109d475b4ace9e6a18f6c0c25de4c commit 05da7d9f717bcb03c457379fa8a61c1689dab86c commit 66055636a146c435cd226fb5a334176304652f3c commit a13aaf157467e694a3824d81304106b58d4c20d6 commit ec3ac2c8d941dad959dcdc760aa43bc45785d346 commit 89aa02edaa30e4327ebc8fca9b80795bbfd4ce9b commit e46d3f813abd2383881c66d21ba04cee9fbdf3a9 commit 6a04e1fc36ff762312088c2ca819ada3b9f7ab33 commit 3432f26efa45bed7bc61f534ca9d2c0afdaf5632 commit 3cba2f1d3f18939362e082ea8b9bd8abfa735b84 commit 501c4255c40935280a10844cf7550bf1e4f8939b commit e81568a0cbb288770f8d2e4b7d41752a9f367bd1 commit e54700f7d6aa2ae0d0a0aeeebedcecd7ce1123fe commit fb4943574f927b3140d9ce5aaabfb8730639096f commit da8c3cdb016cca4e2c72c12bff4d6eeb0237e686 commit 8b9544e07d802bf5376921500c4d19c3405d3ad6 commit 9f46ecbb3f1d5111c28e8205ad1526663c28aa9d commit 65921374c48f7fd8305d3b3b500857967a563c4f commit 1bf1ca4e326c7d0bdf4aa1946d4ba0ccdae8d09e commit 49cc215aad7f5b953d4fc85c75b044f0abdc10cd commit 41e1fa93a2fb3cf5a50e556cff7bb51231781806 commit 7f4f492c7058fb82d2892078b556bde8a41d0b60 commit 716ce587a81e6165a4133ea32f63f3d69f80e1e7 commit fc592a81ff9f0e5a46d7fb652a74db97fed5ef1b commit b47b83ef1657f8030d8e4485b5948a190c554cc5 commit 7ddb9403dd7497f7cd922243ee4b3c9cee4a30a4 commit 5a5bdc17a2fc8dabfcf630bed84d4fbca0985c3a commit 579d47838b56de97899bd0d5affdc14899b98a0f commit 202fe72cce421fa5d5afb30b57d7246d906b7c15 commit 2bae076f3e35234e42bd7c90acd8caae8368ba90 commit 2755d1f46aa25f65179964bf315d8a16b3540eab commit efde66b9654830170f46667a8f0ddf16fae6dbef commit 520dbf5423e112da1c62748cb4349a4f25c63cc4 commit 96fddae126327a87bf67edfa8a1c94ce21c18dfe commit 9324410846e13595d453b7f34508b1f6b15fb1a7 commit 1bcbe192e0dc758873003a0059bce9cc27d4bad1 commit 6a03100200ddaf38ca6719c80c0ce454e990e1a0 commit dd1eae474e4e93c4076997a749d744fa01396a01 commit 9eb4aab86a87e4bd65530dd90a97f45ba13a368a commit e5bf189a0f2508ec6e72926728aec35f806dca76 commit 4ce7cff538cda112891d9baab703529bfed15d7d commit 3b3be899fc81d5957c5dba8907263b52d92993ed commit 5bd3e7ea8854601866bac507b3cdda5fd3a29c15 commit 182c6be08b81b367b98634c40870fc06cd4eca42 commit c9a5f6019c6ce9245b8fd11a66d405f26e6cfa34 commit b22b4dd96e5250c84d58de94513b4c6cd0825ce7 commit ff68f68c0ec5e4ad6ee3216ee53d12dd48d06b93 commit 34aca703d4fdb1ec289a514d0eed1a53d46f5ffd commit 81c9642b2a03c375e46442147234016578f12181 commit e3e70d08409086ada2c864373d9d8b8ef9a55936 commit 73afc1e2fd1d3b3f086a4ba1714c8d1ecc40d4f9 commit c3c90de3a7dec171c671ffcc99eb5cdfe5e88c23 commit fe089d5b9ace6f31e27c1bfa1245d592443aefb7 commit 0e0af7e052ddd3e5a237977d681ab244459fa828 commit 09f08c6ccc04ff7530e0c4166c3ec4bf3565bcee commit d6bbb6e581743fa9f6a31346b3a6d147e8cd2560 commit 6aaf3fd08d08e1bb9dc72bc2bd189464972d27c4 commit 084a55b264a4918227d4eb52c792350791f2d26c commit 51715cdc98596d92f4c6cde89946991ef0e5021e commit 200f178d7ca0b5dac1080a0e9e9bc02a8b65d17d commit b1e6ae07c72ed93f1017e1821155212f33f465fe commit d6bbc4da2149f9dbf78c9f0fb742dea67cfa8057 commit f8324128fdf8aeb174b4bda689121a3d6c48c860 commit 8c57c4dc2a9172e543025673c0c6c98953af2b13 commit faeebafe1d273ed6271dfb6555cd90ee730343c1 commit 51e1fb144f17c277309ed5a1c6f0d921df0064d7 commit 7997a9e4f89f124c700986baf220b5421fe1158b commit 35859d448a2097d9197aecc61b55f158cba0a17d commit 0c0543ff0a8d8f5312d66d2b863032acdf6d77d0 commit 8de66736bcd87b89fff489a6fa2ad2312fc0de0d commit cf235914f0e75eaa791ecfede2010fb701184bba commit b47e62b1ed1306a5fd7ad5d2419ef865fd322851 commit 574884438c3827a842926bbff4a0a2d96597a388 commit d999aa2785daf830b908e43087d6ede648d69d74 commit 0db66572747a789922e8137904e8b4c39d9b94f6 commit f1934de46f2b259a87565407a5f2163d66e41092 commit 4aa1f202519f6a837376efc87fae4a0ecc97f40b commit 6b83b94a949f61f07e16485466f67e8f904d9f98 commit 7c85e970839ec57107a621f457e9e4f9220ffeb7 commit faa64f633c3762cedd4c539ccb210dc9cc3f8849 commit afe9555e79fcd0d758e3796ad00fd6292d99361b commit 91efe6de7029b206e29bb97143f9156e88f54027 commit a878304276b8326442bdd1a192e33c1b8bc99778 commit 028383b64da2c8c59d0f049c68c816b634d98641 commit ba73d69a2c03d4cc10b09b2d5579f997eb26f61d commit 6172d39be2545ef3d71c4007065832a5219d2885 commit abb3f19cad93a8f85dc1d595be456396843ef73e commit 06a498d9f589be0fadb95274a53308dcf0cf6d89 commit ce66ffd9813c8bd73e21b96d6476e5fb32b727c7 commit 38e6f715b02b572f74677eb2f29d3b4bc6f1ddff commit 57a0d65bd1d0bb22c9a73ddf61e91b3478706522 commit 27b500b77b82bd18c9357111fb639dcbdda31c26 commit 839eb4bbbd9617e60ef2091cb7bad2bae7c519d5 commit cf58fdca000f6c95b881290405f0beb711d5d921 commit 06cd6d8f808164513e453af842720fe258abbbf0 commit 470679ef332e7ebceb05d11e602d101a627e5200 commit 82b7cde3f2658c0e6b3a46be594a76c3b2c9d89b commit df86486d905107e079afd82b45f8cd955d1c7d7b commit 6218bd6b22d777ba02cde098f2f2f61a23262d96 commit 7bed1df814cd61029f56eecd322e23190d50d93b commit bac640ddb51e8066d1f35ed810e7a4c6dd341d39 commit b3948ad1ac582f560e1f3aeaecf384619921c48d commit 5c0a1cdd17ce9eb315102c65084af899622ed268 commit 1802b042a343c1705e5ef45b93d1fd088344d3c2 commit 4b0e76e4c181a722d5a01eba56d5150db7cc9cd8 commit c1f9d82b92917a298dcc9196c4b05e1fdb20c0d8 commit ba531117a87d55f607f865b89eb83665e8e99b83 commit 9c33e5fd4fb63b793d9a92bf35d190630d9bada4 commit 18f2525d31401e5142db95ff3a6ec0f4147be818 commit 37f432481d6ba2077eff1b988b58a18fa87831b7 commit 1bfe5e77468d2a73de7411024912ee2a422c6d4c commit 02593249fa11ef8d2ca780ef91962f81b04eeea0 commit a777c9d70adce61b662f3b4649fda2476a61a261 commit 1e006baf5b9b96635aeb1842ce95871b06c3d457 commit 778e3979c5dc9cbdb5d1b92afed427de6bc483b4 commit ee3942d9ab1f79637b260cefafe6a1ddfdd6ed00 commit 2fe87f54abdc5c29bd2ebc301964926ea27b3d89 commit 3612702852acbded39233b1600c8d9f47e40139f commit bf349b036d57950e9822b1d11ba12b8e28fa42d1 commit d225960c2330e102370815367b877baaf8bb8b5d commit 8cae4b578ea0c21c2dcba988a0fdd751955e4836 commit 3618fa26c81156a87fdcb6d1c88988a1f12bedc3 commit 3a86fdc422c926eab7d42a8194eaacf05e1d699e commit 199d69d5f9fbfbeafbf231fd9f49d00b8e7be2c0 commit be6a69b21a3517122ba6cf7ab8f62f4803637dbe commit 9817f06173cfa74b78e9e701a064864d62e88cd2 commit b441e9ac9df4a1569c48548729a13c2e17b1154b commit 8d7ff60f36b0a9c1767141f0315d6df190a8312f commit cd093c24ee433161eaa00bdc64907393536038a4 commit 3e92af6bf5f3a821608ae698a606b63d214bc6a6 commit c37b8f7868a9f435c62907c37463867066edca11 commit 59257fd1e08eea6a539ab3799b413eb8066feb25 commit 030631e97b209481edbac38000d2a60fd340f6b1 commit b5236da757adc75d7e52c69bdc233d29249a0d0c commit 3601a35a2e9d640233f4bc3496f7603b93f9c143 commit 68b02a58f698fb20a8b6a6f3970851fb4bb76392 commit a3324a672b9fd41f29f27082f5ce3dcdc198d3b7 commit a63e1c0459b4034a6be23ba4a795bc9b725c1a71 commit 0a4b06074cc4d61b624225bcee8b487743751d23 commit b59cb5a67198c20e203f33ae8ca5e35de89e6ccd commit 0caba87a406e47d1b2d642587fa75981687cd29e commit dea54d186caf004da44c9b61d6ad0cb51c818cfa commit 223ac8b6f57a60f3262453a4bd3d3366842ced0f commit 3c6ad7320b32fc5de1cd9a5b092dc1d5a3cd0348 commit 5d1608a81e01740e8b51ceb5079a5fb3ffbffe3a commit f7e56091a46e794e0509a8de369117da1fd66e74 commit e15fc7001425599bab6c802650208a15c72fbc34 commit 42697ae79e5547cf02c3861504dc51608385abac commit d9d42ebd186a3e1468ac99b327ff236acf7ba3c4 commit 827416d45476fe5957c714409452d20dd80f282d commit 9a29c4adb0997be6ba3dd92dfba14ea75a8c6ce4 commit 396477d9508e3c3cb95c9b6eb76346769efd961a commit 82c421ba46ecd11b67e15a86ad382ab8a6ed1d5d commit 6210e866eb1be94b8b2e94e3d07e2ed5da43ae86 commit 1a90ec2e2663f0ee2e8ed895f0445e2a031fdc82 commit 020ceface29f7280dcccc866b106ba4e9ecd6c8c commit ec14eab37dbb07b92e2079c9b7ef4730d9418f89 commit 26c56049cc4f1705b498df013949427692a4b0d5 commit 9d26e0cfc218c8c3942feaa42d04d15ee20bf83e commit e8eff33f287274e731c5a655d8b111006aed3e98 commit 1b51220dc28cd34f80467acaff60294348cf6675 commit 0eea12b9bdd5f917c3fb00c5ef710398f7c7bfac commit 3df528be2af34946b1ccce84c1fd38a5c7e42e61 commit ed79ab5a07c1cb4bb05422ac6e794e40c4c1484c commit 8362061eed6761a36866876ba2dd00ec638a13b4 commit f2034ebb27c5222511b2225b10348ccf6f541a7f commit d3d996ec8905a0098f160d7a4dcca2b54d48d697 commit e32e15dbf06d65d70c763a44cc8e32ab409b1d5f commit 9a573481887e330b808e88005ffa142092c9fdbb commit ad28d7c3d989fc5689581664653879d664da76f0 commit fcf6a49d79923a234844b8efe830a61f3f0584e4 commit fa57924c76d995e87ca3533ec60d1d5e55769a27 commit fd279d8f45c96886786d7fb5452489efad97093b commit 1b04dcca4fb10dd3834893a60de74edd99f2bfaf commit 38e0c3df6dbd36e69d38f67853cdd1bb6110d05f commit 466423c6dd8af23ebb3a69d43434d01aed0db356 commit 3ddd9c83ff7ac0ead38188425b14d03dc2f2c133 commit c006d1a15a9cf9df6a68a2f6b870fc55eacd9054 commit abf34ca465f5cd182b07701d3f3d369c0fc04723 commit 7c70e60fbf4bff1123f0e8d5cb1ae71df6164d7f commit 9d8152cd1be1c1049dc7d70e2f0a01989d1d9a17 commit dd9d8c61ccff0e3409b0bff702444f3d31684e9e commit d281b7742662e199fbba57fbd86c6c2bdd73104a commit 97dc6a480c8189d1f130fcd026391cef5f7d8b34 commit 82c94233e5c8f7609e244267797e1e2183c2c4c0 commit a2919b25778b7479e477cf49af8c680017eafc24 commit 4316107bd083feeaa3b7af71d32be9dc4b2e0fc9 commit e27ffc2fe8f41ef37c256a145292bc52ed304d9d commit 989947e90563eee58f37fbbad8a5bb94a3d8af8c commit fe6f61d4729780269b2a454fdd5b5e038f0db0e4 commit 2037646406ad0be7a89687a0333b7b40f50f9b33 commit 1608e201df49127376d9fff1284b8b3c5e018440 commit 7e8af88cbd169e18edbdcfbf07ba62ea607664a5 commit a144eb40ef88ff05a3e718887112955ac4889b61 commit ee4deffda66a0f62791c5456d83a95855b2b140e commit cc2b7387c132ebd51c7c5252cfcb494ac75ebf18 commit d6b54900c564e35989cf6813e4071504fa0a90e0 commit ea9b3dbc71d91e135181274487d6fcba1ba4d9e7 commit 02c316e696104c50534b8844a1dd9eb281f307bf commit be5de1c4ee9ac0dbe3e096e86502521874b40932 commit 5afbbcfe3b6cd00fa52e0375e1e276748929bc50 commit 5f7697bbc1a41d4799797204137be85121063f65 commit 7e4371676e5e58739ffc884b1b5d6bbf1cce3d17 commit 09a3d8202df1e9fa1eb5f5f63524c8948275ff4c commit b8a01690438c949855fe0277f39794bba187b186 commit 4280f60e8e7caa5160135223e486545893bc9013 commit 9d308e32a98f79a3d914d2baa6de628640600781 commit 3a3be8bb97e14339af7a11b3ee822e268960ead6 commit 52971387a05aa012eb73db78f39ae6c6dd47e080 commit 6184bd5750a80d3d8f2ce2227465d889d9c0708b commit 8867ae8cfab44189bbbbbaaff0465ec6e0f616aa commit 6b6d38c5086f9c401f4444485a72a931356314e5 commit 9061707976c68899cf2f3b9117c5bbcee8e6872c commit 2094401053dfbf7e8f74430c6c6ce666bce1d805 commit 3a69c1702fdff79f631525ac6dc4487de050865a commit 3838c6736524c903a95cd1d46fcbbcb6cae8e42f commit 2d62bb450ed1846ffdaff7072347e40fb4908cb2 commit 37256027b45fe48d1cd23954db90d1c53401e29a commit a157dcc521dcb8eb0acb50d66d1b0fc5efcea789 commit 0057b36ac2be0f573048acda52e641e0502a9ff3 commit 143818fae047fdda55d06651e4d7ab9dc7afe669 commit 8092aa3ab8f7b737a34b71f91492c676a843043a commit 8b0ddf19cca2a352b2a7e01d99d3ba949a99c84c commit c4d31653c03b90e51515b1380115d1aedad925dd commit de8390b101b2b37cdbab5bc91a47f69c2b1df6b0 commit 97fedf015cd908bf4d200b7e510bb6dd93150206 commit 0d2ca8fd2878582e01e933c8d6110860b921c1e6 commit 45ebbbbeaa33da4a6dbc532ebc57d20de4b60a82 commit ae45f07cade1a5853ff6fd745bbd86a64cc82643 commit 5d7612ae201ec199b46bbf81a36cb4667e29d973 commit b5dd424181f33c2978562c64b286fc22cf5ef4bf commit 8b5a92ca24eb96bb71e2a55e352687487d87687f commit 105dadedc4ef42bbcf6b819d962908e482b7d5bb commit 322dc10b2af8b066cfd4b6ea53f5522028eb6b30 commit 9d4f1aeb25be7f92825f614b57fa91518c47d39f commit e6534546a4b98542ec26375548dbca87f2e1e312 commit 846bd6086d3536d2f9b5a4b289a75d7e7c7753dd commit 024a05a47e4475dbcab489777861e2161e1b28c8 commit a4ad402078ad18ae6a7cc9be91b3492832a481a1 commit fc8bf961059c3795bf8f4bdb5948bff8417df1f6 commit d0a6e5015f0e1c8c40adee1119213f7d72bdb65d commit 1cd377f33d4c042786f2d170a7097021787816f1 commit b2956099379edd869e9efa31876aeb65996c62d6 commit 355d210aad943ed12e70c79576406c0c303af815 commit d2e02153f565b1bd8a4ee3a8ae0039dc108f54af commit 118b4eed8bbfccd625786db940fb590caab395ff commit e2dc7cb72b25f90759382a065787c8ed81beb21b commit 731e46c032281601756f08cfa7d8505fe41166a9 commit 0e6745de6dfc1395ce1bbde1e3f9b0a12fba5a1b commit 41474d25bec56900e3a018907784b0abfe5a6a9e commit f0ccd2d805e55e12b430d5d6b9acd9f891af455e commit 1ac6ac9ec069ed0cfdb1c207ae23f6c40ac57437 commit 6045473650c40848122f5042b112606ce5d14406 commit 512660cd1f1ab60d4ab8a0ae25b507d10be40fb3 commit dc72c52a42e0255441bed7444ab16f2b6c98b681 commit c8c00286f5c4bb3cafa4a6562711dff26fca6c8e commit 62712be3a4e03c8375f490bcab131441ab3a7af0 commit 52c2e956dcebecc8901911217a9647203ebcaf3c commit fe8929bdf83512ed7e413a28e543c725bf536354 commit 67977882a2f1339f0a7d32576ad61967828b2ca5 commit a9f905ae7b6f29a337dda2ad773c08b92dafe9a5 commit cdf02fe1a94a768cbcd20f5c4e1a1d805f4a06c0 commit b6fd51c6211910b1db072a3fa2a17ba85cb3dd51 commit 1db9a9dc90aece0803a26a711b52a9492faefab7 commit e936f885f1e96f59d9d05fb6cb5a02b9b9b88a05 commit efb315d0a013cdc8b1e49f5c07b1a2972bc624d4 commit 2f4a730fcd2d6ae7378a67fe78797b0a3f7ca1b3 commit 14e077f8006df9d2d7adf380f0c80e16d6a0a548 commit dd6b4718c3bab611588922ae8a7736c58eafcc93 commit 392bf22238ff88506f410c464ba0c7a84e9de471 commit 828a8eaf37c3fac6ba048995f55f1647a4ac542d commit 70af432b9acfb382dcd4f5f936528db2de992a8e commit 3a1fc394ba85e851084d9fa1bdd4ecd625ef913b commit cffd77865f476994680892601e09bc2164179907 commit 97db7348640ececd60a0bfd85b6c0a3a0f81459a commit 1eb28818c2418e341af2e8b5385243e03e841ae8 commit 22f3a60558da4509c0c3fa49b82a5d7e6f677cf5 commit b445130c35e5bfe7917e44140e259b2babeec87f commit aeb7a0fe21dca9f8322906e6c5bd45c8b3d9b768 commit 3ec391a007f405b4fe48ecf2bf55d3ff0fc7d1b2 commit c52a3187a1bf0a13c3a0119d057781166f12a8ee commit dc9cfe9f1d22b359d6f316005c887c1a6e31701d commit dcaacff03a9fa2838f936e1009b4b7ad56807152 commit d754ed2821fd9675d203cb73c4afcd593e28b7d0 commit fbda4b254042250d390dc74b058ad1a9a29dacbd commit 8e7455dd0dedf88332f249f8b1e50bc554e4c1e3 commit b9578c49456340ca4d3c7ddbaca054ffc2b51bc1 commit 0fd146067d1b1aa9e531c8e69357f1be46f1a17a commit 319d4615518c696bdc33c75f894744ce1be89dd5 commit 5af757124792817f8eb1bd0c80ad60fab519586b commit c76f56f252455c8c7851a596a2f89be18efe43ed commit 470f3760cfe6dd2ce66cf9159e65876f7eb28792 commit 7cf24de30e8ab875abc92a81ff227ab9e5f4282e commit b62ec97d55e34942936653dafa1542ae9cfe14e3 commit 26ec3cca7b1c498307d966c007bc85e0c6b8c6fa commit 85fa2287458f17ee124e77f1ec49dcf769869a25 commit 1a664dc0cfdf0942945aa902d0c38f37fcefbb8e commit f94a97117fc6e1a3a5c718ae41559cc65580df0a commit 9e6da7b70be822570612da9a65cf5b23f71bcc06 commit 14f293e044b1ab392e6c9989bb1bc93ce1aa9ca7 commit 8a1708328c60ebc0f402edb69fb8a5509b3511b3 commit 391c6fb490b069b4f7c4620675c98f2d6073e050 commit a7b38c7852093385d0605aa3c8a2efd6edd1edfd commit db39d575eee8bfcfed59a370d936e1a1d6398423 commit 27dcb8fb92f59756ed93735baad1d3421efdb6c2 commit dcf5e17c05edfa66ace6f6a521c2fcb303c82733 commit 4d14a7405424cfd0d0b72df30d0e4698805746de commit 4b5b855c240a48c6b5a494d5ec62af9bc8f661fd commit b32563859d6f61265222ec0f27d394964a8f7669 commit a6328c9c3df355daec1935f672e8ec9d9d391b43 commit de3246254156e7f32e5591ad0b3b740ffde8258e commit 23fc94795b619bd55d7f6029b395ef951741433f commit 3af2c80ae2f5152ac7a3d27f7c35c038ace9e644 commit fffe347e14789c37d91aca47e9a25dca831b7e5a commit 19797687e64b961f7c5aac9cf60951561aec038e commit 8c9ee180196fb2a04e28891578ae608f772eab9c commit a4fcb5f7337597c10cab7cefde41e379fcbc6919 commit 0ca9f757a0e27a076395ec1b2002661bcf5c25e8 commit 017d0b67bf7b9788784eef9336925c98effcbf0e commit 1ecef5589320fd56af599b624d59c355d162ac7b commit 6399c94f4b90890de9fcaf56bad113d21cba7e8d commit 9994be5584292aa37aff667d9e6821691d9840ed commit ad738e488981603a74d35ef3106e38b891bdfb7e commit fa63577ff38bf0d828d772b807ac082a55401495 commit ba30cd246f10cdac784df096b95e00b33116d161 commit a669b81328cb09474bc7bee56ccca499457900ba commit 851de367dede776180e6c4c709089bc8becbb53a commit 3bece98b9eb6941b4708237a4557a5082df25589 commit e22103b9b6026cc0a7846dc6369f0399b863039f commit f85376c890ef470b64a7fea22eea5af18822f05c commit c1391205754f0ddab5f990cd0642d0fa8fc4c6b7 commit 7a893345a406b46b6a0f9575ce58e513cf79b997 commit b493b26b069e22f67cf0ec40f1d00859ab168c96 commit 91103ca3750c346fe3a4f7b42aab9299d31d0460 commit 367cf0d8a6760e244f30d36cd3b2120f890837a7 commit 294ffd2bfaa3bb0434d2b86321c5de54bd79732a commit 42c8065d83fa3e9267bf99d6de70512c5c071a3b commit a6c8dfbfcd0137b2676f0e3c48752c3d618d9805 commit 4a74de91056d640aa6b4025fc01330313ce22fdc commit 7562c88be8acf3898cd5d35cb5e83611139636f1 commit 5bdd780180e3f261ca576e9d25e8cc356e97f4f4 commit 67577e2eada5b6501e30d80adea9d045081ba7a1 commit c62b4fc4b9b86ab35e5c4236f2053ce21ee81ebc commit cb925d31f091467dee09dd49eab8bcd2c9b3e73e commit 3516b2913ead50c5649cafcd1fe97b9c9dc41e59 commit 93d2d3e4c5d075ed691bf940f7eaf938cf8c6632 commit d35386b3a77bb26d771c7d7c59dab8a920ab62ee commit cc2ee76a9003e1b5a7cd4f67ecf9b4b91d83299b commit b2c42f9d5ef0159635ba23f4dc2798c1fbcb7cb5 commit b1d90a862c890152bbaf847b7a78fc59af54159b commit 65336c3fa2cf7f272067be9193303d1ab7c42190 commit 9632dfb0def48b0b6fa343fef166e0cf2ac10a95 commit f20535ce1dd96003e76c958ffaa9c345483d2dfd commit f2800572cc0b01f329fac69646234c64b1ca9576 commit 5aa326f52872b25906d7dca8e0c4f7e6c597f40f commit ecab82af27873336e2a1655dd09e2a3fc41d1c10 commit ef3fcfe0639824bc908c7bd18125a97f5f83357c commit 7875fe7c2495884dd08d4a23fdc44147225542da commit 2b79878b0784ba7253ad9b8dee66495b288272c9 commit 0d39640ace670bccb7f03b2a9e5463ec0885a9ca commit 33991ae8f40a8245f68e8e442766bf9072eaaa2a commit f680df51ca5f4ab364c9bbfcdbd2737e32092454 commit 6dac16124c07a9a4313ccb5f10b1c3cc42ddfda7 commit 91c93e475ca4b4bd5f1e8d525c9a9810283db056 commit ab3d8479626d281f43db0d41b8e36f6a9bd9980a commit 4552a6a42a3a87f3a9a6efcda02c6ee9a0b27537 commit 41fd54ef74b02233a419b4929d26662e5f105f46 commit 4b12f91a06ee4a18bb30ffa462ff12aeea8b9927 commit 582e372f068c813c852a48000f27c175fb11bb61 commit 47e851ec4c02e8cbee95614c3acc746ae7551dcc commit 699f411dceb4766aabcac05cb4fbeb530e6c257b commit 213cc30331e9e8c92458c57a9565efc47933f34b commit 588c4c8d58c413b52c68193bdb741cfbf1040a77 commit d0745846a37a3a37400aa721df6e4279e75dc582 commit dc50165601f5c24b3121defca60d267a980e8dbb commit f7ed0a7e42c10cc0b6415203dcc3be7edbbbbdd1 commit 8bd1ff5ddc7bccabf5be7cf540b9af8d5f968866 commit 32d618e946388809b0fe62ad13f5d67d95dac1c5 commit 8eda41dfc9b2f04c03858cf33c79eb1e6e9249b1 commit 5fe3943385c987f73f99cdfa99785424a9d32a41 commit d6a82a1580c3b3f6a0a34f5189e9a5abba4d62a7 commit 99eec733e8236df37017a700ea9d040a91db62eb commit be487a29896937d14caa3b00a14ab5c6ae29573c commit 07430fa5248964d5338382b4b2e9ebea3904238e commit a63ee07883dea5265ff00e606034e6c72b247cbc commit 94ff11d3bd32506710ca43569d38420e7fc790c1 commit a3dfb1d120aa214a76a9b26de3490d0b9eab572a commit a40d031d7b64df42dfd3a4c96ef19e62ce32b332 commit 294bbd1f2697ff28af7f036b2cb19fee78eb100b commit 1d36db2b5173258e51015200c8ae86325268edec commit 1c5f18d88eae348cf45f90aaee7b361f593b0701 commit 195b7a0d2ebe5672a58210992f3629d19d5a95ae commit c7bfd98f00f954e40356cbd80db2dc1992230e94 commit dde7b1d04433def5cf19123178db2e1e911d4059 commit e1488b7ccf3b71407c6479ccd4255c356a941697 commit ee3c3e332d2f2c08a745a7652064dd05a9afeec5 commit 7652126ce7070ddcd1b3f8791efcf7537a9ec01e commit f8fa26f4e09230137a304a5275d2633a6de11c7d commit 12f84e8793af19357e2270b24b9e8d453bb3a1f2 commit bb8624de096340daec29137f56ea711fbcdea450 commit a441c0aca4552a1b959b26526854a97544d10ecb commit 897d29ce229569bb497861c9673e6f828521384d commit dfeb3a249f11787b269eb15d0de6c91dc4e3292f commit 67cf05473704e926d2b5302a68433a6aefde6fc5 commit 5d9993f88378a68458af101bfda82754d80fb33f commit 397b51ef1ab28b1c807c042f455b47c720984473 commit 0bc96a4ba99a9ef35a9cac55cc1772016ff890a2 commit 5d81c2986926d61dec0eb7dc5e96c4b40bf3d95e commit a18114ebaaa89284d9da7d0f80bafcf8848ef520 commit 0cd2bdbf19ac4d77be47564a678618fa70681474 commit 623ad75a014864d3551ca2aa83ce19458ef1299e commit 85582ad0bc44960def44c78674c0c9b8dc007817 commit 26149e6fe1e89dc1a74bf6475f7a6e22dc6f85ab commit 06ec7893a4b48a1fad9e94cb670862ddd65b6eab commit 90328eaaff34f5617b3ec9603681b08d4a8e72df commit aaf9dc86bd806458f848c39057d59e5aa652a399 commit 7bd09a2db0f617377027a2bb0b9179e6959edff3 commit 68145ceb9b6dc5c11ecb470ccdab8e146ebf294b commit 3ebc76c424bc0f0768f5c346667e8f51217917ba commit c5207ed4638314aca89afb45629902288efe5f4e commit baf272bac637d3275bb83c17ac849b44a4590655 commit 8664e7637388c013f4e953371d023ec7c2d84c8d commit 3b1592fb783549e968aa20035ab37be5fb124f02 commit 9d2ab8623e85843956c3d5fdbdcbbb7ec198610f commit 701d9c4a199bba144d53cd47c80d42a788498962 commit 7e5161da9d267957b726a29f3efe6cb50fdfed04 commit 20baedb8033d0ba6ae382fc9974b481fdb32e7ef commit be3bf9dd1c6d1c0b18396e4918a40a8f7ce6c591 commit b084dfaef2107bdc0cfc77d4940fb59b660dd901 commit 92e9db6e1fa30c87f9c25fae9c9e275885cdd0b2 commit 8511d9da2058ffca7c745c48e93c51840e2ed65e commit 80bab5c5038f32c92f5d26ff9df7255247c8dd89 commit 8d789ff4a41a557de565b1778a7c620cbb22ae0e commit 1bab7ecf5c10a0a529c06480692a544391053c20 commit 406d058dc323ae152d380ac90153eb56a75850c1 commit 365aa9f573995b46ca14a24165d85e31160e47b9 commit a78313bb206e0c456a989f380c4cbd8af8af7c76 commit 04aaa4dc97002ebe0c6ba566c55a4c4376ab618e commit 84708c2d180c32e216bf753f6627f00c03297bea commit a723d434009e8b8ac0bcbb322188061a94de1000 commit 3f13e53bcf30583ab804d94973157d515330dd6e commit 9c433c87e81c2dfc005b72b9fe822b065ffa044e commit 86b0e0c1ad47a01ad75ef0519d02d1f774fead55 commit e044e707fc97dac693691178cdf41fe1a8da928f commit 54be78446d0ac117c1781b0f67e77f3a78f08529 commit 6d4618ad04e1a14202410648f638b62d3f666d45 commit 2d192f4a3acc1c6fe47456e13327701e62074c95 commit f37952339cc234ede318722f85729471f8a87c85 commit e7514df007e3b034b65367a32ba19dc61aaa3980 commit dcbaaa239dd3bf3d9edc01cdb4661a16d9a73520 commit 73f613908eb1c8a1361bac9d6e15d054ab959457 commit 3efe2ace7f5b1199c1d6f250aa9bb50e19c38f50 commit b8a4cdbb01312ac72e189072a1058f7948c07f9e commit 90986e356c7a81d32550475f7de5bdc4cd878c2f commit 917c8d192ba6ada16b4cf11c786f3dbfe70de0d9 commit 0fa5e37f874850e4cd09ba45e79ec698f4630da5 commit e857142bbb6491693051f112c833072b9beb5627 commit 61bfcd190820d1dce846e58a4c9ddca8db4751ed commit ce6b63336f79ec5f3996de65f452330e395f99ae commit a9422ec92a6388c8a19fad759f7ed0d533734cc6 commit f4efd274d93b5000efc58bbfa14f8f863a57642d commit e71cf19e3119de446cc37ddabb2e161ebbf7357c commit 275fee9dccf76a31124232a8167d9289432e2e9e commit 83edf00d8972eecd849865a34bd4fada09444ec4 commit ed3165d660d8c4e4ba540bfaa461594e01b3815b commit dab70d9f653665aec5cdffd2d512aa98b1b38bdb commit e779af8e8b51b4b3d403fa002e579b56b1931296 commit c71c9aafd5faa579e6ffe32018071c7af97d5a2e commit 1a0c9c218250fe53f530fcdfa1ac16c59f2762e4 commit 35665ca2cdef314bf0bde0c568a0ad38db3020ce commit 39de69c4f935aa66fd4675c1d000643e46083842 commit 541fe90ee699658134c26539fdc0ea31c8f47fa9 commit 78beaba9796365dfe264a93e0f33e0793c551367 commit 6bab222b8b767aa773a8aeac7a3a43b958fcd694 commit 748bd8ebae91fc0aee76d13026427d0de02e9e1e commit 6e3eb2766731c6bd2bfae5a0fbb538ec85e7e822 commit 8aa5aff2bf2d5cf793946f1415dfbeea9f936ad5 commit 4fa0046f11d998c39689ece909b912527081e558 commit 9da0f7736763aa0fbf63bb15060c6827135f3f67 commit c6dfe8f20b00d0ac6addc0024d4c70693e78e7cd commit ee8287e068a3995b0f8001dd6931e221dfb7c530 commit d03415f60b3401914fabd27a20017f8056fd5e40 commit cd80e7ee47d2fd5c97563c003ff31ce8240ca2d8 commit 3a82f62b0d9d7687eac47603bb6cd14a50fa718b commit 51dbe0239b1fc7c435867ce28e5eb4394b6641e1 commit 3bc73bc096e64752961060cdf9d460e0a6bb0e6b commit e094992bd1caa1fbd42221c7c305fc3b54172b5c commit a171cce57792b0a6206d532050179a381ad74f8f commit 2c2ee1d1329881d8e6bb23c3b9f3b41df8a8055c commit 5d93060d430b359e16e7c555c8f151ead1ac614b commit e5a290fa5df4efdc026ff36fe86d53c58d944fe6 commit 2ffa97c50a8b0598975e47c890032e71958425a0 commit a4758aa3d1d9ff1c7a05da58387d217c2cd0c38b commit f86b47bee6343c9f74630d7fc2fb8f5e41db0440 commit a42e74391783603b28f266fc7bbfc1011eb0a151 commit 871512e36f9c1c2cb4e62eb860ca0438800e4d63 commit 020fccbe8fe7552e57804bba0c7578d227f561c2 commit 0dd1190faff7f7b389291266e118deb381b6c8d9 commit e1f4805bcc6b39e1c249777c237e419705266234 commit e1e75cf7334c0e31f4c37d715b964784d45685fa commit 7210195f1bc51ba02cffa45b27ddb5c962faa606 commit 4228900a64592f9c5d4f3b3d48d158948b08ec98 commit adcd67e0bbea5fb504d6de50e5ccf74ebf96bc29 commit 0b8de7a04f7c14abd28bd8b9f3e1e5737a3702e2 commit 4b22869f76563ce1e10858d2ae3305affa8d4a6a commit 569d7db70e5dcf13fbf072f10e9096577ac1e565 commit 58acedd7849a238d2d06430b030b365cf069cca8 commit 9862ef7bae47b9292a38a0a1b30bff7f56d7815b commit c53bb80f49a7cea933ccb4b7a458e6983820e9a5 commit 673f816b9e1e92d1f70e1bf5f21b531e0ff9ad6c commit 4de670dcdef04feee864a110dd6c1737f29f6dd0 commit bc180e26837ec238d05d7c7ac05d73ee35dc1076 commit 2d072b445622b90f8a961c0376887120da75221f commit 78f608d7aff05c245bf0aab00ce7273a7d9f04b9 commit 94534f41fdf1ff1eb6c98e2e3e24d90fc5a99d04 commit 9ff2e14cf013fa887e269bdc5ea3cffacada8635 commit bdbdc7cecd00305dc844a361f9883d3a21022027 commit 79ea35c7d84b73733ee5281a089168e71d0168d7 commit fe86c4d1a24e0a09688110d217576347b162df99 commit 429508c84d95811dd1300181dfe84743caff9a38 commit b72585f1c2228630e5fc5bf1b8a1f68cdcd8a446 commit 68936346b67d8a4605d8b66f0d345d6bb1f95f4d commit e97db6d9f068098b35ff1f37db89826c77ea037e commit bf826ba9b4b17fb2bff507b8391a8e4babd227fa commit afbf7955ff01e952dbdd465fa25a2ba92d00291c commit 29b6985de50b6bf4de77aa680b875a4362d7b30d commit 78146c1dcd220ae98fd5f4114f992299fc5ee161 commit cbda2758d8bfae323b846210a3e52f0ad5fe7164 commit 5f08275cfd88609c86ee86d92efdb196d27c732d commit e278849cb2b663bca7dd67ba5d531ecb5b4557df commit f852c9795c80361c4193ff02367c3390ebace7d9 commit ad89e904e3aaa93628785546034ec77f3100cf79 commit b17eecc08fba0c1d256f9a78fe13e5e568fe7081 commit c96140000915b610d86f941450e15ca552de154a commit ecbf60782662f0a388493685b85a645a0ba1613c commit 291af3f59849c54aba2d96256680a5d4688f97f3 commit d4b8386c86800bd9616dcfc82724243609c01c55 commit 772e4d56dab5448eb120f74811eaa71d7a474c1f commit 8fcbfd53ead3d5faf8c79b7179aa1caecd44384c commit d232584ae369f13fea6b904cd7486357d5367ea5 commit 8930b90be637972ccbc683887353e71c52a918d9 commit 0253d718a070ba109046299847fe8f3cf7568c3c commit 05bafe95e580587ff5febf8ce242fa2f401a1f17 commit 062666ffbc80e15154315550d2aa171c23e76c61 commit 7c2d3112b212c9eb64dad7b28a8b1a4a7ad03062 commit 75be61aa77feb09f829104fa74b359bee74f0363 commit 71fe4494847f03dda3932417769418c02431615c commit 15eb8573ad72a97b8f70e3c88b9bef6ddc861f77 commit 3b85152cb167bd24fe84ceb91b719b5904ca354f commit 91fdc5e76513e280595279ef78d3170fbfb9d369 commit 6c2b2cd33705b43cb19699500bbf7bd77bc8b60b commit 38cae7b626ec7b89cd14f15efb36f64682c76371 commit 35583e129995164aebb169103fe64614482ccf8e commit 2b976ad760dc3a62e4ff4c4e5afa02ec16e4013a commit e1c550898f75eec9c6dcfc16a584d5bc58eebf77 commit 32a120f52a4c0121bca8f2328d4680d283693d60 commit 0f54a19262154cb3965ba910c8b081417d97c6c8 commit 25b1f6cbd8c55216e02bd1c116a5f62f10f4d535 commit 4279635e562953c08aa27d9737311a958ce9e753 commit 4f82ac6102788112e599a6074d2c1f2afce923df commit b8c7dd15ceb87e5f37ec1ed7b56c279d98f3eb53 commit e315384899082843193116060e147703d85546e6 commit eb523ec38269889cef15494635a2bc4b608602a3 commit d2d5409786fda857e44478e5fa27c9441a128219 commit 234670cea9a2995554dad6e084e5e18b0bcd151d commit 411220808ceeaf91b11a9fa9bc992d59568a7ee0 commit 7dc10eff223b0e9fed5d48159820556a576be592 commit 2d46ecc958c9cb7b0f116aa52cf9296b6c71d784 commit b73581329adb9e8105277a463a4d1801868b22e7 commit 21ba615af622a6bded6931499bb28a31749c840b commit eb6dfbb7a9c67c7d9bcdb9f9b9131270e2144e3d commit ac01f6ad710c41c8c2cfab24be8bb71586bf8c44 commit 032831f223bce58e2fea9542cade0ae9789dc378 commit 73b8a388eb0c1328dab1161e42eed3d7b507764b commit 02b438afc63b79490abb3ce82acfd6b49b88b34e commit 95134e5852978a92d2290a3b1ee93189e75507ac commit bbd0d1c942cbac87404ed2bca0aa4f7907b8f47f commit 3269d6fb7580e91313f40dffcff70c01cd3f0717 commit cbe9d7c1d25ef6da67c9bf19eb02760632857f13 commit 116a678f3a9abc24f5c9d2525b7393d18d9eb58e commit ea79068d4073bf303f8203f2625af7d9185a1bc6 commit aa08d1143890ead78d28a5286fd53b45907743fc commit 9023ec5d55f3991aaa76f3c87a6fc4552e776172 commit d12b17e43aacc6a4a462f0918637b4097b72cf56 commit fe4b8c98dd1fcfab6e6c18bbc0f0f31a64bba7a5 commit ea04ef19ebdcd22e8a21054a19c2c8fefae011ce commit d6d884b68ad65c832be5ba22ac61dc7173059d9a commit b6d508533fa1371d870628a88b74c831c5881cde commit d19deabe5a4566851f6ecade5ebd2e63c3248cf2 commit 9ff3ba3e769361ebc22e59c76b18bc67427b541f commit a638b837d0e6052678a686d42018271042e38408 commit 882643a95fe60c23a70917f97ac0781e92c583dc commit 9ef37ff38d01a616a670019330190ce1817df887 commit 230806dddc2601e58073740b74bf85a03d12ba53 commit 11317d2963fa79767cd7c6231a00a9d77f2e0f54 commit b16ec6300fc5c74f12622fca7de0255f7016b675 commit e5f6bfe4025f881c17ae1829d76b19efcb353c81 commit 30fb9cad6fbbd9d23d2d0ff7be8c59ce39b882bc commit 8d9ffd15ff5c9da7bc6171f2536aaaff40bcab6e commit f21373802da4e8c4fcf8acab60d98af307294b87 commit fd536d2e12d6fd8e6b199c343aa6475fa969ed99 commit c2fad7317441be573175c4d98b28347ddec7fe77 commit 8dd1426e2c80e32ac1995007330c8f95ffa28ebb commit ed17b63e7e25f03b40db66a8d5802b89aac40441 commit ce7985fd94a0eff154e13913e4ca553aa09e1097 commit cc6e00a6c4f6504b61a11154f15140cf85b5980d commit 0d3157d04d9cafd54f32b68366f0fa227076aa0d commit d3dbccacfd2d47a73e2bb6f9be45a116de94cef3 commit 62ec7d38b769ccf33b1080e69c2ae5b7344d116d commit f340f2bad1c790d2759680b7df853f548e7beadc commit b0b2b50cdbd132cb78ed25c27081849a405b75e3 commit aaa08078e7251131f045ba248a68671db7f7bdf7 commit fcb2f988ef4905ac787fef040a28d0f0f610ad83 commit 5380092f65b84cb843f363a145526047ef48d1fe commit dcac51bd102cdb2aff1ad337d3c2fd354491ba42 commit f4b1dbf413624ad07cc2ca2a6e6ec25c3f1e733b commit e931ab3eea505535abd0369c5da27e3a5d0057bb commit 425c4a6f8ba62f77669a6a10ce9678153dee3e03 commit b6a343df46d69070a7073405e470e6348180ea34 commit 02cf3ed62783ba42b66605408666fd648ac3a090 commit 98392782df666cee2b9d4161494bb23177d67605 commit 43e4cc22994290668b1ac63a0da4c74388c1cfe8 commit 23c1ea02417d10ddcf4d50b5cd5ea7b02c69cceb commit 53c3a37436c400a00d05702334920354f2e3fdc2 commit 4448b1ff4d267873575a7b74a3786b9c7c114c1d commit dfeccf4d5437bdba1bf9cec14490d989677743c5 commit 71d8af38d3a9d9e17c255c13b6ff5fc1379ebade commit 6857669a2276fdc31f53b0edec46661149237112 commit 5aea87169414101686c90c23719cce30c96d6ef0 commit 410bb279a8ca540cb8101160fefba5891b89d03a commit f3e2a425c6b212d88d26c7d194e09508e520a5e8 commit ca15cd559fd841c968989ee44d3fda6e75974198 commit 614a9f5ed5b079af9cb933b9ebc6b3e128a2560d commit c7c3f786b931f89a5b645e01a7cc3214e791e73b commit 9cd2ad14d88d6a99fb1f9364fabaf6bca5b1fc9a commit 11382d02fb5ad2d6d3145c9d1c863720add7efa5 commit 80ffdc273a75f5049277f590b0c287df979a5169 commit 38a16bfe6fae93d3d4b7273f0d3add9ffcc4ff03 commit b709f949f0e5576cd5e8949bfd21474f60ba3df5 commit 94845ea05758ae94cc305a7bf3d536cad40bf15c commit ea67deb03cc0b3f6e00b4aab87732672d73295b5 commit 4ed6a3689caba239e6df18c60af9489001f481c3 commit 2a7e5f45314cfd99eacd9301a196c2f7cb67237d commit 7b8a74bc42016173ddb4872d113f132c8ca59fc1 commit fd63bf978b7b0f106c72b6392436f4223b16ab85 commit 4f3265b85fed99d279dac114a5aaf0c13353420a commit bb5367d17e83af95b56d2cc455a09316d6ff3349 commit 171b357d18eea64988ae774aa25b32bbfeb16880 commit 633743ed18461061441af69d1ec669bb7b8c4269 commit b84c28f33d35361282d27ac304c888dc1ad38a15 commit 3f5ea7ed705e8effe9cfabf912e769ccb6b7d389 commit d69d804845985c29ab5be5a4b3b1f4787893daf8 commit d63d81094d208abb20fc444514b2d9ec2f4b7c4e commit ddf983488c3e8d30d5c2e2b315ae7d9cd87096ed commit 58cd0cba82976a5a21bdfc78783952b147837a84 commit 74c3f5da233637bdf828e1ce67a5c1083630a47b commit 685505219723147b10353b9018ab0c8706934290 commit 896868eded124059023be0af92d68cdaf9b4de70 commit 27aec396c48c6407a7586a35d79ac3fe387f2054 commit 86634fa4e6aeff2e190616c304156899beb4d76b commit 71e9f407fd42d8ce28ff40c4d9cda08c9f3c0f99 commit 6be146cf57b642d35a11dee2af4d534ebea97dde commit bfc109361cfc7b3251ed3b7993156825fa895a0d commit d076e2bd09f22db8a181a081479008524674b5b3 commit 62a05f4ae9c1fb70bc75d494c9c1c373d2c2e374 commit 91f9f4a37124044089debb02a3965c59b5b10c21 commit cb31c58e8c294ff31ea842ee1fa2c06c9a9f1cc3 commit 78347b651aa5be8b48462c48fee7e8302dcc5819 commit 064d92436b6924937ef414894d9174fa4465f788 commit ffcc5745ed56d5c4e7ddf2774ab7ad26e93143d2 commit fbbbb62112a8788f76e28bfb7e822bf33ab1075e commit 2262acad0ae911cd45b6cb976f803a74db9e9ea7 commit 33f23fc3155b13c4a96d94a0a22dc26db767440b commit 906219ec94d0a51e4929d6860789656bab02cfa5 commit f0c6b79bfc9216bf0e4e35389d4e3e4fc7bbc2ad commit 495e6173a4176ef578e8ada9f17e1685fe45d00d commit c8714ac982e54e758eb937c0d82d4d265dd6e7f0 commit 54837bd2be229cc386298c5eab7d05f36f26e1fc commit 332210c13ac0595c34516caf9a61430b45e16d21 commit b6ad1091666732e8750357f9d2fb599f81bf6bff commit 320debca1ba3a81c87247eac84eff976ead09ee0 commit e33697141bac18906345ea46533a240f1ad3cd21 commit 75ac6a250632d2fff62039ae728c842033dceddb commit 5b9de2596f17fb328945676293a956f3d7f53a9d commit 91ba536ead3ad86952979b1944cf3b612a7f944a commit 12b435a40cb5b05378ca244a9d524b125b0c1f6d commit 1dd34092c1f1fa1e9e3b0a294f7ea0658e676ae0 commit 59f488be7631513acc9a266e9d006358545b7074 commit ee98fb71baa8728156b4d75740f82cb0cfe6d923 commit ec85147a3529fded4bba12b48623f3a2587af83f commit 2df7aac81070987b0f052985856aa325a38debf6 commit cb520c3f366c77e8d69e4e2e2781a8ce48d98e79 commit c537fb4e3d36e7cd1a0837dd577cd30d3d64f1bc commit dbf35b4deabb5706e739cec7ce35c12631bb8c87 commit 5d64af40e3a99c3bbe7a66c3cfe23295f8e97130 commit d02ddefc7eedaa6394279bad522c70fd5d63e163 commit 708f220567d4a398ee1553ee6519f7e73ae5ed6c commit 948f2828a676d323c18dfa16e6a91c8103a97e4d commit 7d570f56f1e1005cf5bb34ceec608432d2acb157 commit a85cc86cce4183962c9ab80bf9c9c666aae174f8 commit 21e6f6085bbc979b5cc3f97857e66387ec550c48 commit c39385710cfd9ef22f6a2405d01ebcd6019e8767 commit c04706914ddeb9098a509a5647c0b46c7e07cf11 commit e23300dfffa178b19abc1b1b94ed7de74b0e0930 commit 8030f6533ef0a40a81ab6113aa6a0ab6a8e981c4 commit 99194e6db5d89c00ea8acd1eb3ff260e1c440f55 commit 833cd3e9ad8360785b6c23c82dd3856df00732d9 commit 63347fe031e3bd738a2a16aee8eba889376e49a8 commit 26d289158e491d5ae34b10eab40b093a40fab7d7 commit 5207c393d3e7dda9aff813d6b3e2264370d241be commit 609458abd5a10180f513ca364d6c0ae30128c821 commit f00059b4c1b068df108c70f86749b23f9080d2ba commit dc1000bf463d1d89f66d6b5369cf76603f32c4d3 commit 38e73004c2b537f79789347a8c381c8efc502480 commit 864204e467e40621bb8b8009d2931558146a3e9a commit 85e23c6620745c6c0a764ded52f3d775ee767eb6 commit 8b68788bebd3f697ae62aa9af3dac35ed112ebd7 commit 7ed58b68ac5c3ff378656eb082c982a266bb658e commit 478cb8badf1898f22e19e4d21f7d7b70cd44df9e commit 1cff1010bef6f325d895db0306b59dc7232ed9b7 commit 725553d202dda60dc17a142c80fd96bdf6ca43db commit 7d79cd784470395539bda91bf0b3505ff5b2ab6d commit 0c8b91ef5100eaed3d64123ac91ac4739fccf15c commit 5e72b2b41a21e596dcff489810ea760adeb2ef30 commit c6a3194c05e7e6fd0e8fbfb1720084ae2503c4ac commit 8d42e2a91dcf86b34461cd7f709797805afa9f43 commit 3b0ba54d5f8ff60553c01d3ec3c607ab7bb3b452 commit d60c429610a14560085d98fa6f4cdb43040ca8f0 commit 28814be8823002eca06d857d4bce70eb4c6fccd3 commit 7bbae44cf1bda02537a84cd8ad75bd81694acfc7 commit f998678baf3c143fec4c66e7f3a84bae3b25ff12 commit d13e2a6e95e6b87f571c837c71a3d05691def9bb commit 509580fad7323b6a5da27e8365cd488f3b57210e commit eeb1f825b5dc68047a0556e5ae86d1467920db41 commit ecfa23c8df7ef3ea2a429dfe039341bf792e95b4 commit 7d75ef3736a025db441be652c8cc8e84044a215f commit 6e169c7e0f842c48c7bf683fb789dbf5a8b1dfd8 commit 0e2c796b49735ee141fbff355b9d02e0189c3c65 commit b3fb79cda5688a44a423c27b791f5456d801e49c commit 2fdc99b96ea86c178eb14bc948dac93feffc8936 commit 5ae8fb971201d281cc594dba58787406e46c696a commit 4cf300f604fe894e4bd734f87fa4502faf1b8af3 commit d938ec1a12a22a4eedff319aa41cba48e9c5e544 commit c95e67bac42d7e671e6a2c14548b6a7f76e71235 commit 6c85d6b653caeba2ef982925703cbb4f2b3b3163 commit e3615bd198289f319172c428f20857accb46b830 commit 478a52707b0abe98aac7f8c53ccddb759be66b06 commit 408c2f14a5d3d7ac4824b96e52693ab271efb738 commit bf07ca963d4fd11c88a9d4b058f2bd62e8d46a98 commit c9474b726b932b5d555effd9ed0ae19f4da2367c commit 90936a0a4c54f0a1cdf4538f9128821ad70c36ab commit b3ce7a30847a54a7f96a35e609303d8afecd460b commit 12c35c5582acb0fd8f7713ffa75f450766022ff1 commit f4f92db4391285ef3a688cdad25d5c76db200a30 commit 3f386cb8ee9f04ff4be164ca7a1d0ef3f81f7374 commit fbc90c042cd1dc7258ebfebe6d226017e5b5ac8c commit 7d4ecf3707b5da27a69ddf3dcfc28599593aad2e commit 527eff227d4321c6ea453db1083bc4fdd4d3a3e8 commit 78e6e468e111ebf502adea7bb07c6708e497f83d commit 627a24f5f25d689682f395f3df1411273be4436b commit a9bf3efc33f1fbf88787a277f7349459283c9b95 commit 65564157ae64cec0f527583f96e32f484f730f92 commit 26720dd2b5a1d088bff8f7e6355fca021c83718f commit 445d336cd15860f1efb441e6d694f829fbf679eb commit a03ebf116303e5d13ba9a2b65726b106cb1e96f6 commit 73048bda46c3085df5fd42840de09523386d3e54 commit df65aabef3c0327c23b840ab5520150df4db6b5f commit 23df34997d386f1442d26f2d8edf44a5b5fee79f commit 485432d090016aebf8fb407a44ce7a2f856d11eb commit 6728f55590a667c292cee10c009e16d90f48d63a commit 4ab68e168ae1695f7c04fae98930740aaf7c50fa commit 5302d1a06a2cd9855378122a07c9e0942f0f04a9 commit afac8c6554ccee54bfd1743755e10af005be3bcf commit 1a8825259a9ccc53faddcdec24cf94e0a36b32cc commit fab1ead0ae3a4757afb92ff6909b37d63db17e55 commit 5659b0c93a1ea02c662a030b322093203f299185 commit e58337100721f3cc0c7424a18730e4f39844934f commit 09f34a00272d2311f6e5d64ed8ad824ef78f7487 commit d6667f0ddf46c671d379cd5fe66ce0a54d2a743a commit 12bed149a3460bb6efbca697b4a46e11c819db86 commit cb372a505a994cb39aa75acfb8b3bcf94787cf94 commit c2a96b7f187fb6a455836d4a6e113947ff11de97 commit a37cd98cd56e2c53d77d9c45cd4b7b3d91916df7 commit d4ef5d2b7ee0cbb5f2d864716140366a618400d6 commit 75c3e8a26a35d4f3eee299b3cc7e465f166f4e2d commit 0ba9b1551185a8b42003b708b6a9c25a9808701e commit fe26546aeb35c5d1fd69530bb6bfd04e0b5cd489 commit f3572db3c049b4d32bb5ba77ad5305616c44c7c1 commit 9038e25c80558d48ce33d6d8c168666164dc72e9 commit d2860084ecca456ce78b251011f7def8d9136dcc commit 4477b39c32fdc03363affef4b11d48391e6dc9ff commit 1a251f52cfdc417c84411a056bc142cbd77baef4 commit cb04e8b1d2f24c4c2c92f7b7529031fc35a16fed commit b5fbf924f125ba3638cfdc21c0515eb7e76264ca commit 4bc14b9cfaa2149d41baef2f2620e9f82d9847d7 commit a1ff5a7d78a036d6c2178ee5acd6ba4946243800 commit 0ce91928ec62d189b5c51816e325f02587b53118 commit 555069117390a5d581863bc797fb546bb4417c31 commit 5b511572660190db1dc8ba412efd0be0d3781ab6 commit e0fa4132bfae725a60c50d53bac80ec31fc20d89 commit f85de245c6a8e2654e1e9158588bcf78e38cd5a5 commit 9c685f61722d30a22d55bb8a48f7a48bb2e19bcc commit 774c6f271080fea23e7780e063c665af8679f3af commit 7b9b765168beb8b7c7c26e60c9b7c86befc31e2b commit 4eb399741ff67452eeaf099f366045042401cf3c commit 113fd6372a5bb3689aba8ef5b8a265ed1529a78f commit 62b45bab010d1b0cea6166f818f1cd0666a6d8d8 commit 29b4a6996c244f0d360537d6a4a0996468372c17 commit 1b85bdb0fadb42f5ef75ddcd259fc1ef13ec04de commit 1fb0847392e220890c9cf8908e3ab8e7e1227ff6 commit 1ac5167b3a90c9820daa64cc65e319b2d958d686 commit 8bdd9ef7e9b1b2a73e394712b72b22055e0e26c3 commit 929725bd7eb4eea1f75197d9847f3f1ea5afdad1 commit aef21f6b6a4aae648c890e74c2322d10ab267249 commit 264b5b5980061d8c6a6a30c031cdec1179fe2bae commit 787db3bb6ed5cee56fc97fecdd61517d89763f0a commit f2aaed194a54d78c307c44d1829c7e1ba67e9ba5 commit 4df19b14f6311c860223f349356da2c08ae92101 commit 437cf8bb0e1a56fa0491610706ddafd04b3b1a9b commit eb880ffddd5da8a014669deaf7bb3e7e9ecd06f4 commit 5f142b3826a0d223e947501fa9fe4ca912d9db26 commit aa5c9701ebd654284c55eba30d0a38eec49f2946 commit 07cd40a0c9843653451f9355170770f6e42489c8 commit e8097cf1ce9e7ad8516ee95f06f7baaa31506035 commit d507ae0dc83b7f43cdf6760b8f1a30aac4fc405a commit 8ff3bb44cc94b74ebd57fe3be9dedb98dbf92771 commit 829798c789f567ef6ba4b084c15b7b5f3bd98d51 commit 5d687a67fda6389b9214815aa0d0adcc44302dc5 commit 50e376f1fe3bf571d0645ddf48ad37eb58323919 commit 4a5ad08f537703c35cf7cc29845381805c891d9b commit 7fc5f252c0d21b7b89720386344b614733edab32 commit 6ad9dafba19f15a64f71c2e1a9e3b6932f96628e commit ae02c7b7fea3e034fbd724c21d88406f71ccc2f8 commit 4f854a8b1b85d46abd5ce206936d23f87ac5e0c9 commit ac3191c5cf47e2d5220a1ed7353a2e498a1f415e commit 642dfc9d5964b26f66fa6c28ce2861e11f9232aa commit 062fd0a6cdb5986745100ab1328d4e475078fda4 commit a507e750a1d693a21b233f47db466d9aae895fa2 commit fe0ce0d622d08dde6acb9857fc180d59af804a86 commit 06f5b920d1d0b686d794426264dc39aa8582db14 commit b86aa4140f6a8f01f35bfb05af60e01a55b48803 commit 2c71c8459c8ca66bd8f597effaac892ee8448a9f commit 11752c013f562a1124088a35bd314aa0e9f0e88f commit f6098641d3e1e4d4052ff9378857c831f9675f6b commit 0dbb81d44108a2a1004e5b485ef3fca5bc078424 commit 338567d17627064dba63cf063459605e782f71d2 commit 737222cebecbdbcdde2b69475c52bcb9ecfeb830 commit 56fb276d0244d430496f249335a44ae114dd5f54 commit e414a304f2c5368a84f03ad34d29b89f965a33c9 commit e6c6bd6253e792cee6c5c065e106e87b9f0d9ae9 commit 0573a1e2ea7e35bff08944a40f1adf2bb35cea61 commit 278e1865b7a2124ea783b75ea8b3ee0bc2da5d85 commit 2029b3d7e1358bcca30f74978543ba35b4bbc43d commit a13d91bf3c1910212e45a69d04ad40d99878f8da commit 3738a7f0ddb920bde538d3f78a02edbc6ad1307e commit 1097727d6d0c13eca25321fff46714fc5047d6e8 commit 7254027e1e6edbff54f5930a5f13f14ac6f1694c commit af401543df510a73f7beb13f80cf4c541be94786 commit 4246b1077ffcc37926868581bb818fdb49d0d065 commit 470516c2925493594a690bc4d05b1f4471d9f996 commit 507a2286c052919fe416b3daa0f0061d0fc702b9 commit 23acd1f344e8102f803119d0c8fc4df4628d694f commit ddeb7989a98faf8da67ac613731a0eee32667b7d commit e98a032c0340d45c199f4eb536359f5762a8748f commit d28bb0120f360e772458a7cf295d6d0ae3dc18a4 commit 6309f9b1fc4de2daa1293fe12a488d765e60507d commit 817c70e2ba278e9d5360833b1137ef8855ac1728 commit 64da63cd3f7d771bf8f240e72203da1f72aa3728 commit 55ea73aacfb9a92def840a7110a468c5a76caeb5 commit 4f7652dcd339aca6678084d42fda999ecb19b624 commit 90be4cc6f7674a1478c4c750beeee3edd14aee38 commit 58bfe6674467f4c037e89111e6007f25b34d8bb3 commit f002702290fccbd473f5bb94e52f25c96917fff2 commit d7a5aa4b3c007fae50405ca75c40258d90300e96 commit 75eac7e8bb77597fa199a056710f9ebba5b1995b commit 9b340aeb26d50e9a9ec99599e2a39b035fac978e commit f8e170a3dd723c29d7fedcd584c468e1fedd5e5b commit 37b20e9a5810e132a21c54f858043b22671396dd commit 5d41eeb6725e3e24853629e5d7635e4bc45d736e commit f4b2a0ae1a31fd3d1b5ca18ee08319b479cf9b5f commit c621f70539cae731d9749c1900cd00bb70ea5c72 commit 7090d7fc969fcc9985d7e538cfcd8a69a5f9c616 commit 15939ca77d4424f736e1e4953b4da2351cc9689d commit 730b72480e29f63fd644f5fa57c9d46109428953 commit ddf6492e0e508b7c2b42c8d5a4ac82bd38ef0dd5 commit ad614a706b1ac83b95b333f44b8f5e70bcb37dc5 commit 27cb2b7fec2abf310e4128137979124ead920ccb commit 03a2dc84f5c4ef31ac0112b29d51ff103f7c8dd4 commit b196e6fcc71186134b4cfe756067d87ae41b1ed9 commit 7e81285380743aa5759bb29a388f056c3d326a2c commit cbc6e98ab11bea52789d2835e45e8816c39407e1 commit f5cb1275c8ce56c7583cb323cfa08a820a7ef6b4 commit 8776b0234e1d008d8f19b26f6c3af1cfa6187070 commit 8636a5c29be1f05b5162a5c82c874338b6717759 commit a06a7b3429e2548a28bb661f17347b8ffe4a8a15 commit 0b43312902d165c4c8429cd49e8c91479f52b7c4 commit e3e4bf58bad1576ac732a1429f53e3d4bfb82b4b commit c99769bceab4ecb6a067b9af11f9db281eea3e2a commit 9cead81eff635e3b3cbce51b40228f3bdc6f2b8c commit a6f78359ac75f24cac3c1bdd753c49c1877bcd82 commit dd3e840a33b57b92812fbec26273b3f0b4eb5ae3 commit 9e7f30563677fbeff62d368d5d2a5ac7aaa9746a commit 424a98a68feac20de626e307e09c7ced6585a658 commit b069f6315c2d99b32cb0e1adca7ab4d99bccf410 commit 5159b9dcfa4b79658543465f6370cdd514cdc6d9 commit 76f461867800fa9421d26a70a1640eed55dff0cd commit aba07b9a0587f50e5d3346eaa19019cf3f86c0ea commit 50f1199250912568606b3778dc56646c10cb7b04 commit e9fd436bb8fb9b9d31fdf07bbcdba6d30290c5e4 commit 7d058e6bac9afab6a406e34344ebbfd3068bb2d5 commit 2955ae8186c8a6f029e429f7890e0c7e5f6e215e commit 1eb52589a299f8b29df0f214206da6616e33a8b6 commit a2ccc33b88e2953a6bf0b309e7e8849cc5320018 commit 8f614469de248a4bc55fb07e55d5f4c340c75b11 commit 948f279dc48a6db17204f9b23f76b67abcd5d702 commit d420c857d85777663e8d16adfc24463f5d5c2dbc commit 37a45fb8db2619e03d26de59dbdb4ae2b0b02d7d commit 959fc102ff4c39f5ab021da311c2cfd1d5602a0c commit 3b9a33235c773c7a3768060cf1d2cf8a9153bc37 commit 6d5064c379557d92832b51d247b385bb8bd6aa5b commit badfdc6211f27803bc805fb56629f7d418670870 commit 849f0d5880b7494030c4ee1e4fbaf2ca5422bca9 commit 59d237c8a241168c7ae34c48244059b7bafaff38 commit 9941b5bcfeb25c5192c8d4c8307d3680c04d4021 commit dde72a5d4fdf2e18fedb4b2abfba5f7e86bcb7c8 commit 27f5b729cb56e46d8beca47c227c0edf1e958fbb commit f33b9ab0495b7e3bb01bf6d76045f078e20ada65 commit 3f6b2f60b4631cd0c368da6a1587ab55a696164d commit 59d3cfdd7f9655a0400ac453bf92199204f8b2a1 commit e8705632435ae2f2253b65d3786da389982e8813 commit fcd9e8afd546f6ced378d078345a89bf346d065e commit f99999536128b14b5d765a9982763b5134efdd79 commit 65444581a4aecf0e96b4691bb20fc75c602f5863 commit 34c36a77f431b67803c68786fe41a05d007a9306 commit 4de34b04783628f14614badb0a1aa67ce3fcef5d commit 53c3685f5307967a62517ace10e69d66520d0fc5 commit 38e3285dbd07db44487bbaca8c383a5d7f3c11f3 commit 43cf50eb1408ccb99cab01521263e8cb4cfdc023 commit a13494de53258d8cf82ed3bcd69176bbf7f2640e commit 466cb3c630a51b04995c6247d2fb73b5ce7bfd7f commit 9da7ec9b19d8c1ad4f44e459fa5f93ad7a117dcd commit 9a71cf8b6fa433a8f243626ba9930a3870584e38 commit 529bf8d1118bbaa1aa835563a22b0b5c64ca9d68 commit fe13fd68337512da4b7aee6326c397e817a943c7 commit 82122d1f54ec2244fb9c367ee2390b51ce08cf44 commit 269a3f60843b9d2045e0c09d4bd34a91ed4222aa commit 880b398288487029ef5062ec5d7fcfc90672f782 commit 4bfc9c553f5ea8cbfe085824f3283885cf173c20 commit 5f7762042f8a5377bd8a32844db353c0311a7369 commit 76dce2a96c0f48295e92acf7a8f3fa46ea0ee524 commit 7de295d1a1a1b84e57b348e8bfd0fab5aab3ce69 commit 5a498d4d06d6d9bad76d8a50a7f8fe01670ad46f commit 1a8d845470941f1b6de1b392227530c097dc5e0c commit 4de4a0f160cf8ccf29a9a70f00403e6948e7e108 commit ca10367a5abe5f04df1374b227a10439ef686b90 commit 141bb6bc73cf45e8b742d6fafa6734b6d5f82b77 commit ea5ff5d351b520524019f7ff7f9ce418de2dad87 commit d3d37f74683e2f16f2635ee265884f7ca69350ae commit 6db9df4f7055eb4ea339e7b83ca676edd9ec1277 commit 8c7c44be57672e1474bf15a451011c291e85fda4 commit 02c132166993c8f8ca1b319665181f72f22ebc6b commit a7aeb03888b92304e2fc7d4d1c242f54a312561b commit e835d5144f5ef78e4f8828c63e2f0d61144f283a commit c5b1a06697eae4d365691195ab2e0b45539bc2a9 commit 612e3bacf8009e329342934ce403fd4ca553beba commit 7a0982523cf3ff00f35b210fc3405c528a2ce7af commit 3a23aa0b9c24c682c506121e2e0f6cbcfdae9076 commit 8409fb50ce48d66cf9dc5391f03f05c56c430605 commit 17ea4383649fdeaff3181ddcf1ff03350d42e591 commit 2a2a865aee43dd6f1ddbb0581c2a2cc205beb768 commit a2655358cbda38d53d4a443c7edc7951d91c3043 commit 572239f7f15223e4cf22a8233677b9a080c3d873 commit 5e2d1d4dc1c15da3e1e3dc09dc3c1276274439b2 commit 062d59eb96b24990429c13706cb74ef09cec7e99 commit dd10595c3232d362f5a01e5d616434b2371ae8d4 commit a262cc8d554217fbe67e083159584beee3ea9b11 commit 9bd7ff293fc84792514aeafa06c5a17f05cb5f4b commit 94c4aa266111262c96c98f822d1bccc494786fee commit bb7e19bd6cb68e08272e08acb814b9342ad5a43d commit 690e516e9869791bcac00ad5a351d953a928044b commit 135be1dc46c64c454f2828dbb7f239d035f47180 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:33 +00:00
struct dma_fence_array_cb *cb = array->callbacks;
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
unsigned i;
for (i = 0; i < array->num_fences; ++i) {
cb[i].array = array;
/*
* As we may report that the fence is signaled before all
* callbacks are complete, we need to take an additional
* reference count on the array so that we do not free it too
* early. The core fence handling will only hold the reference
* until we signal the array as complete (but that is now
* insufficient).
*/
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
dma_fence_get(&array->base);
if (dma_fence_add_callback(array->fences[i], &cb[i].cb,
dma_fence_array_cb_func)) {
int error = array->fences[i]->error;
dma_fence_array_set_pending_error(array, error);
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
dma_fence_put(&array->base);
if (atomic_dec_and_test(&array->num_pending)) {
dma_fence_array_clear_pending_error(array);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
return false;
}
}
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
}
return true;
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static bool dma_fence_array_signaled(struct dma_fence *fence)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
struct dma_fence_array *array = to_dma_fence_array(fence);
int num_pending;
unsigned int i;
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
/*
* We need to read num_pending before checking the enable_signal bit
* to avoid racing with the enable_signaling() implementation, which
* might decrement the counter, and cause a partial check.
* atomic_read_acquire() pairs with atomic_dec_and_test() in
* dma_fence_array_enable_signaling()
*
* The !--num_pending check is here to account for the any_signaled case
* if we race with enable_signaling(), that means the !num_pending check
* in the is_signalling_enabled branch might be outdated (num_pending
* might have been decremented), but that's fine. The user will get the
* right value when testing again later.
*/
num_pending = atomic_read_acquire(&array->num_pending);
if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &array->base.flags)) {
if (num_pending <= 0)
goto signal;
Merge DRM changes from upstream v5.16..v5.17 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v5.17 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/Makefile drivers/gpu/drm/i915/gem/i915_gem_pages.c drivers/gpu/drm/i915/gt/intel_gt.c drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 0dff40bb863c,ec2ef2cce11c..301a44dc18e3 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -127,3 -134,8 +134,4 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit 107fe904302092c683cf5462b4af3cb3cfa40998 commit a1a98689301b9af0313e4c1ba44558e8b67ff76e commit befe5404a00b3b1547c944738df4a9229909bdc9 commit 8a12b170558aabb31cc98fda0da6a56b518cadaa commit 334f74ee85dc26a50c1a2b0da82517595191f92f commit 57a06e907c07b17308f9e6e6ce91402ee7ee03e6 commit 189723fbe9aca18d6f7d638c59a40288030932b5 commit 7c4dd0a266527ffa7ed8d424facaba171618820a commit 1a84a308acda285cf9fae548262b8e199845b2d1 commit acf20ed020ffa4d6cc8347e8d356509b95df3cbe commit 437c3d87590e7c1d901c66d8916e7a58f0fc7ff7 commit 5f31dbeae8a88f31c3eb4eb526ab4807c40da241 commit 32a267e9c057e1636e7afdd20599aa5741a73079 commit 9bf7123bb07f98dc76acb5daa91248e6f95713cb commit 7f44a1166c8aa69f1bcc9096dc07b7096f7822df commit 6b1a69bcb23fbcc65b0b086063f608e3509dfd0f commit 5ddc1e27e03298c433b0c889c2a431432abc2cc0 commit 386e1c180f1f06acb64205c37f0fccc4f8885a73 commit a30fc787a1d3ba317e4736483ec8ae50043e6fa7 commit ef41af47e40ed69e439cfedf74068bf797c62fd1 commit d41af761dbc137051ffe82fe4f23db54ebb1d523 commit 94f9b9525c0a2e8aac741f8e0a2d71c4e2771ba9 commit d60b93917a66414aaee5704dd07c845aa6cf9645 commit a8daf03fa2d49c8892c3de924742b1a47b62f3e6 commit e82ef424eec8e412cc1ca9170c49633316b29f07 commit 566b651cc53154d6fe88ebd61c86b996d6621d09 commit f6632721cd6231e1bf28b5317dcc7543e43359f7 commit 5f9741f53a3e0e84befc60cc1491272d18564ea0 commit 50848e3787ad9eaae38889fcb7f4aa1f4b42f4eb commit 6eab8224ed3daf26b5fae36dc8663d32e5cd9c21 commit 19febe662d0b31b717655041cd67df524d19a5ac commit 40e8c0198a51656086b746597af8c36f291b53d1 commit 30a46873941f1422e9169c9e38d4874365054c13 commit 623a3531e9cfcb95de55f0e4a38668705eeec8ad commit a19125a281128c836faae249c1001eb8d7a18b48 commit 9aa2c2320e6fb50d8f80963e786d0b564d0695ab commit 2e70570656adfe1c5d9a29940faa348d5f132199 commit f9a7b19c484067fdcc5972c88ab6f06898adc40d commit 841f262e74a7c209055152026041bbe486c962b9 commit 63d7d05678af5cdc616718806971041ecacf4897 commit 17dbbe7b25446f7ce4af4c5186b60427cdd770a7 commit 2c85034db194ead0595445cbdd70414d3634fcea commit 7a279c14df56c741b99085108a643f2dae078773 commit 91909d57169dd587b11d9e1607faaea07393696f commit ae880cd02c547cf474cca976c39c76b629921b26 commit b2de2d006dfa6bf48b141a2a51ca078ed1047b63 commit ccebd0e4021084361d1549f4e83688b1fae89c3e commit f45d2252ee10b036d539d93a752a2434a54a0d2b commit 7d9ae6332e77c1dd57cd5679a27d6690d2e8215d commit 9e68fa88b85910091be186f9022b36f4fa83b31c commit 976c68f46d7cba02ccc80fbd67a4e9731e23e8a7 commit d39ef5d5c076377d41c65b69f8452eada2db724d commit 718cc87e1669dafe65ddd3720a5526c6d7e1705a commit ba3078dad1401131293664733c15f6f066079de9 commit 02ed47aa6cc697fc34053c011fe72984a86273cb commit 1f9f6790cc62eeaa973d05a9a2f16ca0f3b80b36 commit 9f40dbd4416f14657d9b354b7ec855244d97a91c commit 576d4d2d90310270c1d463577f0a075e88cf6c4a commit 957a2d0e7ea38d84d4b3cf9a951bccadeb803a24 commit 2671075b322746ec68c49396c5c17ad8ad236dce commit 0b80214b64e38f33d359c0e121773357060b992f commit 3c101135baf2dcfa64081239818039a1fcc7767a commit 33e079bc1530df4596181ccbfded8752bbedb92c commit e1f80341e312088f0e6c46107db7098e30e6d764 commit f2d061ed01b3f0e0c7a4daebed91e26f54de4086 commit 45a44b01faa6ef92788b2067631deb486cef8a4d commit 0bcdfabfcbe230fbd9f03c297486f013333892c7 commit b93e947664a1a63a3e6cb5d94f38d5579e41d951 commit fbc5a90e82c1131869e76ce5b082693b8a75c121 commit 43a1f1467cd4bcf248925fd7b3fdf49d73917443 commit c4f08d7246a520da5f2b1068f635da0678485e33 commit c93ce6a6dfbd3e258186ab10f95472ee571583b3 commit babc8db30132ba59cecca9587e73104741f0be6d commit b7d5abda8e64fb9cbbd219e667ccb34e4761ce2f commit 4ec5ffc341cecbea060739aea1d53398ac2ec3f8 commit 3f61ef9777c0ab0f03f4af0ed6fd3e5250537a8d commit 9ad87de4735620ffc555592e8c5f580478fa3ed0 commit bedcaddadd22da82fc2590569ff81a31045176b1 commit caae4fb537d8437b9290d8a1010adfaf174b29e6 commit ce679dea955e1b6670a8d92b8ac4c17b22db3fa0 commit a0a8e75948117f37a1f849c44d026d0775ca59a7 commit 0597ca7b43e41c509bd0feb143bdfb7278496397 commit 808b79eb8165d4dbd5e731f98a4f5f4a0817ee4e commit 1af10a97b3a629f5f5b361f1870070c1d6e0308b commit 035f79f9b77d5bbeca7c5befcfaa7560e846ac6d commit 171c555c2c2664a250cd35680c34c31a6d233dc7 commit e2b8329432b880f3821f85e1253a9b6b9d714a86 commit 672d07517e728acf15c1e39c3dfb7052000b434e commit 3dfb2d6b489f7f1a627774f84a6341c18785f43f commit d89357ded55e1294e172cec176f49e1685dca06d commit b1562f0f0f69120225285977eb2bd488c7eb5482 commit 0f2922ef48484ca4687319d03f72afdda2172e97 commit b0f1670d22ce1e192f29e931069297ff16156026 commit df63860da913e6afc0d725a87f99e930ee237451 commit f50423436105e136e2409b500719334188a77aa6 commit e359c47bfa6155b56d378864b7cc4a0d4e680c1b commit 0b2c31dd8868651d878af4c60b235dfb52909e74 commit 09f8fe4cae5ee8eb2ac44e437d4295357f3cdb36 commit 3cf460bd683df848c3df90b9bd6c28bc86acea8a commit bb115220d248e394a65a52e128dbb8096c9c8868 commit 59908256d8101da0f051a4687438b744b24b9059 commit f4fdf37684ebf8ca122723ab6074d74299921064 commit 81148c266f6a51f4e149afbc52fff9a04d274310 commit 6eaecf014807f34acf1303fcdc35833998595db4 commit 777226dac058d119286b4081953cb5aa2cb7394b commit 877d074939a5f82b099da2db3bcccc6c418b9c39 commit ef3e619221248a7ea5fc711a2bf9017c94d2f644 commit dd66f56caea6bb1a3703fb3bfc3106444d05a930 commit 40298cb45071e98c2c6465e2ef25dd8f8af77918 commit f05b985e6f76eb9e57f36d0960a8beb46d5b46a8 commit 7ae034590ceaefd4d37465e3434877acfbadf411 commit 5926ff80c9035638ed8ff6ee1f820392248270e7 commit 893f11f0c73365b31068081ffa3e67af5cd474e7 commit e25d1ea4b1dc6a0f11a24bac85d5e3673845d365 commit ebd4a8ec7799b1ce6969acf04432f4980179986a commit 2eda4fc6d005b51271642ebfae4ac00e15618a23 commit 5d12ffe6bedb0e86b22dd436bb2245fdc540f780 commit 1d51775cd3f51899ce85afab686c7f641ff32d4e commit 930ca2a7cbb6df5e5377938a372d8896d669f086 commit 25b8a14e88d9cd80ba34f5310cf1e11c4eadc647 commit 9d27478c7c01c9a04938a751fe2345cb951a3a0c commit 72071beec8fbf760945c6f155fd4db394dd2fdda commit 4b2b5e142ff499a2bef2b8db0272bbda1088a3fe commit 7c287113f1c83b238068bd4b550cc8b0a73528a1 commit 393211e118eb8c3946cdee18e97fddb396f11ef5 commit 12a9917e9e84fef4efa73c09b32870df0b1ed795 commit 525bbf72dbe0004a009dc39b239dec74e8007f6f commit fc7bf4c0d65a342b29fe38c332db3fe900b481b9 commit 736638246ec215f999dd132334d2d7c49bcb85c7 commit c4ae82a0e9222d275e3e4dd91c1cc3931ac0eca1 commit 86752bd613c9a8deb6e7de499f0c3ac139b58b6f commit d9c022d5dfea9f0b550a3d24ec786d39ff55ad6b commit e15623cdce6fca662dbecd311f9d74bc61d0e1f2 commit 44653c400615a3fa3658caa72d765233cc897d80 commit 55d5e4f98fde7f695fc6c08f46f85ab677f690a2 commit bf0d608b55d9b7f426031dfd9f08d9df36c94728 commit fed98c16f13f4c68fc507384d3429516ef5c3b6d commit f0e204e0d32159d783577a4041331fbe49e8beca commit 765972cb8564fb92f8cef6fac21995907d132e8c commit f28c5950d57b280f17b950f04125ed556252403e commit 39919997322f21d367347943ffd5ba8c4007c9ae commit f2e19b586637a2e84f56b08d9f60de30373a0a01 commit e0bf3e23e2002461b0bff09c1cc0b92ddb8eafd8 commit 3126977d43079866aa0ea351863a7496feec98d2 commit 723559f379af5cd200bc981a723aaf3971f7a166 commit e12d6218fda20d03960f3f2cca44741ba8d5e9a8 commit 818a1968a73188451fd1c16604b4e47ab5a40d6c commit 64512a66b67e6546e2db15192b3603cd6d58b75c commit 3c7a8600dec9858da9e76adb622d161f27652b00 commit cea86c5bb4425cbbd0a690d1671b8a7db1cee9fc commit b9971e549adf85278a680f75dc78e4a734975e90 commit ee9418808bcce77e2c31dbbfc58621ea99a05597 commit 864c49a31d6b84fd20748a003523fc2181fd54b1 commit 25a390a9aadbf0c87b461e416c27c8838b35ae25 commit 49e61bee26f746aaf2eba84ba3c9a90ab950ea05 commit 1fdbf66e3d40257902b4c5cdf872730dae24004f commit d89078c37b10f05fa4f4791b71db2572db361b68 commit b91df118e4ff36904d5e35db27dd0d0cee4deb45 commit fef604db231230a0f2f376fa223fe296731b6333 commit 293ada7b058e536d9d53d0d8840c6ba8c2f718e4 commit 4a46ace5ac621c0f84b3910bc3c93acf6c93963b commit fe93ae800eb846d435359b2d689410fdfc03f868 commit 7abbc26fd6673bd04d0044e001a7ce543427ff4b commit c05f1a4e2c4b8a217b448828c4e59fb47454dc75 commit 6cae235e9cd112da0a33dd261e2a01c93c825799 commit 6ef7ee48765fa3067858d11ecdf3acbc7c19df80 commit 77d2a71b94e3dd2966d8c595fc6443951f1e06f4 commit c3b75d4734cb82f7dfd42b0a8243f37bca85bd95 commit 526dcedf877fab36d2847fa1446975ab4285f226 commit 4d77688ff27c7d030b5113f0cf0b0a2a433b2a62 commit 4280e1a0ba1dca1e7c4c35d0c790dc8977d840a0 commit 099afadc533febb0ad789ee61eef41a3d5d8bab2 commit 16aea0f32f1de320550ec3488bff9ca86b3848bf commit e73c317efbf9a6ab2d1c18eff8343958ab6df73a commit 2b3374306b315be02db0f67d3102a0d1e1357270 commit 4c3d005307c87c7a35e85a307b8bcf49f1d56114 commit 344e694722b7612c00890ff29d402de8f49ffcd9 commit 77cdd054dd2ced6cb6f3420a998d6a0a65d6076e commit 32c2bc89c7420fad2959ee23ef5b6be8b05d2bde commit ead3ea12e133416fbd800eedb2fb5d0faf2df431 commit 8f4502fa284478a5264afa8a5a95511276fa9b80 commit 74c1bda2f3fa79a93e1c910008649b49b02dc09d commit 2ca776068f1f9ece3ab093f1be39c87653fbff16 commit b0cc4dca4f1066f385a92baf6214d7f313353d76 commit bdf6aa22204e1250e217e79e77db38753a6731de commit c1bb3a463dac815598362fb642a2746ff0e8f2f8 commit da0c3e2c907aaa4c6818aabc2691a667e3578063 commit 7df7bca56902e4d96c7b17b84378774f2254b707 commit 10a657dd4cbc34ba9f1bf16140a96789688f6cd5 commit fe6089c138e477d0b1a8bf369ae6643466fd7c2d commit 675053115e4e809643e12ca817dc9147562a70d6 commit 3809991ff5f461cabccd9b5aa39f7561f10918b5 commit c34c1c4cd68f3ffcd13c7169e7a2c35e267e34f8 commit 9556829ce4d0618ae4295af8e4b3dd7e38f43598 commit c7d561cfcf8661ef02218655c923a0eadbbd7520 commit f2787d8779b1b00768f8f397b3699698ed84300a commit fa2a6c5b9cfb0dfbd1b811b154a036df1017ce66 commit 49c55f7b035b87371a6d3c53d9af9f92ddc962db commit 542cff7893a37445f98ece26aeb3c9c1055e9ea4 commit cad7109a2b5e7d48466b77728aa16ce55415eea0 commit 0826edb6a5e5b32d38b89d2df3d74c4dac8828dc commit 3ea355b234d7d3e543b89e55c66d57db50ef1581 commit c52b3b489783b3b244c8134204d542a4d07030b7 commit 2ea6ec76430b87c49f3d82e284722dfbdf137bb9 commit 068b1bd0925387ff3a2900726a681ce697e4c1a9 commit 57d9898bee4fa8afcde83c158b441cef634ee47c commit 112a87c48e83cf226325735009712b515f48c495 commit 0d6a8c5e96833f644b91528de6a3a4398214fb9c commit 710074bb8ab0efac425a43473b8a3e057d645f82 commit ad935754dd865ffe9be39e366071275c99366285 commit fc320a6f64044f12128519ca98404b641340d136 commit d35d4dbcc80dfbd58a3ef18cee2b92f49a6a92c4 commit 23c50968399f270098f1fd0bc1ad83244dafb659 commit 2ee5ef9c934ad26376c9282171e731e6c0339815 commit 6b6636e17649d75b4d0cc55d3dff9e44511a442a commit dd5ba4ff4e924b14cb3c91335636baa6bacaf817 commit 96837e8beeefe5181adabab2da6e08c51dc0cf5d commit be6c1dd5ac074defdfb1471d28e0bb6eedfe3ae5 commit 17749ece0142c7c368834b6fb35d86bafecef69f commit e6d6f689435aaebc2e407026d9fdfc2d89bd7902 commit a5b7ef27da60c90bad5b2d41af3aa82da480a188 commit e181fa1ddfd5fce939e419dce3e5baeb32125987 commit c1f110eeb2a58df95bac8c11e5687c1761333952 commit 8d2f683f1c49b3a3c56ab92437722eda7e85bac2 commit 9755f055f5121c40c481c1d5dd02a1c3fb0e7953 commit 565edeee70db754e2e337ccd941f2dc10d276691 commit f20ca899a7c9e7ba48a5daec778607572fca5f6e commit 31e914a2307a29dfde8027cffa70292341bd379d commit 305448e55745dd4634272794c8c01edc872bcf63 commit a905ced613095c1ca406c179b2f0d44219d82381 commit 3e9cf8f055fcb42776156fa5f5eb9a5326f160c9 commit 88a24415220990d41834838d54ba028399649ec9 commit c86e187372da0967a82994fef7cecd4806cd2baa commit d4e0f16325026eb001c48a6a619886048286cc42 commit c1d53cbd83b87bdce318f45d4fa5505c3008389f commit 292e4fb05f14d54c90cb165335c6d4dfaf1cfb32 commit 493043feed006f75f43a1990ae2ae1178f277628 commit 1448d5c47e6a26150d885bb4a5764a8d75b9c707 commit 89aae41d740f67a7c8b8ee015c44645d218de754 commit fbd4cf3bfe1557b80774670d19c0a68d7d40fb18 commit 9a7e49bd7992fca8cae11d21ffe5ebe73a2f4c18 commit fd0310b6fe7db694e553a5407594d1361e68ce1e commit 566fef1226c1df5a7e71718f9ae012d4c1cd13f7 commit c4c6ef229593366ab593d4d424addc7025b54a76 commit aaec72ee90bcccfffeb33feb8be826efa4065a7c commit 50faf7a194b80c2f9a6f919b03036880e6620b0a commit e56b80d9fd291481e55c1e7b3483db83ec44b680 commit 8ac80733cf6f08b9fdac9bf6800dd81e9304b4c6 commit 890b6ec4a522799d36bd10aee993059d771c06f4 commit 4d0d77de9af455aa949766ecad1ac3232e322020 commit 120542e2c1d12e7d3594ceeaa6e02296af52cc80 commit 50105a3ad16cac406494038ce4edb91769911434 commit a14fef80ebb3efa5755b02790e067fe259bc8c63 commit c64a9a7c05beb2b71b7496d873654f88e1a08593 commit 3589fdbd3b2085e273b6ea1e9f27a211e0ef74f8 commit 2b0a750caf332a24f62f6960820d24d885f2efc2 commit 52a743f1c114727cfd51aefe584c7a4d82375acc commit c10a652e239e21492525fab295dc2fc303338ef1 commit fe9b286bd063791c7842c4caf6efb2825b537031 commit ca3cfb9d9b5edffbea1464079abaa89714e7abd6 commit 37388c0192bf1474ffaaaf38024dab49d0150f12 commit 5d4537463fc2eb1245093e0b62e200ed9229d00b commit f47a0e35846740ca72b8ba6be84b5b518abcebce commit 4fe7907f3775034140a518d1582580926da98ee2 commit cf9420cb122d055840848b039cbbc303882bc445 commit 38a1b50c0389f1ae385d007b02dec5f812b3e5ef commit 03f060b73f9ad9555f6251cac21c692df8112a68 commit 6f9976bd1310d123921ba2c20e8c101057087285 commit 2bbc6fcaf8c58a7a59900512be11b1775a611381 commit 115e0f687d29649b8805e3417e089e785b0ea61d commit c68dac968c460b89a4f6e3617ee5defbcd96eead commit 6cff894e4991a5e80324ba39369288fad1e3ed1a commit 08d1ecd98a8fe653d24644f072a87549e8503447 commit 775affb06a5bc6051f48c935c86c99f849e2da09 commit 9030e39cd115db3a93a6a5eebd70f5f9c462e4eb commit 4579509ef181480f4e4510d436c691519167c5c2 commit fd4d7904f5e38e4ff8e1267a53476cfa4a225708 commit 498f02b657b7a591c61cf269f7b02dc136231ea1 commit d3cb30f8dcbcb797bb4dd62dc8e85dd2334c3475 commit 781050b0a3164934857c300bb0bc291e38c26b6f commit a25efb3863d068929f0bbeb87a995df11507e691 commit 078e2bb2585a05df787be74642f12354a66a0534 commit f35294e13c19bf890f26bc1ec964b2d29c82f0ec commit d1260be706752dc01699b72222bbba48f42adabf commit 3153c6486008061297bfb0ec5cfd3aa4f8df66d9 commit 396d9b9a48723995416a05f0dab80c1dd6c21e80 commit 452290f354f04fca53cba810bd241f4307502f1e commit 27bd66dd6419c45e320f34ed419cd80833de1161 commit 3e3543c8a19cade02cefde83ee97233d5d90e7e5 commit 53bc2098d2b6ccff25fe13f9345cbb5c0ef34a99 commit 19b20a8021315fce38ae95607e5de389913471a7 commit 18ac700d75e81b7892c6377f6d8b917453ac69fd commit 0dd80b483b95abdbc3919cb360d17179a5f85d2c commit 9239f3e1807c282e3c6bced510640910e9b25c60 commit 84e9dfd5185285df55ae9068c89cde1a88baa7b7 commit b50364af7af47bd2107394b8faabffab59329af4 commit 2013ab184971c4a92c42f2bc401163e5b105abf3 commit ef9600ffd447ca3da6660b1f5932179a67292e09 commit 74e0457a62c697d388b832b0a52dd1e716204019 commit 6874f95816da4af4eb6a395ae434b823c4d7d356 commit 41b85a5202b775ce7eece34648a4b592ed18f5d2 commit 0242cd3a538f8393cb811d79806ab519228e7cbc commit 11a6b88b8cf2ff6e93a5b136ac04fd851a2d935d commit 8f8c61038768526d894e02b10ee1e4ace94e55df commit a61cf3883c83d02cc27b18c4cf8f639279587bb0 commit a46553837056d3a6119f4ac350afff8c2a99daf2 commit 73ab6ec90922f50b99c189088f100025a44d8ec1 commit a4b17f757d0b6b4cd4aa2fdc88ae7458235806f6 commit 9ddfa5a084f65115844e9248903be547a7610a53 commit d061882344279ebedb343d463a885118d7dc8978 commit e49a656b924ef125a2b00945a60df39cd09b8c86 commit 02689a2055d8a78b7cd0b722a591d1acff8b1e4d commit 826cff3f7ebba460d3db61f135798ce76b0d26ed commit e9d9f9582c3d90bced286a63d1f718d4aae60a03 commit c582ffadbe6cf64be4544d9d168bcc520bd0c984 commit d73dd1f4e40c095bf2f9824a42fc3608d7d188eb commit 645cc0b9d972b8bfaa983623950c3a53ccd0c57a commit 212e6562f33becbab1996261677a0b89c5ab8b54 commit 3f2532d65a571ca02258b547b5b68ab2e9406fdb commit 7cd70656d1285b79c001f041a017fcfee4292ff9 commit 2a2d23b68c4e4cd71c9999ea8b8608700c3f9ead commit 5f1176b419f9468f05dabdc8352bfa9b15427377 commit bc4c7fa02b5f9439db0d16a5071620747e43736e commit 4f232990dd83564ff41d6186ff268a9eeeb118a9 commit 57cbdbe65e5f9ba9bfd67b66bc3ce24ef1c54643 commit 23244f67ed96c76428bfdfc63eef642e4d627825 commit 6040308ffc9039d30a34bc40021e19d6da3683b1 commit 1d2271d2fb85e54bfc9630a6c30ac0feb9ffb983 commit 4cdd2450bf739bada353e82d27b00db9af8c3001 commit 5e18b9737004ef6f34862f6fb39d3c9027a4044a commit c5dac1f62153d08a2404bcd6292d72f8290c2c1d commit c0a808b06939a39f6f90c3a33436365e6ede0618 commit 78ad449dc5c88dc540f8cc07d87ce2024686cbb3 commit 372b8307a6288265fc06f2d7a6ccc85e21167d37 commit 79af598a5baefc3a92b31ebc5b7aff00b38dc633 commit 5d96a01549ec6eb5515b735301a7f1c6c4d481a6 commit bd6e07e72f37f34535bec7eebc807e5fcfe37b43 commit 22da19f900be6b90b6984522708b203ac9bce1e6 commit f9325afc23268567d9a6a7452252200cf79def84 commit 170dcb67a208b6ba93dc18be607b90f82520749a commit 606be062c2e5324ade705e463b45d9262adabcab commit d50d16036fb395aaa3c4ca0333b55cceadc81874 commit 393534f291d821779203cb74896abc26e07160d6 commit 6f07707fa09e1dc58c431d57c25ef2e68b9bec47 commit 09eea212653304522e9ec74cdda59721af8d4969 commit 5a06f68dbe0fb9cc08db9cfae310c7933aebd6d2 commit 5a363c20673308e968b6640deb73d7bf77e8b463 commit c7fbcb7149ff9321bbbcc93c9920de534ea8102c commit a193f3b4e050e35c506a34d0870c838d8e0b0449 commit dd54575a83d85c031d9c1c4a78607ec3c95696ac commit ce6838afc9244171cd07620bbb82e18695c491e9 commit 7e78153aef7f9efcb935487402151de31e0836ad commit d5e781a2e50fefbcde81f10e0e9e2669fadc9b01 commit fac73543fff0ff23622c98879c66d069778c114a commit 9a7fc952717ea63d13eb9d42581af52ba34c3914 commit 1a085e23411de188ad0615f40a9399d80d1f7368 commit fc12b70d12d07598cde27cc17dbfafc2a2a33ff8 commit 58471f6384fd8f807d3ff2e771c34f71c473f6b0 commit 4588d7eb3b530b471104d78a19f82df701ec8c25 commit b8d65b8a5aea3309c14cb899149ad5ce93589f58 commit 912ff2ebd695c582ca4cebf833ad73a378a99f23 commit 73495209f645183c84a86bc067818a8c4ac20fdd commit 1b5bdf071e62ac57ad699d60ddbd392b266f58b0 commit 5e9ddbdcf730a2671b9a07c6de45b53f139995af commit 7e2e69ed4678a4c660c4727e625a396b06c0c372 commit 2cbb8d4d67700b4ea7373a307676fe312251b257 commit fa78e367a24977d76832fda6790e9e1c35788f80 commit 49c39ec4670a8f045729e3717af2e1a74caf89a5 commit fe69a2dd88b2c741bd55336d74dd484d7b848679 commit aa70a0996b0ee5950237cfe5f039285eda0c1470 commit 1e66f04c14abdee103221518c4f7cfb73574d2b9 commit a59308a5fb231aca72b9b070a6577fa49ec2d72a commit c6c57446383a3dea098fc324f0c7f696c451cf3d commit 9365fbf3d74bb6febfa7e31cd1c32d0d4d4b8393 commit 1cca6087422d84fee7450a8eb115a0b27ecc7e79 commit 9a17c9b79b4d112632ba44a821799281445eb28f commit 4056b033774664fe878d25f6087a1c41c82d075e commit c531a58bb61bc7eca3d58f5adc08a246af262244 commit 420185fdadbf0f74cff90f466df5c44c1ff3dda0 commit 3356c38dc1b6f74717a9c437b47e9362c8c96ba3 commit 6bfc7c7e175e6ca8b827cbda382b6e1e6585954b commit 574c4183ef75117f763e9f2b35e08c85f5dcad2d commit dff63da93e458489d0ef7e3a92e1b14de450414f commit 56c5977eae8799c9a71ee2112802fd1f1591dc3a commit b5d1d755c1344075d4f16a3e6183ed04b4d022ef commit 087451f372bf76d971184caa258807b7c35aac8f commit b5f57384805a34f497edb8b04d694a8a1b3d81d4 commit d5a28852e86ef486ee34e4cf72e8ad99a36f4fc3 commit 26db557e35d6b229b31078ebd6939b4cad936f6f commit b97788e504daf4ed455ec35047977a3016355571 commit ebd1e719695824ca2b9225094a669fef35620676 commit f0d0c39149f817e5ecdff8fa164f44da455b3317 commit 1f6c9ab06f61d86a80056ab57f9c6b7beca3af27 commit 80c5f69b94249dc1e0a600cbef3cc055ea432af9 commit cfd3f70ebd9e761754da8ab195ef7ff476d5cb25 commit 1328e395fd62070a29dbf28435ef8da1ba780e6c commit b57d16bdd62cc8c231aad8385d667249939cdfe3 commit 426b4c4fe52c6983b40f4d904a4ef430409f315c commit 64266f0a45c8323861d3756cbe3dc419e973917c commit e43098f6abb033142810e695c1b3d9cf61e19849 commit 4cbe435dd68884a9f6669fceb20f3e70a70c7702 commit 095041dbfa03a193c7e76c00b0cdd1cfcd45869e commit 6ef86fa8ccc8a3200fc89e8c9b50f1b90144b65c commit 0ec283cd043dbc65e0f17230695a6ccdb0f439d4 commit ec581edc56d39d3a6450894f26583b36480acffa commit 548f212514151b0d6ec911c87e61f189f530255b commit aadb06f9c9729ee3af1543f54da966644ebc5be7 commit 7a47c8820a1d97e6cb5bcef6b65529f1389b0e13 commit d493a0244fce12de22a220468e6628bb008a0e58 commit 68ca1c3e57c40a205de9d31518fd1dab5f47f520 commit 02274fc0f6725988d4a67005cca6f40c50679499 commit a6506cd845824fe92b1760aaf104011cc04dfa78 commit d3c983010f6faf59eeae1b92e2fcfe0696e80eaa commit 8bd1b7c29b3c3fb537265a3891c1fb8e78e9da45 commit 73729a7d079dff45fa906a5b8bdc4a5edd775ee5 commit dd0ae064e71ada9cb2dd526607e140c7af690646 commit e4804a39ba5f72f0b8549445fe39725b2d1dff7e commit 046e674b961594e552fa6cd3cbbc34086b9580ac commit 7eb0502ac0538ea9746481f3d7578940c8302c42 commit 48c19a95f15e787bc46b274129da37bce06df259 commit 04f0d6cc62cc1eaf9242c081520c024a17ba86a3 commit f5dee1283f6289342e720446ac777ce3aaf95f13 commit 646596485e1ed2182adf293dfd5aec4a96c46330 commit f58a435311672305d8747f40e35235f7ed64ae69 commit 37fe0cf5fb803d98efd7feb64b408c9b029c1085 commit a713ca234ea9d946235ac7248995c5fddfd9e523 commit bc30c3b0c8a1904d83d5f0d60fb8650a334b207b commit 4121113410fe16649d0a66c81715c8fab7740b14 commit cebbb5c46d0cb0615fd0c62dea9b44273d0a9780 commit 4765d061d50559ce3addc9a86433c35f48d76085 commit 0088d39b6ad9f7d814c10e7188aba0ddbc737883 commit 9cca74b51ea543f4f64464b0347ff5d43a4e57ba commit a37795cbdff243c198d9cf9615bd5d016bbfd546 commit 99510e1afb4863a225207146bd988064c5fd0629 commit b2e7d636d9ad5dc7e84a95b004345cdd2fc82b2d commit 6bb0a0e0fd358d4f9f6ce4c2d36c1f80d7496f6a commit 7d938bc0119507d11dc02cc6ee47f386cd5d2f0a commit 51707f22744439f0ba009f0665faf7964b4e1b16 commit 6f51260f0eda41a19dff4023d14d543907f0f967 commit 497520ca1915a91188560a26c2dceb9b9c43db4e commit 6abf2fc0072b020cdbb9124ea935603b02502e6c commit de511df7254ab22ee777ef6049547c69c1b2c78b commit 5ed597daa4202e92472953fbfd82105f10aa35e1 commit 2052287a74c95234eabe7a858f157a88d6880029 commit eeb04fa64af18cbe03d1067a435c6423da47b6fc commit 10ceccb8d7b6d9770948da605b8da4cb5d3598d3 commit b0b0f2d225da6fe58417fae37e3f797e2db27b62 commit d03a29e0b1e10820631a9ba600ff669161001a84 commit e6e1a304d759580d2dc0736d439b56e9866cf598 commit 95c3d2758002d588d321ad231c04c6f7adbc4838 commit 267c336349db0e624d217f9762bcc1da414f4b0a commit 865fbc0f8dc21e17dc3ad9f0f1ebf00a6696b2ca commit 8626afb170dc44ed0512e04131e4d8eac0c5ec57 commit 527bab0473f28236e4587c7870586275c1ef5516 commit 6164807dd2989fd4c1435a6b3c61453e63c4e37e commit 448cc2fb3a7b327823a9afd374808c37b8e6194f commit 625097a9e0c614251cd9ba89b1a416a36495768f commit 1d925758ba1a5d2716a847903e2fd04efcbd9862 commit f441dd33db4a5ba306d507e70e97f4656d526e38 commit d25e35bc26c3ca8cd728101545cfb3e86a5d7431 commit c09bb36dd1230838d49a5ebf409df804a5ebfdaa commit a53b554b56e0326edb2ddbbf8c76743191f7819c commit fd3b2e21b8816273ca7813a8c9455c41ff77a96a commit ef9d5a54dae9be855352ead302a9659bb8610285 commit d26c4ffba6ac16b734749b8624124fdfced41453 commit 430bb83dbdf3c86768fcf2f6fba2982823261f6d commit 2430be71c0176ef2757b63df5a25aa5c9e488e25 commit 2665f63a7364633ad90b2c58167ed7ae224e5d33 commit 189789a15f77239d03caad68fe4245be92d7f71c commit 21f45a2363bb0c96ca3e942d7207e7172514b5d2 commit 1f49355c4c5610b687cfa151ea29acb12e8bd72c commit 3f232a0fdbb17c64ee9afff1c16efe94514456c5 commit 8fa6f4c5715cee5dfc04f98780a15eb6d1da5be8 commit e90f0bb0c7c7099a0222b00f1dd882d349f9d857 commit ed12f3f198cedbb164129991766e1a42eecc0bac commit 6c08e0ef87b8b4c1c243719a561c354e893c415d commit 33155ce6e1a846759ba218ca8aa792305b351133 commit c96cb65989036feaeaff371551b40910f32f3c6c commit 3ebd8bf02380ddc32556ee87077db3917ccff40c commit d9a69fe512c5f032556764041760e8d5098fac26 commit b295ce39912cb10d3bd34fba556e4009b67954db commit 6c5af7d2f886bf1f1de9cca3310b24a8d7ceaa47 commit 1da2fcc435114ea5a65d7e15fc31b4d0ce11113c commit 88ac6df8af2c1fd02f2f8865257d8b632abeb688 commit 7b755d65100eacb63f81c35addbdb0a0ef5806b3 commit 8b11e14bd5793cd0e5cb65055fe51588a779f05b commit 7b833d680481f463276aedf500696ea25698deaa commit 13d20aabd6ef501229ac002493c6f237482c47de commit 24adfaffd5adecceb0a2608d5ec2e47756b8a671 commit a689e8d1f80012f90384ebac9dcfac4201f9f77e commit 92020e81ddbeac351ea4a19bcf01743f32b9c800 commit 6edc8f8aff61a6512464a123c160aceff44f6a90 commit 8882f90a3fe2457c8b3f86bbbbef8754f704f5ef commit edd7942085555cbf8da50c855f35b3fb84606c38 commit fdcb279d5b798d13b4365bdcf5548855f6c562a1 commit e39938117e781d0bd21ae45b6c15134f4a6958c5 commit ee2f17f4d02b14549272aa69da17bdcce2879d1b commit ae360bf1821917843c00637530da5b5f5c3c33c7 commit 79aae67ef8bbc8df09099290fc2c3423dcdab224 commit db5b5c679e6cad2bb147337af6c378d278231b45 commit 1f5fc7a50955e20c019ddc73575d8a663301d999 commit a0e7e140b5b2cb76e9b455e548234c22585001b6 commit 4aaea9d72e9aa01bfad7f48b3ad9d0ed591e7cb2 commit 524a0ba6fab955b14d4ae9a15edbb853e9cad426 commit f8fb5cd412e31d6277c5b0107bb37d677107cbc0 commit 85fb8bb9d4a5bae9d1abd0d21550517a40ba81e9 commit 1edf5ae1fdaffb67c1b93e98df670cbe535d13cf commit 6984fa418b8efde7662af151bae4b8dc66e65fcf commit 11b4da982791dc11dde66e9f0954673cbbf4c690 commit 7057474c83817cc707c4a0f08ed05774659a2fc9 commit c18c8891111bb5e014e144716044991112f16833 commit 3c542cfa8266e3364938d055b3d548b7bed7f08e commit 0af4cbfa73afa814a80eb205a9cca8ea78bcc2b7 commit aebdd7428c65a8e2e96c1fd2fd89b4ab90bad913 commit 01e526285a6a591900e7ed7266c1723fed366754 commit 7570d06db73f9e5a97cb55bcdfcc3b15f6f46b9b commit 617ed6c2f0365a62f21936449ca1701937027339 commit be373fad541b60bb785ad59c6daabe0298b39cfb commit 5979873ebbb57b72a8f88ba26d3bd405981cd844 commit d22d446f7a1ccd0db8c138749dde601388b2327d commit b6b56df519a73e35ac3f7d268affbae63221168b commit 86c82c8aeebf6db5df8ab73cec8333853c405070 commit 0bae5687bc689b64343fd8b52db2ad9e448f3f16 commit f53e191e2be811158f59024524b509d39808e454 commit 6d63fcc2a334f7bd15e4e9b1db50a19335d2af4f commit 4f48034b7fceec6845233fd71a0106354bb0470b commit 0bb24555858403671657f6dc025d2931e3e857bb commit 16f0c500f05b029c37cfcba61da92611192c1a2d commit a5e00e1135b09ffb9404ee16701d20b6ee259b16 commit ae6c9601da7addf1191bf54d5d279daa124b71df commit 8acd97545008cb0aa916e6dea5e61f364de9eafb commit 11dff0e871037a6ad978e52f826a2eb7f5fb274a commit 7f41c66070053e269b2082be964b6ce9f95776e2 commit 8ab1d0923c2bdd708e041a765c6e7ca57e6121d8 commit 4f30d920d123c58b6e55e6ccd061673751aab5f8 commit 7b37c7f8f505abc55da54a5a9d22135d77ff73bb commit 37ba5bbc89787aa6029266fef771ce1fc7f596ae commit 1223c15c780bc967e150204ec11992f39fdc85d5 commit ca4b32bb2d723c705fcce1cfb618a0cd19185f3d commit dc78fea1e7fd895990179e2b32164193a9fd17d3 commit e771d71d8d588aa0c0f9ba3e1b81ac5989ffcccf commit 3a50403f8b119d6be4f9935cee97473a2c90840e commit 514f4a99c7a1b635f7336a6e4732e6fe3ec972a9 commit a0c55ecee10055901c9c1b46d0d129cb6b51fa5d commit 7ad153db5859e5e156307865d9df7f2a392c1686 commit 2e4477282c8cff9fd2155710ed9168f38faa0b4f commit 71ee9236ab9e7e7b76be3d106724c35c5f934b85 commit 23eb49251bd6e169a57ed938c815f6f47a312479 commit cc7818d7091d0b07d564048ba5cd67b1210e8768 commit 081664ef3e43dce93710ed5ece326478edbe0934 commit 1f5792549376b3c20639cef7b787cf6262177b66 commit f6c466b84cfa78807b7f71b8adeaf209b4deb72f commit 05d1c76107e33346fdc18fed95f28c9edde8a760 commit 8b1f7f92e57d7eff7a3503763dd2c8e0357c36ff commit 004746e4b119a206c27c6ea0f4b6287bab16a9ad commit 6385eb7ad841bf938427f4fb4e7880ed385744bd commit 5652df829b3c2cee92bd0903a0e70455868fa1a5 commit 83ddd8069f98886ce1da2b506602220fb0e4a912 commit 11632d4aa2b3f126790e81a4415d6c23103cf8bb commit 16d69a891970a8f97f0aac4e7ed0ccbf167a936b commit 5c2625c4a08cf9b19cd070c1b30c75c9e5317853 commit e45b98ba627691c6b577244abfdb18ef2621fea3 commit 8b91cdd4f8649560a8ac37b134008fe67d94ad4d commit 3ccadbce8543dc4b2933509042b3d7e71ef05976 commit 6e22dc35837790a84fc040f08e5094b2d5d91477 commit 35f7775f81bf8147b5b8b11958e15c0cc364b7c0 commit d76f25d66ec83a8166f0c0be79bbb039d66062d0 commit 6a2d2ddf2c345e0149bfbffdddc4768a9ab0a741 commit e9aeeba26a8de1f553305722d017022ae7e79280 commit 69d846126e1653ca9043c3766c66684132586941 commit 447a39f4e89d992f82f03521d46746f6a4348578 commit 74ba89c08e309bfeb2b2f401bf588ab54a1542fe commit 95d35838880fb040ccb9fe4a48816bd0c8b62df5 commit b93199b2867646be5b1c84cc0a844df023877806 commit 2985c96485b7ef4e015d13dc3081fb0479260951 commit a21800bced7cbaf7bb8f5281db17a5d7ef6e197a commit d0c4e34db0b0a012352dad499a13738b4102f277 commit 05b1de51df077a2089e3d8ceec68aa687cff15db commit e580ea25c08d9e89593bcf80640e29108f0542cb commit c47160d8edcdb4d9fb2b333569a3fc13fca5db43 commit 09717af7d13d63df141ae6e71686289989d17efd commit 19cf41b64e3b150cf64fa01dec13f20dc86d95b2 commit 86baad1941702aa9b6fb44d6f150a34e9e4e1fae commit f7fd7814f34c97a6c3388b25db18643309cff43c commit f8be2c5971f48dacbd0e6daa44184dbb6f283dc4 commit c99907c723c6f3f6cae63201ddfac610be13f997 commit 2a67b18e67f30b526ce69b7796a16d847e94e2df commit 44505168d7432f983bc31c5b2dce72bb4de98832 commit c7c90b0b8418a97d3aa8b39aae1992908948efad commit cca084692394ad2733995241866fbb4b1b8668bc commit 49a8bf50caa2fb0fb2eb1c89923ea61192227c32 commit ff20afc4cee7b65f752b1da6d5da4c0bea1431b9 commit 826c387d015247df396a91eadbaca94f0394853c commit 28b5f3b6121b7db2a44be499cfca0b6b801588b6 commit c451af78f301ff5156998d571c37cab329c10051 commit f6be23264bbac88d1e2bb39658e1b8a397e3f46d commit a85b1cb23091d3112492f30fd92308cf4dcc4fc6 commit 2696f9010d21aee60be06b2135806e11c79ded8b commit f3799ff16fcfacd44aee55db162830df461b631f commit 96b1c450b386b34479c0d6c5e24ebee84261433a commit 70897848730470cc477d5d89e6222c0f6a9ac173 commit 627d137aa09fe58308eac06191afcaf865bd11cd commit 981b3045460d1c6f201ca83c1f479cf38d28a393 commit b7e7e6ca1f7b5abc9a4d13c9e929e431240d9f48 commit b9dd6fbd1587ca1204e6b5ea536115ab3fed1798 commit f37668301e362a0ed4b0b2ec6866f0a02fefa4db commit 4f7ee199d905c7a073b676ac4146b964dd651395 commit deefd07eedb7baa25956c8365373e6a58c81565a commit 700de2c8aadcae459a4db19b943962e709df45f2 commit 85c1b9bd13b0b298bbbf128e26a470ec54c4d0e3 commit 232d1d43b522b64266a16606e918ce92a8a0b244 commit 3c2d6ea27955cfac8590884d207353eece8c2cee commit 3867e3704f136beadf5e004b61696ef7f990bee4 commit 94a80b5bc7a23fd5ccaa3ba43ce25cbdb9eefd62 commit 6c18ecefaba7ccb8150bbcf997f7a796a43f786b commit 3700169886659e678fe37629ffcaacd6e559655a commit fe9c5c9affc9103686aed15966b4b54acd1f30f8 commit 81d104f4afbfc6abb3b602356cf7263f69f7a156 commit 50b1f44ec54746e5332f4bc87c70c223192e821f commit c022375ae0955b6d97ec438d658ab43a857a010f commit ebe5ffd8e271e328f33c4bc5cb8cea2b4cf8e058 commit 9311ed1e12417c81e1764d7656d97d9d459f9c5a commit aba3c3fede54e55573954fa7a7e28ec304557e50 commit a896f870f8a5f23ec961d16baffd3fda1f8be57c commit 9602044d1cc12280e20c88885f2cd640ae80f69e commit 0a043904187b31fc34369d31569186a5ded23e20 commit ab644ea6921a2cee9282bc96c35b29b17a8026f0 commit b995747511f6d9f6d6f55bd094e3a5adeb36b55b commit 7238b42e1f4009cde5c67c2c5f9d35d472240ffa commit c11099b0d1aa3e48e9578b440886d8b29779e8ba commit 2f2a4b1879bf6448865af9bdab61d1b7986f6dd0 commit f3edefce70887d78ff88d9f179bdec5ea62a50a2 commit ee347d5b40a14dd9a80dfb2bf4d2c5b3b4367135 commit 4752c85b23ec67586e04133899c9d763cb4d629c commit 007f8539d03d557157fce2e5cc6016275f835906 commit 71f8f119237ff2dd4fed49aa79eecdc50ed41ddb commit a872c152fd91e815ce1a2f251ff06d693119fbbd commit 992110d747177e5815cf89003732ae69cd70913f commit b7675b7bbc3c4c64731d6df66a1df7abd0fe2f9e commit f0dc99a6f742bce9f5e45a6ca48bc4f1f8c6bac8 commit 2c1f19b3272c0c09184b1cce592a91dc34a83506 commit ea6c66449692399005f975b69c72a9e1797871f2 commit a899fe8b433be3d2c6bb9218f2b885d91f3079c4 commit ddb267b66af9d49d54e3d3ce8a6b4e4e7ad9af0a commit c305ae99dfd4d0fe70c7fdf13ef5f7650a804ea7 commit 7b06894b9b902f540b23e5c235570b224d63ec5e commit 4ff22f487f8c26b99cbe1678344595734c001a39 commit 7794b6deb12176112cf6050dd8507cf216e801b9 commit f2bc4517310c37cfeca606079fbfdd025d35c4fa commit f35ed346ef5bb8e5e89802c4dbc8b311693e39f7 commit 0e959b4e993b095641f405972bc56d8aa72eadb6 commit bab73f092da654d149bb4771c418bf585c06044a commit baf3f8f374062573c469631af03bf7fb1725896b commit b220110e4cd442156f36e1d9b4914bb9e87b0d00 commit 69cb56290d9d10cdcc461aa2685e67e540507a96 commit ab50cb9df8896b39aae65c537a30de2c79c19735 commit 34734ab72763d51c6b809ee80ceb04a161a37dd1 commit 4b19f6b728c7ae0cc285d2012d5aa1ab99be9b39 commit c02343249c26032afd4774052dad434b4b4dfdc2 commit 7cbea1b61788c05a5bcb84c73ed5ed90bb2e0a93 commit 487970e8bb776c989013bb59d6cbb22e45b9afc6 commit 2ebc9e4af0291d2e8d14ecc0bad8f36de8cc6e62 commit 92e9624ad9468bdfcf652ba2cbea9d8995397fa6 commit 1538f65f18ee600dd405350d826ec6af05da79f9 commit f83974a408592dee672f9a4904cdc2149c6e161b commit 5734c1774d8f32ea814c2904feae29b4582dd219 commit 726a2d779f0ede31c4739456df1a7a69d10c2a0e commit 15162c5a36abbf051f957ee8114185b899c6975a commit f84b336a2ff7473a7c6c15eff6c4ec50aee476a3 commit 62f887ae46861484c5ff2b8880c69403611c88b7 commit d96c5ed0e37fcba4071d29fed92410b3a4d9cdf1 commit 248e251567a013c960d08124a4abcfc3e2ce6371 commit b6e201f5f13bd61ab8e5187daa0e149826cda154 commit 2e6c99f88679121eacc75196bdf6da8b0e513066 commit 266790871e8d20d6074c1cf3ede7ae92efc61bea commit 873c995a40a5c2324a5d1e890604066b74914b3c commit e1521cbd27aa100a86b54094cfa4387a9bcc2f63 commit 6e4d2e45ef3eff90e2ee2dcbc29e356158c75f0a commit 004f80f91a7831cd32970e1078bb00594d042089 commit 62d4874bee61d971b74dfd5fcd8032ff33746885 commit 32024bb85ec2a8475b89282726121b922caebad9 commit d2de8ccfb29909272fce4eb5cb2bca4fd878df39 commit 825bd8335e4e9fccf33b93813693409b4484ea68 commit 606754fdcb20f781774a279d62bb0852fcb2b79d commit 98009fd73bde2d66fb449cd277f69932fd12051d commit b156def9912fe6d9fd7679c9843f80cfcd9d1429 commit f4cfdbb02ca8227cf4de454071f20cdd09c37cf2 commit 0cb9f228bc2b3871fd1fcef87897f0a5af959343 commit d3e27f7c511044c65b27d087e55b092a3d97e8d7 commit d5ba72f3c18e4556d99bb0360279d0b1e9544359 commit 812e338619f166d3ab864123b2572523f6e4916a commit b1e4747259f4173354b914fb50e547ebb80fffbe commit 67b858dd89932086ae0ee2d0ce4dd070a2c88bb3 commit af10ec31a81b2f8b9a3b2d1ef05f553cc9495701 commit 8722ded49ce8a0c706b373e8087eb810684962ff commit dfb924e33927ffa51e197acd58ad1c5edf1b5ff5 commit 8697c410457fbc50169d2c7db4a7eef9b58924a9 commit 83b965d118cbab1dbdfffdff8cabc8c1cfd183c6 commit 5f97816762722cb08a4e0a124fec02abe0a2208e commit 5d50c8d7ed59f675d25cf061b5ca67ebfa7b450b commit e83c18cffaedb1cd5da935b06d49308f92ea50cb commit 17815f624a90579aeac4b700f8434e9ff6a6d001 commit 1c7ab5affa5e73ed75732be2f2fabe1ae86c82e1 commit 61b98486e4314d39d43921680d68b46c3083b22e commit fbf8b5dc6d9edd7f807f7a6f44ff4c18f96f9efc commit 491fe469ad0e14a06dce7ebc6a19c4fc3f9300e7 commit 2fb352fa627052c9e551339fe27158df305bc622 commit ba884a411700dc56dceedfa53f9364cdcfb70427 commit 2060a6895b768d907fd3efa9f52981e615171ec2 commit 77ab3a1ecb1986c17644c48b66d9de0a9a0307c9 commit d4a23930490df39fd076a82649ddba6b3a6c8216 commit 42c632b0555ed0500ff26b329e194fe77d2b6123 commit f8378c0403813fd7cdf0eb5cb878b1ff290046c4 commit 27cc310f13529bcf24518854b10f098de7fd7d6d commit aed1faab9d9563ca5ac5139b0170486027ec74a7 commit d682619557120a5f2d460b822f5ff922435a5261 commit 81bb9bc95355055e2fa297b9a81e9d786eca9903 commit be1ac692c08971486d68a88f39fc4e2cecb80a8e commit d29b7980b55ebe96ba167aeb88e81775c141f659 commit e885d64785aa56e10e432c3319e3b5b0a2d30ac2 commit a1f5e392de78f122629412d6e4350d1c887f1711 commit 4bef85d4c9491415b7931407b07f24841c1e0390 commit 7b201d53bc77e8517bd78348385b6362dfa33a4f commit 1e146bb88e26b6d5454326f7591662eb095afbd8 commit eb9e59ebfe7354c18d7d6f59211fc7a7b794d019 commit 800de20b1dbdfd85e303a42b0f27c0162ce18698 commit 32b119c896121e71ccf1202499e7f0292c73e1f5 commit 41f91315b5be5a5fd4011c193f6a14fee34fd027 commit 6fc429c81a64b0b77fea38809b01ae94a9348025 commit f7ed3f90b2c69ddd2414d9839ae334c10a606c55 commit 30c1e391978180dab913132201b944c08054c822 commit cf63b702720d734cb4144440d72d4b2ac6c494f8 commit d374d3b493215d637b9e7be12a93f22caf4c1f97 commit 20543be93ca45968f344261c1a997177e51bd7e1 commit 0b7778f4a63a1e0dc10af27201b99d88fc0ee7b0 commit 3c021931023a30316db415044531b116b85e6ebd commit 8eb7fcce34d16f77ac8efa80e8dfecec2503e8c5 commit 08c7c122ad90799cc3ae674e7f29f236f91063ce commit 31d70749bfe110593fbe8bf45e7c7788c7d85035 commit 97c8ef443ae1f6493c02d6f433eb5a2b72d8b438 commit 03848335b5b1faa4a4641fcf30b7c233579a45aa commit 52407c220c44c8dcc6aa8aa35ffc8a2db3c849a9 commit 4a75f32fc783128d0c42ef73fa62a20379a66828 commit c9ee950a2ca55ea0f63d0893f796b2eb089e7900 commit 67c430bbaae153433f76807d07b8298ac4714822 commit 20cddfcc82e642e4682c48af91f0702fbbd623a0 commit e08a7d5611b876bf9da3ef7c185d26dcadf24dc9 commit c8a04cbeedbc9f71c475141baa656f14f4879792 commit 4bb713375e9f4d8b6d540ff47e61a4e357c4229f commit fd2b94a5cb0ff4bb163cdc4afaede6527eec5f7e commit ae710a458f0af6ba2b991ebdddffc66e8dbd765a commit 01dd1fa26b85167cd19b04b10e015aba3e243d08 commit cbb8a7957108e96560c43953f70c377d8d9b6643 commit 927167f37fe03f017fb0a89ba2c4d35bc51f233e commit 7d41745acfa722309dc7dbdcf8801452c53e936b commit 94b541f53db1ec6b99fc2186b084177cf6e18824 commit 6306d8dbfae6abbc049cb92fc7cf2acbcd983f8d commit 21a6732f464894fa43fa1d43fdc7570b454b970c commit c83125bb2199bc304badc98fcc7c79704053aeb4 commit ca9216246094904119b94478176eae83090f0fdf commit fef53be028740aed15c288534e8f15719fb49947 commit f122a46a637f9231433d30aa1f9a199f8688cb97 commit 0b64e2e43ddeb010d3f2a45f978e6cb919cd0895 commit 8aadeb8ad874b3b13431fd08c1ddb6d5e0212c7f commit f4708c16a6d7da93baee9ebf9cd46359b4a34bd7 commit 8ad0c3fd132bef4b849b3770038a6b533fa49579 commit 8afa13a0583f94c14607e3041c02f068ac8fb628 commit 24df43d93d72c5bb86165e5e59c64f909ab0149a commit b05fa56425f5028520b5c1457b96bb68dc74bf7c commit 853369df34fb61f47ab883586e14d0fcd8c47437 commit 4fb9326b96cbf9f751086969161a6c1d75bcd8f9 commit abaad3d95b5117a17886d37cf0228712801cd259 commit bf625870b8309b4af75f9c19d287d0c9230634d3 commit 9ca476acd5e8725706c6ef3b0d94d3005836ffdc commit 94eb7de6f4bec1c8bb99371c21df42cac0de6ee9 commit 1ff9fc708185a94c79d4def79c0a500829297575 commit f8eb96b4dfbbbadfb73ee9a1cd0294f9e2762a14 commit 15bb79910fe734ad21c765d1cae762e855969caa commit 211b4dbc070090b4183d6f9db7dd3bd4e6170447 commit 43531edd53f07cbe977a0b33dea6dd6c29b21fea commit b07bcf34b6c98a7dd540c94e804c39a4273da37c commit 1c66496b1391699040d0ddda21fe1979865f6eba commit 3d832f370d16a8757024b2523c4c6b64dd7eac6a commit 76aee8658b8f5836ace0a423157f29fcaec65e30 commit 87bb2a410dcfb617b88e4695edf4beb6336dc314 commit bce45c2620e2142eb18bfb4b0aaee8cb83429a35 commit 35291c9c02540692039cf7231f7de42fc89be096 commit c7c2918849138057cb2206b4fe10b65f02ab07e1 commit 1aad06f89291c2191f7c352bcd63cdf393f0f87b commit 14567eed87a39d0b40d3e1444f0ddaec013c1a52 commit 0cdbab89c02d47a277577a90d02e3f214d2af9ac commit ee0ff28a497eed4e23e0d617e6f5feacca69e0f1 commit a09147188f7fc0d1ce9b5fb6b7fa6a81c6806073 commit 754d6275e9ce6310813087628ef2e44b6c65e23a commit 2bebea57c2efeb7c4e981f5ff76bdca7e58ab815 commit 63cb9da6fcea9029da8c9d1cfc93f1558b229c1f commit 6678916dfa01251b888465e2193e28affb23fca9 commit 35d4efec103e1afde968cfc9305f00f9aceb19cc commit 013005d961f7d5d1b422ce7f281fba9ffaa2b52a commit b2657ed0a56f63b1789c596b36ddc6b618726661 commit 40aa583ea345624967c5b6232082d7b839de537c commit 7e4aeed859d47474e40f43ef6ef3004ab52486be commit 655ff3538eee3a3dca7103f97de883e033bd1011 commit 123202744955e62470174fc3ba666a4d98062ea6 commit 175ac6ec6bd8db6b7e08fed8fd189bd492015b28 commit dd26e018aaa408faaf16168cbc7e83c2b159ae63 commit a5f67c939eb2d3841c110c5355bf2226e1850828 commit 85a774d9ada4eb9e83044cefecf2712a2d7171bf commit 0e2a82a316825ba1d0bf35703ceddd4840e59bca commit bbe04dec5c52a075175a627d510140d386a71f98 commit 2351b7d4e3fd636f8ce0bb9554645dff2dbe86ce commit ded331a0710db8e92f3efd1c8040c0c52997c9b5 commit 64cf26f04ad05ac7b4fc7d3339d893f21a06cab1 commit e105b64a364adb0fd0b780050441eb05468fee33 commit 0771c805918c56b335c8f726e147b19c4f78565b commit 726be40607264b180a2b336c81e1dcff941de618 commit f864df76ff1021b21776a7df029c0da884794c28 commit 4853cbcd94bdd654e94aa40ae718efcf5b6ae57a commit 0f7ef0b99da15b28fad78da788e55adc642283c8 commit a60831ea3ab2498d16f625c74b9e782383614cdc commit 613aa3ea74ae012d4ff7a6e6ed6d288b6212e4f1 commit 48733b224fa7ba32de9e9a1a8ddc8eedcd603919 commit addaac0cf75dbccf5c33a5c03d6b22a6bbdf9952 commit 4046afcebfc3c8c0dd5666c2671b2c192b344f78 commit c40bdfb2ffa4cf16b818fd6c77856e6d976f52ff commit 43a80bd511aa6077a79768335211f71760ee063f commit f6dcaf0c07480f8b7e7568e3bf3c4b776026edfc commit 32f0e1a3307f1372824dcf28b90fdab5aa11b54f commit 2cb6577a303425090f3b5f4c40096d45a9048875 commit 2c113b999c20a6083a9d65f0e2d2537ed818b395 commit 4ac955baa9330742b1a49990d830963f91bfa020 commit cace4bff750ff4f55b16c3aa90aa9376d7488929 commit 34f3a4a98bd388ad6298c42dc9b00c72d3398330 commit 6ff7fddbd12064dc9de03e0c1ad03e13f6ba7af8 commit 4a74c38cd67b3e74a1dacc76c7ac5c276bfdeab5 commit 28fe416466f2f09b47a9c5e81fa1ac140512f3d5 commit 4fe3819443a13f8ecf11f53559ada5711dd8d4b1 commit 2b36afc694bb3eba5a065c34fa0d735d623ae66f commit 929bb8e200412da36aca4b61209ec26283f9c184 commit 9be9bf4e3a5efc2991375e22ec9956dc654652ff commit ba6f8c135af02f8a38fb9856cfce6351a90f1ea4 commit c1e003d3ff6973aa896eef4e6a6d432e6afbff60 commit 33c3365ec690c3857ecd579eef75e36a746a8122 commit 240e6d25a0a8ab98c042e37b2fd3c1f2cbf3e561 commit 6f072a84550d93342d7f7282e661e3834a801159 commit ff7ac85282a12c4f4968fa810186fda32b10dea7 commit 47d9c6faa79e85a6e196e02cc74c4775d39546a0 commit 96db14432d979532be4cb6d5d52a127317e68b3f commit 99b03ca651f1c409d296d6c6e9440d9b005c722f commit 0ef42fb749b17f7e49adef047ece5bebac5d6795 commit 2e21de9028270a72d2b7dfbd0fe46a6beace1f01 commit bd56c63ca1d953f035c1a06a0431c106ffada849 commit 43d5ac7d07023cd133b978de473b3400edad941f commit 5719d4fee1caed83979b21ad4cf34d46abf97514 commit 1b9e8b1feb33d75bf942a174719a861815fa7279 commit 0215466a8585b6d9c132f9d9e46da3966a84eabb commit 70487a99eeff5d0aa8104bd4eb236f318395658f commit 741fe8a4d23de0ee93a4a4e1f54e48161b98cdb4 commit cd9a0d026baa10c75688908556b3af218bc4ddad commit 4658b25d38831be8b0d1a9eebc05b067cecd559d commit 4308acff0f3f4fd523e69face1db33f8de10a5b1 commit 47e62dbd8dd30af66e8fdf1930a326971609dd32 commit b477143566d5b16c8b92ffec2cb3a896fe818509 commit 4866b0bfea40cddb7275c88aeb95b47dac3d2a35 commit b4acd97bf827122bd333a4d043c275a4eb9db905 commit fa4a427d84f9b797970a3d5139d7645403e4e989 commit 7e31a8585b79a4d67e7fefdb6428054d18ddd339 commit e0f943b4f9a366ac7f24fa3f0e52141178d4f1b5 commit 17252701ecb5ef3bdfb912aae5a011f93978781a commit 91e16017b6d36c2b7358654ccce9f69b2448df20 commit 85dfc1d692c9434c37842e610be37cd4ae4e0081 commit 948e7ce01413b71395723aaf846015062aea3a43 commit 03f2abb07e54b3e0da54c52a656d9765b7e141c5 commit 326db0dc00e57432b689349b4da3e86c90d5d61a commit a342655865b2f14d1fbf346356d3b3360e63e872 commit bdd8b6c98239cad3a976d6f197afc2c794d3cef8 commit b25db8c782ad7ae80d4cea2a09c222f4f8980bb9 commit 939d8e9c87e704fd5437e2c8b80929591fe540eb commit 7aa6d5fe6cdb4347c427caaba38f11cc88a8ed4d commit 2406846ec497af081d7e7a7da0e9938b8136fe16 commit 6e94d53962f7bc972582dbfb46b31f3a6e328a47 commit 2aa9f833dd08594584ce2add23a3cd11f0d623bf commit 0013f5f5c05da6321539df6fad75de150f430909 commit 88438668c9e0e32220b4605610bd888b4e50fe80 commit 938db276594697efab602c66cd92c48cbc60a314 commit 877691b987a089938d67de13d886932ef2f21b22 commit 6ea966fca0841174b6bafca58e56f9c11d3af157 commit 006ea1b5822f9019bd722ffc6242bc0880879e3d commit 55dc449a7c60d3df5a8f0b71bbae9d5173c864f5 commit a2cce09c349e2d9847ee7145986ca27d99bf0f61 commit d0a0b6cd8cf9f39d99d7d5c4c080499d17f43c33 commit 0b665d4af35837f0a0ae63135b84a3c187c1db3b commit 9758ff2fa240173e9a45613b07774b7a78b7653e commit 9f952378fcb90d202cbdf359aaeaad9429edbd0a commit f296a0bcc9611ba96ca3abb3332e21ee600d153f commit 5c1e6fa49e8d8dbdd8bb457492b2bc52718df244 commit 69879b3083cc5022585d1826c663c330efae4e63 commit 0ff76b5334fa6f44d1a1a6b3bd39f5667b092654 commit 3c27abee3fc3d59fb978e3291b60eaaddbcbf2e6 commit d999bc81ac3872a8543c4afbce30e0d46b4bb9e1 commit 892deb48269c65376f3eeb5b4c032ff2c2979bd7 commit 109a357f287c3b14a43216104299aafc1fa23cbc commit 799dce6fbd5fda21d461b56b8c6ca85214e20076 commit 0cd7f378b0927e10774981eb09e388258ca925e0 commit eacef9fd61dcf5eac8b775bb1814042e78a5c42d commit 8b70b5fee012172659717024adb6f17726d76290 commit 4e07d71c0d667ebf1e36be90b962081d2b778909 commit bc701a28c74e78d7b5aa2b8628cb3608d4785d14 commit 50ca8cc7c0fdd9ab16b8b66ffb301fface101fac commit 58fa0d90eddeda37b32597eda139e888ebe5af04 commit 030def2cc91f5185c697f29d3c485c63559cff1d commit c0f0dab8ba4858863579170dcffb23c1002879b7 commit 62e94f92e3977dbe67a6974ba7e5aa60c9a5e687 commit c14adcbd1a9648dc9d16dfd12c1e9bc0c14ef6aa commit 1a9c4db4caf0a504e35f0cfd97e54e07ebc85044 commit 93b76b13cfc13bf02d91aa544efbb067e3382141 commit 8c2699fad60e3f3e55481b49a38d46f49ebba77d commit c68c74f5b91ba56dab3ca9a219462e08c9b3cc9a commit 2cbc876daa715d50543e1d4d73f4e692860a51e5 commit f54ffa12168dc52f0d48d9fe32eacbbecd2c2c1d commit ad5c99e02047f33bf7043543545e3b17f37c8d5c commit e4e80625300390d8846b72d7076fd1a75af6ea60 commit 0b4d1f0e936e5c6beaebc32785465228ae0fdd16 commit 2abb6195512d14f0da45a27ca1be7cfca6658c5f commit 576c4ef510d7ad7f43730ba799441b0f24a29b1d commit fd06ccf15987dd94dfb902f328ef06c010bc7972 commit 9606ca2ea190e439f90426e2a740a48c800a0aab commit 57b427a705ce98308328fc4fa93524a9a8a3bf84 commit 0dd8674f2fc926b8a2404570c3cd0129a75dc70b commit fb3965f9ae28b83290e5b5431a77aace66071ca1 commit 2c3849baf2908d646b7466be52989835341551c4 commit be7612fd6665f5ef3f6c89e78bb4ec4dbff6cd16 commit d8be1357edc891b4259e3ecc1b831452361379ac commit 1c40d40f6835cdee99c6966b48b98d0e38c35f47 commit 1193081710b361ddb4b81d3e2f929b6d6e1f89e1 commit 33654ef470a97f9fcb19abc7e7ef660ea37e3aed commit 63cf4cad7301edafeb0650f32154006f1b5e6e78 commit c2ea703dcafccf18d7d77d8b68fb08c2d9842b7a commit 91f75eb481cfaee5c4ed8fb5214bf2fbfa04bd7b commit b06103b5325364e0b9944024db41b400b9028df9 commit 6cb12fbda1c2e2fcb6d3adfe01f18eef6812e278 commit 4817c37d71b554fe46ea494f6b2c8562b26640bf commit 040bf2a9446f6ba267225d34dc4a9b14d11e5092 commit c65fe9cbbfd61dbc12868f9ed4940c80fcb249e8 commit cf6299b6101903c31bddb0065804b2121ed510c7 commit b18ff6925d84492d845debe2dbb81122b1d141fa commit 0da6f6e5872e8c1e794bc3a705ea27a156b6a8e4 commit 92f153bb5a4bff4df8c67dcec5a9de1dde3b300b commit 4aa325ae541378166b3a84186bc1157a1d524f8b commit 4a0165f0603f333c6b36a420b4e348b67ddf6fc8 commit d764fb2af6cd92eee080978856f24b0cc6d555ad commit f4409ee84658ff95d92daace9f094fa6bf80b0e3 commit f6b80c04aabb4fdd18ed8fcbaa5efef64e5d0b36 commit dec63443380cf2ce6bc41258159cda4165fa4279 commit b6485bed40d7859735bdbfedbd55dcc8366a88a7 commit fbcdbfde87509d523132b59f661a355c731139d0 commit 4da8b63944a4f4482303c9ad6efb18aa547d4630 commit 88eabcb8e6965b38331618f60567dfe92ad3c42c commit 11544d77e3974924c5a9c8a8320b996a3e9b2f8b commit 2b534e90a1e31c7fc9536b512b72274cc3575f4c commit 011e8c3239ed36b4720113cafc5539d22cbb76cd commit 87172e89dcc7b09b32a4eb5f21e35d310e3cb024 commit fd5256cbe19609bfff0cc51e9d999a46020719da commit 6c92fe5fa5a1f24e50296de9d24d36a1b605b208 commit 4ad31fa15ba472866d538b3cee05708a9d8e8197 commit de0af8a65ea3c56e85517d23316679eacddb7a45 commit 67416bf85345b6990fe2adc42ab082bfefc578bd commit f89c6bf73420c597769033dcc811ce691597ccf3 commit b6fd6e0f5eb8c6d10575d08a2c6df8ed83877e07 commit bf252ce1fa8ac68baee3f8525fc6453d278b619d commit fddb024537f121995957d816fcf8e2e230451db2 commit 21bf3e6f1454b8f472ff7e6cbc95931dcaf7eb47 commit 2d0158497a9b9a80a92b02e55513dee4599eec96 commit e56e9ad0370a29a4bee3a99fd517d8583804fd74 commit 3db817fce43ec3d423b969911151dd849f4d7351 commit 0d988e5de7aa5ee8865cbc664180ae67918a6b19 commit c856f16c33e6ed4bcfe3f0e51afeb9b08ac48f0d commit 458c79a86ae1081636942ba3c42bf0424f3c6970 commit 2ca6c483ed2d73ff263457c166527abdb82bba06 commit 47547c56739a4dbf1e96a170f5b16811e04c5024 commit aca05d338b3226255fdba56771378a2dc4c9caa5 commit 19afe66ddb8f18c7ad5cd07322c6d8d2a2905ce8 commit ef30f441f6ac12875c9901e8ea1b9cfae6f0e8bf commit f3fac9481bc7b9518df18f33b71a6109a245ccc6 commit 3d38a5839ea8afe58fa59abc0a3453f44cae81e8 commit 6dd8931b1ceebbb92e4e0a9d12a236d82a072ea4 commit 4c3adc0b846ba22a8a92764495950b7c2482153b commit 45e3d1db7d3ca013f1439248a268b0cdada5d5a3 commit fec8c5244fc07b1f6a3249a8714489f594ff5c4f commit 11c9cc95f818f0f187e9b579a7f136f532b42445 commit 937ed9c8660a27ac4d36e8339c970a2ae7903c4d commit 0726ed3065eeb910f9cea0c933bc021a848e00b3 commit 4a700546ec9b8fafedf569f363f905b9ec7f5ee8 commit 6dc8265f9803ccb7e5da804e01601f0c14f270e0 commit f28cad86ada1a7345d7bbd379bef5a8babfa791b commit 0637d41786a3a9551f33ad8e15bdb40416362028 commit cb6846fbb83b574c85c2a80211b402a6347b60b1 commit 5b0ce2d41b70bba49b91b10c55984714490354ed commit 216a9873198bdc5c670a9f71d58fafd30227c9c8 commit f38b0d48cae88395a05e49cb885fa6ce657e1cc9 commit e53d9665ab003df0ece8f869fcd3c2bbbecf7190 commit eac4c54bf7f17fb4681b85e5fe383b74d6261a2b commit 771ced73fccd0ac19bb956eaacce3669cfccc805 commit 580013b2cef8babc204b7b78ff093140e112b194 commit 79d6b9351f086e0f914a26915d96ab52286ec46c commit 46a74381e5ea54dc78ad7c29659dad0b1eb66b0d commit 214993e106ea84a82e2c644bff3dbbe601b11e04 commit 19e43f1276b38716ad558c2018535e475cb9f3cf commit f9535d28ac93c3cc326f7215fccd0abe1d3a6083 commit 4c2602ba8d74c35d550ed3d518809c697de08d88 commit 03ee5956781b2245b1c77334ecdea6386fd3bfba commit 8ee262ba79a19a4dba9949397b1cf5761679670c commit 6ef295e34297433c78ea02dfcf1c649a769050bb commit 7e740ae6350407d68d2069ce79a6344bf1b58fe1 commit 8d0749b4f83bf4768ceae45ee6a79e6e7eddfc2a commit 75b950ef6166e4ef52e43e7ec80985c5705f7e81 commit 69e630016ef4e4a1745310c446f204dc6243e907 commit b54ce6c92cf57ff276e4539750c140c9c96416f3 commit 63ad5371cd1e379519395c49a4b6a652c36c98e5 commit 6638391b9f78abaa41f05fe4e0d2ee6f6390c398 commit 62d5f9f7110ad374db67ab4820f4ff2d916c3cdb commit 1dd8b1b987fad93b647cb0fa5289d69b4c889dc2 commit ffb378fb3069520da3c2be3c1269250ec9c028ab commit ec6aae9711a8e5fca24a537b9ae952e38a1ebb71 commit 575e55ee4fbc2c641a29b0054b3473e9fa81ae76 commit 4cc9f86f851847e5ebfb56212d81f1a30b9d392b commit 7ff61cdcc8609a19f3eddf3fffc09a05ad6d6865 commit 5fea167ec0a134cb61fde848a3c344f77f0c13a5 commit 83293f7f3d15fc56e86bd5067a2c88b6b233ac3a commit 8b5da5a458c95ad49571a6a6285800bf13409616 commit 978ffac878fd64039f95798b15b430032d2d89d5 commit abfaf0eee97925905e742aa3b0b72e04a918fa9e commit 9b7a4de9f126d8c8d59052088213990159417d5b commit ef3b4137aa09a9ad38f42d4de087cedf1b98c521 commit b121862c787c2a84ed5f42597aeeff5c1ead8f5b commit 4eaf21b752891fffab3d51ac96e81194cda32d1c commit 2096b74b1da5ca418827b54ac4904493bd9de89c commit 15084a8e1658ddaea42c7d3a72ccbcec2b85f54c commit dc5d4aff2e99c312df8abbe1ee9a731d2913bc1b commit 6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1 commit 5eb877b282fecc8b8a6ac6d4ce0d5057f9d3bad0 commit 6dc69d3d0d18d587ab9d809fe060ba4417cf0279 commit 54329e6f7beea6af56c1230da293acc97d6a6ee7 commit f1dcda0f79548c04f585108e2e165cb4fec951e8 commit 91c64a4f1cb01cf0ec50f0372ff8ca9d3022b7d0 commit d72d69abfdb6e0375981cfdda8eb45143f12c77d commit 016017a195b86d9761e91cb052438bf71207a12f commit 8f18a987ca761583a09d8e41f9938f61480deca3 commit ad783ff5a20f851c6d9bca03d12d44f98f494af7 commit bd672b7559efcd3ae3faf0b0e3846e30983e8ace commit 5d474cc501b90b82c182b5d00439eb6790a82e21 commit 71e4a7029045e3904e0e9242b4a7cd84d47b8fe5 commit 820e690e4eb88eaee68bf0b2d89fa9597bc00a45 commit 4efdddbce7c1329f00c458e85dcaf105aebdc0ed commit 4175c32be5ef0ff254d6931931ec412e8029c32a commit 0ffb1fd1582a78649f22253d81515997fff88bc4 commit e8309d50e97851ff135c4e33325d37b032666b94 commit 3993a799fc971bc9b918bd969aa55864447b5dde commit d82ce3cd30aa28db3e94ffc36ebf0af2ff12801d commit c4849f88164b13dd141885e28210f599741b304b commit d9679d0013a66849f23057978f92e76b255c50aa commit 59d41458f143b7a20997b1e78b5c15d9d3e998c3 commit ef3ac01564067a4337bb798b8eddc6ea7b78fd10 commit e26602be4869c74dd8a0f66f718b8a0ce120edb4 commit 57d17378a4a042401b0c2fe211e5a0e3a276cb3d commit 3bf6a9e36e441714928d73a5adbc59562eb7ef19 commit 520d9cd267618181901272a79db6154c0b83309c commit 9a458402fb69bda886aa6cbe067311b6e3d9c52a commit 4722f463896cc0ef1a6f1c3cb2e171e949831249 commit d3cbc6e323c9299d10c8d2e4127c77c7d05d07b1 commit 410482b51afecddb8fc29324d1b11945dfa0b682 commit ccf34586758cf00c0934e48f6ef6d688f01d7b19 commit c2c94b3b187dc92b2002809f489e0f24a41e91bc commit e5a1fd997cc2deda1b08d5faae04625de0440a1e commit 2dba5eb1c73b6ba2988ced07250edeac0f8cbf5a commit 5ec1cebd59300ddd26dbaa96c17c508764eef911 commit 7938d61591d33394a21bdd7797a245b65428f44c commit 5f0c749158158f89eba7647bdc4e8096979de981 commit ac46d93235074a6c5d280d35771c23fd8620e7d9 commit 7e38ac562b820915faa33a5077ca9bccf42d39d2 commit 9e5a14bce2402e84251a10269df0235cd7ce9234 commit dc919d670c6fd1ac81ebf31625cd19579f7b3d4c commit 98fdcacb45f7cd2092151d6af2e60152811eb79c commit ebc77bcc6e1660a011483c035d53c461c8dcc4f5 commit 72a8d87b87270bff0c0b2fed4d59c48d0dd840d7 commit 25f1488bdbba63415239ff301fe61a8546140d9f commit 2a807341ed1074ab83638f2fab08dffaa373f6b8 commit 48ee4835b73c48590d05a54730dc8037ebd39d3b commit 76cea3d95513fe40000d06a3719c4bb6b53275e2 commit 7fde14d705985dd933a3d916d39daa72b1668098 commit a0f90c8815706981c483a652a6aefca51a5e191c commit 43f2517955875be5d96b641fba33d73097fe3cd9 commit 23ecd4c1354226fd6ac9c5f8881666f76b9d6cbe commit 2fd0e5fb4ba37dff344b7bed5176212c2d6a7063 commit db5aa1497d02e7770e40dd0d1bfcb4ea0b0d3906 commit 82b550fa99f2c73636ca3f84900117c3c3272ef7 commit 8172f41859cf7516e73eb957297e6752b3073119 commit 5ae13c305ef8cb54efc4f0ba4565709b9f320fed commit 90a3d22ff02b196d5884e111f39271a1d4ee8e3e commit b3f74938d65665f892d1b7807c51140f68dc911c commit 3c6f13ad723e7206f03bb2752b01d18202b7fc9d commit 1b777d4d9e383d2744fc9b3a09af6ec1893c8b1a commit 3ec5586b4699cfb75cdfa09425e11d121db40773 commit a6ed2035878e5ad2e43ed175d8812ac9399d6c40 commit 92c4cfaee6872038563c5b6f2e8e613f9d84d47d commit 7d73c602154df56802a9e75ac212505fc1e9a2b6 commit 9a8406ba1a9a2965c27e0db1d7753471d12ee9ff commit f52a2b8badbd24faf73a13c9c07fdb9d07352944 commit 04ef860469fda6a646dc841190d05b31fae68e8c commit bca52455a3c07922ee976714b00563a13a29ab15 commit 2d8ae25d233767171942a9fba5fd8f4a620996be commit f5fa54f45ab41cbb1f99b1208f49554132ffb207 commit 49a6ebb95d04bdaa5d57313a380c44249cf02100 commit 30fbce374745a9c6af93c775a5ac49a97f822fda commit e55a3aea418269266d84f426b3bd70794d3389c8 commit e8ae38720e1a685fd98cfa5ae118c9d07b45ca79 commit 8ea2c5187d7b4901a70374415e772f1db422fb74 commit 9ca3d3cd0857523c95ab8cdbb6cfe47b8f90e309 commit 9ccdcc73d37cf0f1d4f97712f6b38af8806ac064 commit 6df4432a5eca101b5fd80fbee41d309f3d67928d commit eb48d42198792f1330bbb3e82ac725d43c13fe02 commit ee59792c97176f12c1da31f29fc4c2aab187f06e commit 3526b607b02397cdb6d459594e4f1d63133d6655 commit 9d7516b16f2a7ecbddd7940e582c78fcdc9136ef commit 8fd5a26e43859547790a7995494c952b708ab3b5 commit 85bb289215cf37e05e9581b39b114db1293f9ecd commit 4e6f55120c7eccf6f9323bb681632e23cbcb3f3c commit 200e8e3e43c4da4bd5ca83722523754ddb14ca02 commit 03ad3093c7c069d6ab4403730009ebafeea9ee37 commit a072312f43c33ea02ad88bff3375f650684a6f24 commit 328e34a5ad227399391891d454043e5d73e598d2 commit 60fdf98a774eee244a4e00c34a9e7729b61d0f44 commit ad787771b43602d64e02b5963f4192232b46366b commit a8b1e8636a3252daa729762b2e3cc9015cc91a5c commit 6e7545ddb13416fd200e0b91c0acfd0404e2e27b commit df2bb4dc285e60665930889e6f8c5bb38b90249a commit 78306438355353e677a5ffcf5e9351604b694159 commit 95e875bdb1862db178bf24fb703387ec3aa3a34a commit 59f39bfa6553d598cb22f694d45e89547f420d85 commit 080eba785fe10ba21c40bbdd80f2bd5331a28be6 commit aa4d01a4734bcb1cc9190807cdbcd5af1495910b commit 698bef8ff5d2edea5d1c9d6e5adf1bfed1e8a106 commit 8d9d2a723d64b650f2e6423024ccb4a33f0cdc40 commit 0bdc0a0699929c814a8aecd55d2accb8c11beae2 commit ea958422291de248b9e2eaaeea36004e84b64043 commit 26ace8793aaefbcd0d6bb664573ded35c69cd6ef commit 0136f5844b006e2286f873457c3fcba8c45a3735 commit f8f4e2a518347063179def4e64580b2d28233d03 commit 9c4f59ea3f865693150edf0c91d1cc6b451360dd commit 364438fd629f7611a84c8e6d7de91659300f1502 commit 439cf34c8e0a8a33d8c15a31be1b7423426bc765 commit babb1fc3234320bd17930e02bad9d1a83f5e6859 commit 5666b610194705587807a1078753eadc007b9d79 commit 3f33364836aacc28cd430d22cf22379e3b5ecd77 commit a40ee54e9a0958406469d46def03eec62aea0b69 commit afc189df6bcc6be65961deb54e15ec60e7f85337 commit ec663bca9128f13eada25cd0446e7fcb5fcdc088 commit 28adef861233c6fce47372ebd2070b55eaa8e899 commit 1432108d00e42ffa383240bcac8d58f89ae19104 commit f626dd0ff05043e5a7154770cc7cda66acee33a3 commit e3f3824874da78db5775a5cb9c0970cd1c6978bc commit 4d22336f903930eb94588b939c310743a3640276 commit f762ce78897d734a08f52e39a353359b7d417578 commit ecbd4912a693b862e25cba0a6990a8c95b00721e commit 7294863a6f01248d72b61d38478978d638641bee commit 3743e7f6fcb938b7d8b7967e6a9442805e269b3d commit 1e2be869c8a7247a7253ef4f461f85e2f5931b95 commit 97c61e0b7c596cc5f683da30289f92c2e1b4b799 commit e2b993302f40c4eb714ecf896dd9e1c5be7d4cd7 commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e commit 753a64c7799034a413083ad03b9fe51dfcad9fb2 commit 7c17b3d37f1fa1eb0498cdf63d43ce37b23eaae5 commit ecf8a99f4807c17fa310a83067a95964cedd9ac1 commit 1b279f6ad467535c3b8a66b4edefaca2cdd5bdc3 commit 08783aa7693f55619859f4f63f384abf17cb58c5 commit 26d3474348293dc752c55fe6d41282199f73714c commit 62929726ef0ec72cbbe9440c5d125d4278b99894 commit f1ef17011c765495c876fa75435e59eecfdc1ee4 commit c9585249c245e23580a2c3edbc8f14d9d7173f12 commit 8fdb19679722a02fe21642d39710c701d2ed567a commit 804f468853179b9b58af05c153c411931aa5b310 commit 3755d35ee1d2454b20b8a1e20d790e56201678a4 commit 40ce1121c1d76daf9048a86e36c83e469281b9fd commit fc1b6ef7bfb3d1d4df868b1c3e0480cacda6cd81 commit a8253684eb4b30abd3faf055bc475c23da748dc6 commit 3c3384050d68570f9de0fec9e58824decfefba7a Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:15:52 +00:00
return false;
}
for (i = 0; i < array->num_fences; ++i) {
if (dma_fence_is_signaled(array->fences[i]) && !--num_pending)
goto signal;
}
return false;
Merge DRM changes from upstream v5.16..v5.17 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v5.17 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/Makefile drivers/gpu/drm/i915/gem/i915_gem_pages.c drivers/gpu/drm/i915/gt/intel_gt.c drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 0dff40bb863c,ec2ef2cce11c..301a44dc18e3 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -127,3 -134,8 +134,4 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit 107fe904302092c683cf5462b4af3cb3cfa40998 commit a1a98689301b9af0313e4c1ba44558e8b67ff76e commit befe5404a00b3b1547c944738df4a9229909bdc9 commit 8a12b170558aabb31cc98fda0da6a56b518cadaa commit 334f74ee85dc26a50c1a2b0da82517595191f92f commit 57a06e907c07b17308f9e6e6ce91402ee7ee03e6 commit 189723fbe9aca18d6f7d638c59a40288030932b5 commit 7c4dd0a266527ffa7ed8d424facaba171618820a commit 1a84a308acda285cf9fae548262b8e199845b2d1 commit acf20ed020ffa4d6cc8347e8d356509b95df3cbe commit 437c3d87590e7c1d901c66d8916e7a58f0fc7ff7 commit 5f31dbeae8a88f31c3eb4eb526ab4807c40da241 commit 32a267e9c057e1636e7afdd20599aa5741a73079 commit 9bf7123bb07f98dc76acb5daa91248e6f95713cb commit 7f44a1166c8aa69f1bcc9096dc07b7096f7822df commit 6b1a69bcb23fbcc65b0b086063f608e3509dfd0f commit 5ddc1e27e03298c433b0c889c2a431432abc2cc0 commit 386e1c180f1f06acb64205c37f0fccc4f8885a73 commit a30fc787a1d3ba317e4736483ec8ae50043e6fa7 commit ef41af47e40ed69e439cfedf74068bf797c62fd1 commit d41af761dbc137051ffe82fe4f23db54ebb1d523 commit 94f9b9525c0a2e8aac741f8e0a2d71c4e2771ba9 commit d60b93917a66414aaee5704dd07c845aa6cf9645 commit a8daf03fa2d49c8892c3de924742b1a47b62f3e6 commit e82ef424eec8e412cc1ca9170c49633316b29f07 commit 566b651cc53154d6fe88ebd61c86b996d6621d09 commit f6632721cd6231e1bf28b5317dcc7543e43359f7 commit 5f9741f53a3e0e84befc60cc1491272d18564ea0 commit 50848e3787ad9eaae38889fcb7f4aa1f4b42f4eb commit 6eab8224ed3daf26b5fae36dc8663d32e5cd9c21 commit 19febe662d0b31b717655041cd67df524d19a5ac commit 40e8c0198a51656086b746597af8c36f291b53d1 commit 30a46873941f1422e9169c9e38d4874365054c13 commit 623a3531e9cfcb95de55f0e4a38668705eeec8ad commit a19125a281128c836faae249c1001eb8d7a18b48 commit 9aa2c2320e6fb50d8f80963e786d0b564d0695ab commit 2e70570656adfe1c5d9a29940faa348d5f132199 commit f9a7b19c484067fdcc5972c88ab6f06898adc40d commit 841f262e74a7c209055152026041bbe486c962b9 commit 63d7d05678af5cdc616718806971041ecacf4897 commit 17dbbe7b25446f7ce4af4c5186b60427cdd770a7 commit 2c85034db194ead0595445cbdd70414d3634fcea commit 7a279c14df56c741b99085108a643f2dae078773 commit 91909d57169dd587b11d9e1607faaea07393696f commit ae880cd02c547cf474cca976c39c76b629921b26 commit b2de2d006dfa6bf48b141a2a51ca078ed1047b63 commit ccebd0e4021084361d1549f4e83688b1fae89c3e commit f45d2252ee10b036d539d93a752a2434a54a0d2b commit 7d9ae6332e77c1dd57cd5679a27d6690d2e8215d commit 9e68fa88b85910091be186f9022b36f4fa83b31c commit 976c68f46d7cba02ccc80fbd67a4e9731e23e8a7 commit d39ef5d5c076377d41c65b69f8452eada2db724d commit 718cc87e1669dafe65ddd3720a5526c6d7e1705a commit ba3078dad1401131293664733c15f6f066079de9 commit 02ed47aa6cc697fc34053c011fe72984a86273cb commit 1f9f6790cc62eeaa973d05a9a2f16ca0f3b80b36 commit 9f40dbd4416f14657d9b354b7ec855244d97a91c commit 576d4d2d90310270c1d463577f0a075e88cf6c4a commit 957a2d0e7ea38d84d4b3cf9a951bccadeb803a24 commit 2671075b322746ec68c49396c5c17ad8ad236dce commit 0b80214b64e38f33d359c0e121773357060b992f commit 3c101135baf2dcfa64081239818039a1fcc7767a commit 33e079bc1530df4596181ccbfded8752bbedb92c commit e1f80341e312088f0e6c46107db7098e30e6d764 commit f2d061ed01b3f0e0c7a4daebed91e26f54de4086 commit 45a44b01faa6ef92788b2067631deb486cef8a4d commit 0bcdfabfcbe230fbd9f03c297486f013333892c7 commit b93e947664a1a63a3e6cb5d94f38d5579e41d951 commit fbc5a90e82c1131869e76ce5b082693b8a75c121 commit 43a1f1467cd4bcf248925fd7b3fdf49d73917443 commit c4f08d7246a520da5f2b1068f635da0678485e33 commit c93ce6a6dfbd3e258186ab10f95472ee571583b3 commit babc8db30132ba59cecca9587e73104741f0be6d commit b7d5abda8e64fb9cbbd219e667ccb34e4761ce2f commit 4ec5ffc341cecbea060739aea1d53398ac2ec3f8 commit 3f61ef9777c0ab0f03f4af0ed6fd3e5250537a8d commit 9ad87de4735620ffc555592e8c5f580478fa3ed0 commit bedcaddadd22da82fc2590569ff81a31045176b1 commit caae4fb537d8437b9290d8a1010adfaf174b29e6 commit ce679dea955e1b6670a8d92b8ac4c17b22db3fa0 commit a0a8e75948117f37a1f849c44d026d0775ca59a7 commit 0597ca7b43e41c509bd0feb143bdfb7278496397 commit 808b79eb8165d4dbd5e731f98a4f5f4a0817ee4e commit 1af10a97b3a629f5f5b361f1870070c1d6e0308b commit 035f79f9b77d5bbeca7c5befcfaa7560e846ac6d commit 171c555c2c2664a250cd35680c34c31a6d233dc7 commit e2b8329432b880f3821f85e1253a9b6b9d714a86 commit 672d07517e728acf15c1e39c3dfb7052000b434e commit 3dfb2d6b489f7f1a627774f84a6341c18785f43f commit d89357ded55e1294e172cec176f49e1685dca06d commit b1562f0f0f69120225285977eb2bd488c7eb5482 commit 0f2922ef48484ca4687319d03f72afdda2172e97 commit b0f1670d22ce1e192f29e931069297ff16156026 commit df63860da913e6afc0d725a87f99e930ee237451 commit f50423436105e136e2409b500719334188a77aa6 commit e359c47bfa6155b56d378864b7cc4a0d4e680c1b commit 0b2c31dd8868651d878af4c60b235dfb52909e74 commit 09f8fe4cae5ee8eb2ac44e437d4295357f3cdb36 commit 3cf460bd683df848c3df90b9bd6c28bc86acea8a commit bb115220d248e394a65a52e128dbb8096c9c8868 commit 59908256d8101da0f051a4687438b744b24b9059 commit f4fdf37684ebf8ca122723ab6074d74299921064 commit 81148c266f6a51f4e149afbc52fff9a04d274310 commit 6eaecf014807f34acf1303fcdc35833998595db4 commit 777226dac058d119286b4081953cb5aa2cb7394b commit 877d074939a5f82b099da2db3bcccc6c418b9c39 commit ef3e619221248a7ea5fc711a2bf9017c94d2f644 commit dd66f56caea6bb1a3703fb3bfc3106444d05a930 commit 40298cb45071e98c2c6465e2ef25dd8f8af77918 commit f05b985e6f76eb9e57f36d0960a8beb46d5b46a8 commit 7ae034590ceaefd4d37465e3434877acfbadf411 commit 5926ff80c9035638ed8ff6ee1f820392248270e7 commit 893f11f0c73365b31068081ffa3e67af5cd474e7 commit e25d1ea4b1dc6a0f11a24bac85d5e3673845d365 commit ebd4a8ec7799b1ce6969acf04432f4980179986a commit 2eda4fc6d005b51271642ebfae4ac00e15618a23 commit 5d12ffe6bedb0e86b22dd436bb2245fdc540f780 commit 1d51775cd3f51899ce85afab686c7f641ff32d4e commit 930ca2a7cbb6df5e5377938a372d8896d669f086 commit 25b8a14e88d9cd80ba34f5310cf1e11c4eadc647 commit 9d27478c7c01c9a04938a751fe2345cb951a3a0c commit 72071beec8fbf760945c6f155fd4db394dd2fdda commit 4b2b5e142ff499a2bef2b8db0272bbda1088a3fe commit 7c287113f1c83b238068bd4b550cc8b0a73528a1 commit 393211e118eb8c3946cdee18e97fddb396f11ef5 commit 12a9917e9e84fef4efa73c09b32870df0b1ed795 commit 525bbf72dbe0004a009dc39b239dec74e8007f6f commit fc7bf4c0d65a342b29fe38c332db3fe900b481b9 commit 736638246ec215f999dd132334d2d7c49bcb85c7 commit c4ae82a0e9222d275e3e4dd91c1cc3931ac0eca1 commit 86752bd613c9a8deb6e7de499f0c3ac139b58b6f commit d9c022d5dfea9f0b550a3d24ec786d39ff55ad6b commit e15623cdce6fca662dbecd311f9d74bc61d0e1f2 commit 44653c400615a3fa3658caa72d765233cc897d80 commit 55d5e4f98fde7f695fc6c08f46f85ab677f690a2 commit bf0d608b55d9b7f426031dfd9f08d9df36c94728 commit fed98c16f13f4c68fc507384d3429516ef5c3b6d commit f0e204e0d32159d783577a4041331fbe49e8beca commit 765972cb8564fb92f8cef6fac21995907d132e8c commit f28c5950d57b280f17b950f04125ed556252403e commit 39919997322f21d367347943ffd5ba8c4007c9ae commit f2e19b586637a2e84f56b08d9f60de30373a0a01 commit e0bf3e23e2002461b0bff09c1cc0b92ddb8eafd8 commit 3126977d43079866aa0ea351863a7496feec98d2 commit 723559f379af5cd200bc981a723aaf3971f7a166 commit e12d6218fda20d03960f3f2cca44741ba8d5e9a8 commit 818a1968a73188451fd1c16604b4e47ab5a40d6c commit 64512a66b67e6546e2db15192b3603cd6d58b75c commit 3c7a8600dec9858da9e76adb622d161f27652b00 commit cea86c5bb4425cbbd0a690d1671b8a7db1cee9fc commit b9971e549adf85278a680f75dc78e4a734975e90 commit ee9418808bcce77e2c31dbbfc58621ea99a05597 commit 864c49a31d6b84fd20748a003523fc2181fd54b1 commit 25a390a9aadbf0c87b461e416c27c8838b35ae25 commit 49e61bee26f746aaf2eba84ba3c9a90ab950ea05 commit 1fdbf66e3d40257902b4c5cdf872730dae24004f commit d89078c37b10f05fa4f4791b71db2572db361b68 commit b91df118e4ff36904d5e35db27dd0d0cee4deb45 commit fef604db231230a0f2f376fa223fe296731b6333 commit 293ada7b058e536d9d53d0d8840c6ba8c2f718e4 commit 4a46ace5ac621c0f84b3910bc3c93acf6c93963b commit fe93ae800eb846d435359b2d689410fdfc03f868 commit 7abbc26fd6673bd04d0044e001a7ce543427ff4b commit c05f1a4e2c4b8a217b448828c4e59fb47454dc75 commit 6cae235e9cd112da0a33dd261e2a01c93c825799 commit 6ef7ee48765fa3067858d11ecdf3acbc7c19df80 commit 77d2a71b94e3dd2966d8c595fc6443951f1e06f4 commit c3b75d4734cb82f7dfd42b0a8243f37bca85bd95 commit 526dcedf877fab36d2847fa1446975ab4285f226 commit 4d77688ff27c7d030b5113f0cf0b0a2a433b2a62 commit 4280e1a0ba1dca1e7c4c35d0c790dc8977d840a0 commit 099afadc533febb0ad789ee61eef41a3d5d8bab2 commit 16aea0f32f1de320550ec3488bff9ca86b3848bf commit e73c317efbf9a6ab2d1c18eff8343958ab6df73a commit 2b3374306b315be02db0f67d3102a0d1e1357270 commit 4c3d005307c87c7a35e85a307b8bcf49f1d56114 commit 344e694722b7612c00890ff29d402de8f49ffcd9 commit 77cdd054dd2ced6cb6f3420a998d6a0a65d6076e commit 32c2bc89c7420fad2959ee23ef5b6be8b05d2bde commit ead3ea12e133416fbd800eedb2fb5d0faf2df431 commit 8f4502fa284478a5264afa8a5a95511276fa9b80 commit 74c1bda2f3fa79a93e1c910008649b49b02dc09d commit 2ca776068f1f9ece3ab093f1be39c87653fbff16 commit b0cc4dca4f1066f385a92baf6214d7f313353d76 commit bdf6aa22204e1250e217e79e77db38753a6731de commit c1bb3a463dac815598362fb642a2746ff0e8f2f8 commit da0c3e2c907aaa4c6818aabc2691a667e3578063 commit 7df7bca56902e4d96c7b17b84378774f2254b707 commit 10a657dd4cbc34ba9f1bf16140a96789688f6cd5 commit fe6089c138e477d0b1a8bf369ae6643466fd7c2d commit 675053115e4e809643e12ca817dc9147562a70d6 commit 3809991ff5f461cabccd9b5aa39f7561f10918b5 commit c34c1c4cd68f3ffcd13c7169e7a2c35e267e34f8 commit 9556829ce4d0618ae4295af8e4b3dd7e38f43598 commit c7d561cfcf8661ef02218655c923a0eadbbd7520 commit f2787d8779b1b00768f8f397b3699698ed84300a commit fa2a6c5b9cfb0dfbd1b811b154a036df1017ce66 commit 49c55f7b035b87371a6d3c53d9af9f92ddc962db commit 542cff7893a37445f98ece26aeb3c9c1055e9ea4 commit cad7109a2b5e7d48466b77728aa16ce55415eea0 commit 0826edb6a5e5b32d38b89d2df3d74c4dac8828dc commit 3ea355b234d7d3e543b89e55c66d57db50ef1581 commit c52b3b489783b3b244c8134204d542a4d07030b7 commit 2ea6ec76430b87c49f3d82e284722dfbdf137bb9 commit 068b1bd0925387ff3a2900726a681ce697e4c1a9 commit 57d9898bee4fa8afcde83c158b441cef634ee47c commit 112a87c48e83cf226325735009712b515f48c495 commit 0d6a8c5e96833f644b91528de6a3a4398214fb9c commit 710074bb8ab0efac425a43473b8a3e057d645f82 commit ad935754dd865ffe9be39e366071275c99366285 commit fc320a6f64044f12128519ca98404b641340d136 commit d35d4dbcc80dfbd58a3ef18cee2b92f49a6a92c4 commit 23c50968399f270098f1fd0bc1ad83244dafb659 commit 2ee5ef9c934ad26376c9282171e731e6c0339815 commit 6b6636e17649d75b4d0cc55d3dff9e44511a442a commit dd5ba4ff4e924b14cb3c91335636baa6bacaf817 commit 96837e8beeefe5181adabab2da6e08c51dc0cf5d commit be6c1dd5ac074defdfb1471d28e0bb6eedfe3ae5 commit 17749ece0142c7c368834b6fb35d86bafecef69f commit e6d6f689435aaebc2e407026d9fdfc2d89bd7902 commit a5b7ef27da60c90bad5b2d41af3aa82da480a188 commit e181fa1ddfd5fce939e419dce3e5baeb32125987 commit c1f110eeb2a58df95bac8c11e5687c1761333952 commit 8d2f683f1c49b3a3c56ab92437722eda7e85bac2 commit 9755f055f5121c40c481c1d5dd02a1c3fb0e7953 commit 565edeee70db754e2e337ccd941f2dc10d276691 commit f20ca899a7c9e7ba48a5daec778607572fca5f6e commit 31e914a2307a29dfde8027cffa70292341bd379d commit 305448e55745dd4634272794c8c01edc872bcf63 commit a905ced613095c1ca406c179b2f0d44219d82381 commit 3e9cf8f055fcb42776156fa5f5eb9a5326f160c9 commit 88a24415220990d41834838d54ba028399649ec9 commit c86e187372da0967a82994fef7cecd4806cd2baa commit d4e0f16325026eb001c48a6a619886048286cc42 commit c1d53cbd83b87bdce318f45d4fa5505c3008389f commit 292e4fb05f14d54c90cb165335c6d4dfaf1cfb32 commit 493043feed006f75f43a1990ae2ae1178f277628 commit 1448d5c47e6a26150d885bb4a5764a8d75b9c707 commit 89aae41d740f67a7c8b8ee015c44645d218de754 commit fbd4cf3bfe1557b80774670d19c0a68d7d40fb18 commit 9a7e49bd7992fca8cae11d21ffe5ebe73a2f4c18 commit fd0310b6fe7db694e553a5407594d1361e68ce1e commit 566fef1226c1df5a7e71718f9ae012d4c1cd13f7 commit c4c6ef229593366ab593d4d424addc7025b54a76 commit aaec72ee90bcccfffeb33feb8be826efa4065a7c commit 50faf7a194b80c2f9a6f919b03036880e6620b0a commit e56b80d9fd291481e55c1e7b3483db83ec44b680 commit 8ac80733cf6f08b9fdac9bf6800dd81e9304b4c6 commit 890b6ec4a522799d36bd10aee993059d771c06f4 commit 4d0d77de9af455aa949766ecad1ac3232e322020 commit 120542e2c1d12e7d3594ceeaa6e02296af52cc80 commit 50105a3ad16cac406494038ce4edb91769911434 commit a14fef80ebb3efa5755b02790e067fe259bc8c63 commit c64a9a7c05beb2b71b7496d873654f88e1a08593 commit 3589fdbd3b2085e273b6ea1e9f27a211e0ef74f8 commit 2b0a750caf332a24f62f6960820d24d885f2efc2 commit 52a743f1c114727cfd51aefe584c7a4d82375acc commit c10a652e239e21492525fab295dc2fc303338ef1 commit fe9b286bd063791c7842c4caf6efb2825b537031 commit ca3cfb9d9b5edffbea1464079abaa89714e7abd6 commit 37388c0192bf1474ffaaaf38024dab49d0150f12 commit 5d4537463fc2eb1245093e0b62e200ed9229d00b commit f47a0e35846740ca72b8ba6be84b5b518abcebce commit 4fe7907f3775034140a518d1582580926da98ee2 commit cf9420cb122d055840848b039cbbc303882bc445 commit 38a1b50c0389f1ae385d007b02dec5f812b3e5ef commit 03f060b73f9ad9555f6251cac21c692df8112a68 commit 6f9976bd1310d123921ba2c20e8c101057087285 commit 2bbc6fcaf8c58a7a59900512be11b1775a611381 commit 115e0f687d29649b8805e3417e089e785b0ea61d commit c68dac968c460b89a4f6e3617ee5defbcd96eead commit 6cff894e4991a5e80324ba39369288fad1e3ed1a commit 08d1ecd98a8fe653d24644f072a87549e8503447 commit 775affb06a5bc6051f48c935c86c99f849e2da09 commit 9030e39cd115db3a93a6a5eebd70f5f9c462e4eb commit 4579509ef181480f4e4510d436c691519167c5c2 commit fd4d7904f5e38e4ff8e1267a53476cfa4a225708 commit 498f02b657b7a591c61cf269f7b02dc136231ea1 commit d3cb30f8dcbcb797bb4dd62dc8e85dd2334c3475 commit 781050b0a3164934857c300bb0bc291e38c26b6f commit a25efb3863d068929f0bbeb87a995df11507e691 commit 078e2bb2585a05df787be74642f12354a66a0534 commit f35294e13c19bf890f26bc1ec964b2d29c82f0ec commit d1260be706752dc01699b72222bbba48f42adabf commit 3153c6486008061297bfb0ec5cfd3aa4f8df66d9 commit 396d9b9a48723995416a05f0dab80c1dd6c21e80 commit 452290f354f04fca53cba810bd241f4307502f1e commit 27bd66dd6419c45e320f34ed419cd80833de1161 commit 3e3543c8a19cade02cefde83ee97233d5d90e7e5 commit 53bc2098d2b6ccff25fe13f9345cbb5c0ef34a99 commit 19b20a8021315fce38ae95607e5de389913471a7 commit 18ac700d75e81b7892c6377f6d8b917453ac69fd commit 0dd80b483b95abdbc3919cb360d17179a5f85d2c commit 9239f3e1807c282e3c6bced510640910e9b25c60 commit 84e9dfd5185285df55ae9068c89cde1a88baa7b7 commit b50364af7af47bd2107394b8faabffab59329af4 commit 2013ab184971c4a92c42f2bc401163e5b105abf3 commit ef9600ffd447ca3da6660b1f5932179a67292e09 commit 74e0457a62c697d388b832b0a52dd1e716204019 commit 6874f95816da4af4eb6a395ae434b823c4d7d356 commit 41b85a5202b775ce7eece34648a4b592ed18f5d2 commit 0242cd3a538f8393cb811d79806ab519228e7cbc commit 11a6b88b8cf2ff6e93a5b136ac04fd851a2d935d commit 8f8c61038768526d894e02b10ee1e4ace94e55df commit a61cf3883c83d02cc27b18c4cf8f639279587bb0 commit a46553837056d3a6119f4ac350afff8c2a99daf2 commit 73ab6ec90922f50b99c189088f100025a44d8ec1 commit a4b17f757d0b6b4cd4aa2fdc88ae7458235806f6 commit 9ddfa5a084f65115844e9248903be547a7610a53 commit d061882344279ebedb343d463a885118d7dc8978 commit e49a656b924ef125a2b00945a60df39cd09b8c86 commit 02689a2055d8a78b7cd0b722a591d1acff8b1e4d commit 826cff3f7ebba460d3db61f135798ce76b0d26ed commit e9d9f9582c3d90bced286a63d1f718d4aae60a03 commit c582ffadbe6cf64be4544d9d168bcc520bd0c984 commit d73dd1f4e40c095bf2f9824a42fc3608d7d188eb commit 645cc0b9d972b8bfaa983623950c3a53ccd0c57a commit 212e6562f33becbab1996261677a0b89c5ab8b54 commit 3f2532d65a571ca02258b547b5b68ab2e9406fdb commit 7cd70656d1285b79c001f041a017fcfee4292ff9 commit 2a2d23b68c4e4cd71c9999ea8b8608700c3f9ead commit 5f1176b419f9468f05dabdc8352bfa9b15427377 commit bc4c7fa02b5f9439db0d16a5071620747e43736e commit 4f232990dd83564ff41d6186ff268a9eeeb118a9 commit 57cbdbe65e5f9ba9bfd67b66bc3ce24ef1c54643 commit 23244f67ed96c76428bfdfc63eef642e4d627825 commit 6040308ffc9039d30a34bc40021e19d6da3683b1 commit 1d2271d2fb85e54bfc9630a6c30ac0feb9ffb983 commit 4cdd2450bf739bada353e82d27b00db9af8c3001 commit 5e18b9737004ef6f34862f6fb39d3c9027a4044a commit c5dac1f62153d08a2404bcd6292d72f8290c2c1d commit c0a808b06939a39f6f90c3a33436365e6ede0618 commit 78ad449dc5c88dc540f8cc07d87ce2024686cbb3 commit 372b8307a6288265fc06f2d7a6ccc85e21167d37 commit 79af598a5baefc3a92b31ebc5b7aff00b38dc633 commit 5d96a01549ec6eb5515b735301a7f1c6c4d481a6 commit bd6e07e72f37f34535bec7eebc807e5fcfe37b43 commit 22da19f900be6b90b6984522708b203ac9bce1e6 commit f9325afc23268567d9a6a7452252200cf79def84 commit 170dcb67a208b6ba93dc18be607b90f82520749a commit 606be062c2e5324ade705e463b45d9262adabcab commit d50d16036fb395aaa3c4ca0333b55cceadc81874 commit 393534f291d821779203cb74896abc26e07160d6 commit 6f07707fa09e1dc58c431d57c25ef2e68b9bec47 commit 09eea212653304522e9ec74cdda59721af8d4969 commit 5a06f68dbe0fb9cc08db9cfae310c7933aebd6d2 commit 5a363c20673308e968b6640deb73d7bf77e8b463 commit c7fbcb7149ff9321bbbcc93c9920de534ea8102c commit a193f3b4e050e35c506a34d0870c838d8e0b0449 commit dd54575a83d85c031d9c1c4a78607ec3c95696ac commit ce6838afc9244171cd07620bbb82e18695c491e9 commit 7e78153aef7f9efcb935487402151de31e0836ad commit d5e781a2e50fefbcde81f10e0e9e2669fadc9b01 commit fac73543fff0ff23622c98879c66d069778c114a commit 9a7fc952717ea63d13eb9d42581af52ba34c3914 commit 1a085e23411de188ad0615f40a9399d80d1f7368 commit fc12b70d12d07598cde27cc17dbfafc2a2a33ff8 commit 58471f6384fd8f807d3ff2e771c34f71c473f6b0 commit 4588d7eb3b530b471104d78a19f82df701ec8c25 commit b8d65b8a5aea3309c14cb899149ad5ce93589f58 commit 912ff2ebd695c582ca4cebf833ad73a378a99f23 commit 73495209f645183c84a86bc067818a8c4ac20fdd commit 1b5bdf071e62ac57ad699d60ddbd392b266f58b0 commit 5e9ddbdcf730a2671b9a07c6de45b53f139995af commit 7e2e69ed4678a4c660c4727e625a396b06c0c372 commit 2cbb8d4d67700b4ea7373a307676fe312251b257 commit fa78e367a24977d76832fda6790e9e1c35788f80 commit 49c39ec4670a8f045729e3717af2e1a74caf89a5 commit fe69a2dd88b2c741bd55336d74dd484d7b848679 commit aa70a0996b0ee5950237cfe5f039285eda0c1470 commit 1e66f04c14abdee103221518c4f7cfb73574d2b9 commit a59308a5fb231aca72b9b070a6577fa49ec2d72a commit c6c57446383a3dea098fc324f0c7f696c451cf3d commit 9365fbf3d74bb6febfa7e31cd1c32d0d4d4b8393 commit 1cca6087422d84fee7450a8eb115a0b27ecc7e79 commit 9a17c9b79b4d112632ba44a821799281445eb28f commit 4056b033774664fe878d25f6087a1c41c82d075e commit c531a58bb61bc7eca3d58f5adc08a246af262244 commit 420185fdadbf0f74cff90f466df5c44c1ff3dda0 commit 3356c38dc1b6f74717a9c437b47e9362c8c96ba3 commit 6bfc7c7e175e6ca8b827cbda382b6e1e6585954b commit 574c4183ef75117f763e9f2b35e08c85f5dcad2d commit dff63da93e458489d0ef7e3a92e1b14de450414f commit 56c5977eae8799c9a71ee2112802fd1f1591dc3a commit b5d1d755c1344075d4f16a3e6183ed04b4d022ef commit 087451f372bf76d971184caa258807b7c35aac8f commit b5f57384805a34f497edb8b04d694a8a1b3d81d4 commit d5a28852e86ef486ee34e4cf72e8ad99a36f4fc3 commit 26db557e35d6b229b31078ebd6939b4cad936f6f commit b97788e504daf4ed455ec35047977a3016355571 commit ebd1e719695824ca2b9225094a669fef35620676 commit f0d0c39149f817e5ecdff8fa164f44da455b3317 commit 1f6c9ab06f61d86a80056ab57f9c6b7beca3af27 commit 80c5f69b94249dc1e0a600cbef3cc055ea432af9 commit cfd3f70ebd9e761754da8ab195ef7ff476d5cb25 commit 1328e395fd62070a29dbf28435ef8da1ba780e6c commit b57d16bdd62cc8c231aad8385d667249939cdfe3 commit 426b4c4fe52c6983b40f4d904a4ef430409f315c commit 64266f0a45c8323861d3756cbe3dc419e973917c commit e43098f6abb033142810e695c1b3d9cf61e19849 commit 4cbe435dd68884a9f6669fceb20f3e70a70c7702 commit 095041dbfa03a193c7e76c00b0cdd1cfcd45869e commit 6ef86fa8ccc8a3200fc89e8c9b50f1b90144b65c commit 0ec283cd043dbc65e0f17230695a6ccdb0f439d4 commit ec581edc56d39d3a6450894f26583b36480acffa commit 548f212514151b0d6ec911c87e61f189f530255b commit aadb06f9c9729ee3af1543f54da966644ebc5be7 commit 7a47c8820a1d97e6cb5bcef6b65529f1389b0e13 commit d493a0244fce12de22a220468e6628bb008a0e58 commit 68ca1c3e57c40a205de9d31518fd1dab5f47f520 commit 02274fc0f6725988d4a67005cca6f40c50679499 commit a6506cd845824fe92b1760aaf104011cc04dfa78 commit d3c983010f6faf59eeae1b92e2fcfe0696e80eaa commit 8bd1b7c29b3c3fb537265a3891c1fb8e78e9da45 commit 73729a7d079dff45fa906a5b8bdc4a5edd775ee5 commit dd0ae064e71ada9cb2dd526607e140c7af690646 commit e4804a39ba5f72f0b8549445fe39725b2d1dff7e commit 046e674b961594e552fa6cd3cbbc34086b9580ac commit 7eb0502ac0538ea9746481f3d7578940c8302c42 commit 48c19a95f15e787bc46b274129da37bce06df259 commit 04f0d6cc62cc1eaf9242c081520c024a17ba86a3 commit f5dee1283f6289342e720446ac777ce3aaf95f13 commit 646596485e1ed2182adf293dfd5aec4a96c46330 commit f58a435311672305d8747f40e35235f7ed64ae69 commit 37fe0cf5fb803d98efd7feb64b408c9b029c1085 commit a713ca234ea9d946235ac7248995c5fddfd9e523 commit bc30c3b0c8a1904d83d5f0d60fb8650a334b207b commit 4121113410fe16649d0a66c81715c8fab7740b14 commit cebbb5c46d0cb0615fd0c62dea9b44273d0a9780 commit 4765d061d50559ce3addc9a86433c35f48d76085 commit 0088d39b6ad9f7d814c10e7188aba0ddbc737883 commit 9cca74b51ea543f4f64464b0347ff5d43a4e57ba commit a37795cbdff243c198d9cf9615bd5d016bbfd546 commit 99510e1afb4863a225207146bd988064c5fd0629 commit b2e7d636d9ad5dc7e84a95b004345cdd2fc82b2d commit 6bb0a0e0fd358d4f9f6ce4c2d36c1f80d7496f6a commit 7d938bc0119507d11dc02cc6ee47f386cd5d2f0a commit 51707f22744439f0ba009f0665faf7964b4e1b16 commit 6f51260f0eda41a19dff4023d14d543907f0f967 commit 497520ca1915a91188560a26c2dceb9b9c43db4e commit 6abf2fc0072b020cdbb9124ea935603b02502e6c commit de511df7254ab22ee777ef6049547c69c1b2c78b commit 5ed597daa4202e92472953fbfd82105f10aa35e1 commit 2052287a74c95234eabe7a858f157a88d6880029 commit eeb04fa64af18cbe03d1067a435c6423da47b6fc commit 10ceccb8d7b6d9770948da605b8da4cb5d3598d3 commit b0b0f2d225da6fe58417fae37e3f797e2db27b62 commit d03a29e0b1e10820631a9ba600ff669161001a84 commit e6e1a304d759580d2dc0736d439b56e9866cf598 commit 95c3d2758002d588d321ad231c04c6f7adbc4838 commit 267c336349db0e624d217f9762bcc1da414f4b0a commit 865fbc0f8dc21e17dc3ad9f0f1ebf00a6696b2ca commit 8626afb170dc44ed0512e04131e4d8eac0c5ec57 commit 527bab0473f28236e4587c7870586275c1ef5516 commit 6164807dd2989fd4c1435a6b3c61453e63c4e37e commit 448cc2fb3a7b327823a9afd374808c37b8e6194f commit 625097a9e0c614251cd9ba89b1a416a36495768f commit 1d925758ba1a5d2716a847903e2fd04efcbd9862 commit f441dd33db4a5ba306d507e70e97f4656d526e38 commit d25e35bc26c3ca8cd728101545cfb3e86a5d7431 commit c09bb36dd1230838d49a5ebf409df804a5ebfdaa commit a53b554b56e0326edb2ddbbf8c76743191f7819c commit fd3b2e21b8816273ca7813a8c9455c41ff77a96a commit ef9d5a54dae9be855352ead302a9659bb8610285 commit d26c4ffba6ac16b734749b8624124fdfced41453 commit 430bb83dbdf3c86768fcf2f6fba2982823261f6d commit 2430be71c0176ef2757b63df5a25aa5c9e488e25 commit 2665f63a7364633ad90b2c58167ed7ae224e5d33 commit 189789a15f77239d03caad68fe4245be92d7f71c commit 21f45a2363bb0c96ca3e942d7207e7172514b5d2 commit 1f49355c4c5610b687cfa151ea29acb12e8bd72c commit 3f232a0fdbb17c64ee9afff1c16efe94514456c5 commit 8fa6f4c5715cee5dfc04f98780a15eb6d1da5be8 commit e90f0bb0c7c7099a0222b00f1dd882d349f9d857 commit ed12f3f198cedbb164129991766e1a42eecc0bac commit 6c08e0ef87b8b4c1c243719a561c354e893c415d commit 33155ce6e1a846759ba218ca8aa792305b351133 commit c96cb65989036feaeaff371551b40910f32f3c6c commit 3ebd8bf02380ddc32556ee87077db3917ccff40c commit d9a69fe512c5f032556764041760e8d5098fac26 commit b295ce39912cb10d3bd34fba556e4009b67954db commit 6c5af7d2f886bf1f1de9cca3310b24a8d7ceaa47 commit 1da2fcc435114ea5a65d7e15fc31b4d0ce11113c commit 88ac6df8af2c1fd02f2f8865257d8b632abeb688 commit 7b755d65100eacb63f81c35addbdb0a0ef5806b3 commit 8b11e14bd5793cd0e5cb65055fe51588a779f05b commit 7b833d680481f463276aedf500696ea25698deaa commit 13d20aabd6ef501229ac002493c6f237482c47de commit 24adfaffd5adecceb0a2608d5ec2e47756b8a671 commit a689e8d1f80012f90384ebac9dcfac4201f9f77e commit 92020e81ddbeac351ea4a19bcf01743f32b9c800 commit 6edc8f8aff61a6512464a123c160aceff44f6a90 commit 8882f90a3fe2457c8b3f86bbbbef8754f704f5ef commit edd7942085555cbf8da50c855f35b3fb84606c38 commit fdcb279d5b798d13b4365bdcf5548855f6c562a1 commit e39938117e781d0bd21ae45b6c15134f4a6958c5 commit ee2f17f4d02b14549272aa69da17bdcce2879d1b commit ae360bf1821917843c00637530da5b5f5c3c33c7 commit 79aae67ef8bbc8df09099290fc2c3423dcdab224 commit db5b5c679e6cad2bb147337af6c378d278231b45 commit 1f5fc7a50955e20c019ddc73575d8a663301d999 commit a0e7e140b5b2cb76e9b455e548234c22585001b6 commit 4aaea9d72e9aa01bfad7f48b3ad9d0ed591e7cb2 commit 524a0ba6fab955b14d4ae9a15edbb853e9cad426 commit f8fb5cd412e31d6277c5b0107bb37d677107cbc0 commit 85fb8bb9d4a5bae9d1abd0d21550517a40ba81e9 commit 1edf5ae1fdaffb67c1b93e98df670cbe535d13cf commit 6984fa418b8efde7662af151bae4b8dc66e65fcf commit 11b4da982791dc11dde66e9f0954673cbbf4c690 commit 7057474c83817cc707c4a0f08ed05774659a2fc9 commit c18c8891111bb5e014e144716044991112f16833 commit 3c542cfa8266e3364938d055b3d548b7bed7f08e commit 0af4cbfa73afa814a80eb205a9cca8ea78bcc2b7 commit aebdd7428c65a8e2e96c1fd2fd89b4ab90bad913 commit 01e526285a6a591900e7ed7266c1723fed366754 commit 7570d06db73f9e5a97cb55bcdfcc3b15f6f46b9b commit 617ed6c2f0365a62f21936449ca1701937027339 commit be373fad541b60bb785ad59c6daabe0298b39cfb commit 5979873ebbb57b72a8f88ba26d3bd405981cd844 commit d22d446f7a1ccd0db8c138749dde601388b2327d commit b6b56df519a73e35ac3f7d268affbae63221168b commit 86c82c8aeebf6db5df8ab73cec8333853c405070 commit 0bae5687bc689b64343fd8b52db2ad9e448f3f16 commit f53e191e2be811158f59024524b509d39808e454 commit 6d63fcc2a334f7bd15e4e9b1db50a19335d2af4f commit 4f48034b7fceec6845233fd71a0106354bb0470b commit 0bb24555858403671657f6dc025d2931e3e857bb commit 16f0c500f05b029c37cfcba61da92611192c1a2d commit a5e00e1135b09ffb9404ee16701d20b6ee259b16 commit ae6c9601da7addf1191bf54d5d279daa124b71df commit 8acd97545008cb0aa916e6dea5e61f364de9eafb commit 11dff0e871037a6ad978e52f826a2eb7f5fb274a commit 7f41c66070053e269b2082be964b6ce9f95776e2 commit 8ab1d0923c2bdd708e041a765c6e7ca57e6121d8 commit 4f30d920d123c58b6e55e6ccd061673751aab5f8 commit 7b37c7f8f505abc55da54a5a9d22135d77ff73bb commit 37ba5bbc89787aa6029266fef771ce1fc7f596ae commit 1223c15c780bc967e150204ec11992f39fdc85d5 commit ca4b32bb2d723c705fcce1cfb618a0cd19185f3d commit dc78fea1e7fd895990179e2b32164193a9fd17d3 commit e771d71d8d588aa0c0f9ba3e1b81ac5989ffcccf commit 3a50403f8b119d6be4f9935cee97473a2c90840e commit 514f4a99c7a1b635f7336a6e4732e6fe3ec972a9 commit a0c55ecee10055901c9c1b46d0d129cb6b51fa5d commit 7ad153db5859e5e156307865d9df7f2a392c1686 commit 2e4477282c8cff9fd2155710ed9168f38faa0b4f commit 71ee9236ab9e7e7b76be3d106724c35c5f934b85 commit 23eb49251bd6e169a57ed938c815f6f47a312479 commit cc7818d7091d0b07d564048ba5cd67b1210e8768 commit 081664ef3e43dce93710ed5ece326478edbe0934 commit 1f5792549376b3c20639cef7b787cf6262177b66 commit f6c466b84cfa78807b7f71b8adeaf209b4deb72f commit 05d1c76107e33346fdc18fed95f28c9edde8a760 commit 8b1f7f92e57d7eff7a3503763dd2c8e0357c36ff commit 004746e4b119a206c27c6ea0f4b6287bab16a9ad commit 6385eb7ad841bf938427f4fb4e7880ed385744bd commit 5652df829b3c2cee92bd0903a0e70455868fa1a5 commit 83ddd8069f98886ce1da2b506602220fb0e4a912 commit 11632d4aa2b3f126790e81a4415d6c23103cf8bb commit 16d69a891970a8f97f0aac4e7ed0ccbf167a936b commit 5c2625c4a08cf9b19cd070c1b30c75c9e5317853 commit e45b98ba627691c6b577244abfdb18ef2621fea3 commit 8b91cdd4f8649560a8ac37b134008fe67d94ad4d commit 3ccadbce8543dc4b2933509042b3d7e71ef05976 commit 6e22dc35837790a84fc040f08e5094b2d5d91477 commit 35f7775f81bf8147b5b8b11958e15c0cc364b7c0 commit d76f25d66ec83a8166f0c0be79bbb039d66062d0 commit 6a2d2ddf2c345e0149bfbffdddc4768a9ab0a741 commit e9aeeba26a8de1f553305722d017022ae7e79280 commit 69d846126e1653ca9043c3766c66684132586941 commit 447a39f4e89d992f82f03521d46746f6a4348578 commit 74ba89c08e309bfeb2b2f401bf588ab54a1542fe commit 95d35838880fb040ccb9fe4a48816bd0c8b62df5 commit b93199b2867646be5b1c84cc0a844df023877806 commit 2985c96485b7ef4e015d13dc3081fb0479260951 commit a21800bced7cbaf7bb8f5281db17a5d7ef6e197a commit d0c4e34db0b0a012352dad499a13738b4102f277 commit 05b1de51df077a2089e3d8ceec68aa687cff15db commit e580ea25c08d9e89593bcf80640e29108f0542cb commit c47160d8edcdb4d9fb2b333569a3fc13fca5db43 commit 09717af7d13d63df141ae6e71686289989d17efd commit 19cf41b64e3b150cf64fa01dec13f20dc86d95b2 commit 86baad1941702aa9b6fb44d6f150a34e9e4e1fae commit f7fd7814f34c97a6c3388b25db18643309cff43c commit f8be2c5971f48dacbd0e6daa44184dbb6f283dc4 commit c99907c723c6f3f6cae63201ddfac610be13f997 commit 2a67b18e67f30b526ce69b7796a16d847e94e2df commit 44505168d7432f983bc31c5b2dce72bb4de98832 commit c7c90b0b8418a97d3aa8b39aae1992908948efad commit cca084692394ad2733995241866fbb4b1b8668bc commit 49a8bf50caa2fb0fb2eb1c89923ea61192227c32 commit ff20afc4cee7b65f752b1da6d5da4c0bea1431b9 commit 826c387d015247df396a91eadbaca94f0394853c commit 28b5f3b6121b7db2a44be499cfca0b6b801588b6 commit c451af78f301ff5156998d571c37cab329c10051 commit f6be23264bbac88d1e2bb39658e1b8a397e3f46d commit a85b1cb23091d3112492f30fd92308cf4dcc4fc6 commit 2696f9010d21aee60be06b2135806e11c79ded8b commit f3799ff16fcfacd44aee55db162830df461b631f commit 96b1c450b386b34479c0d6c5e24ebee84261433a commit 70897848730470cc477d5d89e6222c0f6a9ac173 commit 627d137aa09fe58308eac06191afcaf865bd11cd commit 981b3045460d1c6f201ca83c1f479cf38d28a393 commit b7e7e6ca1f7b5abc9a4d13c9e929e431240d9f48 commit b9dd6fbd1587ca1204e6b5ea536115ab3fed1798 commit f37668301e362a0ed4b0b2ec6866f0a02fefa4db commit 4f7ee199d905c7a073b676ac4146b964dd651395 commit deefd07eedb7baa25956c8365373e6a58c81565a commit 700de2c8aadcae459a4db19b943962e709df45f2 commit 85c1b9bd13b0b298bbbf128e26a470ec54c4d0e3 commit 232d1d43b522b64266a16606e918ce92a8a0b244 commit 3c2d6ea27955cfac8590884d207353eece8c2cee commit 3867e3704f136beadf5e004b61696ef7f990bee4 commit 94a80b5bc7a23fd5ccaa3ba43ce25cbdb9eefd62 commit 6c18ecefaba7ccb8150bbcf997f7a796a43f786b commit 3700169886659e678fe37629ffcaacd6e559655a commit fe9c5c9affc9103686aed15966b4b54acd1f30f8 commit 81d104f4afbfc6abb3b602356cf7263f69f7a156 commit 50b1f44ec54746e5332f4bc87c70c223192e821f commit c022375ae0955b6d97ec438d658ab43a857a010f commit ebe5ffd8e271e328f33c4bc5cb8cea2b4cf8e058 commit 9311ed1e12417c81e1764d7656d97d9d459f9c5a commit aba3c3fede54e55573954fa7a7e28ec304557e50 commit a896f870f8a5f23ec961d16baffd3fda1f8be57c commit 9602044d1cc12280e20c88885f2cd640ae80f69e commit 0a043904187b31fc34369d31569186a5ded23e20 commit ab644ea6921a2cee9282bc96c35b29b17a8026f0 commit b995747511f6d9f6d6f55bd094e3a5adeb36b55b commit 7238b42e1f4009cde5c67c2c5f9d35d472240ffa commit c11099b0d1aa3e48e9578b440886d8b29779e8ba commit 2f2a4b1879bf6448865af9bdab61d1b7986f6dd0 commit f3edefce70887d78ff88d9f179bdec5ea62a50a2 commit ee347d5b40a14dd9a80dfb2bf4d2c5b3b4367135 commit 4752c85b23ec67586e04133899c9d763cb4d629c commit 007f8539d03d557157fce2e5cc6016275f835906 commit 71f8f119237ff2dd4fed49aa79eecdc50ed41ddb commit a872c152fd91e815ce1a2f251ff06d693119fbbd commit 992110d747177e5815cf89003732ae69cd70913f commit b7675b7bbc3c4c64731d6df66a1df7abd0fe2f9e commit f0dc99a6f742bce9f5e45a6ca48bc4f1f8c6bac8 commit 2c1f19b3272c0c09184b1cce592a91dc34a83506 commit ea6c66449692399005f975b69c72a9e1797871f2 commit a899fe8b433be3d2c6bb9218f2b885d91f3079c4 commit ddb267b66af9d49d54e3d3ce8a6b4e4e7ad9af0a commit c305ae99dfd4d0fe70c7fdf13ef5f7650a804ea7 commit 7b06894b9b902f540b23e5c235570b224d63ec5e commit 4ff22f487f8c26b99cbe1678344595734c001a39 commit 7794b6deb12176112cf6050dd8507cf216e801b9 commit f2bc4517310c37cfeca606079fbfdd025d35c4fa commit f35ed346ef5bb8e5e89802c4dbc8b311693e39f7 commit 0e959b4e993b095641f405972bc56d8aa72eadb6 commit bab73f092da654d149bb4771c418bf585c06044a commit baf3f8f374062573c469631af03bf7fb1725896b commit b220110e4cd442156f36e1d9b4914bb9e87b0d00 commit 69cb56290d9d10cdcc461aa2685e67e540507a96 commit ab50cb9df8896b39aae65c537a30de2c79c19735 commit 34734ab72763d51c6b809ee80ceb04a161a37dd1 commit 4b19f6b728c7ae0cc285d2012d5aa1ab99be9b39 commit c02343249c26032afd4774052dad434b4b4dfdc2 commit 7cbea1b61788c05a5bcb84c73ed5ed90bb2e0a93 commit 487970e8bb776c989013bb59d6cbb22e45b9afc6 commit 2ebc9e4af0291d2e8d14ecc0bad8f36de8cc6e62 commit 92e9624ad9468bdfcf652ba2cbea9d8995397fa6 commit 1538f65f18ee600dd405350d826ec6af05da79f9 commit f83974a408592dee672f9a4904cdc2149c6e161b commit 5734c1774d8f32ea814c2904feae29b4582dd219 commit 726a2d779f0ede31c4739456df1a7a69d10c2a0e commit 15162c5a36abbf051f957ee8114185b899c6975a commit f84b336a2ff7473a7c6c15eff6c4ec50aee476a3 commit 62f887ae46861484c5ff2b8880c69403611c88b7 commit d96c5ed0e37fcba4071d29fed92410b3a4d9cdf1 commit 248e251567a013c960d08124a4abcfc3e2ce6371 commit b6e201f5f13bd61ab8e5187daa0e149826cda154 commit 2e6c99f88679121eacc75196bdf6da8b0e513066 commit 266790871e8d20d6074c1cf3ede7ae92efc61bea commit 873c995a40a5c2324a5d1e890604066b74914b3c commit e1521cbd27aa100a86b54094cfa4387a9bcc2f63 commit 6e4d2e45ef3eff90e2ee2dcbc29e356158c75f0a commit 004f80f91a7831cd32970e1078bb00594d042089 commit 62d4874bee61d971b74dfd5fcd8032ff33746885 commit 32024bb85ec2a8475b89282726121b922caebad9 commit d2de8ccfb29909272fce4eb5cb2bca4fd878df39 commit 825bd8335e4e9fccf33b93813693409b4484ea68 commit 606754fdcb20f781774a279d62bb0852fcb2b79d commit 98009fd73bde2d66fb449cd277f69932fd12051d commit b156def9912fe6d9fd7679c9843f80cfcd9d1429 commit f4cfdbb02ca8227cf4de454071f20cdd09c37cf2 commit 0cb9f228bc2b3871fd1fcef87897f0a5af959343 commit d3e27f7c511044c65b27d087e55b092a3d97e8d7 commit d5ba72f3c18e4556d99bb0360279d0b1e9544359 commit 812e338619f166d3ab864123b2572523f6e4916a commit b1e4747259f4173354b914fb50e547ebb80fffbe commit 67b858dd89932086ae0ee2d0ce4dd070a2c88bb3 commit af10ec31a81b2f8b9a3b2d1ef05f553cc9495701 commit 8722ded49ce8a0c706b373e8087eb810684962ff commit dfb924e33927ffa51e197acd58ad1c5edf1b5ff5 commit 8697c410457fbc50169d2c7db4a7eef9b58924a9 commit 83b965d118cbab1dbdfffdff8cabc8c1cfd183c6 commit 5f97816762722cb08a4e0a124fec02abe0a2208e commit 5d50c8d7ed59f675d25cf061b5ca67ebfa7b450b commit e83c18cffaedb1cd5da935b06d49308f92ea50cb commit 17815f624a90579aeac4b700f8434e9ff6a6d001 commit 1c7ab5affa5e73ed75732be2f2fabe1ae86c82e1 commit 61b98486e4314d39d43921680d68b46c3083b22e commit fbf8b5dc6d9edd7f807f7a6f44ff4c18f96f9efc commit 491fe469ad0e14a06dce7ebc6a19c4fc3f9300e7 commit 2fb352fa627052c9e551339fe27158df305bc622 commit ba884a411700dc56dceedfa53f9364cdcfb70427 commit 2060a6895b768d907fd3efa9f52981e615171ec2 commit 77ab3a1ecb1986c17644c48b66d9de0a9a0307c9 commit d4a23930490df39fd076a82649ddba6b3a6c8216 commit 42c632b0555ed0500ff26b329e194fe77d2b6123 commit f8378c0403813fd7cdf0eb5cb878b1ff290046c4 commit 27cc310f13529bcf24518854b10f098de7fd7d6d commit aed1faab9d9563ca5ac5139b0170486027ec74a7 commit d682619557120a5f2d460b822f5ff922435a5261 commit 81bb9bc95355055e2fa297b9a81e9d786eca9903 commit be1ac692c08971486d68a88f39fc4e2cecb80a8e commit d29b7980b55ebe96ba167aeb88e81775c141f659 commit e885d64785aa56e10e432c3319e3b5b0a2d30ac2 commit a1f5e392de78f122629412d6e4350d1c887f1711 commit 4bef85d4c9491415b7931407b07f24841c1e0390 commit 7b201d53bc77e8517bd78348385b6362dfa33a4f commit 1e146bb88e26b6d5454326f7591662eb095afbd8 commit eb9e59ebfe7354c18d7d6f59211fc7a7b794d019 commit 800de20b1dbdfd85e303a42b0f27c0162ce18698 commit 32b119c896121e71ccf1202499e7f0292c73e1f5 commit 41f91315b5be5a5fd4011c193f6a14fee34fd027 commit 6fc429c81a64b0b77fea38809b01ae94a9348025 commit f7ed3f90b2c69ddd2414d9839ae334c10a606c55 commit 30c1e391978180dab913132201b944c08054c822 commit cf63b702720d734cb4144440d72d4b2ac6c494f8 commit d374d3b493215d637b9e7be12a93f22caf4c1f97 commit 20543be93ca45968f344261c1a997177e51bd7e1 commit 0b7778f4a63a1e0dc10af27201b99d88fc0ee7b0 commit 3c021931023a30316db415044531b116b85e6ebd commit 8eb7fcce34d16f77ac8efa80e8dfecec2503e8c5 commit 08c7c122ad90799cc3ae674e7f29f236f91063ce commit 31d70749bfe110593fbe8bf45e7c7788c7d85035 commit 97c8ef443ae1f6493c02d6f433eb5a2b72d8b438 commit 03848335b5b1faa4a4641fcf30b7c233579a45aa commit 52407c220c44c8dcc6aa8aa35ffc8a2db3c849a9 commit 4a75f32fc783128d0c42ef73fa62a20379a66828 commit c9ee950a2ca55ea0f63d0893f796b2eb089e7900 commit 67c430bbaae153433f76807d07b8298ac4714822 commit 20cddfcc82e642e4682c48af91f0702fbbd623a0 commit e08a7d5611b876bf9da3ef7c185d26dcadf24dc9 commit c8a04cbeedbc9f71c475141baa656f14f4879792 commit 4bb713375e9f4d8b6d540ff47e61a4e357c4229f commit fd2b94a5cb0ff4bb163cdc4afaede6527eec5f7e commit ae710a458f0af6ba2b991ebdddffc66e8dbd765a commit 01dd1fa26b85167cd19b04b10e015aba3e243d08 commit cbb8a7957108e96560c43953f70c377d8d9b6643 commit 927167f37fe03f017fb0a89ba2c4d35bc51f233e commit 7d41745acfa722309dc7dbdcf8801452c53e936b commit 94b541f53db1ec6b99fc2186b084177cf6e18824 commit 6306d8dbfae6abbc049cb92fc7cf2acbcd983f8d commit 21a6732f464894fa43fa1d43fdc7570b454b970c commit c83125bb2199bc304badc98fcc7c79704053aeb4 commit ca9216246094904119b94478176eae83090f0fdf commit fef53be028740aed15c288534e8f15719fb49947 commit f122a46a637f9231433d30aa1f9a199f8688cb97 commit 0b64e2e43ddeb010d3f2a45f978e6cb919cd0895 commit 8aadeb8ad874b3b13431fd08c1ddb6d5e0212c7f commit f4708c16a6d7da93baee9ebf9cd46359b4a34bd7 commit 8ad0c3fd132bef4b849b3770038a6b533fa49579 commit 8afa13a0583f94c14607e3041c02f068ac8fb628 commit 24df43d93d72c5bb86165e5e59c64f909ab0149a commit b05fa56425f5028520b5c1457b96bb68dc74bf7c commit 853369df34fb61f47ab883586e14d0fcd8c47437 commit 4fb9326b96cbf9f751086969161a6c1d75bcd8f9 commit abaad3d95b5117a17886d37cf0228712801cd259 commit bf625870b8309b4af75f9c19d287d0c9230634d3 commit 9ca476acd5e8725706c6ef3b0d94d3005836ffdc commit 94eb7de6f4bec1c8bb99371c21df42cac0de6ee9 commit 1ff9fc708185a94c79d4def79c0a500829297575 commit f8eb96b4dfbbbadfb73ee9a1cd0294f9e2762a14 commit 15bb79910fe734ad21c765d1cae762e855969caa commit 211b4dbc070090b4183d6f9db7dd3bd4e6170447 commit 43531edd53f07cbe977a0b33dea6dd6c29b21fea commit b07bcf34b6c98a7dd540c94e804c39a4273da37c commit 1c66496b1391699040d0ddda21fe1979865f6eba commit 3d832f370d16a8757024b2523c4c6b64dd7eac6a commit 76aee8658b8f5836ace0a423157f29fcaec65e30 commit 87bb2a410dcfb617b88e4695edf4beb6336dc314 commit bce45c2620e2142eb18bfb4b0aaee8cb83429a35 commit 35291c9c02540692039cf7231f7de42fc89be096 commit c7c2918849138057cb2206b4fe10b65f02ab07e1 commit 1aad06f89291c2191f7c352bcd63cdf393f0f87b commit 14567eed87a39d0b40d3e1444f0ddaec013c1a52 commit 0cdbab89c02d47a277577a90d02e3f214d2af9ac commit ee0ff28a497eed4e23e0d617e6f5feacca69e0f1 commit a09147188f7fc0d1ce9b5fb6b7fa6a81c6806073 commit 754d6275e9ce6310813087628ef2e44b6c65e23a commit 2bebea57c2efeb7c4e981f5ff76bdca7e58ab815 commit 63cb9da6fcea9029da8c9d1cfc93f1558b229c1f commit 6678916dfa01251b888465e2193e28affb23fca9 commit 35d4efec103e1afde968cfc9305f00f9aceb19cc commit 013005d961f7d5d1b422ce7f281fba9ffaa2b52a commit b2657ed0a56f63b1789c596b36ddc6b618726661 commit 40aa583ea345624967c5b6232082d7b839de537c commit 7e4aeed859d47474e40f43ef6ef3004ab52486be commit 655ff3538eee3a3dca7103f97de883e033bd1011 commit 123202744955e62470174fc3ba666a4d98062ea6 commit 175ac6ec6bd8db6b7e08fed8fd189bd492015b28 commit dd26e018aaa408faaf16168cbc7e83c2b159ae63 commit a5f67c939eb2d3841c110c5355bf2226e1850828 commit 85a774d9ada4eb9e83044cefecf2712a2d7171bf commit 0e2a82a316825ba1d0bf35703ceddd4840e59bca commit bbe04dec5c52a075175a627d510140d386a71f98 commit 2351b7d4e3fd636f8ce0bb9554645dff2dbe86ce commit ded331a0710db8e92f3efd1c8040c0c52997c9b5 commit 64cf26f04ad05ac7b4fc7d3339d893f21a06cab1 commit e105b64a364adb0fd0b780050441eb05468fee33 commit 0771c805918c56b335c8f726e147b19c4f78565b commit 726be40607264b180a2b336c81e1dcff941de618 commit f864df76ff1021b21776a7df029c0da884794c28 commit 4853cbcd94bdd654e94aa40ae718efcf5b6ae57a commit 0f7ef0b99da15b28fad78da788e55adc642283c8 commit a60831ea3ab2498d16f625c74b9e782383614cdc commit 613aa3ea74ae012d4ff7a6e6ed6d288b6212e4f1 commit 48733b224fa7ba32de9e9a1a8ddc8eedcd603919 commit addaac0cf75dbccf5c33a5c03d6b22a6bbdf9952 commit 4046afcebfc3c8c0dd5666c2671b2c192b344f78 commit c40bdfb2ffa4cf16b818fd6c77856e6d976f52ff commit 43a80bd511aa6077a79768335211f71760ee063f commit f6dcaf0c07480f8b7e7568e3bf3c4b776026edfc commit 32f0e1a3307f1372824dcf28b90fdab5aa11b54f commit 2cb6577a303425090f3b5f4c40096d45a9048875 commit 2c113b999c20a6083a9d65f0e2d2537ed818b395 commit 4ac955baa9330742b1a49990d830963f91bfa020 commit cace4bff750ff4f55b16c3aa90aa9376d7488929 commit 34f3a4a98bd388ad6298c42dc9b00c72d3398330 commit 6ff7fddbd12064dc9de03e0c1ad03e13f6ba7af8 commit 4a74c38cd67b3e74a1dacc76c7ac5c276bfdeab5 commit 28fe416466f2f09b47a9c5e81fa1ac140512f3d5 commit 4fe3819443a13f8ecf11f53559ada5711dd8d4b1 commit 2b36afc694bb3eba5a065c34fa0d735d623ae66f commit 929bb8e200412da36aca4b61209ec26283f9c184 commit 9be9bf4e3a5efc2991375e22ec9956dc654652ff commit ba6f8c135af02f8a38fb9856cfce6351a90f1ea4 commit c1e003d3ff6973aa896eef4e6a6d432e6afbff60 commit 33c3365ec690c3857ecd579eef75e36a746a8122 commit 240e6d25a0a8ab98c042e37b2fd3c1f2cbf3e561 commit 6f072a84550d93342d7f7282e661e3834a801159 commit ff7ac85282a12c4f4968fa810186fda32b10dea7 commit 47d9c6faa79e85a6e196e02cc74c4775d39546a0 commit 96db14432d979532be4cb6d5d52a127317e68b3f commit 99b03ca651f1c409d296d6c6e9440d9b005c722f commit 0ef42fb749b17f7e49adef047ece5bebac5d6795 commit 2e21de9028270a72d2b7dfbd0fe46a6beace1f01 commit bd56c63ca1d953f035c1a06a0431c106ffada849 commit 43d5ac7d07023cd133b978de473b3400edad941f commit 5719d4fee1caed83979b21ad4cf34d46abf97514 commit 1b9e8b1feb33d75bf942a174719a861815fa7279 commit 0215466a8585b6d9c132f9d9e46da3966a84eabb commit 70487a99eeff5d0aa8104bd4eb236f318395658f commit 741fe8a4d23de0ee93a4a4e1f54e48161b98cdb4 commit cd9a0d026baa10c75688908556b3af218bc4ddad commit 4658b25d38831be8b0d1a9eebc05b067cecd559d commit 4308acff0f3f4fd523e69face1db33f8de10a5b1 commit 47e62dbd8dd30af66e8fdf1930a326971609dd32 commit b477143566d5b16c8b92ffec2cb3a896fe818509 commit 4866b0bfea40cddb7275c88aeb95b47dac3d2a35 commit b4acd97bf827122bd333a4d043c275a4eb9db905 commit fa4a427d84f9b797970a3d5139d7645403e4e989 commit 7e31a8585b79a4d67e7fefdb6428054d18ddd339 commit e0f943b4f9a366ac7f24fa3f0e52141178d4f1b5 commit 17252701ecb5ef3bdfb912aae5a011f93978781a commit 91e16017b6d36c2b7358654ccce9f69b2448df20 commit 85dfc1d692c9434c37842e610be37cd4ae4e0081 commit 948e7ce01413b71395723aaf846015062aea3a43 commit 03f2abb07e54b3e0da54c52a656d9765b7e141c5 commit 326db0dc00e57432b689349b4da3e86c90d5d61a commit a342655865b2f14d1fbf346356d3b3360e63e872 commit bdd8b6c98239cad3a976d6f197afc2c794d3cef8 commit b25db8c782ad7ae80d4cea2a09c222f4f8980bb9 commit 939d8e9c87e704fd5437e2c8b80929591fe540eb commit 7aa6d5fe6cdb4347c427caaba38f11cc88a8ed4d commit 2406846ec497af081d7e7a7da0e9938b8136fe16 commit 6e94d53962f7bc972582dbfb46b31f3a6e328a47 commit 2aa9f833dd08594584ce2add23a3cd11f0d623bf commit 0013f5f5c05da6321539df6fad75de150f430909 commit 88438668c9e0e32220b4605610bd888b4e50fe80 commit 938db276594697efab602c66cd92c48cbc60a314 commit 877691b987a089938d67de13d886932ef2f21b22 commit 6ea966fca0841174b6bafca58e56f9c11d3af157 commit 006ea1b5822f9019bd722ffc6242bc0880879e3d commit 55dc449a7c60d3df5a8f0b71bbae9d5173c864f5 commit a2cce09c349e2d9847ee7145986ca27d99bf0f61 commit d0a0b6cd8cf9f39d99d7d5c4c080499d17f43c33 commit 0b665d4af35837f0a0ae63135b84a3c187c1db3b commit 9758ff2fa240173e9a45613b07774b7a78b7653e commit 9f952378fcb90d202cbdf359aaeaad9429edbd0a commit f296a0bcc9611ba96ca3abb3332e21ee600d153f commit 5c1e6fa49e8d8dbdd8bb457492b2bc52718df244 commit 69879b3083cc5022585d1826c663c330efae4e63 commit 0ff76b5334fa6f44d1a1a6b3bd39f5667b092654 commit 3c27abee3fc3d59fb978e3291b60eaaddbcbf2e6 commit d999bc81ac3872a8543c4afbce30e0d46b4bb9e1 commit 892deb48269c65376f3eeb5b4c032ff2c2979bd7 commit 109a357f287c3b14a43216104299aafc1fa23cbc commit 799dce6fbd5fda21d461b56b8c6ca85214e20076 commit 0cd7f378b0927e10774981eb09e388258ca925e0 commit eacef9fd61dcf5eac8b775bb1814042e78a5c42d commit 8b70b5fee012172659717024adb6f17726d76290 commit 4e07d71c0d667ebf1e36be90b962081d2b778909 commit bc701a28c74e78d7b5aa2b8628cb3608d4785d14 commit 50ca8cc7c0fdd9ab16b8b66ffb301fface101fac commit 58fa0d90eddeda37b32597eda139e888ebe5af04 commit 030def2cc91f5185c697f29d3c485c63559cff1d commit c0f0dab8ba4858863579170dcffb23c1002879b7 commit 62e94f92e3977dbe67a6974ba7e5aa60c9a5e687 commit c14adcbd1a9648dc9d16dfd12c1e9bc0c14ef6aa commit 1a9c4db4caf0a504e35f0cfd97e54e07ebc85044 commit 93b76b13cfc13bf02d91aa544efbb067e3382141 commit 8c2699fad60e3f3e55481b49a38d46f49ebba77d commit c68c74f5b91ba56dab3ca9a219462e08c9b3cc9a commit 2cbc876daa715d50543e1d4d73f4e692860a51e5 commit f54ffa12168dc52f0d48d9fe32eacbbecd2c2c1d commit ad5c99e02047f33bf7043543545e3b17f37c8d5c commit e4e80625300390d8846b72d7076fd1a75af6ea60 commit 0b4d1f0e936e5c6beaebc32785465228ae0fdd16 commit 2abb6195512d14f0da45a27ca1be7cfca6658c5f commit 576c4ef510d7ad7f43730ba799441b0f24a29b1d commit fd06ccf15987dd94dfb902f328ef06c010bc7972 commit 9606ca2ea190e439f90426e2a740a48c800a0aab commit 57b427a705ce98308328fc4fa93524a9a8a3bf84 commit 0dd8674f2fc926b8a2404570c3cd0129a75dc70b commit fb3965f9ae28b83290e5b5431a77aace66071ca1 commit 2c3849baf2908d646b7466be52989835341551c4 commit be7612fd6665f5ef3f6c89e78bb4ec4dbff6cd16 commit d8be1357edc891b4259e3ecc1b831452361379ac commit 1c40d40f6835cdee99c6966b48b98d0e38c35f47 commit 1193081710b361ddb4b81d3e2f929b6d6e1f89e1 commit 33654ef470a97f9fcb19abc7e7ef660ea37e3aed commit 63cf4cad7301edafeb0650f32154006f1b5e6e78 commit c2ea703dcafccf18d7d77d8b68fb08c2d9842b7a commit 91f75eb481cfaee5c4ed8fb5214bf2fbfa04bd7b commit b06103b5325364e0b9944024db41b400b9028df9 commit 6cb12fbda1c2e2fcb6d3adfe01f18eef6812e278 commit 4817c37d71b554fe46ea494f6b2c8562b26640bf commit 040bf2a9446f6ba267225d34dc4a9b14d11e5092 commit c65fe9cbbfd61dbc12868f9ed4940c80fcb249e8 commit cf6299b6101903c31bddb0065804b2121ed510c7 commit b18ff6925d84492d845debe2dbb81122b1d141fa commit 0da6f6e5872e8c1e794bc3a705ea27a156b6a8e4 commit 92f153bb5a4bff4df8c67dcec5a9de1dde3b300b commit 4aa325ae541378166b3a84186bc1157a1d524f8b commit 4a0165f0603f333c6b36a420b4e348b67ddf6fc8 commit d764fb2af6cd92eee080978856f24b0cc6d555ad commit f4409ee84658ff95d92daace9f094fa6bf80b0e3 commit f6b80c04aabb4fdd18ed8fcbaa5efef64e5d0b36 commit dec63443380cf2ce6bc41258159cda4165fa4279 commit b6485bed40d7859735bdbfedbd55dcc8366a88a7 commit fbcdbfde87509d523132b59f661a355c731139d0 commit 4da8b63944a4f4482303c9ad6efb18aa547d4630 commit 88eabcb8e6965b38331618f60567dfe92ad3c42c commit 11544d77e3974924c5a9c8a8320b996a3e9b2f8b commit 2b534e90a1e31c7fc9536b512b72274cc3575f4c commit 011e8c3239ed36b4720113cafc5539d22cbb76cd commit 87172e89dcc7b09b32a4eb5f21e35d310e3cb024 commit fd5256cbe19609bfff0cc51e9d999a46020719da commit 6c92fe5fa5a1f24e50296de9d24d36a1b605b208 commit 4ad31fa15ba472866d538b3cee05708a9d8e8197 commit de0af8a65ea3c56e85517d23316679eacddb7a45 commit 67416bf85345b6990fe2adc42ab082bfefc578bd commit f89c6bf73420c597769033dcc811ce691597ccf3 commit b6fd6e0f5eb8c6d10575d08a2c6df8ed83877e07 commit bf252ce1fa8ac68baee3f8525fc6453d278b619d commit fddb024537f121995957d816fcf8e2e230451db2 commit 21bf3e6f1454b8f472ff7e6cbc95931dcaf7eb47 commit 2d0158497a9b9a80a92b02e55513dee4599eec96 commit e56e9ad0370a29a4bee3a99fd517d8583804fd74 commit 3db817fce43ec3d423b969911151dd849f4d7351 commit 0d988e5de7aa5ee8865cbc664180ae67918a6b19 commit c856f16c33e6ed4bcfe3f0e51afeb9b08ac48f0d commit 458c79a86ae1081636942ba3c42bf0424f3c6970 commit 2ca6c483ed2d73ff263457c166527abdb82bba06 commit 47547c56739a4dbf1e96a170f5b16811e04c5024 commit aca05d338b3226255fdba56771378a2dc4c9caa5 commit 19afe66ddb8f18c7ad5cd07322c6d8d2a2905ce8 commit ef30f441f6ac12875c9901e8ea1b9cfae6f0e8bf commit f3fac9481bc7b9518df18f33b71a6109a245ccc6 commit 3d38a5839ea8afe58fa59abc0a3453f44cae81e8 commit 6dd8931b1ceebbb92e4e0a9d12a236d82a072ea4 commit 4c3adc0b846ba22a8a92764495950b7c2482153b commit 45e3d1db7d3ca013f1439248a268b0cdada5d5a3 commit fec8c5244fc07b1f6a3249a8714489f594ff5c4f commit 11c9cc95f818f0f187e9b579a7f136f532b42445 commit 937ed9c8660a27ac4d36e8339c970a2ae7903c4d commit 0726ed3065eeb910f9cea0c933bc021a848e00b3 commit 4a700546ec9b8fafedf569f363f905b9ec7f5ee8 commit 6dc8265f9803ccb7e5da804e01601f0c14f270e0 commit f28cad86ada1a7345d7bbd379bef5a8babfa791b commit 0637d41786a3a9551f33ad8e15bdb40416362028 commit cb6846fbb83b574c85c2a80211b402a6347b60b1 commit 5b0ce2d41b70bba49b91b10c55984714490354ed commit 216a9873198bdc5c670a9f71d58fafd30227c9c8 commit f38b0d48cae88395a05e49cb885fa6ce657e1cc9 commit e53d9665ab003df0ece8f869fcd3c2bbbecf7190 commit eac4c54bf7f17fb4681b85e5fe383b74d6261a2b commit 771ced73fccd0ac19bb956eaacce3669cfccc805 commit 580013b2cef8babc204b7b78ff093140e112b194 commit 79d6b9351f086e0f914a26915d96ab52286ec46c commit 46a74381e5ea54dc78ad7c29659dad0b1eb66b0d commit 214993e106ea84a82e2c644bff3dbbe601b11e04 commit 19e43f1276b38716ad558c2018535e475cb9f3cf commit f9535d28ac93c3cc326f7215fccd0abe1d3a6083 commit 4c2602ba8d74c35d550ed3d518809c697de08d88 commit 03ee5956781b2245b1c77334ecdea6386fd3bfba commit 8ee262ba79a19a4dba9949397b1cf5761679670c commit 6ef295e34297433c78ea02dfcf1c649a769050bb commit 7e740ae6350407d68d2069ce79a6344bf1b58fe1 commit 8d0749b4f83bf4768ceae45ee6a79e6e7eddfc2a commit 75b950ef6166e4ef52e43e7ec80985c5705f7e81 commit 69e630016ef4e4a1745310c446f204dc6243e907 commit b54ce6c92cf57ff276e4539750c140c9c96416f3 commit 63ad5371cd1e379519395c49a4b6a652c36c98e5 commit 6638391b9f78abaa41f05fe4e0d2ee6f6390c398 commit 62d5f9f7110ad374db67ab4820f4ff2d916c3cdb commit 1dd8b1b987fad93b647cb0fa5289d69b4c889dc2 commit ffb378fb3069520da3c2be3c1269250ec9c028ab commit ec6aae9711a8e5fca24a537b9ae952e38a1ebb71 commit 575e55ee4fbc2c641a29b0054b3473e9fa81ae76 commit 4cc9f86f851847e5ebfb56212d81f1a30b9d392b commit 7ff61cdcc8609a19f3eddf3fffc09a05ad6d6865 commit 5fea167ec0a134cb61fde848a3c344f77f0c13a5 commit 83293f7f3d15fc56e86bd5067a2c88b6b233ac3a commit 8b5da5a458c95ad49571a6a6285800bf13409616 commit 978ffac878fd64039f95798b15b430032d2d89d5 commit abfaf0eee97925905e742aa3b0b72e04a918fa9e commit 9b7a4de9f126d8c8d59052088213990159417d5b commit ef3b4137aa09a9ad38f42d4de087cedf1b98c521 commit b121862c787c2a84ed5f42597aeeff5c1ead8f5b commit 4eaf21b752891fffab3d51ac96e81194cda32d1c commit 2096b74b1da5ca418827b54ac4904493bd9de89c commit 15084a8e1658ddaea42c7d3a72ccbcec2b85f54c commit dc5d4aff2e99c312df8abbe1ee9a731d2913bc1b commit 6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1 commit 5eb877b282fecc8b8a6ac6d4ce0d5057f9d3bad0 commit 6dc69d3d0d18d587ab9d809fe060ba4417cf0279 commit 54329e6f7beea6af56c1230da293acc97d6a6ee7 commit f1dcda0f79548c04f585108e2e165cb4fec951e8 commit 91c64a4f1cb01cf0ec50f0372ff8ca9d3022b7d0 commit d72d69abfdb6e0375981cfdda8eb45143f12c77d commit 016017a195b86d9761e91cb052438bf71207a12f commit 8f18a987ca761583a09d8e41f9938f61480deca3 commit ad783ff5a20f851c6d9bca03d12d44f98f494af7 commit bd672b7559efcd3ae3faf0b0e3846e30983e8ace commit 5d474cc501b90b82c182b5d00439eb6790a82e21 commit 71e4a7029045e3904e0e9242b4a7cd84d47b8fe5 commit 820e690e4eb88eaee68bf0b2d89fa9597bc00a45 commit 4efdddbce7c1329f00c458e85dcaf105aebdc0ed commit 4175c32be5ef0ff254d6931931ec412e8029c32a commit 0ffb1fd1582a78649f22253d81515997fff88bc4 commit e8309d50e97851ff135c4e33325d37b032666b94 commit 3993a799fc971bc9b918bd969aa55864447b5dde commit d82ce3cd30aa28db3e94ffc36ebf0af2ff12801d commit c4849f88164b13dd141885e28210f599741b304b commit d9679d0013a66849f23057978f92e76b255c50aa commit 59d41458f143b7a20997b1e78b5c15d9d3e998c3 commit ef3ac01564067a4337bb798b8eddc6ea7b78fd10 commit e26602be4869c74dd8a0f66f718b8a0ce120edb4 commit 57d17378a4a042401b0c2fe211e5a0e3a276cb3d commit 3bf6a9e36e441714928d73a5adbc59562eb7ef19 commit 520d9cd267618181901272a79db6154c0b83309c commit 9a458402fb69bda886aa6cbe067311b6e3d9c52a commit 4722f463896cc0ef1a6f1c3cb2e171e949831249 commit d3cbc6e323c9299d10c8d2e4127c77c7d05d07b1 commit 410482b51afecddb8fc29324d1b11945dfa0b682 commit ccf34586758cf00c0934e48f6ef6d688f01d7b19 commit c2c94b3b187dc92b2002809f489e0f24a41e91bc commit e5a1fd997cc2deda1b08d5faae04625de0440a1e commit 2dba5eb1c73b6ba2988ced07250edeac0f8cbf5a commit 5ec1cebd59300ddd26dbaa96c17c508764eef911 commit 7938d61591d33394a21bdd7797a245b65428f44c commit 5f0c749158158f89eba7647bdc4e8096979de981 commit ac46d93235074a6c5d280d35771c23fd8620e7d9 commit 7e38ac562b820915faa33a5077ca9bccf42d39d2 commit 9e5a14bce2402e84251a10269df0235cd7ce9234 commit dc919d670c6fd1ac81ebf31625cd19579f7b3d4c commit 98fdcacb45f7cd2092151d6af2e60152811eb79c commit ebc77bcc6e1660a011483c035d53c461c8dcc4f5 commit 72a8d87b87270bff0c0b2fed4d59c48d0dd840d7 commit 25f1488bdbba63415239ff301fe61a8546140d9f commit 2a807341ed1074ab83638f2fab08dffaa373f6b8 commit 48ee4835b73c48590d05a54730dc8037ebd39d3b commit 76cea3d95513fe40000d06a3719c4bb6b53275e2 commit 7fde14d705985dd933a3d916d39daa72b1668098 commit a0f90c8815706981c483a652a6aefca51a5e191c commit 43f2517955875be5d96b641fba33d73097fe3cd9 commit 23ecd4c1354226fd6ac9c5f8881666f76b9d6cbe commit 2fd0e5fb4ba37dff344b7bed5176212c2d6a7063 commit db5aa1497d02e7770e40dd0d1bfcb4ea0b0d3906 commit 82b550fa99f2c73636ca3f84900117c3c3272ef7 commit 8172f41859cf7516e73eb957297e6752b3073119 commit 5ae13c305ef8cb54efc4f0ba4565709b9f320fed commit 90a3d22ff02b196d5884e111f39271a1d4ee8e3e commit b3f74938d65665f892d1b7807c51140f68dc911c commit 3c6f13ad723e7206f03bb2752b01d18202b7fc9d commit 1b777d4d9e383d2744fc9b3a09af6ec1893c8b1a commit 3ec5586b4699cfb75cdfa09425e11d121db40773 commit a6ed2035878e5ad2e43ed175d8812ac9399d6c40 commit 92c4cfaee6872038563c5b6f2e8e613f9d84d47d commit 7d73c602154df56802a9e75ac212505fc1e9a2b6 commit 9a8406ba1a9a2965c27e0db1d7753471d12ee9ff commit f52a2b8badbd24faf73a13c9c07fdb9d07352944 commit 04ef860469fda6a646dc841190d05b31fae68e8c commit bca52455a3c07922ee976714b00563a13a29ab15 commit 2d8ae25d233767171942a9fba5fd8f4a620996be commit f5fa54f45ab41cbb1f99b1208f49554132ffb207 commit 49a6ebb95d04bdaa5d57313a380c44249cf02100 commit 30fbce374745a9c6af93c775a5ac49a97f822fda commit e55a3aea418269266d84f426b3bd70794d3389c8 commit e8ae38720e1a685fd98cfa5ae118c9d07b45ca79 commit 8ea2c5187d7b4901a70374415e772f1db422fb74 commit 9ca3d3cd0857523c95ab8cdbb6cfe47b8f90e309 commit 9ccdcc73d37cf0f1d4f97712f6b38af8806ac064 commit 6df4432a5eca101b5fd80fbee41d309f3d67928d commit eb48d42198792f1330bbb3e82ac725d43c13fe02 commit ee59792c97176f12c1da31f29fc4c2aab187f06e commit 3526b607b02397cdb6d459594e4f1d63133d6655 commit 9d7516b16f2a7ecbddd7940e582c78fcdc9136ef commit 8fd5a26e43859547790a7995494c952b708ab3b5 commit 85bb289215cf37e05e9581b39b114db1293f9ecd commit 4e6f55120c7eccf6f9323bb681632e23cbcb3f3c commit 200e8e3e43c4da4bd5ca83722523754ddb14ca02 commit 03ad3093c7c069d6ab4403730009ebafeea9ee37 commit a072312f43c33ea02ad88bff3375f650684a6f24 commit 328e34a5ad227399391891d454043e5d73e598d2 commit 60fdf98a774eee244a4e00c34a9e7729b61d0f44 commit ad787771b43602d64e02b5963f4192232b46366b commit a8b1e8636a3252daa729762b2e3cc9015cc91a5c commit 6e7545ddb13416fd200e0b91c0acfd0404e2e27b commit df2bb4dc285e60665930889e6f8c5bb38b90249a commit 78306438355353e677a5ffcf5e9351604b694159 commit 95e875bdb1862db178bf24fb703387ec3aa3a34a commit 59f39bfa6553d598cb22f694d45e89547f420d85 commit 080eba785fe10ba21c40bbdd80f2bd5331a28be6 commit aa4d01a4734bcb1cc9190807cdbcd5af1495910b commit 698bef8ff5d2edea5d1c9d6e5adf1bfed1e8a106 commit 8d9d2a723d64b650f2e6423024ccb4a33f0cdc40 commit 0bdc0a0699929c814a8aecd55d2accb8c11beae2 commit ea958422291de248b9e2eaaeea36004e84b64043 commit 26ace8793aaefbcd0d6bb664573ded35c69cd6ef commit 0136f5844b006e2286f873457c3fcba8c45a3735 commit f8f4e2a518347063179def4e64580b2d28233d03 commit 9c4f59ea3f865693150edf0c91d1cc6b451360dd commit 364438fd629f7611a84c8e6d7de91659300f1502 commit 439cf34c8e0a8a33d8c15a31be1b7423426bc765 commit babb1fc3234320bd17930e02bad9d1a83f5e6859 commit 5666b610194705587807a1078753eadc007b9d79 commit 3f33364836aacc28cd430d22cf22379e3b5ecd77 commit a40ee54e9a0958406469d46def03eec62aea0b69 commit afc189df6bcc6be65961deb54e15ec60e7f85337 commit ec663bca9128f13eada25cd0446e7fcb5fcdc088 commit 28adef861233c6fce47372ebd2070b55eaa8e899 commit 1432108d00e42ffa383240bcac8d58f89ae19104 commit f626dd0ff05043e5a7154770cc7cda66acee33a3 commit e3f3824874da78db5775a5cb9c0970cd1c6978bc commit 4d22336f903930eb94588b939c310743a3640276 commit f762ce78897d734a08f52e39a353359b7d417578 commit ecbd4912a693b862e25cba0a6990a8c95b00721e commit 7294863a6f01248d72b61d38478978d638641bee commit 3743e7f6fcb938b7d8b7967e6a9442805e269b3d commit 1e2be869c8a7247a7253ef4f461f85e2f5931b95 commit 97c61e0b7c596cc5f683da30289f92c2e1b4b799 commit e2b993302f40c4eb714ecf896dd9e1c5be7d4cd7 commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e commit 753a64c7799034a413083ad03b9fe51dfcad9fb2 commit 7c17b3d37f1fa1eb0498cdf63d43ce37b23eaae5 commit ecf8a99f4807c17fa310a83067a95964cedd9ac1 commit 1b279f6ad467535c3b8a66b4edefaca2cdd5bdc3 commit 08783aa7693f55619859f4f63f384abf17cb58c5 commit 26d3474348293dc752c55fe6d41282199f73714c commit 62929726ef0ec72cbbe9440c5d125d4278b99894 commit f1ef17011c765495c876fa75435e59eecfdc1ee4 commit c9585249c245e23580a2c3edbc8f14d9d7173f12 commit 8fdb19679722a02fe21642d39710c701d2ed567a commit 804f468853179b9b58af05c153c411931aa5b310 commit 3755d35ee1d2454b20b8a1e20d790e56201678a4 commit 40ce1121c1d76daf9048a86e36c83e469281b9fd commit fc1b6ef7bfb3d1d4df868b1c3e0480cacda6cd81 commit a8253684eb4b30abd3faf055bc475c23da748dc6 commit 3c3384050d68570f9de0fec9e58824decfefba7a Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:15:52 +00:00
signal:
Merge DRM changes from upstream v5.16..v5.17 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v5.17 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/Makefile drivers/gpu/drm/i915/gem/i915_gem_pages.c drivers/gpu/drm/i915/gt/intel_gt.c drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 0dff40bb863c,ec2ef2cce11c..301a44dc18e3 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -127,3 -134,8 +134,4 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit 107fe904302092c683cf5462b4af3cb3cfa40998 commit a1a98689301b9af0313e4c1ba44558e8b67ff76e commit befe5404a00b3b1547c944738df4a9229909bdc9 commit 8a12b170558aabb31cc98fda0da6a56b518cadaa commit 334f74ee85dc26a50c1a2b0da82517595191f92f commit 57a06e907c07b17308f9e6e6ce91402ee7ee03e6 commit 189723fbe9aca18d6f7d638c59a40288030932b5 commit 7c4dd0a266527ffa7ed8d424facaba171618820a commit 1a84a308acda285cf9fae548262b8e199845b2d1 commit acf20ed020ffa4d6cc8347e8d356509b95df3cbe commit 437c3d87590e7c1d901c66d8916e7a58f0fc7ff7 commit 5f31dbeae8a88f31c3eb4eb526ab4807c40da241 commit 32a267e9c057e1636e7afdd20599aa5741a73079 commit 9bf7123bb07f98dc76acb5daa91248e6f95713cb commit 7f44a1166c8aa69f1bcc9096dc07b7096f7822df commit 6b1a69bcb23fbcc65b0b086063f608e3509dfd0f commit 5ddc1e27e03298c433b0c889c2a431432abc2cc0 commit 386e1c180f1f06acb64205c37f0fccc4f8885a73 commit a30fc787a1d3ba317e4736483ec8ae50043e6fa7 commit ef41af47e40ed69e439cfedf74068bf797c62fd1 commit d41af761dbc137051ffe82fe4f23db54ebb1d523 commit 94f9b9525c0a2e8aac741f8e0a2d71c4e2771ba9 commit d60b93917a66414aaee5704dd07c845aa6cf9645 commit a8daf03fa2d49c8892c3de924742b1a47b62f3e6 commit e82ef424eec8e412cc1ca9170c49633316b29f07 commit 566b651cc53154d6fe88ebd61c86b996d6621d09 commit f6632721cd6231e1bf28b5317dcc7543e43359f7 commit 5f9741f53a3e0e84befc60cc1491272d18564ea0 commit 50848e3787ad9eaae38889fcb7f4aa1f4b42f4eb commit 6eab8224ed3daf26b5fae36dc8663d32e5cd9c21 commit 19febe662d0b31b717655041cd67df524d19a5ac commit 40e8c0198a51656086b746597af8c36f291b53d1 commit 30a46873941f1422e9169c9e38d4874365054c13 commit 623a3531e9cfcb95de55f0e4a38668705eeec8ad commit a19125a281128c836faae249c1001eb8d7a18b48 commit 9aa2c2320e6fb50d8f80963e786d0b564d0695ab commit 2e70570656adfe1c5d9a29940faa348d5f132199 commit f9a7b19c484067fdcc5972c88ab6f06898adc40d commit 841f262e74a7c209055152026041bbe486c962b9 commit 63d7d05678af5cdc616718806971041ecacf4897 commit 17dbbe7b25446f7ce4af4c5186b60427cdd770a7 commit 2c85034db194ead0595445cbdd70414d3634fcea commit 7a279c14df56c741b99085108a643f2dae078773 commit 91909d57169dd587b11d9e1607faaea07393696f commit ae880cd02c547cf474cca976c39c76b629921b26 commit b2de2d006dfa6bf48b141a2a51ca078ed1047b63 commit ccebd0e4021084361d1549f4e83688b1fae89c3e commit f45d2252ee10b036d539d93a752a2434a54a0d2b commit 7d9ae6332e77c1dd57cd5679a27d6690d2e8215d commit 9e68fa88b85910091be186f9022b36f4fa83b31c commit 976c68f46d7cba02ccc80fbd67a4e9731e23e8a7 commit d39ef5d5c076377d41c65b69f8452eada2db724d commit 718cc87e1669dafe65ddd3720a5526c6d7e1705a commit ba3078dad1401131293664733c15f6f066079de9 commit 02ed47aa6cc697fc34053c011fe72984a86273cb commit 1f9f6790cc62eeaa973d05a9a2f16ca0f3b80b36 commit 9f40dbd4416f14657d9b354b7ec855244d97a91c commit 576d4d2d90310270c1d463577f0a075e88cf6c4a commit 957a2d0e7ea38d84d4b3cf9a951bccadeb803a24 commit 2671075b322746ec68c49396c5c17ad8ad236dce commit 0b80214b64e38f33d359c0e121773357060b992f commit 3c101135baf2dcfa64081239818039a1fcc7767a commit 33e079bc1530df4596181ccbfded8752bbedb92c commit e1f80341e312088f0e6c46107db7098e30e6d764 commit f2d061ed01b3f0e0c7a4daebed91e26f54de4086 commit 45a44b01faa6ef92788b2067631deb486cef8a4d commit 0bcdfabfcbe230fbd9f03c297486f013333892c7 commit b93e947664a1a63a3e6cb5d94f38d5579e41d951 commit fbc5a90e82c1131869e76ce5b082693b8a75c121 commit 43a1f1467cd4bcf248925fd7b3fdf49d73917443 commit c4f08d7246a520da5f2b1068f635da0678485e33 commit c93ce6a6dfbd3e258186ab10f95472ee571583b3 commit babc8db30132ba59cecca9587e73104741f0be6d commit b7d5abda8e64fb9cbbd219e667ccb34e4761ce2f commit 4ec5ffc341cecbea060739aea1d53398ac2ec3f8 commit 3f61ef9777c0ab0f03f4af0ed6fd3e5250537a8d commit 9ad87de4735620ffc555592e8c5f580478fa3ed0 commit bedcaddadd22da82fc2590569ff81a31045176b1 commit caae4fb537d8437b9290d8a1010adfaf174b29e6 commit ce679dea955e1b6670a8d92b8ac4c17b22db3fa0 commit a0a8e75948117f37a1f849c44d026d0775ca59a7 commit 0597ca7b43e41c509bd0feb143bdfb7278496397 commit 808b79eb8165d4dbd5e731f98a4f5f4a0817ee4e commit 1af10a97b3a629f5f5b361f1870070c1d6e0308b commit 035f79f9b77d5bbeca7c5befcfaa7560e846ac6d commit 171c555c2c2664a250cd35680c34c31a6d233dc7 commit e2b8329432b880f3821f85e1253a9b6b9d714a86 commit 672d07517e728acf15c1e39c3dfb7052000b434e commit 3dfb2d6b489f7f1a627774f84a6341c18785f43f commit d89357ded55e1294e172cec176f49e1685dca06d commit b1562f0f0f69120225285977eb2bd488c7eb5482 commit 0f2922ef48484ca4687319d03f72afdda2172e97 commit b0f1670d22ce1e192f29e931069297ff16156026 commit df63860da913e6afc0d725a87f99e930ee237451 commit f50423436105e136e2409b500719334188a77aa6 commit e359c47bfa6155b56d378864b7cc4a0d4e680c1b commit 0b2c31dd8868651d878af4c60b235dfb52909e74 commit 09f8fe4cae5ee8eb2ac44e437d4295357f3cdb36 commit 3cf460bd683df848c3df90b9bd6c28bc86acea8a commit bb115220d248e394a65a52e128dbb8096c9c8868 commit 59908256d8101da0f051a4687438b744b24b9059 commit f4fdf37684ebf8ca122723ab6074d74299921064 commit 81148c266f6a51f4e149afbc52fff9a04d274310 commit 6eaecf014807f34acf1303fcdc35833998595db4 commit 777226dac058d119286b4081953cb5aa2cb7394b commit 877d074939a5f82b099da2db3bcccc6c418b9c39 commit ef3e619221248a7ea5fc711a2bf9017c94d2f644 commit dd66f56caea6bb1a3703fb3bfc3106444d05a930 commit 40298cb45071e98c2c6465e2ef25dd8f8af77918 commit f05b985e6f76eb9e57f36d0960a8beb46d5b46a8 commit 7ae034590ceaefd4d37465e3434877acfbadf411 commit 5926ff80c9035638ed8ff6ee1f820392248270e7 commit 893f11f0c73365b31068081ffa3e67af5cd474e7 commit e25d1ea4b1dc6a0f11a24bac85d5e3673845d365 commit ebd4a8ec7799b1ce6969acf04432f4980179986a commit 2eda4fc6d005b51271642ebfae4ac00e15618a23 commit 5d12ffe6bedb0e86b22dd436bb2245fdc540f780 commit 1d51775cd3f51899ce85afab686c7f641ff32d4e commit 930ca2a7cbb6df5e5377938a372d8896d669f086 commit 25b8a14e88d9cd80ba34f5310cf1e11c4eadc647 commit 9d27478c7c01c9a04938a751fe2345cb951a3a0c commit 72071beec8fbf760945c6f155fd4db394dd2fdda commit 4b2b5e142ff499a2bef2b8db0272bbda1088a3fe commit 7c287113f1c83b238068bd4b550cc8b0a73528a1 commit 393211e118eb8c3946cdee18e97fddb396f11ef5 commit 12a9917e9e84fef4efa73c09b32870df0b1ed795 commit 525bbf72dbe0004a009dc39b239dec74e8007f6f commit fc7bf4c0d65a342b29fe38c332db3fe900b481b9 commit 736638246ec215f999dd132334d2d7c49bcb85c7 commit c4ae82a0e9222d275e3e4dd91c1cc3931ac0eca1 commit 86752bd613c9a8deb6e7de499f0c3ac139b58b6f commit d9c022d5dfea9f0b550a3d24ec786d39ff55ad6b commit e15623cdce6fca662dbecd311f9d74bc61d0e1f2 commit 44653c400615a3fa3658caa72d765233cc897d80 commit 55d5e4f98fde7f695fc6c08f46f85ab677f690a2 commit bf0d608b55d9b7f426031dfd9f08d9df36c94728 commit fed98c16f13f4c68fc507384d3429516ef5c3b6d commit f0e204e0d32159d783577a4041331fbe49e8beca commit 765972cb8564fb92f8cef6fac21995907d132e8c commit f28c5950d57b280f17b950f04125ed556252403e commit 39919997322f21d367347943ffd5ba8c4007c9ae commit f2e19b586637a2e84f56b08d9f60de30373a0a01 commit e0bf3e23e2002461b0bff09c1cc0b92ddb8eafd8 commit 3126977d43079866aa0ea351863a7496feec98d2 commit 723559f379af5cd200bc981a723aaf3971f7a166 commit e12d6218fda20d03960f3f2cca44741ba8d5e9a8 commit 818a1968a73188451fd1c16604b4e47ab5a40d6c commit 64512a66b67e6546e2db15192b3603cd6d58b75c commit 3c7a8600dec9858da9e76adb622d161f27652b00 commit cea86c5bb4425cbbd0a690d1671b8a7db1cee9fc commit b9971e549adf85278a680f75dc78e4a734975e90 commit ee9418808bcce77e2c31dbbfc58621ea99a05597 commit 864c49a31d6b84fd20748a003523fc2181fd54b1 commit 25a390a9aadbf0c87b461e416c27c8838b35ae25 commit 49e61bee26f746aaf2eba84ba3c9a90ab950ea05 commit 1fdbf66e3d40257902b4c5cdf872730dae24004f commit d89078c37b10f05fa4f4791b71db2572db361b68 commit b91df118e4ff36904d5e35db27dd0d0cee4deb45 commit fef604db231230a0f2f376fa223fe296731b6333 commit 293ada7b058e536d9d53d0d8840c6ba8c2f718e4 commit 4a46ace5ac621c0f84b3910bc3c93acf6c93963b commit fe93ae800eb846d435359b2d689410fdfc03f868 commit 7abbc26fd6673bd04d0044e001a7ce543427ff4b commit c05f1a4e2c4b8a217b448828c4e59fb47454dc75 commit 6cae235e9cd112da0a33dd261e2a01c93c825799 commit 6ef7ee48765fa3067858d11ecdf3acbc7c19df80 commit 77d2a71b94e3dd2966d8c595fc6443951f1e06f4 commit c3b75d4734cb82f7dfd42b0a8243f37bca85bd95 commit 526dcedf877fab36d2847fa1446975ab4285f226 commit 4d77688ff27c7d030b5113f0cf0b0a2a433b2a62 commit 4280e1a0ba1dca1e7c4c35d0c790dc8977d840a0 commit 099afadc533febb0ad789ee61eef41a3d5d8bab2 commit 16aea0f32f1de320550ec3488bff9ca86b3848bf commit e73c317efbf9a6ab2d1c18eff8343958ab6df73a commit 2b3374306b315be02db0f67d3102a0d1e1357270 commit 4c3d005307c87c7a35e85a307b8bcf49f1d56114 commit 344e694722b7612c00890ff29d402de8f49ffcd9 commit 77cdd054dd2ced6cb6f3420a998d6a0a65d6076e commit 32c2bc89c7420fad2959ee23ef5b6be8b05d2bde commit ead3ea12e133416fbd800eedb2fb5d0faf2df431 commit 8f4502fa284478a5264afa8a5a95511276fa9b80 commit 74c1bda2f3fa79a93e1c910008649b49b02dc09d commit 2ca776068f1f9ece3ab093f1be39c87653fbff16 commit b0cc4dca4f1066f385a92baf6214d7f313353d76 commit bdf6aa22204e1250e217e79e77db38753a6731de commit c1bb3a463dac815598362fb642a2746ff0e8f2f8 commit da0c3e2c907aaa4c6818aabc2691a667e3578063 commit 7df7bca56902e4d96c7b17b84378774f2254b707 commit 10a657dd4cbc34ba9f1bf16140a96789688f6cd5 commit fe6089c138e477d0b1a8bf369ae6643466fd7c2d commit 675053115e4e809643e12ca817dc9147562a70d6 commit 3809991ff5f461cabccd9b5aa39f7561f10918b5 commit c34c1c4cd68f3ffcd13c7169e7a2c35e267e34f8 commit 9556829ce4d0618ae4295af8e4b3dd7e38f43598 commit c7d561cfcf8661ef02218655c923a0eadbbd7520 commit f2787d8779b1b00768f8f397b3699698ed84300a commit fa2a6c5b9cfb0dfbd1b811b154a036df1017ce66 commit 49c55f7b035b87371a6d3c53d9af9f92ddc962db commit 542cff7893a37445f98ece26aeb3c9c1055e9ea4 commit cad7109a2b5e7d48466b77728aa16ce55415eea0 commit 0826edb6a5e5b32d38b89d2df3d74c4dac8828dc commit 3ea355b234d7d3e543b89e55c66d57db50ef1581 commit c52b3b489783b3b244c8134204d542a4d07030b7 commit 2ea6ec76430b87c49f3d82e284722dfbdf137bb9 commit 068b1bd0925387ff3a2900726a681ce697e4c1a9 commit 57d9898bee4fa8afcde83c158b441cef634ee47c commit 112a87c48e83cf226325735009712b515f48c495 commit 0d6a8c5e96833f644b91528de6a3a4398214fb9c commit 710074bb8ab0efac425a43473b8a3e057d645f82 commit ad935754dd865ffe9be39e366071275c99366285 commit fc320a6f64044f12128519ca98404b641340d136 commit d35d4dbcc80dfbd58a3ef18cee2b92f49a6a92c4 commit 23c50968399f270098f1fd0bc1ad83244dafb659 commit 2ee5ef9c934ad26376c9282171e731e6c0339815 commit 6b6636e17649d75b4d0cc55d3dff9e44511a442a commit dd5ba4ff4e924b14cb3c91335636baa6bacaf817 commit 96837e8beeefe5181adabab2da6e08c51dc0cf5d commit be6c1dd5ac074defdfb1471d28e0bb6eedfe3ae5 commit 17749ece0142c7c368834b6fb35d86bafecef69f commit e6d6f689435aaebc2e407026d9fdfc2d89bd7902 commit a5b7ef27da60c90bad5b2d41af3aa82da480a188 commit e181fa1ddfd5fce939e419dce3e5baeb32125987 commit c1f110eeb2a58df95bac8c11e5687c1761333952 commit 8d2f683f1c49b3a3c56ab92437722eda7e85bac2 commit 9755f055f5121c40c481c1d5dd02a1c3fb0e7953 commit 565edeee70db754e2e337ccd941f2dc10d276691 commit f20ca899a7c9e7ba48a5daec778607572fca5f6e commit 31e914a2307a29dfde8027cffa70292341bd379d commit 305448e55745dd4634272794c8c01edc872bcf63 commit a905ced613095c1ca406c179b2f0d44219d82381 commit 3e9cf8f055fcb42776156fa5f5eb9a5326f160c9 commit 88a24415220990d41834838d54ba028399649ec9 commit c86e187372da0967a82994fef7cecd4806cd2baa commit d4e0f16325026eb001c48a6a619886048286cc42 commit c1d53cbd83b87bdce318f45d4fa5505c3008389f commit 292e4fb05f14d54c90cb165335c6d4dfaf1cfb32 commit 493043feed006f75f43a1990ae2ae1178f277628 commit 1448d5c47e6a26150d885bb4a5764a8d75b9c707 commit 89aae41d740f67a7c8b8ee015c44645d218de754 commit fbd4cf3bfe1557b80774670d19c0a68d7d40fb18 commit 9a7e49bd7992fca8cae11d21ffe5ebe73a2f4c18 commit fd0310b6fe7db694e553a5407594d1361e68ce1e commit 566fef1226c1df5a7e71718f9ae012d4c1cd13f7 commit c4c6ef229593366ab593d4d424addc7025b54a76 commit aaec72ee90bcccfffeb33feb8be826efa4065a7c commit 50faf7a194b80c2f9a6f919b03036880e6620b0a commit e56b80d9fd291481e55c1e7b3483db83ec44b680 commit 8ac80733cf6f08b9fdac9bf6800dd81e9304b4c6 commit 890b6ec4a522799d36bd10aee993059d771c06f4 commit 4d0d77de9af455aa949766ecad1ac3232e322020 commit 120542e2c1d12e7d3594ceeaa6e02296af52cc80 commit 50105a3ad16cac406494038ce4edb91769911434 commit a14fef80ebb3efa5755b02790e067fe259bc8c63 commit c64a9a7c05beb2b71b7496d873654f88e1a08593 commit 3589fdbd3b2085e273b6ea1e9f27a211e0ef74f8 commit 2b0a750caf332a24f62f6960820d24d885f2efc2 commit 52a743f1c114727cfd51aefe584c7a4d82375acc commit c10a652e239e21492525fab295dc2fc303338ef1 commit fe9b286bd063791c7842c4caf6efb2825b537031 commit ca3cfb9d9b5edffbea1464079abaa89714e7abd6 commit 37388c0192bf1474ffaaaf38024dab49d0150f12 commit 5d4537463fc2eb1245093e0b62e200ed9229d00b commit f47a0e35846740ca72b8ba6be84b5b518abcebce commit 4fe7907f3775034140a518d1582580926da98ee2 commit cf9420cb122d055840848b039cbbc303882bc445 commit 38a1b50c0389f1ae385d007b02dec5f812b3e5ef commit 03f060b73f9ad9555f6251cac21c692df8112a68 commit 6f9976bd1310d123921ba2c20e8c101057087285 commit 2bbc6fcaf8c58a7a59900512be11b1775a611381 commit 115e0f687d29649b8805e3417e089e785b0ea61d commit c68dac968c460b89a4f6e3617ee5defbcd96eead commit 6cff894e4991a5e80324ba39369288fad1e3ed1a commit 08d1ecd98a8fe653d24644f072a87549e8503447 commit 775affb06a5bc6051f48c935c86c99f849e2da09 commit 9030e39cd115db3a93a6a5eebd70f5f9c462e4eb commit 4579509ef181480f4e4510d436c691519167c5c2 commit fd4d7904f5e38e4ff8e1267a53476cfa4a225708 commit 498f02b657b7a591c61cf269f7b02dc136231ea1 commit d3cb30f8dcbcb797bb4dd62dc8e85dd2334c3475 commit 781050b0a3164934857c300bb0bc291e38c26b6f commit a25efb3863d068929f0bbeb87a995df11507e691 commit 078e2bb2585a05df787be74642f12354a66a0534 commit f35294e13c19bf890f26bc1ec964b2d29c82f0ec commit d1260be706752dc01699b72222bbba48f42adabf commit 3153c6486008061297bfb0ec5cfd3aa4f8df66d9 commit 396d9b9a48723995416a05f0dab80c1dd6c21e80 commit 452290f354f04fca53cba810bd241f4307502f1e commit 27bd66dd6419c45e320f34ed419cd80833de1161 commit 3e3543c8a19cade02cefde83ee97233d5d90e7e5 commit 53bc2098d2b6ccff25fe13f9345cbb5c0ef34a99 commit 19b20a8021315fce38ae95607e5de389913471a7 commit 18ac700d75e81b7892c6377f6d8b917453ac69fd commit 0dd80b483b95abdbc3919cb360d17179a5f85d2c commit 9239f3e1807c282e3c6bced510640910e9b25c60 commit 84e9dfd5185285df55ae9068c89cde1a88baa7b7 commit b50364af7af47bd2107394b8faabffab59329af4 commit 2013ab184971c4a92c42f2bc401163e5b105abf3 commit ef9600ffd447ca3da6660b1f5932179a67292e09 commit 74e0457a62c697d388b832b0a52dd1e716204019 commit 6874f95816da4af4eb6a395ae434b823c4d7d356 commit 41b85a5202b775ce7eece34648a4b592ed18f5d2 commit 0242cd3a538f8393cb811d79806ab519228e7cbc commit 11a6b88b8cf2ff6e93a5b136ac04fd851a2d935d commit 8f8c61038768526d894e02b10ee1e4ace94e55df commit a61cf3883c83d02cc27b18c4cf8f639279587bb0 commit a46553837056d3a6119f4ac350afff8c2a99daf2 commit 73ab6ec90922f50b99c189088f100025a44d8ec1 commit a4b17f757d0b6b4cd4aa2fdc88ae7458235806f6 commit 9ddfa5a084f65115844e9248903be547a7610a53 commit d061882344279ebedb343d463a885118d7dc8978 commit e49a656b924ef125a2b00945a60df39cd09b8c86 commit 02689a2055d8a78b7cd0b722a591d1acff8b1e4d commit 826cff3f7ebba460d3db61f135798ce76b0d26ed commit e9d9f9582c3d90bced286a63d1f718d4aae60a03 commit c582ffadbe6cf64be4544d9d168bcc520bd0c984 commit d73dd1f4e40c095bf2f9824a42fc3608d7d188eb commit 645cc0b9d972b8bfaa983623950c3a53ccd0c57a commit 212e6562f33becbab1996261677a0b89c5ab8b54 commit 3f2532d65a571ca02258b547b5b68ab2e9406fdb commit 7cd70656d1285b79c001f041a017fcfee4292ff9 commit 2a2d23b68c4e4cd71c9999ea8b8608700c3f9ead commit 5f1176b419f9468f05dabdc8352bfa9b15427377 commit bc4c7fa02b5f9439db0d16a5071620747e43736e commit 4f232990dd83564ff41d6186ff268a9eeeb118a9 commit 57cbdbe65e5f9ba9bfd67b66bc3ce24ef1c54643 commit 23244f67ed96c76428bfdfc63eef642e4d627825 commit 6040308ffc9039d30a34bc40021e19d6da3683b1 commit 1d2271d2fb85e54bfc9630a6c30ac0feb9ffb983 commit 4cdd2450bf739bada353e82d27b00db9af8c3001 commit 5e18b9737004ef6f34862f6fb39d3c9027a4044a commit c5dac1f62153d08a2404bcd6292d72f8290c2c1d commit c0a808b06939a39f6f90c3a33436365e6ede0618 commit 78ad449dc5c88dc540f8cc07d87ce2024686cbb3 commit 372b8307a6288265fc06f2d7a6ccc85e21167d37 commit 79af598a5baefc3a92b31ebc5b7aff00b38dc633 commit 5d96a01549ec6eb5515b735301a7f1c6c4d481a6 commit bd6e07e72f37f34535bec7eebc807e5fcfe37b43 commit 22da19f900be6b90b6984522708b203ac9bce1e6 commit f9325afc23268567d9a6a7452252200cf79def84 commit 170dcb67a208b6ba93dc18be607b90f82520749a commit 606be062c2e5324ade705e463b45d9262adabcab commit d50d16036fb395aaa3c4ca0333b55cceadc81874 commit 393534f291d821779203cb74896abc26e07160d6 commit 6f07707fa09e1dc58c431d57c25ef2e68b9bec47 commit 09eea212653304522e9ec74cdda59721af8d4969 commit 5a06f68dbe0fb9cc08db9cfae310c7933aebd6d2 commit 5a363c20673308e968b6640deb73d7bf77e8b463 commit c7fbcb7149ff9321bbbcc93c9920de534ea8102c commit a193f3b4e050e35c506a34d0870c838d8e0b0449 commit dd54575a83d85c031d9c1c4a78607ec3c95696ac commit ce6838afc9244171cd07620bbb82e18695c491e9 commit 7e78153aef7f9efcb935487402151de31e0836ad commit d5e781a2e50fefbcde81f10e0e9e2669fadc9b01 commit fac73543fff0ff23622c98879c66d069778c114a commit 9a7fc952717ea63d13eb9d42581af52ba34c3914 commit 1a085e23411de188ad0615f40a9399d80d1f7368 commit fc12b70d12d07598cde27cc17dbfafc2a2a33ff8 commit 58471f6384fd8f807d3ff2e771c34f71c473f6b0 commit 4588d7eb3b530b471104d78a19f82df701ec8c25 commit b8d65b8a5aea3309c14cb899149ad5ce93589f58 commit 912ff2ebd695c582ca4cebf833ad73a378a99f23 commit 73495209f645183c84a86bc067818a8c4ac20fdd commit 1b5bdf071e62ac57ad699d60ddbd392b266f58b0 commit 5e9ddbdcf730a2671b9a07c6de45b53f139995af commit 7e2e69ed4678a4c660c4727e625a396b06c0c372 commit 2cbb8d4d67700b4ea7373a307676fe312251b257 commit fa78e367a24977d76832fda6790e9e1c35788f80 commit 49c39ec4670a8f045729e3717af2e1a74caf89a5 commit fe69a2dd88b2c741bd55336d74dd484d7b848679 commit aa70a0996b0ee5950237cfe5f039285eda0c1470 commit 1e66f04c14abdee103221518c4f7cfb73574d2b9 commit a59308a5fb231aca72b9b070a6577fa49ec2d72a commit c6c57446383a3dea098fc324f0c7f696c451cf3d commit 9365fbf3d74bb6febfa7e31cd1c32d0d4d4b8393 commit 1cca6087422d84fee7450a8eb115a0b27ecc7e79 commit 9a17c9b79b4d112632ba44a821799281445eb28f commit 4056b033774664fe878d25f6087a1c41c82d075e commit c531a58bb61bc7eca3d58f5adc08a246af262244 commit 420185fdadbf0f74cff90f466df5c44c1ff3dda0 commit 3356c38dc1b6f74717a9c437b47e9362c8c96ba3 commit 6bfc7c7e175e6ca8b827cbda382b6e1e6585954b commit 574c4183ef75117f763e9f2b35e08c85f5dcad2d commit dff63da93e458489d0ef7e3a92e1b14de450414f commit 56c5977eae8799c9a71ee2112802fd1f1591dc3a commit b5d1d755c1344075d4f16a3e6183ed04b4d022ef commit 087451f372bf76d971184caa258807b7c35aac8f commit b5f57384805a34f497edb8b04d694a8a1b3d81d4 commit d5a28852e86ef486ee34e4cf72e8ad99a36f4fc3 commit 26db557e35d6b229b31078ebd6939b4cad936f6f commit b97788e504daf4ed455ec35047977a3016355571 commit ebd1e719695824ca2b9225094a669fef35620676 commit f0d0c39149f817e5ecdff8fa164f44da455b3317 commit 1f6c9ab06f61d86a80056ab57f9c6b7beca3af27 commit 80c5f69b94249dc1e0a600cbef3cc055ea432af9 commit cfd3f70ebd9e761754da8ab195ef7ff476d5cb25 commit 1328e395fd62070a29dbf28435ef8da1ba780e6c commit b57d16bdd62cc8c231aad8385d667249939cdfe3 commit 426b4c4fe52c6983b40f4d904a4ef430409f315c commit 64266f0a45c8323861d3756cbe3dc419e973917c commit e43098f6abb033142810e695c1b3d9cf61e19849 commit 4cbe435dd68884a9f6669fceb20f3e70a70c7702 commit 095041dbfa03a193c7e76c00b0cdd1cfcd45869e commit 6ef86fa8ccc8a3200fc89e8c9b50f1b90144b65c commit 0ec283cd043dbc65e0f17230695a6ccdb0f439d4 commit ec581edc56d39d3a6450894f26583b36480acffa commit 548f212514151b0d6ec911c87e61f189f530255b commit aadb06f9c9729ee3af1543f54da966644ebc5be7 commit 7a47c8820a1d97e6cb5bcef6b65529f1389b0e13 commit d493a0244fce12de22a220468e6628bb008a0e58 commit 68ca1c3e57c40a205de9d31518fd1dab5f47f520 commit 02274fc0f6725988d4a67005cca6f40c50679499 commit a6506cd845824fe92b1760aaf104011cc04dfa78 commit d3c983010f6faf59eeae1b92e2fcfe0696e80eaa commit 8bd1b7c29b3c3fb537265a3891c1fb8e78e9da45 commit 73729a7d079dff45fa906a5b8bdc4a5edd775ee5 commit dd0ae064e71ada9cb2dd526607e140c7af690646 commit e4804a39ba5f72f0b8549445fe39725b2d1dff7e commit 046e674b961594e552fa6cd3cbbc34086b9580ac commit 7eb0502ac0538ea9746481f3d7578940c8302c42 commit 48c19a95f15e787bc46b274129da37bce06df259 commit 04f0d6cc62cc1eaf9242c081520c024a17ba86a3 commit f5dee1283f6289342e720446ac777ce3aaf95f13 commit 646596485e1ed2182adf293dfd5aec4a96c46330 commit f58a435311672305d8747f40e35235f7ed64ae69 commit 37fe0cf5fb803d98efd7feb64b408c9b029c1085 commit a713ca234ea9d946235ac7248995c5fddfd9e523 commit bc30c3b0c8a1904d83d5f0d60fb8650a334b207b commit 4121113410fe16649d0a66c81715c8fab7740b14 commit cebbb5c46d0cb0615fd0c62dea9b44273d0a9780 commit 4765d061d50559ce3addc9a86433c35f48d76085 commit 0088d39b6ad9f7d814c10e7188aba0ddbc737883 commit 9cca74b51ea543f4f64464b0347ff5d43a4e57ba commit a37795cbdff243c198d9cf9615bd5d016bbfd546 commit 99510e1afb4863a225207146bd988064c5fd0629 commit b2e7d636d9ad5dc7e84a95b004345cdd2fc82b2d commit 6bb0a0e0fd358d4f9f6ce4c2d36c1f80d7496f6a commit 7d938bc0119507d11dc02cc6ee47f386cd5d2f0a commit 51707f22744439f0ba009f0665faf7964b4e1b16 commit 6f51260f0eda41a19dff4023d14d543907f0f967 commit 497520ca1915a91188560a26c2dceb9b9c43db4e commit 6abf2fc0072b020cdbb9124ea935603b02502e6c commit de511df7254ab22ee777ef6049547c69c1b2c78b commit 5ed597daa4202e92472953fbfd82105f10aa35e1 commit 2052287a74c95234eabe7a858f157a88d6880029 commit eeb04fa64af18cbe03d1067a435c6423da47b6fc commit 10ceccb8d7b6d9770948da605b8da4cb5d3598d3 commit b0b0f2d225da6fe58417fae37e3f797e2db27b62 commit d03a29e0b1e10820631a9ba600ff669161001a84 commit e6e1a304d759580d2dc0736d439b56e9866cf598 commit 95c3d2758002d588d321ad231c04c6f7adbc4838 commit 267c336349db0e624d217f9762bcc1da414f4b0a commit 865fbc0f8dc21e17dc3ad9f0f1ebf00a6696b2ca commit 8626afb170dc44ed0512e04131e4d8eac0c5ec57 commit 527bab0473f28236e4587c7870586275c1ef5516 commit 6164807dd2989fd4c1435a6b3c61453e63c4e37e commit 448cc2fb3a7b327823a9afd374808c37b8e6194f commit 625097a9e0c614251cd9ba89b1a416a36495768f commit 1d925758ba1a5d2716a847903e2fd04efcbd9862 commit f441dd33db4a5ba306d507e70e97f4656d526e38 commit d25e35bc26c3ca8cd728101545cfb3e86a5d7431 commit c09bb36dd1230838d49a5ebf409df804a5ebfdaa commit a53b554b56e0326edb2ddbbf8c76743191f7819c commit fd3b2e21b8816273ca7813a8c9455c41ff77a96a commit ef9d5a54dae9be855352ead302a9659bb8610285 commit d26c4ffba6ac16b734749b8624124fdfced41453 commit 430bb83dbdf3c86768fcf2f6fba2982823261f6d commit 2430be71c0176ef2757b63df5a25aa5c9e488e25 commit 2665f63a7364633ad90b2c58167ed7ae224e5d33 commit 189789a15f77239d03caad68fe4245be92d7f71c commit 21f45a2363bb0c96ca3e942d7207e7172514b5d2 commit 1f49355c4c5610b687cfa151ea29acb12e8bd72c commit 3f232a0fdbb17c64ee9afff1c16efe94514456c5 commit 8fa6f4c5715cee5dfc04f98780a15eb6d1da5be8 commit e90f0bb0c7c7099a0222b00f1dd882d349f9d857 commit ed12f3f198cedbb164129991766e1a42eecc0bac commit 6c08e0ef87b8b4c1c243719a561c354e893c415d commit 33155ce6e1a846759ba218ca8aa792305b351133 commit c96cb65989036feaeaff371551b40910f32f3c6c commit 3ebd8bf02380ddc32556ee87077db3917ccff40c commit d9a69fe512c5f032556764041760e8d5098fac26 commit b295ce39912cb10d3bd34fba556e4009b67954db commit 6c5af7d2f886bf1f1de9cca3310b24a8d7ceaa47 commit 1da2fcc435114ea5a65d7e15fc31b4d0ce11113c commit 88ac6df8af2c1fd02f2f8865257d8b632abeb688 commit 7b755d65100eacb63f81c35addbdb0a0ef5806b3 commit 8b11e14bd5793cd0e5cb65055fe51588a779f05b commit 7b833d680481f463276aedf500696ea25698deaa commit 13d20aabd6ef501229ac002493c6f237482c47de commit 24adfaffd5adecceb0a2608d5ec2e47756b8a671 commit a689e8d1f80012f90384ebac9dcfac4201f9f77e commit 92020e81ddbeac351ea4a19bcf01743f32b9c800 commit 6edc8f8aff61a6512464a123c160aceff44f6a90 commit 8882f90a3fe2457c8b3f86bbbbef8754f704f5ef commit edd7942085555cbf8da50c855f35b3fb84606c38 commit fdcb279d5b798d13b4365bdcf5548855f6c562a1 commit e39938117e781d0bd21ae45b6c15134f4a6958c5 commit ee2f17f4d02b14549272aa69da17bdcce2879d1b commit ae360bf1821917843c00637530da5b5f5c3c33c7 commit 79aae67ef8bbc8df09099290fc2c3423dcdab224 commit db5b5c679e6cad2bb147337af6c378d278231b45 commit 1f5fc7a50955e20c019ddc73575d8a663301d999 commit a0e7e140b5b2cb76e9b455e548234c22585001b6 commit 4aaea9d72e9aa01bfad7f48b3ad9d0ed591e7cb2 commit 524a0ba6fab955b14d4ae9a15edbb853e9cad426 commit f8fb5cd412e31d6277c5b0107bb37d677107cbc0 commit 85fb8bb9d4a5bae9d1abd0d21550517a40ba81e9 commit 1edf5ae1fdaffb67c1b93e98df670cbe535d13cf commit 6984fa418b8efde7662af151bae4b8dc66e65fcf commit 11b4da982791dc11dde66e9f0954673cbbf4c690 commit 7057474c83817cc707c4a0f08ed05774659a2fc9 commit c18c8891111bb5e014e144716044991112f16833 commit 3c542cfa8266e3364938d055b3d548b7bed7f08e commit 0af4cbfa73afa814a80eb205a9cca8ea78bcc2b7 commit aebdd7428c65a8e2e96c1fd2fd89b4ab90bad913 commit 01e526285a6a591900e7ed7266c1723fed366754 commit 7570d06db73f9e5a97cb55bcdfcc3b15f6f46b9b commit 617ed6c2f0365a62f21936449ca1701937027339 commit be373fad541b60bb785ad59c6daabe0298b39cfb commit 5979873ebbb57b72a8f88ba26d3bd405981cd844 commit d22d446f7a1ccd0db8c138749dde601388b2327d commit b6b56df519a73e35ac3f7d268affbae63221168b commit 86c82c8aeebf6db5df8ab73cec8333853c405070 commit 0bae5687bc689b64343fd8b52db2ad9e448f3f16 commit f53e191e2be811158f59024524b509d39808e454 commit 6d63fcc2a334f7bd15e4e9b1db50a19335d2af4f commit 4f48034b7fceec6845233fd71a0106354bb0470b commit 0bb24555858403671657f6dc025d2931e3e857bb commit 16f0c500f05b029c37cfcba61da92611192c1a2d commit a5e00e1135b09ffb9404ee16701d20b6ee259b16 commit ae6c9601da7addf1191bf54d5d279daa124b71df commit 8acd97545008cb0aa916e6dea5e61f364de9eafb commit 11dff0e871037a6ad978e52f826a2eb7f5fb274a commit 7f41c66070053e269b2082be964b6ce9f95776e2 commit 8ab1d0923c2bdd708e041a765c6e7ca57e6121d8 commit 4f30d920d123c58b6e55e6ccd061673751aab5f8 commit 7b37c7f8f505abc55da54a5a9d22135d77ff73bb commit 37ba5bbc89787aa6029266fef771ce1fc7f596ae commit 1223c15c780bc967e150204ec11992f39fdc85d5 commit ca4b32bb2d723c705fcce1cfb618a0cd19185f3d commit dc78fea1e7fd895990179e2b32164193a9fd17d3 commit e771d71d8d588aa0c0f9ba3e1b81ac5989ffcccf commit 3a50403f8b119d6be4f9935cee97473a2c90840e commit 514f4a99c7a1b635f7336a6e4732e6fe3ec972a9 commit a0c55ecee10055901c9c1b46d0d129cb6b51fa5d commit 7ad153db5859e5e156307865d9df7f2a392c1686 commit 2e4477282c8cff9fd2155710ed9168f38faa0b4f commit 71ee9236ab9e7e7b76be3d106724c35c5f934b85 commit 23eb49251bd6e169a57ed938c815f6f47a312479 commit cc7818d7091d0b07d564048ba5cd67b1210e8768 commit 081664ef3e43dce93710ed5ece326478edbe0934 commit 1f5792549376b3c20639cef7b787cf6262177b66 commit f6c466b84cfa78807b7f71b8adeaf209b4deb72f commit 05d1c76107e33346fdc18fed95f28c9edde8a760 commit 8b1f7f92e57d7eff7a3503763dd2c8e0357c36ff commit 004746e4b119a206c27c6ea0f4b6287bab16a9ad commit 6385eb7ad841bf938427f4fb4e7880ed385744bd commit 5652df829b3c2cee92bd0903a0e70455868fa1a5 commit 83ddd8069f98886ce1da2b506602220fb0e4a912 commit 11632d4aa2b3f126790e81a4415d6c23103cf8bb commit 16d69a891970a8f97f0aac4e7ed0ccbf167a936b commit 5c2625c4a08cf9b19cd070c1b30c75c9e5317853 commit e45b98ba627691c6b577244abfdb18ef2621fea3 commit 8b91cdd4f8649560a8ac37b134008fe67d94ad4d commit 3ccadbce8543dc4b2933509042b3d7e71ef05976 commit 6e22dc35837790a84fc040f08e5094b2d5d91477 commit 35f7775f81bf8147b5b8b11958e15c0cc364b7c0 commit d76f25d66ec83a8166f0c0be79bbb039d66062d0 commit 6a2d2ddf2c345e0149bfbffdddc4768a9ab0a741 commit e9aeeba26a8de1f553305722d017022ae7e79280 commit 69d846126e1653ca9043c3766c66684132586941 commit 447a39f4e89d992f82f03521d46746f6a4348578 commit 74ba89c08e309bfeb2b2f401bf588ab54a1542fe commit 95d35838880fb040ccb9fe4a48816bd0c8b62df5 commit b93199b2867646be5b1c84cc0a844df023877806 commit 2985c96485b7ef4e015d13dc3081fb0479260951 commit a21800bced7cbaf7bb8f5281db17a5d7ef6e197a commit d0c4e34db0b0a012352dad499a13738b4102f277 commit 05b1de51df077a2089e3d8ceec68aa687cff15db commit e580ea25c08d9e89593bcf80640e29108f0542cb commit c47160d8edcdb4d9fb2b333569a3fc13fca5db43 commit 09717af7d13d63df141ae6e71686289989d17efd commit 19cf41b64e3b150cf64fa01dec13f20dc86d95b2 commit 86baad1941702aa9b6fb44d6f150a34e9e4e1fae commit f7fd7814f34c97a6c3388b25db18643309cff43c commit f8be2c5971f48dacbd0e6daa44184dbb6f283dc4 commit c99907c723c6f3f6cae63201ddfac610be13f997 commit 2a67b18e67f30b526ce69b7796a16d847e94e2df commit 44505168d7432f983bc31c5b2dce72bb4de98832 commit c7c90b0b8418a97d3aa8b39aae1992908948efad commit cca084692394ad2733995241866fbb4b1b8668bc commit 49a8bf50caa2fb0fb2eb1c89923ea61192227c32 commit ff20afc4cee7b65f752b1da6d5da4c0bea1431b9 commit 826c387d015247df396a91eadbaca94f0394853c commit 28b5f3b6121b7db2a44be499cfca0b6b801588b6 commit c451af78f301ff5156998d571c37cab329c10051 commit f6be23264bbac88d1e2bb39658e1b8a397e3f46d commit a85b1cb23091d3112492f30fd92308cf4dcc4fc6 commit 2696f9010d21aee60be06b2135806e11c79ded8b commit f3799ff16fcfacd44aee55db162830df461b631f commit 96b1c450b386b34479c0d6c5e24ebee84261433a commit 70897848730470cc477d5d89e6222c0f6a9ac173 commit 627d137aa09fe58308eac06191afcaf865bd11cd commit 981b3045460d1c6f201ca83c1f479cf38d28a393 commit b7e7e6ca1f7b5abc9a4d13c9e929e431240d9f48 commit b9dd6fbd1587ca1204e6b5ea536115ab3fed1798 commit f37668301e362a0ed4b0b2ec6866f0a02fefa4db commit 4f7ee199d905c7a073b676ac4146b964dd651395 commit deefd07eedb7baa25956c8365373e6a58c81565a commit 700de2c8aadcae459a4db19b943962e709df45f2 commit 85c1b9bd13b0b298bbbf128e26a470ec54c4d0e3 commit 232d1d43b522b64266a16606e918ce92a8a0b244 commit 3c2d6ea27955cfac8590884d207353eece8c2cee commit 3867e3704f136beadf5e004b61696ef7f990bee4 commit 94a80b5bc7a23fd5ccaa3ba43ce25cbdb9eefd62 commit 6c18ecefaba7ccb8150bbcf997f7a796a43f786b commit 3700169886659e678fe37629ffcaacd6e559655a commit fe9c5c9affc9103686aed15966b4b54acd1f30f8 commit 81d104f4afbfc6abb3b602356cf7263f69f7a156 commit 50b1f44ec54746e5332f4bc87c70c223192e821f commit c022375ae0955b6d97ec438d658ab43a857a010f commit ebe5ffd8e271e328f33c4bc5cb8cea2b4cf8e058 commit 9311ed1e12417c81e1764d7656d97d9d459f9c5a commit aba3c3fede54e55573954fa7a7e28ec304557e50 commit a896f870f8a5f23ec961d16baffd3fda1f8be57c commit 9602044d1cc12280e20c88885f2cd640ae80f69e commit 0a043904187b31fc34369d31569186a5ded23e20 commit ab644ea6921a2cee9282bc96c35b29b17a8026f0 commit b995747511f6d9f6d6f55bd094e3a5adeb36b55b commit 7238b42e1f4009cde5c67c2c5f9d35d472240ffa commit c11099b0d1aa3e48e9578b440886d8b29779e8ba commit 2f2a4b1879bf6448865af9bdab61d1b7986f6dd0 commit f3edefce70887d78ff88d9f179bdec5ea62a50a2 commit ee347d5b40a14dd9a80dfb2bf4d2c5b3b4367135 commit 4752c85b23ec67586e04133899c9d763cb4d629c commit 007f8539d03d557157fce2e5cc6016275f835906 commit 71f8f119237ff2dd4fed49aa79eecdc50ed41ddb commit a872c152fd91e815ce1a2f251ff06d693119fbbd commit 992110d747177e5815cf89003732ae69cd70913f commit b7675b7bbc3c4c64731d6df66a1df7abd0fe2f9e commit f0dc99a6f742bce9f5e45a6ca48bc4f1f8c6bac8 commit 2c1f19b3272c0c09184b1cce592a91dc34a83506 commit ea6c66449692399005f975b69c72a9e1797871f2 commit a899fe8b433be3d2c6bb9218f2b885d91f3079c4 commit ddb267b66af9d49d54e3d3ce8a6b4e4e7ad9af0a commit c305ae99dfd4d0fe70c7fdf13ef5f7650a804ea7 commit 7b06894b9b902f540b23e5c235570b224d63ec5e commit 4ff22f487f8c26b99cbe1678344595734c001a39 commit 7794b6deb12176112cf6050dd8507cf216e801b9 commit f2bc4517310c37cfeca606079fbfdd025d35c4fa commit f35ed346ef5bb8e5e89802c4dbc8b311693e39f7 commit 0e959b4e993b095641f405972bc56d8aa72eadb6 commit bab73f092da654d149bb4771c418bf585c06044a commit baf3f8f374062573c469631af03bf7fb1725896b commit b220110e4cd442156f36e1d9b4914bb9e87b0d00 commit 69cb56290d9d10cdcc461aa2685e67e540507a96 commit ab50cb9df8896b39aae65c537a30de2c79c19735 commit 34734ab72763d51c6b809ee80ceb04a161a37dd1 commit 4b19f6b728c7ae0cc285d2012d5aa1ab99be9b39 commit c02343249c26032afd4774052dad434b4b4dfdc2 commit 7cbea1b61788c05a5bcb84c73ed5ed90bb2e0a93 commit 487970e8bb776c989013bb59d6cbb22e45b9afc6 commit 2ebc9e4af0291d2e8d14ecc0bad8f36de8cc6e62 commit 92e9624ad9468bdfcf652ba2cbea9d8995397fa6 commit 1538f65f18ee600dd405350d826ec6af05da79f9 commit f83974a408592dee672f9a4904cdc2149c6e161b commit 5734c1774d8f32ea814c2904feae29b4582dd219 commit 726a2d779f0ede31c4739456df1a7a69d10c2a0e commit 15162c5a36abbf051f957ee8114185b899c6975a commit f84b336a2ff7473a7c6c15eff6c4ec50aee476a3 commit 62f887ae46861484c5ff2b8880c69403611c88b7 commit d96c5ed0e37fcba4071d29fed92410b3a4d9cdf1 commit 248e251567a013c960d08124a4abcfc3e2ce6371 commit b6e201f5f13bd61ab8e5187daa0e149826cda154 commit 2e6c99f88679121eacc75196bdf6da8b0e513066 commit 266790871e8d20d6074c1cf3ede7ae92efc61bea commit 873c995a40a5c2324a5d1e890604066b74914b3c commit e1521cbd27aa100a86b54094cfa4387a9bcc2f63 commit 6e4d2e45ef3eff90e2ee2dcbc29e356158c75f0a commit 004f80f91a7831cd32970e1078bb00594d042089 commit 62d4874bee61d971b74dfd5fcd8032ff33746885 commit 32024bb85ec2a8475b89282726121b922caebad9 commit d2de8ccfb29909272fce4eb5cb2bca4fd878df39 commit 825bd8335e4e9fccf33b93813693409b4484ea68 commit 606754fdcb20f781774a279d62bb0852fcb2b79d commit 98009fd73bde2d66fb449cd277f69932fd12051d commit b156def9912fe6d9fd7679c9843f80cfcd9d1429 commit f4cfdbb02ca8227cf4de454071f20cdd09c37cf2 commit 0cb9f228bc2b3871fd1fcef87897f0a5af959343 commit d3e27f7c511044c65b27d087e55b092a3d97e8d7 commit d5ba72f3c18e4556d99bb0360279d0b1e9544359 commit 812e338619f166d3ab864123b2572523f6e4916a commit b1e4747259f4173354b914fb50e547ebb80fffbe commit 67b858dd89932086ae0ee2d0ce4dd070a2c88bb3 commit af10ec31a81b2f8b9a3b2d1ef05f553cc9495701 commit 8722ded49ce8a0c706b373e8087eb810684962ff commit dfb924e33927ffa51e197acd58ad1c5edf1b5ff5 commit 8697c410457fbc50169d2c7db4a7eef9b58924a9 commit 83b965d118cbab1dbdfffdff8cabc8c1cfd183c6 commit 5f97816762722cb08a4e0a124fec02abe0a2208e commit 5d50c8d7ed59f675d25cf061b5ca67ebfa7b450b commit e83c18cffaedb1cd5da935b06d49308f92ea50cb commit 17815f624a90579aeac4b700f8434e9ff6a6d001 commit 1c7ab5affa5e73ed75732be2f2fabe1ae86c82e1 commit 61b98486e4314d39d43921680d68b46c3083b22e commit fbf8b5dc6d9edd7f807f7a6f44ff4c18f96f9efc commit 491fe469ad0e14a06dce7ebc6a19c4fc3f9300e7 commit 2fb352fa627052c9e551339fe27158df305bc622 commit ba884a411700dc56dceedfa53f9364cdcfb70427 commit 2060a6895b768d907fd3efa9f52981e615171ec2 commit 77ab3a1ecb1986c17644c48b66d9de0a9a0307c9 commit d4a23930490df39fd076a82649ddba6b3a6c8216 commit 42c632b0555ed0500ff26b329e194fe77d2b6123 commit f8378c0403813fd7cdf0eb5cb878b1ff290046c4 commit 27cc310f13529bcf24518854b10f098de7fd7d6d commit aed1faab9d9563ca5ac5139b0170486027ec74a7 commit d682619557120a5f2d460b822f5ff922435a5261 commit 81bb9bc95355055e2fa297b9a81e9d786eca9903 commit be1ac692c08971486d68a88f39fc4e2cecb80a8e commit d29b7980b55ebe96ba167aeb88e81775c141f659 commit e885d64785aa56e10e432c3319e3b5b0a2d30ac2 commit a1f5e392de78f122629412d6e4350d1c887f1711 commit 4bef85d4c9491415b7931407b07f24841c1e0390 commit 7b201d53bc77e8517bd78348385b6362dfa33a4f commit 1e146bb88e26b6d5454326f7591662eb095afbd8 commit eb9e59ebfe7354c18d7d6f59211fc7a7b794d019 commit 800de20b1dbdfd85e303a42b0f27c0162ce18698 commit 32b119c896121e71ccf1202499e7f0292c73e1f5 commit 41f91315b5be5a5fd4011c193f6a14fee34fd027 commit 6fc429c81a64b0b77fea38809b01ae94a9348025 commit f7ed3f90b2c69ddd2414d9839ae334c10a606c55 commit 30c1e391978180dab913132201b944c08054c822 commit cf63b702720d734cb4144440d72d4b2ac6c494f8 commit d374d3b493215d637b9e7be12a93f22caf4c1f97 commit 20543be93ca45968f344261c1a997177e51bd7e1 commit 0b7778f4a63a1e0dc10af27201b99d88fc0ee7b0 commit 3c021931023a30316db415044531b116b85e6ebd commit 8eb7fcce34d16f77ac8efa80e8dfecec2503e8c5 commit 08c7c122ad90799cc3ae674e7f29f236f91063ce commit 31d70749bfe110593fbe8bf45e7c7788c7d85035 commit 97c8ef443ae1f6493c02d6f433eb5a2b72d8b438 commit 03848335b5b1faa4a4641fcf30b7c233579a45aa commit 52407c220c44c8dcc6aa8aa35ffc8a2db3c849a9 commit 4a75f32fc783128d0c42ef73fa62a20379a66828 commit c9ee950a2ca55ea0f63d0893f796b2eb089e7900 commit 67c430bbaae153433f76807d07b8298ac4714822 commit 20cddfcc82e642e4682c48af91f0702fbbd623a0 commit e08a7d5611b876bf9da3ef7c185d26dcadf24dc9 commit c8a04cbeedbc9f71c475141baa656f14f4879792 commit 4bb713375e9f4d8b6d540ff47e61a4e357c4229f commit fd2b94a5cb0ff4bb163cdc4afaede6527eec5f7e commit ae710a458f0af6ba2b991ebdddffc66e8dbd765a commit 01dd1fa26b85167cd19b04b10e015aba3e243d08 commit cbb8a7957108e96560c43953f70c377d8d9b6643 commit 927167f37fe03f017fb0a89ba2c4d35bc51f233e commit 7d41745acfa722309dc7dbdcf8801452c53e936b commit 94b541f53db1ec6b99fc2186b084177cf6e18824 commit 6306d8dbfae6abbc049cb92fc7cf2acbcd983f8d commit 21a6732f464894fa43fa1d43fdc7570b454b970c commit c83125bb2199bc304badc98fcc7c79704053aeb4 commit ca9216246094904119b94478176eae83090f0fdf commit fef53be028740aed15c288534e8f15719fb49947 commit f122a46a637f9231433d30aa1f9a199f8688cb97 commit 0b64e2e43ddeb010d3f2a45f978e6cb919cd0895 commit 8aadeb8ad874b3b13431fd08c1ddb6d5e0212c7f commit f4708c16a6d7da93baee9ebf9cd46359b4a34bd7 commit 8ad0c3fd132bef4b849b3770038a6b533fa49579 commit 8afa13a0583f94c14607e3041c02f068ac8fb628 commit 24df43d93d72c5bb86165e5e59c64f909ab0149a commit b05fa56425f5028520b5c1457b96bb68dc74bf7c commit 853369df34fb61f47ab883586e14d0fcd8c47437 commit 4fb9326b96cbf9f751086969161a6c1d75bcd8f9 commit abaad3d95b5117a17886d37cf0228712801cd259 commit bf625870b8309b4af75f9c19d287d0c9230634d3 commit 9ca476acd5e8725706c6ef3b0d94d3005836ffdc commit 94eb7de6f4bec1c8bb99371c21df42cac0de6ee9 commit 1ff9fc708185a94c79d4def79c0a500829297575 commit f8eb96b4dfbbbadfb73ee9a1cd0294f9e2762a14 commit 15bb79910fe734ad21c765d1cae762e855969caa commit 211b4dbc070090b4183d6f9db7dd3bd4e6170447 commit 43531edd53f07cbe977a0b33dea6dd6c29b21fea commit b07bcf34b6c98a7dd540c94e804c39a4273da37c commit 1c66496b1391699040d0ddda21fe1979865f6eba commit 3d832f370d16a8757024b2523c4c6b64dd7eac6a commit 76aee8658b8f5836ace0a423157f29fcaec65e30 commit 87bb2a410dcfb617b88e4695edf4beb6336dc314 commit bce45c2620e2142eb18bfb4b0aaee8cb83429a35 commit 35291c9c02540692039cf7231f7de42fc89be096 commit c7c2918849138057cb2206b4fe10b65f02ab07e1 commit 1aad06f89291c2191f7c352bcd63cdf393f0f87b commit 14567eed87a39d0b40d3e1444f0ddaec013c1a52 commit 0cdbab89c02d47a277577a90d02e3f214d2af9ac commit ee0ff28a497eed4e23e0d617e6f5feacca69e0f1 commit a09147188f7fc0d1ce9b5fb6b7fa6a81c6806073 commit 754d6275e9ce6310813087628ef2e44b6c65e23a commit 2bebea57c2efeb7c4e981f5ff76bdca7e58ab815 commit 63cb9da6fcea9029da8c9d1cfc93f1558b229c1f commit 6678916dfa01251b888465e2193e28affb23fca9 commit 35d4efec103e1afde968cfc9305f00f9aceb19cc commit 013005d961f7d5d1b422ce7f281fba9ffaa2b52a commit b2657ed0a56f63b1789c596b36ddc6b618726661 commit 40aa583ea345624967c5b6232082d7b839de537c commit 7e4aeed859d47474e40f43ef6ef3004ab52486be commit 655ff3538eee3a3dca7103f97de883e033bd1011 commit 123202744955e62470174fc3ba666a4d98062ea6 commit 175ac6ec6bd8db6b7e08fed8fd189bd492015b28 commit dd26e018aaa408faaf16168cbc7e83c2b159ae63 commit a5f67c939eb2d3841c110c5355bf2226e1850828 commit 85a774d9ada4eb9e83044cefecf2712a2d7171bf commit 0e2a82a316825ba1d0bf35703ceddd4840e59bca commit bbe04dec5c52a075175a627d510140d386a71f98 commit 2351b7d4e3fd636f8ce0bb9554645dff2dbe86ce commit ded331a0710db8e92f3efd1c8040c0c52997c9b5 commit 64cf26f04ad05ac7b4fc7d3339d893f21a06cab1 commit e105b64a364adb0fd0b780050441eb05468fee33 commit 0771c805918c56b335c8f726e147b19c4f78565b commit 726be40607264b180a2b336c81e1dcff941de618 commit f864df76ff1021b21776a7df029c0da884794c28 commit 4853cbcd94bdd654e94aa40ae718efcf5b6ae57a commit 0f7ef0b99da15b28fad78da788e55adc642283c8 commit a60831ea3ab2498d16f625c74b9e782383614cdc commit 613aa3ea74ae012d4ff7a6e6ed6d288b6212e4f1 commit 48733b224fa7ba32de9e9a1a8ddc8eedcd603919 commit addaac0cf75dbccf5c33a5c03d6b22a6bbdf9952 commit 4046afcebfc3c8c0dd5666c2671b2c192b344f78 commit c40bdfb2ffa4cf16b818fd6c77856e6d976f52ff commit 43a80bd511aa6077a79768335211f71760ee063f commit f6dcaf0c07480f8b7e7568e3bf3c4b776026edfc commit 32f0e1a3307f1372824dcf28b90fdab5aa11b54f commit 2cb6577a303425090f3b5f4c40096d45a9048875 commit 2c113b999c20a6083a9d65f0e2d2537ed818b395 commit 4ac955baa9330742b1a49990d830963f91bfa020 commit cace4bff750ff4f55b16c3aa90aa9376d7488929 commit 34f3a4a98bd388ad6298c42dc9b00c72d3398330 commit 6ff7fddbd12064dc9de03e0c1ad03e13f6ba7af8 commit 4a74c38cd67b3e74a1dacc76c7ac5c276bfdeab5 commit 28fe416466f2f09b47a9c5e81fa1ac140512f3d5 commit 4fe3819443a13f8ecf11f53559ada5711dd8d4b1 commit 2b36afc694bb3eba5a065c34fa0d735d623ae66f commit 929bb8e200412da36aca4b61209ec26283f9c184 commit 9be9bf4e3a5efc2991375e22ec9956dc654652ff commit ba6f8c135af02f8a38fb9856cfce6351a90f1ea4 commit c1e003d3ff6973aa896eef4e6a6d432e6afbff60 commit 33c3365ec690c3857ecd579eef75e36a746a8122 commit 240e6d25a0a8ab98c042e37b2fd3c1f2cbf3e561 commit 6f072a84550d93342d7f7282e661e3834a801159 commit ff7ac85282a12c4f4968fa810186fda32b10dea7 commit 47d9c6faa79e85a6e196e02cc74c4775d39546a0 commit 96db14432d979532be4cb6d5d52a127317e68b3f commit 99b03ca651f1c409d296d6c6e9440d9b005c722f commit 0ef42fb749b17f7e49adef047ece5bebac5d6795 commit 2e21de9028270a72d2b7dfbd0fe46a6beace1f01 commit bd56c63ca1d953f035c1a06a0431c106ffada849 commit 43d5ac7d07023cd133b978de473b3400edad941f commit 5719d4fee1caed83979b21ad4cf34d46abf97514 commit 1b9e8b1feb33d75bf942a174719a861815fa7279 commit 0215466a8585b6d9c132f9d9e46da3966a84eabb commit 70487a99eeff5d0aa8104bd4eb236f318395658f commit 741fe8a4d23de0ee93a4a4e1f54e48161b98cdb4 commit cd9a0d026baa10c75688908556b3af218bc4ddad commit 4658b25d38831be8b0d1a9eebc05b067cecd559d commit 4308acff0f3f4fd523e69face1db33f8de10a5b1 commit 47e62dbd8dd30af66e8fdf1930a326971609dd32 commit b477143566d5b16c8b92ffec2cb3a896fe818509 commit 4866b0bfea40cddb7275c88aeb95b47dac3d2a35 commit b4acd97bf827122bd333a4d043c275a4eb9db905 commit fa4a427d84f9b797970a3d5139d7645403e4e989 commit 7e31a8585b79a4d67e7fefdb6428054d18ddd339 commit e0f943b4f9a366ac7f24fa3f0e52141178d4f1b5 commit 17252701ecb5ef3bdfb912aae5a011f93978781a commit 91e16017b6d36c2b7358654ccce9f69b2448df20 commit 85dfc1d692c9434c37842e610be37cd4ae4e0081 commit 948e7ce01413b71395723aaf846015062aea3a43 commit 03f2abb07e54b3e0da54c52a656d9765b7e141c5 commit 326db0dc00e57432b689349b4da3e86c90d5d61a commit a342655865b2f14d1fbf346356d3b3360e63e872 commit bdd8b6c98239cad3a976d6f197afc2c794d3cef8 commit b25db8c782ad7ae80d4cea2a09c222f4f8980bb9 commit 939d8e9c87e704fd5437e2c8b80929591fe540eb commit 7aa6d5fe6cdb4347c427caaba38f11cc88a8ed4d commit 2406846ec497af081d7e7a7da0e9938b8136fe16 commit 6e94d53962f7bc972582dbfb46b31f3a6e328a47 commit 2aa9f833dd08594584ce2add23a3cd11f0d623bf commit 0013f5f5c05da6321539df6fad75de150f430909 commit 88438668c9e0e32220b4605610bd888b4e50fe80 commit 938db276594697efab602c66cd92c48cbc60a314 commit 877691b987a089938d67de13d886932ef2f21b22 commit 6ea966fca0841174b6bafca58e56f9c11d3af157 commit 006ea1b5822f9019bd722ffc6242bc0880879e3d commit 55dc449a7c60d3df5a8f0b71bbae9d5173c864f5 commit a2cce09c349e2d9847ee7145986ca27d99bf0f61 commit d0a0b6cd8cf9f39d99d7d5c4c080499d17f43c33 commit 0b665d4af35837f0a0ae63135b84a3c187c1db3b commit 9758ff2fa240173e9a45613b07774b7a78b7653e commit 9f952378fcb90d202cbdf359aaeaad9429edbd0a commit f296a0bcc9611ba96ca3abb3332e21ee600d153f commit 5c1e6fa49e8d8dbdd8bb457492b2bc52718df244 commit 69879b3083cc5022585d1826c663c330efae4e63 commit 0ff76b5334fa6f44d1a1a6b3bd39f5667b092654 commit 3c27abee3fc3d59fb978e3291b60eaaddbcbf2e6 commit d999bc81ac3872a8543c4afbce30e0d46b4bb9e1 commit 892deb48269c65376f3eeb5b4c032ff2c2979bd7 commit 109a357f287c3b14a43216104299aafc1fa23cbc commit 799dce6fbd5fda21d461b56b8c6ca85214e20076 commit 0cd7f378b0927e10774981eb09e388258ca925e0 commit eacef9fd61dcf5eac8b775bb1814042e78a5c42d commit 8b70b5fee012172659717024adb6f17726d76290 commit 4e07d71c0d667ebf1e36be90b962081d2b778909 commit bc701a28c74e78d7b5aa2b8628cb3608d4785d14 commit 50ca8cc7c0fdd9ab16b8b66ffb301fface101fac commit 58fa0d90eddeda37b32597eda139e888ebe5af04 commit 030def2cc91f5185c697f29d3c485c63559cff1d commit c0f0dab8ba4858863579170dcffb23c1002879b7 commit 62e94f92e3977dbe67a6974ba7e5aa60c9a5e687 commit c14adcbd1a9648dc9d16dfd12c1e9bc0c14ef6aa commit 1a9c4db4caf0a504e35f0cfd97e54e07ebc85044 commit 93b76b13cfc13bf02d91aa544efbb067e3382141 commit 8c2699fad60e3f3e55481b49a38d46f49ebba77d commit c68c74f5b91ba56dab3ca9a219462e08c9b3cc9a commit 2cbc876daa715d50543e1d4d73f4e692860a51e5 commit f54ffa12168dc52f0d48d9fe32eacbbecd2c2c1d commit ad5c99e02047f33bf7043543545e3b17f37c8d5c commit e4e80625300390d8846b72d7076fd1a75af6ea60 commit 0b4d1f0e936e5c6beaebc32785465228ae0fdd16 commit 2abb6195512d14f0da45a27ca1be7cfca6658c5f commit 576c4ef510d7ad7f43730ba799441b0f24a29b1d commit fd06ccf15987dd94dfb902f328ef06c010bc7972 commit 9606ca2ea190e439f90426e2a740a48c800a0aab commit 57b427a705ce98308328fc4fa93524a9a8a3bf84 commit 0dd8674f2fc926b8a2404570c3cd0129a75dc70b commit fb3965f9ae28b83290e5b5431a77aace66071ca1 commit 2c3849baf2908d646b7466be52989835341551c4 commit be7612fd6665f5ef3f6c89e78bb4ec4dbff6cd16 commit d8be1357edc891b4259e3ecc1b831452361379ac commit 1c40d40f6835cdee99c6966b48b98d0e38c35f47 commit 1193081710b361ddb4b81d3e2f929b6d6e1f89e1 commit 33654ef470a97f9fcb19abc7e7ef660ea37e3aed commit 63cf4cad7301edafeb0650f32154006f1b5e6e78 commit c2ea703dcafccf18d7d77d8b68fb08c2d9842b7a commit 91f75eb481cfaee5c4ed8fb5214bf2fbfa04bd7b commit b06103b5325364e0b9944024db41b400b9028df9 commit 6cb12fbda1c2e2fcb6d3adfe01f18eef6812e278 commit 4817c37d71b554fe46ea494f6b2c8562b26640bf commit 040bf2a9446f6ba267225d34dc4a9b14d11e5092 commit c65fe9cbbfd61dbc12868f9ed4940c80fcb249e8 commit cf6299b6101903c31bddb0065804b2121ed510c7 commit b18ff6925d84492d845debe2dbb81122b1d141fa commit 0da6f6e5872e8c1e794bc3a705ea27a156b6a8e4 commit 92f153bb5a4bff4df8c67dcec5a9de1dde3b300b commit 4aa325ae541378166b3a84186bc1157a1d524f8b commit 4a0165f0603f333c6b36a420b4e348b67ddf6fc8 commit d764fb2af6cd92eee080978856f24b0cc6d555ad commit f4409ee84658ff95d92daace9f094fa6bf80b0e3 commit f6b80c04aabb4fdd18ed8fcbaa5efef64e5d0b36 commit dec63443380cf2ce6bc41258159cda4165fa4279 commit b6485bed40d7859735bdbfedbd55dcc8366a88a7 commit fbcdbfde87509d523132b59f661a355c731139d0 commit 4da8b63944a4f4482303c9ad6efb18aa547d4630 commit 88eabcb8e6965b38331618f60567dfe92ad3c42c commit 11544d77e3974924c5a9c8a8320b996a3e9b2f8b commit 2b534e90a1e31c7fc9536b512b72274cc3575f4c commit 011e8c3239ed36b4720113cafc5539d22cbb76cd commit 87172e89dcc7b09b32a4eb5f21e35d310e3cb024 commit fd5256cbe19609bfff0cc51e9d999a46020719da commit 6c92fe5fa5a1f24e50296de9d24d36a1b605b208 commit 4ad31fa15ba472866d538b3cee05708a9d8e8197 commit de0af8a65ea3c56e85517d23316679eacddb7a45 commit 67416bf85345b6990fe2adc42ab082bfefc578bd commit f89c6bf73420c597769033dcc811ce691597ccf3 commit b6fd6e0f5eb8c6d10575d08a2c6df8ed83877e07 commit bf252ce1fa8ac68baee3f8525fc6453d278b619d commit fddb024537f121995957d816fcf8e2e230451db2 commit 21bf3e6f1454b8f472ff7e6cbc95931dcaf7eb47 commit 2d0158497a9b9a80a92b02e55513dee4599eec96 commit e56e9ad0370a29a4bee3a99fd517d8583804fd74 commit 3db817fce43ec3d423b969911151dd849f4d7351 commit 0d988e5de7aa5ee8865cbc664180ae67918a6b19 commit c856f16c33e6ed4bcfe3f0e51afeb9b08ac48f0d commit 458c79a86ae1081636942ba3c42bf0424f3c6970 commit 2ca6c483ed2d73ff263457c166527abdb82bba06 commit 47547c56739a4dbf1e96a170f5b16811e04c5024 commit aca05d338b3226255fdba56771378a2dc4c9caa5 commit 19afe66ddb8f18c7ad5cd07322c6d8d2a2905ce8 commit ef30f441f6ac12875c9901e8ea1b9cfae6f0e8bf commit f3fac9481bc7b9518df18f33b71a6109a245ccc6 commit 3d38a5839ea8afe58fa59abc0a3453f44cae81e8 commit 6dd8931b1ceebbb92e4e0a9d12a236d82a072ea4 commit 4c3adc0b846ba22a8a92764495950b7c2482153b commit 45e3d1db7d3ca013f1439248a268b0cdada5d5a3 commit fec8c5244fc07b1f6a3249a8714489f594ff5c4f commit 11c9cc95f818f0f187e9b579a7f136f532b42445 commit 937ed9c8660a27ac4d36e8339c970a2ae7903c4d commit 0726ed3065eeb910f9cea0c933bc021a848e00b3 commit 4a700546ec9b8fafedf569f363f905b9ec7f5ee8 commit 6dc8265f9803ccb7e5da804e01601f0c14f270e0 commit f28cad86ada1a7345d7bbd379bef5a8babfa791b commit 0637d41786a3a9551f33ad8e15bdb40416362028 commit cb6846fbb83b574c85c2a80211b402a6347b60b1 commit 5b0ce2d41b70bba49b91b10c55984714490354ed commit 216a9873198bdc5c670a9f71d58fafd30227c9c8 commit f38b0d48cae88395a05e49cb885fa6ce657e1cc9 commit e53d9665ab003df0ece8f869fcd3c2bbbecf7190 commit eac4c54bf7f17fb4681b85e5fe383b74d6261a2b commit 771ced73fccd0ac19bb956eaacce3669cfccc805 commit 580013b2cef8babc204b7b78ff093140e112b194 commit 79d6b9351f086e0f914a26915d96ab52286ec46c commit 46a74381e5ea54dc78ad7c29659dad0b1eb66b0d commit 214993e106ea84a82e2c644bff3dbbe601b11e04 commit 19e43f1276b38716ad558c2018535e475cb9f3cf commit f9535d28ac93c3cc326f7215fccd0abe1d3a6083 commit 4c2602ba8d74c35d550ed3d518809c697de08d88 commit 03ee5956781b2245b1c77334ecdea6386fd3bfba commit 8ee262ba79a19a4dba9949397b1cf5761679670c commit 6ef295e34297433c78ea02dfcf1c649a769050bb commit 7e740ae6350407d68d2069ce79a6344bf1b58fe1 commit 8d0749b4f83bf4768ceae45ee6a79e6e7eddfc2a commit 75b950ef6166e4ef52e43e7ec80985c5705f7e81 commit 69e630016ef4e4a1745310c446f204dc6243e907 commit b54ce6c92cf57ff276e4539750c140c9c96416f3 commit 63ad5371cd1e379519395c49a4b6a652c36c98e5 commit 6638391b9f78abaa41f05fe4e0d2ee6f6390c398 commit 62d5f9f7110ad374db67ab4820f4ff2d916c3cdb commit 1dd8b1b987fad93b647cb0fa5289d69b4c889dc2 commit ffb378fb3069520da3c2be3c1269250ec9c028ab commit ec6aae9711a8e5fca24a537b9ae952e38a1ebb71 commit 575e55ee4fbc2c641a29b0054b3473e9fa81ae76 commit 4cc9f86f851847e5ebfb56212d81f1a30b9d392b commit 7ff61cdcc8609a19f3eddf3fffc09a05ad6d6865 commit 5fea167ec0a134cb61fde848a3c344f77f0c13a5 commit 83293f7f3d15fc56e86bd5067a2c88b6b233ac3a commit 8b5da5a458c95ad49571a6a6285800bf13409616 commit 978ffac878fd64039f95798b15b430032d2d89d5 commit abfaf0eee97925905e742aa3b0b72e04a918fa9e commit 9b7a4de9f126d8c8d59052088213990159417d5b commit ef3b4137aa09a9ad38f42d4de087cedf1b98c521 commit b121862c787c2a84ed5f42597aeeff5c1ead8f5b commit 4eaf21b752891fffab3d51ac96e81194cda32d1c commit 2096b74b1da5ca418827b54ac4904493bd9de89c commit 15084a8e1658ddaea42c7d3a72ccbcec2b85f54c commit dc5d4aff2e99c312df8abbe1ee9a731d2913bc1b commit 6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1 commit 5eb877b282fecc8b8a6ac6d4ce0d5057f9d3bad0 commit 6dc69d3d0d18d587ab9d809fe060ba4417cf0279 commit 54329e6f7beea6af56c1230da293acc97d6a6ee7 commit f1dcda0f79548c04f585108e2e165cb4fec951e8 commit 91c64a4f1cb01cf0ec50f0372ff8ca9d3022b7d0 commit d72d69abfdb6e0375981cfdda8eb45143f12c77d commit 016017a195b86d9761e91cb052438bf71207a12f commit 8f18a987ca761583a09d8e41f9938f61480deca3 commit ad783ff5a20f851c6d9bca03d12d44f98f494af7 commit bd672b7559efcd3ae3faf0b0e3846e30983e8ace commit 5d474cc501b90b82c182b5d00439eb6790a82e21 commit 71e4a7029045e3904e0e9242b4a7cd84d47b8fe5 commit 820e690e4eb88eaee68bf0b2d89fa9597bc00a45 commit 4efdddbce7c1329f00c458e85dcaf105aebdc0ed commit 4175c32be5ef0ff254d6931931ec412e8029c32a commit 0ffb1fd1582a78649f22253d81515997fff88bc4 commit e8309d50e97851ff135c4e33325d37b032666b94 commit 3993a799fc971bc9b918bd969aa55864447b5dde commit d82ce3cd30aa28db3e94ffc36ebf0af2ff12801d commit c4849f88164b13dd141885e28210f599741b304b commit d9679d0013a66849f23057978f92e76b255c50aa commit 59d41458f143b7a20997b1e78b5c15d9d3e998c3 commit ef3ac01564067a4337bb798b8eddc6ea7b78fd10 commit e26602be4869c74dd8a0f66f718b8a0ce120edb4 commit 57d17378a4a042401b0c2fe211e5a0e3a276cb3d commit 3bf6a9e36e441714928d73a5adbc59562eb7ef19 commit 520d9cd267618181901272a79db6154c0b83309c commit 9a458402fb69bda886aa6cbe067311b6e3d9c52a commit 4722f463896cc0ef1a6f1c3cb2e171e949831249 commit d3cbc6e323c9299d10c8d2e4127c77c7d05d07b1 commit 410482b51afecddb8fc29324d1b11945dfa0b682 commit ccf34586758cf00c0934e48f6ef6d688f01d7b19 commit c2c94b3b187dc92b2002809f489e0f24a41e91bc commit e5a1fd997cc2deda1b08d5faae04625de0440a1e commit 2dba5eb1c73b6ba2988ced07250edeac0f8cbf5a commit 5ec1cebd59300ddd26dbaa96c17c508764eef911 commit 7938d61591d33394a21bdd7797a245b65428f44c commit 5f0c749158158f89eba7647bdc4e8096979de981 commit ac46d93235074a6c5d280d35771c23fd8620e7d9 commit 7e38ac562b820915faa33a5077ca9bccf42d39d2 commit 9e5a14bce2402e84251a10269df0235cd7ce9234 commit dc919d670c6fd1ac81ebf31625cd19579f7b3d4c commit 98fdcacb45f7cd2092151d6af2e60152811eb79c commit ebc77bcc6e1660a011483c035d53c461c8dcc4f5 commit 72a8d87b87270bff0c0b2fed4d59c48d0dd840d7 commit 25f1488bdbba63415239ff301fe61a8546140d9f commit 2a807341ed1074ab83638f2fab08dffaa373f6b8 commit 48ee4835b73c48590d05a54730dc8037ebd39d3b commit 76cea3d95513fe40000d06a3719c4bb6b53275e2 commit 7fde14d705985dd933a3d916d39daa72b1668098 commit a0f90c8815706981c483a652a6aefca51a5e191c commit 43f2517955875be5d96b641fba33d73097fe3cd9 commit 23ecd4c1354226fd6ac9c5f8881666f76b9d6cbe commit 2fd0e5fb4ba37dff344b7bed5176212c2d6a7063 commit db5aa1497d02e7770e40dd0d1bfcb4ea0b0d3906 commit 82b550fa99f2c73636ca3f84900117c3c3272ef7 commit 8172f41859cf7516e73eb957297e6752b3073119 commit 5ae13c305ef8cb54efc4f0ba4565709b9f320fed commit 90a3d22ff02b196d5884e111f39271a1d4ee8e3e commit b3f74938d65665f892d1b7807c51140f68dc911c commit 3c6f13ad723e7206f03bb2752b01d18202b7fc9d commit 1b777d4d9e383d2744fc9b3a09af6ec1893c8b1a commit 3ec5586b4699cfb75cdfa09425e11d121db40773 commit a6ed2035878e5ad2e43ed175d8812ac9399d6c40 commit 92c4cfaee6872038563c5b6f2e8e613f9d84d47d commit 7d73c602154df56802a9e75ac212505fc1e9a2b6 commit 9a8406ba1a9a2965c27e0db1d7753471d12ee9ff commit f52a2b8badbd24faf73a13c9c07fdb9d07352944 commit 04ef860469fda6a646dc841190d05b31fae68e8c commit bca52455a3c07922ee976714b00563a13a29ab15 commit 2d8ae25d233767171942a9fba5fd8f4a620996be commit f5fa54f45ab41cbb1f99b1208f49554132ffb207 commit 49a6ebb95d04bdaa5d57313a380c44249cf02100 commit 30fbce374745a9c6af93c775a5ac49a97f822fda commit e55a3aea418269266d84f426b3bd70794d3389c8 commit e8ae38720e1a685fd98cfa5ae118c9d07b45ca79 commit 8ea2c5187d7b4901a70374415e772f1db422fb74 commit 9ca3d3cd0857523c95ab8cdbb6cfe47b8f90e309 commit 9ccdcc73d37cf0f1d4f97712f6b38af8806ac064 commit 6df4432a5eca101b5fd80fbee41d309f3d67928d commit eb48d42198792f1330bbb3e82ac725d43c13fe02 commit ee59792c97176f12c1da31f29fc4c2aab187f06e commit 3526b607b02397cdb6d459594e4f1d63133d6655 commit 9d7516b16f2a7ecbddd7940e582c78fcdc9136ef commit 8fd5a26e43859547790a7995494c952b708ab3b5 commit 85bb289215cf37e05e9581b39b114db1293f9ecd commit 4e6f55120c7eccf6f9323bb681632e23cbcb3f3c commit 200e8e3e43c4da4bd5ca83722523754ddb14ca02 commit 03ad3093c7c069d6ab4403730009ebafeea9ee37 commit a072312f43c33ea02ad88bff3375f650684a6f24 commit 328e34a5ad227399391891d454043e5d73e598d2 commit 60fdf98a774eee244a4e00c34a9e7729b61d0f44 commit ad787771b43602d64e02b5963f4192232b46366b commit a8b1e8636a3252daa729762b2e3cc9015cc91a5c commit 6e7545ddb13416fd200e0b91c0acfd0404e2e27b commit df2bb4dc285e60665930889e6f8c5bb38b90249a commit 78306438355353e677a5ffcf5e9351604b694159 commit 95e875bdb1862db178bf24fb703387ec3aa3a34a commit 59f39bfa6553d598cb22f694d45e89547f420d85 commit 080eba785fe10ba21c40bbdd80f2bd5331a28be6 commit aa4d01a4734bcb1cc9190807cdbcd5af1495910b commit 698bef8ff5d2edea5d1c9d6e5adf1bfed1e8a106 commit 8d9d2a723d64b650f2e6423024ccb4a33f0cdc40 commit 0bdc0a0699929c814a8aecd55d2accb8c11beae2 commit ea958422291de248b9e2eaaeea36004e84b64043 commit 26ace8793aaefbcd0d6bb664573ded35c69cd6ef commit 0136f5844b006e2286f873457c3fcba8c45a3735 commit f8f4e2a518347063179def4e64580b2d28233d03 commit 9c4f59ea3f865693150edf0c91d1cc6b451360dd commit 364438fd629f7611a84c8e6d7de91659300f1502 commit 439cf34c8e0a8a33d8c15a31be1b7423426bc765 commit babb1fc3234320bd17930e02bad9d1a83f5e6859 commit 5666b610194705587807a1078753eadc007b9d79 commit 3f33364836aacc28cd430d22cf22379e3b5ecd77 commit a40ee54e9a0958406469d46def03eec62aea0b69 commit afc189df6bcc6be65961deb54e15ec60e7f85337 commit ec663bca9128f13eada25cd0446e7fcb5fcdc088 commit 28adef861233c6fce47372ebd2070b55eaa8e899 commit 1432108d00e42ffa383240bcac8d58f89ae19104 commit f626dd0ff05043e5a7154770cc7cda66acee33a3 commit e3f3824874da78db5775a5cb9c0970cd1c6978bc commit 4d22336f903930eb94588b939c310743a3640276 commit f762ce78897d734a08f52e39a353359b7d417578 commit ecbd4912a693b862e25cba0a6990a8c95b00721e commit 7294863a6f01248d72b61d38478978d638641bee commit 3743e7f6fcb938b7d8b7967e6a9442805e269b3d commit 1e2be869c8a7247a7253ef4f461f85e2f5931b95 commit 97c61e0b7c596cc5f683da30289f92c2e1b4b799 commit e2b993302f40c4eb714ecf896dd9e1c5be7d4cd7 commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e commit 753a64c7799034a413083ad03b9fe51dfcad9fb2 commit 7c17b3d37f1fa1eb0498cdf63d43ce37b23eaae5 commit ecf8a99f4807c17fa310a83067a95964cedd9ac1 commit 1b279f6ad467535c3b8a66b4edefaca2cdd5bdc3 commit 08783aa7693f55619859f4f63f384abf17cb58c5 commit 26d3474348293dc752c55fe6d41282199f73714c commit 62929726ef0ec72cbbe9440c5d125d4278b99894 commit f1ef17011c765495c876fa75435e59eecfdc1ee4 commit c9585249c245e23580a2c3edbc8f14d9d7173f12 commit 8fdb19679722a02fe21642d39710c701d2ed567a commit 804f468853179b9b58af05c153c411931aa5b310 commit 3755d35ee1d2454b20b8a1e20d790e56201678a4 commit 40ce1121c1d76daf9048a86e36c83e469281b9fd commit fc1b6ef7bfb3d1d4df868b1c3e0480cacda6cd81 commit a8253684eb4b30abd3faf055bc475c23da748dc6 commit 3c3384050d68570f9de0fec9e58824decfefba7a Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:15:52 +00:00
dma_fence_array_clear_pending_error(array);
return true;
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
static void dma_fence_array_release(struct dma_fence *fence)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
struct dma_fence_array *array = to_dma_fence_array(fence);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
unsigned i;
for (i = 0; i < array->num_fences; ++i)
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
dma_fence_put(array->fences[i]);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
kfree(array->fences);
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
dma_fence_free(fence);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
}
Merge DRM changes from upstream v6.3..v6.4 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.4 RHEL-1350 JIRA: https://issues.redhat.com/browse/RHEL-1350 Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c drivers/gpu/drm/amd/display/dc/core/dc.c drivers/gpu/drm/amd/display/dc/dc.h drivers/gpu/drm/amd/display/dc/dc_dp_types.h drivers/gpu/drm/amd/display/dc/dc_types.h drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c drivers/gpu/drm/amd/display/dc/inc/link.h drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c drivers/gpu/drm/amd/display/dc/link/link_detection.c drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c drivers/gpu/drm/drm_displayid.c drivers/gpu/drm/drm_fb_helper.c drivers/gpu/drm/gma500/framebuffer.c drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c drivers/gpu/drm/i915/gt/intel_workarounds.c drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c Conflict resolution: diff --cc drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 0eb51c3a69a7,7acd73e5004f..11e99e8ca7ba --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@@ -350,35 -348,46 +348,75 @@@ static inline bool is_dc_timing_adjust_ return false; } + static inline void reverse_planes_order(struct dc_surface_update *array_of_surface_update, + int planes_count) + { + int i, j; + + for (i = 0, j = planes_count - 1; i < j; i++, j--) + swap(array_of_surface_update[i], array_of_surface_update[j]); + } + + /** + * update_planes_and_stream_adapter() - Send planes to be updated in DC + * + * DC has a generic way to update planes and stream via + * dc_update_planes_and_stream function; however, DM might need some + * adjustments and preparation before calling it. This function is a wrapper + * for the dc_update_planes_and_stream that does any required configuration + * before passing control to DC. + */ + static inline bool update_planes_and_stream_adapter(struct dc *dc, + int update_type, + int planes_count, + struct dc_stream_state *stream, + struct dc_stream_update *stream_update, + struct dc_surface_update *array_of_surface_update) + { + reverse_planes_order(array_of_surface_update, planes_count); + + /* + * Previous frame finished and HW is ready for optimization. + */ + if (update_type == UPDATE_TYPE_FAST) + dc_post_update_surfaces_to_stream(dc); + + return dc_update_planes_and_stream(dc, + array_of_surface_update, + planes_count, + stream, + stream_update); + } + +/** + * update_planes_and_stream_adapter() - Send planes to be updated in DC + * + * DC has a generic way to update planes and stream via + * dc_update_planes_and_stream function; however, DM might need some + * adjustments and preparation before calling it. This function is a wrapper + * for the dc_update_planes_and_stream that does any required configuration + * before passing control to DC. + */ +static inline bool update_planes_and_stream_adapter(struct dc *dc, + int update_type, + int planes_count, + struct dc_stream_state *stream, + struct dc_stream_update *stream_update, + struct dc_surface_update *array_of_surface_update) +{ + /* + * Previous frame finished and HW is ready for optimization. + */ + if (update_type == UPDATE_TYPE_FAST) + dc_post_update_surfaces_to_stream(dc); + + return dc_update_planes_and_stream(dc, + array_of_surface_update, + planes_count, + stream, + stream_update); +} + /** * dm_pflip_high_irq() - Handle pageflip interrupt * @interrupt_params: ignored @@@ -7901,16 -7905,16 +7931,23 @@@ static void amdgpu_dm_commit_cursors(st */ for_each_old_plane_in_state(state, plane, old_plane_state, i) if (plane->type == DRM_PLANE_TYPE_CURSOR) - handle_cursor_update(plane, old_plane_state); + amdgpu_dm_plane_handle_cursor_update(plane, old_plane_state); + } + + static inline uint32_t get_mem_type(struct drm_framebuffer *fb) + { + struct amdgpu_bo *abo = gem_to_amdgpu_bo(fb->obj[0]); + + return abo->tbo.resource ? abo->tbo.resource->mem_type : 0; } +static inline uint32_t get_mem_type(struct drm_framebuffer *fb) +{ + struct amdgpu_bo *abo = gem_to_amdgpu_bo(fb->obj[0]); + + return abo->tbo.resource ? abo->tbo.resource->mem_type : 0; +} + static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, struct dc_state *dc_state, struct drm_device *dev, diff --cc drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c index 862cb0f93b7d,18e098568cb4..3f047c985406 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c @@@ -142,49 -134,347 +134,391 @@@ void dc_restore_link_res_map(const stru bool dc_link_update_dsc_config(struct pipe_ctx *pipe_ctx) { - return link_update_dsc_config(pipe_ctx); + struct dc_link *link = pipe_ctx->stream->link; + + return link->dc->link_srv->update_dsc_config(pipe_ctx); + } + + bool dc_is_oem_i2c_device_present( + struct dc *dc, + size_t slave_address) + { + if (dc->res_pool->oem_device) + return dce_i2c_oem_device_present( + dc->res_pool, + dc->res_pool->oem_device, + slave_address); + + return false; + } + + bool dc_submit_i2c( + struct dc *dc, + uint32_t link_index, + struct i2c_command *cmd) + { + + struct dc_link *link = dc->links[link_index]; + struct ddc_service *ddc = link->ddc; + + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + } + + bool dc_submit_i2c_oem( + struct dc *dc, + struct i2c_command *cmd) + { + struct ddc_service *ddc = dc->res_pool->oem_device; + + if (ddc) + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + + return false; + } + + void dc_link_dp_handle_automated_test(struct dc_link *link) + { + link->dc->link_srv->dp_handle_automated_test(link); + } + + bool dc_link_dp_set_test_pattern( + struct dc_link *link, + enum dp_test_pattern test_pattern, + enum dp_test_pattern_color_space test_pattern_color_space, + const struct link_training_settings *p_link_settings, + const unsigned char *p_custom_pattern, + unsigned int cust_pattern_size) + { + return link->dc->link_srv->dp_set_test_pattern(link, test_pattern, + test_pattern_color_space, p_link_settings, + p_custom_pattern, cust_pattern_size); + } + + void dc_link_set_drive_settings(struct dc *dc, + struct link_training_settings *lt_settings, + struct dc_link *link) + { + struct link_resource link_res; + + dc->link_srv->get_cur_link_res(link, &link_res); + dc->link_srv->dp_set_drive_settings(link, &link_res, lt_settings); + } + + void dc_link_set_preferred_link_settings(struct dc *dc, + struct dc_link_settings *link_setting, + struct dc_link *link) + { + dc->link_srv->dp_set_preferred_link_settings(dc, link_setting, link); + } + + void dc_link_set_preferred_training_settings(struct dc *dc, + struct dc_link_settings *link_setting, + struct dc_link_training_overrides *lt_overrides, + struct dc_link *link, + bool skip_immediate_retrain) + { + dc->link_srv->dp_set_preferred_training_settings(dc, link_setting, + lt_overrides, link, skip_immediate_retrain); + } + + bool dc_dp_trace_is_initialized(struct dc_link *link) + { + return link->dc->link_srv->dp_trace_is_initialized(link); + } + + void dc_dp_trace_set_is_logged_flag(struct dc_link *link, + bool in_detection, + bool is_logged) + { + link->dc->link_srv->dp_trace_set_is_logged_flag(link, in_detection, is_logged); + } + + bool dc_dp_trace_is_logged(struct dc_link *link, bool in_detection) + { + return link->dc->link_srv->dp_trace_is_logged(link, in_detection); + } + + unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link, + bool in_detection) + { + return link->dc->link_srv->dp_trace_get_lt_end_timestamp(link, in_detection); + } + + const struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link, + bool in_detection) + { + return link->dc->link_srv->dp_trace_get_lt_counts(link, in_detection); + } + + unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link) + { + return link->dc->link_srv->dp_trace_get_link_loss_count(link); + } + + struct dc_sink *dc_link_add_remote_sink( + struct dc_link *link, + const uint8_t *edid, + int len, + struct dc_sink_init_data *init_data) + { + return link->dc->link_srv->add_remote_sink(link, edid, len, init_data); + } + + void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink) + { + link->dc->link_srv->remove_remote_sink(link, sink); + } + + int dc_link_aux_transfer_raw(struct ddc_service *ddc, + struct aux_payload *payload, + enum aux_return_code_type *operation_result) + { + const struct dc *dc = ddc->link->dc; + + return dc->link_srv->aux_transfer_raw( + ddc, payload, operation_result); + } + + uint32_t dc_link_bw_kbps_from_raw_frl_link_rate_data(const struct dc *dc, uint8_t bw) + { + return dc->link_srv->bw_kbps_from_raw_frl_link_rate_data(bw); + } + + bool dc_link_decide_edp_link_settings(struct dc_link *link, + struct dc_link_settings *link_setting, uint32_t req_bw) + { + return link->dc->link_srv->edp_decide_link_settings(link, link_setting, req_bw); + } + + + bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link, + struct dc_link_settings *max_link_enc_cap) + { + return link->dc->link_srv->dp_get_max_link_enc_cap(link, max_link_enc_cap); + } + + enum dp_link_encoding dc_link_dp_mst_decide_link_encoding_format( + const struct dc_link *link) + { + return link->dc->link_srv->mst_decide_link_encoding_format(link); + } + + const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link) + { + return link->dc->link_srv->dp_get_verified_link_cap(link); + } + + bool dc_link_is_dp_sink_present(struct dc_link *link) + { + return link->dc->link_srv->dp_is_sink_present(link); + } + + bool dc_link_is_fec_supported(const struct dc_link *link) + { + return link->dc->link_srv->dp_is_fec_supported(link); + } + + void dc_link_overwrite_extended_receiver_cap( + struct dc_link *link) + { + link->dc->link_srv->dp_overwrite_extended_receiver_cap(link); + } + + bool dc_link_should_enable_fec(const struct dc_link *link) + { + return link->dc->link_srv->dp_should_enable_fec(link); + } + + int dc_link_dp_dpia_handle_usb4_bandwidth_allocation_for_link( + struct dc_link *link, int peak_bw) + { + return link->dc->link_srv->dpia_handle_usb4_bandwidth_allocation_for_link(link, peak_bw); + } + + void dc_link_handle_usb4_bw_alloc_response(struct dc_link *link, uint8_t bw, uint8_t result) + { + link->dc->link_srv->dpia_handle_bw_alloc_response(link, bw, result); + } + + bool dc_link_check_link_loss_status( + struct dc_link *link, + union hpd_irq_data *hpd_irq_dpcd_data) + { + return link->dc->link_srv->dp_parse_link_loss_status(link, hpd_irq_dpcd_data); + } + + bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link) + { + return link->dc->link_srv->dp_should_allow_hpd_rx_irq(link); + } + + void dc_link_dp_handle_link_loss(struct dc_link *link) + { + link->dc->link_srv->dp_handle_link_loss(link); + } + + enum dc_status dc_link_dp_read_hpd_rx_irq_data( + struct dc_link *link, + union hpd_irq_data *irq_data) + { + return link->dc->link_srv->dp_read_hpd_rx_irq_data(link, irq_data); + } + + bool dc_link_handle_hpd_rx_irq(struct dc_link *link, + union hpd_irq_data *out_hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work) + { + return link->dc->link_srv->dp_handle_hpd_rx_irq(link, out_hpd_irq_dpcd_data, + out_link_loss, defer_handling, has_left_work); + } + + void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on) + { + link->dc->link_srv->dpcd_write_rx_power_ctrl(link, on); + } + + enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link, + struct dc_link_settings *link_setting) + { + return link->dc->link_srv->dp_decide_lttpr_mode(link, link_setting); + } + + void dc_link_edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd) + { + link->dc->link_srv->edp_panel_backlight_power_on(link, wait_for_hpd); + } + + int dc_link_get_backlight_level(const struct dc_link *link) + { + return link->dc->link_srv->edp_get_backlight_level(link); + } + + bool dc_link_get_backlight_level_nits(struct dc_link *link, + uint32_t *backlight_millinits_avg, + uint32_t *backlight_millinits_peak) + { + return link->dc->link_srv->edp_get_backlight_level_nits(link, + backlight_millinits_avg, + backlight_millinits_peak); + } + + bool dc_link_set_backlight_level(const struct dc_link *link, + uint32_t backlight_pwm_u16_16, + uint32_t frame_ramp) + { + return link->dc->link_srv->edp_set_backlight_level(link, + backlight_pwm_u16_16, frame_ramp); + } + + bool dc_link_set_backlight_level_nits(struct dc_link *link, + bool isHDR, + uint32_t backlight_millinits, + uint32_t transition_time_in_ms) + { + return link->dc->link_srv->edp_set_backlight_level_nits(link, isHDR, + backlight_millinits, transition_time_in_ms); + } + + int dc_link_get_target_backlight_pwm(const struct dc_link *link) + { + return link->dc->link_srv->edp_get_target_backlight_pwm(link); + } + + bool dc_link_get_psr_state(const struct dc_link *link, enum dc_psr_state *state) + { + return link->dc->link_srv->edp_get_psr_state(link, state); + } + + bool dc_link_set_psr_allow_active(struct dc_link *link, const bool *allow_active, + bool wait, bool force_static, const unsigned int *power_opts) + { + return link->dc->link_srv->edp_set_psr_allow_active(link, allow_active, wait, + force_static, power_opts); + } + + bool dc_link_setup_psr(struct dc_link *link, + const struct dc_stream_state *stream, struct psr_config *psr_config, + struct psr_context *psr_context) + { + return link->dc->link_srv->edp_setup_psr(link, stream, psr_config, psr_context); + } + + bool dc_link_wait_for_t12(struct dc_link *link) + { + return link->dc->link_srv->edp_wait_for_t12(link); + } + + bool dc_link_get_hpd_state(struct dc_link *link) + { + return link->dc->link_srv->get_hpd_state(link); + } + + void dc_link_enable_hpd(const struct dc_link *link) + { + link->dc->link_srv->enable_hpd(link); + } + + void dc_link_disable_hpd(const struct dc_link *link) + { + link->dc->link_srv->disable_hpd(link); + } + + void dc_link_enable_hpd_filter(struct dc_link *link, bool enable) + { + link->dc->link_srv->enable_hpd_filter(link, enable); + } + + bool dc_link_validate(struct dc *dc, const struct dc_stream_state *streams, const unsigned int count) + { + return dc->link_srv->validate_dpia_bandwidth(streams, count); } + +bool dc_is_oem_i2c_device_present( + struct dc *dc, + size_t slave_address) +{ + if (dc->res_pool->oem_device) + return dce_i2c_oem_device_present( + dc->res_pool, + dc->res_pool->oem_device, + slave_address); + + return false; +} + +bool dc_submit_i2c( + struct dc *dc, + uint32_t link_index, + struct i2c_command *cmd) +{ + + struct dc_link *link = dc->links[link_index]; + struct ddc_service *ddc = link->ddc; + + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); +} + +bool dc_submit_i2c_oem( + struct dc *dc, + struct i2c_command *cmd) +{ + struct ddc_service *ddc = dc->res_pool->oem_device; + + if (ddc) + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + + return false; +} + diff --cc drivers/gpu/drm/amd/display/dc/dc.h index 9307442dc225,30f0ba05a6e6..49ac369cc926 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@@ -1663,39 -1664,36 +1664,83 @@@ bool dc_is_oem_i2c_device_present /* return true if the connected receiver supports the hdcp version */ bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal); bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal); - #endif + + /* Notify DC about DP RX Interrupt (aka DP IRQ_HPD). + * + * TODO - When defer_handling is true the function will have a different purpose. + * It no longer does complete hpd rx irq handling. We should create a separate + * interface specifically for this case. + * + * Return: + * true - Downstream port status changed. DM should call DC to do the + * detection. + * false - no change in Downstream port status. No further action required + * from DM. + */ + bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link, + union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work); + /* handle DP specs define test automation sequence*/ + void dc_link_dp_handle_automated_test(struct dc_link *link); + + /* handle DP Link loss sequence and try to recover RX link loss with best + * effort + */ + void dc_link_dp_handle_link_loss(struct dc_link *link); + + /* Determine if hpd rx irq should be handled or ignored + * return true - hpd rx irq should be handled. + * return false - it is safe to ignore hpd rx irq event + */ + bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link); + ++/* Determine if link loss is indicated with a given hpd_irq_dpcd_data. ++ * @link - link the hpd irq data associated with ++ * @hpd_irq_dpcd_data - input hpd irq data ++ * return - true if hpd irq data indicates a link lost ++ */ ++bool dc_link_check_link_loss_status(struct dc_link *link, ++ union hpd_irq_data *hpd_irq_dpcd_data); ++ ++/* Read hpd rx irq data from a given link ++ * @link - link where the hpd irq data should be read from ++ * @irq_data - output hpd irq data ++ * return - DC_OK if hpd irq data is read successfully, otherwise hpd irq data ++ * read has failed. ++ */ ++enum dc_status dc_link_dp_read_hpd_rx_irq_data( ++ struct dc_link *link, ++ union hpd_irq_data *irq_data); + +/* Notify DC about DP RX Interrupt (aka DP IRQ_HPD). + * + * TODO - When defer_handling is true the function will have a different purpose. + * It no longer does complete hpd rx irq handling. We should create a separate + * interface specifically for this case. + * + * Return: + * true - Downstream port status changed. DM should call DC to do the + * detection. + * false - no change in Downstream port status. No further action required + * from DM. + */ +bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link, + union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work); +/* handle DP specs define test automation sequence*/ +void dc_link_dp_handle_automated_test(struct dc_link *link); + +/* handle DP Link loss sequence and try to recover RX link loss with best + * effort + */ +void dc_link_dp_handle_link_loss(struct dc_link *link); + +/* Determine if hpd rx irq should be handled or ignored + * return true - hpd rx irq should be handled. + * return false - it is safe to ignore hpd rx irq event + */ +bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link); + /* Determine if link loss is indicated with a given hpd_irq_dpcd_data. * @link - link the hpd irq data associated with * @hpd_irq_dpcd_data - input hpd irq data diff --cc drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c index 91b59d858108,eeca16faf31a..35333daf4cd9 --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c @@@ -297,12 -309,33 +307,32 @@@ void dcn32_determine_det_override(struc struct dc_plane_state *current_plane = NULL; uint8_t stream_count = 0; + int phy_pix_clk_mult, lower_mode_stream_index; + int phy_pix_clk[MAX_PIPES] = {0}; + bool use_new_det_override_algorithm = false; + for (i = 0; i < context->stream_count; i++) { /* Don't count SubVP streams for DET allocation */ - if (context->streams[i]->mall_stream_config.type != SUBVP_PHANTOM) + if (context->streams[i]->mall_stream_config.type != SUBVP_PHANTOM) { + phy_pix_clk[i] = context->streams[i]->phy_pix_clk; stream_count++; + } } + /* Check for special case with two displays, one with much higher pixel rate */ + if (stream_count == 2) { + ASSERT((phy_pix_clk[0] > 0) && (phy_pix_clk[1] > 0)); + if (phy_pix_clk[0] < phy_pix_clk[1]) { + lower_mode_stream_index = 0; + phy_pix_clk_mult = phy_pix_clk[1] / phy_pix_clk[0]; + } else { + lower_mode_stream_index = 1; + phy_pix_clk_mult = phy_pix_clk[0] / phy_pix_clk[1]; + } + + if (phy_pix_clk_mult >= DCN3_2_NEW_DET_OVERRIDE_MIN_MULTIPLIER) + use_new_det_override_algorithm = true; + } + if (stream_count > 0) { stream_segments = 18 / stream_count; for (i = 0; i < context->stream_count; i++) { diff --cc drivers/gpu/drm/amd/display/dc/link/link_detection.c index 8145d208512d,d471d58aba92..ee16d94b2b63 --- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c @@@ -1334,7 -1331,7 +1331,6 @@@ const struct dc_link_status *link_get_s return &link->link_status; } -- static bool link_add_remote_sink_helper(struct dc_link *dc_link, struct dc_sink *sink) { if (dc_link->sink_count >= MAX_SINKS_PER_LINK) { diff --cc drivers/gpu/drm/bridge/tc358767.c index 232e23a1bfcc,91f7cb56a654..d6349af4f1b6 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@@ -1896,12 -1896,12 +1896,12 @@@ static int tc_mipi_dsi_host_attach(stru "failed to create dsi device\n"); tc->dsi = dsi; - dsi->lanes = dsi_lanes; dsi->format = MIPI_DSI_FMT_RGB888; - dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE; + dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS; - ret = mipi_dsi_attach(dsi); + ret = devm_mipi_dsi_attach(dev, dsi); if (ret < 0) { dev_err(dev, "failed to attach dsi to host: %d\n", ret); return ret; diff --cc drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c index 8035e50f7422,3aeede6aee4d..ae367d473200 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@@ -2467,7 -2462,7 +2462,7 @@@ gen8_dispatch_bsd_engine(struct drm_i91 /* Check whether the file_priv has already selected one ring. */ if ((int)file_priv->bsd_engine < 0) file_priv->bsd_engine = - prandom_u32_max(num_vcs_engines(dev_priv)); - get_random_u32_below(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]); ++ prandom_u32_max(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]); return file_priv->bsd_engine; } Commit list: commit cbf143b282c64e59559cc8351c0b5b1ab4bbdcbe commit d33a54e3991dfce88b4fc6d9c3360951c2c5660d commit d703a0f45a70e6ed4749780ed5efb2d1ec042297 commit e566507bf2f460967f53030ef84b67ef26dcaf8e commit 851a4a77a9f6441bd73625fe6dbc29c814ae681f commit 18d2f6d956d0a39d5a27b0512aee17cb253f5788 commit 413ebc4803f025c64ec80de07c50e65e2f59ae89 commit 19ff997ffc43cb203fb7d6ac169b69e26c7dcbfb commit 249a4f5e663ccd1c1b1d11db68020e488a020791 commit 357513233d6456c9f99e34794897efd4ae907e83 commit 6d8d5c6b643062a0dfc7632f7a73057e75fca057 commit 680d0c7960f12fc3852c70b2bab278cc5e70b88a commit 7b775d36589390eaf19ceada78141c60ed1c7c84 commit f3783aa6b871ffece27388076d2c200a22bdb162 commit c886118bd8f574a635dda176b2460c03c28b1177 commit 0d6e08c72474043d7e686c32f25b735bfcdc9daa commit 220b3376c0781ec46cf86e19b7460e7e1ccf913d commit 6e52ced02392c760936159cc53da5669c94dd9a3 commit d374c047b38e9f1130308aae207dc44045cd5cac commit 9b469093d321f23adf13d966797f55242278c3b5 commit 24efe424f096953d355cc366cdd471ba8cdaf035 commit 2b6f7e39ccae065abfbe3b6e562ec95ccad09f1e commit 60bb4478f7de8ad45bc9464f94d766d8ec807606 commit fceeca7f3cf1c2b8628cd76c936b51271b793b1b commit 28cbe92b59d7b8b1768f1900f677cf8567edd0bd commit 1a45d6811c8790f4f9821038b243a71c9be1ebe2 commit d023d6f741c85bb00d2ca43d338327fbc150c113 commit c22cf04c6ab1d9ad5be2ec36e9822bc45526e8ca commit 9d691c197631f152d7dc6788098f372b64d3bc43 commit d1702963ab145eff51c31e5fdc2867e9c5959ad5 commit 69ea87e1591a39dd53968f2f5d496f0f9499ad74 commit 3c4b33d0e67ddb900efa7a0eabd33a667c699ff9 commit 9c608cf39b96666ecbc163e3f6197f6d8ea78e56 commit 33d0c67dcbb045cbbbba9d41fa6e4b1f73bf3888 commit c76f67275f9c60d7ff53b6a90e90897c207d3d9c commit 2324cdfffbaf0bc2404d919d9920b09148f8645f commit 9dd56e979cb69f5cd904574c852b620777a2f69f commit 16bede135fb1319c22dfa55b2de20f482fcc9cd9 commit 77d3b6130203299123d17df78b843f193c18b25f commit 7f66476c930cdb5e0bc4dc563f241498a3791f99 commit 19d7dc6638a92535769b9ecc2b04a7f3afa0a7ed commit 7fd7eacff0dec488071b5f1fedfcd382bf3ac074 commit 2a6d731a8f16192ece8e1649ca13e55d80561594 commit df5bf3b942a8d344bd9cbbe6ac31c9a2ea1557a4 commit c913cd5489930abbb557ef144a333846286754c3 commit 73a6c676542ac18d2556be80260bf554f1cef4ae commit c580c2d27ac8754cc6f01da1d715b7272f5f9cbb commit 43e6fad17a182de1825277d986a1e4309111e5b7 commit 9541fd164bddde24eb575c5744b6a31a6f62213e commit 14f25bd0bb938af7359433db4ef9495aad4cf703 commit 4fae160fde76e9dc929ba57ec0efbbc1197daaf0 commit 1f16fdbb2a5a7504fcc4be057000e589cb427fbd commit e4ef6503bd4c4ee6fbed2623c50a338dc93d5e9e commit 23cc452e9b6186d6a8c1ddb380a0193652ea6579 commit 3965b8812e173c38b2fd1872dc3e08f436311575 commit da97065e4692247767d2a7f2850d193eb2f65229 commit 247c7a4cdad87564da49a7879aca2f0653689502 commit 5dfb29d444daf94120762e9d7b9fe6aa4e0f9929 commit 1af546c2cec6e28b6bbe01a4ad0c38e96e54fcb4 commit 7206b517665e8b59d7e18877d9741da193cd3325 commit 4b284831c6f3656627958bced181215e7b9fd322 commit 36e491f8f6e9bd9460923da48b2e516aafb80bb2 commit 01f0411f8e307e7154d062f62d4b0799b8498748 commit 960dafa30455450d318756a9896a02727f2639e0 commit fde789e8339c60c8c58e5a71fa819fcfe52d839e commit 58c7ee0676bace7a7aae8a3e21ec8d09eab1c895 commit 24243212c5ed2a5f3c1d1d74fd1913d8c189dec7 commit 1802537820389183dfcd814e0f6a60d1496a75ef commit c7ea16f6a47f9b6eca4e9cdcab8d1f587ea9e484 commit f87c1f0b7b79b7a4f165750d1884da1fd29ae93c commit 0349c41b05968befaffa5fbb7e73d0ee6004f610 commit 54762e920eb483bd70aa92421788bc4e87e4fd1d commit ec852e3c88d5caa457557406c0c787b56c36dffb commit 389b9d91dd57fd2d4428bd0c19ed1cacf2fe918d commit e3ea1806e4ad097c9e67e108853a4ae0f3f100cc commit 8d993276486a1642fdb70410debfe3692cc508f6 commit fec37500cf1bca65934c60b03f0409328e60ab7b commit 118b5c136c04da705b274b0d39982bb8b7430fc5 commit ba00eb6a4bfbe5194ddda50730aba063951f8ce0 commit b33771546309b46b681388b3540b69a75a0e2e69 commit ac7215c423a34837b634c90cf29681537bd9998c commit 70994becf2d0899dc9f8c23154af6aad34b0981d commit aae4f817b8176c0232fb1cde491da6d0775bed14 commit 9310dba467990d393942cfd0c77acf21484050da commit a0dcb06d29d9e477e1984dc3859e61568361fc1a commit 4039e44237e8ebb06f0e4af549fbedf7c41df9db commit 5f21dc07b52eb54a908e66f5d6e05a87bcb5b049 commit 05d5562e401eb0aefab89788a24c0d4e776150d7 commit 3a38be31ec82920a871963c086393bc0ba26a655 commit 869bace73ae2b4227e57ee3fd994bfa7d4808938 commit 4602f42f015232f6c1b19f92d14688aea00448b9 commit 4fd4fde8e42e16425e7acab2e093614491107083 commit 580419965c263120ee05cd99ab8d35c2fdbc449b commit 96eecf9beea7603d6ccb5d0baace85fda842ea15 commit 1c621f2a21cd519965c6820698345fa14126fec5 commit 9847ffce9b5f83a7707504b0127aeb6a05dbd378 commit a13af50d75bc266bc746a2ac2b38d597f08f4201 commit aed01a68047bd92e6f1273fb2e0b8e99ca72a876 commit 2b9ed318ad1c579df943c1eb07ae1f1c0e5e9d83 commit 064b3eee8e0260d8053b588c71a3f71b762cc0f3 commit 7ee6f99dbc45eb457c87241aac1067fef3f263d9 commit 96a7b60f6ddb2bc966fac800c1dd18876a6e3c3f commit 7c18189b14b33c1fbf76480b1bd217877c086e67 commit aa8c85affe3facd3842c8912186623415931cc72 commit e5e43d3363d7c53d99163e94cc61d418230da17c commit 3cd7cb2a7b6b94841aa7aad4c56ac5d7bad683ad commit 2cfd1b38413c15d1c0af6e24ec3f0af8c36cc27d commit 4583d6beb04976dff3440b1efd2c5956997fd839 commit 9da2957f9f81ed29d0046021f131be352cb2199e commit 6b2e8aa45126161135fb4a88870c9526fd8319f8 commit 09881d2940bbd641f27f9ae7907e8a1893bc54b2 commit 6703e28f976d9240311ad260a73504bdc6f6a74b commit cb8097a45da128127db71cfba2d4a2614cbf71f0 commit e0029da927fa9cc3c8ca6b37dc10624d1209e310 commit 39985eea5a6dd1e844f216028252870e980b9e7f commit 668b206601c5f5063e03b76784a0d3024fa2b249 commit a44df74c720eb45d16a92ab9fc8a780d961d5e2b commit f1dc979b6088426698b13e888c65f9c287af48e7 commit dfefe7bc53a115d8a99478ab9b8d7726c70c0c49 commit d24b34758dfaf47276363746e286464d13649efb commit db5d650ff0b5204ba679320ecdbc5e5d7ea80508 commit 5f42196d39291ac5a34b4c68c754a7b023892d53 commit 9151c85cbb2c3962d65f12dd0e8b2a7f0d9908ee commit ee9125720c024e759d5c0f888fe7b98dd22e40cd commit 1b108bc7607e0ac54e1664b9d8b15c70d2b0af62 commit b5d0bea79367144cead950bad38e7c9a1ba5c087 commit b17a15d6189fa86bc06cb88bb2980888d81cdd75 commit 9d4b7af520e542b82a5db210c2053b5dc190eae0 commit 36d421e632e9a0e8375eaed0143551a34d81a7e3 commit 9ef8d83e8e25d5f1811b3a38eb1484f85f64296c commit 9542d708409a41449e99c9a464deb5e062c4bee2 commit 2bf91341ee42fddb6615936701bf2ed68689d452 commit 273e1daa1c025d8a8649d5622ab8b7f344960e9b commit f9dfa87c43a38dca16fcb4fb527d3789ca7bf611 commit 1b2146de7c5bcc25b75484c6ff1c94971c7696e8 commit 94b49d53acece870d242f6b148aff3940cb6c92e commit 284c5baa44218ef615ed8f5edcd6cfdedaef6abc commit 0e7a16f9ddde61d7d65bae9c7ddda2e4a22cbc12 commit d6683bbe70d4cdbf3da6acecf7d569cc6f0b4382 commit f56e0071a6fea6b416943d8736f3128c8b2abed2 commit b3baf0c00cbd2174e9fdc7141ea30adf123c4a8f commit f20eb7845ffde91abc954493431aced4f5f5c4f5 commit c50ad291e4d9cf32dd893c2e06019e8c7da89f65 commit 61b795a9c35264022cf0bfc49d26e75162a23d5d commit 06f1b06dc5b75b1a4071c905231d40cd74587a18 commit 9fcbae04987b9bbc6b5459bb37814be811c6e05d commit 3dadb4a17035ad4c84670d2ee1a3070f5fab4bbc commit 7380f545a8147500e02843d1327f32ea905c953a commit f22c982ef4152f55516865e4d802760cedda6470 commit 4923e99fd0a711f854b964e1a8cf9163112d1cee commit ae2ac2d806b7c3a0cfad4cd76c22aa44b69d9265 commit 2bd4054c7d5c888db8a2f985c8f01a9278792210 commit 98463a24797c494108850441510c48741976c2e6 commit bdfee32454843161ebdfa3ff9fe37dd110604db5 commit 1e116253821a7a3404f4220a0493793f39c7117e commit cd5103eed56fd9012221659c403c3339b8c20305 commit aa80b2b12b89a4d5de2960968b01128003b147e6 commit 8910d8b7ed288564fdb0ad41e02fd8a381f7b727 commit 59ea2887907db7315388f4e37f59aafac8ab2530 commit 8eb2e3b47e3564d2ed49d3fbea5f472950ef98b7 commit 46b3c0f683d6a2128f7f2bf236bcdc62caec5c83 commit 5ed88f96c137b9b68ad99f40721031feb6b26923 commit 22fac49febaafd7e3f141952915f56ccd09f5cbf commit 02107ef11b438a2528a113d8a546d4dceb8bcce1 commit f99926383bd62d2b707e4599b4e096e943f63d42 commit 6fd3d8bf89fc6525264552910accb09c93abba02 commit 158350aae16a4e666e261da0bb4d91c0601a3edd commit 01361096a33a81cc224e12e8cf06240f12737365 commit 1008266e31a0cb86cf8ac18eb77047283ae2b800 commit bb45217ff335d2662ee3cdfe3f32817e2d2e06ae commit fce187ca0cdd6dc707db2c7c22b863cd8bb91ef8 commit 01a789fa45bb0802cb396f4f30b1351840ce0c09 commit 55a4679e88b20310de0d614bd3b2f935f98ba5a9 commit 48630a3151b0373f005270c69f0caaaf08e22fd3 commit 5ac421a9ec6668369b7910d4b1e7f5e7e9e9ec94 commit 3eb08ea58e5717cf758b9eff6d9604aa3525ab94 commit 998894d5dd49462013f1f61f094e9e91990f9e7a commit 1d9ce1cbdc191180038b66a914b420b8b0075062 commit 9c0cd4bb9a2da8c69cd9331ba1824bca027d6090 commit 050db7d70c3c6cf72d11dde8961f953f990b9c6e commit 61a55f8b1ebcde68bc7bfd57435b1b3bb1121b8f commit 6068771673a38efc31ed5b99645176b4d3a33129 commit 93604a5ade3a021fe3daf37f8d378b12cabb26b4 commit 495e440b354203d286127f8515f67a7a711ab6ed commit 1e84dadb2762cddbb5a1066713fc5fc6505e9f27 commit 169b9182f192e8725c8de5d7d77f00f6ae6c7fd4 commit 8f85e4a1667fb12a2f0f83876ec68a75554ed5b3 commit b712b3830a327b171f0a00512aee5e84d45f6d36 commit 2a742fd1640574b80682669825274122e71141e7 commit fedee62781e3aed958be475af6e5dbea90cf232c commit 1f89b94bcfbf1d9ce7f26bb66d8ee0cd7ca7d6d7 commit d5f84973acddbc6140cc82d74ae8f5b3e11c027f commit e18b19740299285fb18ac1513dcaaf0fa40e140e commit bfa5969e1144c8d0fbbe1a976601dcbc50549757 commit 2846cf3fdb8b500e374efdcad3134633dcc5ce60 commit 1552dd6ef99fb54479afdd2fb84473b9655cad3c commit 9548fefcaf9ab61291c0bd427627aa773b19dc75 commit 992ed9d525609e2bcef9207c25fe2b1949f158f1 commit c604d31950d10db45267bbcb9ce8f1dbc2bfa74e commit b129ff30acea495b1455cf8d6e1d86fdb87d22d4 commit 95d39a0c64aa529adbff1bdafd391e83ad587602 commit 5eba7426050755c96d4b9561432b18ca000a4fd4 commit 66560f33059ebe606cad7aef9c298a19d4f9e998 commit 839259b8afbb78bcd6d0b698e82cd4578a505ba4 commit d1e8959203f21aa577f2fef531109c9cf872d4b1 commit 3687ce7517a1e81141191bf12e3e86840d6b9ed9 commit e7e12f6ec8bfb040e28ea7287c907c19477149e6 commit 518b761a7b0e2bb2fac2518f041c71b461adf761 commit 82ea22256b9c1fe3f5a089733969f6539d92d9f0 commit d24b77e444bef83155557ebf4c2b3c551f198926 commit 28d58468ad7d9630c83e4ab3dcc0b2953a276f7e commit b2daaa9360610c584fbe8d7d5e8d1fdb99abc7ef commit 4fa01c6357d5f4ae80b1794c5ecb71c0c66cd528 commit 4d3ed6326449ddb1356544bf838024eb232dd315 commit 4f101d5710a84f334b05a96713000ce8dfd4d598 commit c3ed0e72c872901659ed0fef4b91eb6ab7dc6aad commit 0c3c99364361171f8cfeb8b66b1e6f4709919dc3 commit cb42e8ede5b475c096e473b86c356b1158b4bc3b commit 957565a473a630a3d01932c7173860b33e7acdbd commit da6198afb01df0dce47fde23b53183cc0009b6a2 commit ba8ff971008cfaef6049df52a6058801202435d8 commit 0eb1173422f648a503a2ed1a8364f2d8bd7f690c commit c087bbb6d84e7a2e8dc834fe066d2a91360c0db6 commit 1c388da529c8206818de6dd89b99ba21acc74f6b commit c6a53c90e3be8b7e745a46c941631d0855648313 commit 5bacecc3c56131c31f18b23d366f2184328fd9cf commit 5631f6a0436ac30eecfb2e6fdcd0a517f90add8a commit b568e6bb49d49ef05fa3aa4bb294ae960e1d778a commit 217a8c63df30246f180760b1e1f3e57267efbb6a commit c5a486af9df7a7180d0f19fd4b6c801da64a154e commit 8ac752463390882a5e73d85b141b68d5c259652d commit 7eabaa892d9c57ad9b2946f923d781e8a16f8e88 commit 3842d671d7556f33d5909d472954328201b8b530 commit 3f6a1e22fae95a50a2e4815305931ed1da5c9a12 commit 67fe7487fe8946f33009c7b5a7eafec535a7826b commit 67b7836d4458790f1261e31fe0ce3250989784f0 commit a8e47884f1906cd7440fafa056adc8817568e73e commit 5767dc9e2df70550552c856ebc4b8467767661f6 commit f9b9297b1facb636ee81f03be3658087067babc2 commit 7416cbbc9fb9b09ba7664dc0f3176c567685a83c commit e0106ac97886b6bc36c480de72562d3e70b3f8b1 commit 567172bbb4805a9d9e84e4621210212126703d04 commit e47f1691adbcbba22b364888cb34686d6c7d1152 commit 283947bbd5dd8885dbfbd86515276a9ce4a31251 commit 60971b204c615a6881f50c3dc9a2182551282b94 commit 1a80993ae37341c2017108d02975683076ace2a6 commit 61d2a9bec406329ad57e2ecf8e33338a21057eec commit 1e5d4d8eb8c0f15d90c50e7abd686c980e54e42e commit b4ceeffd13870b641a284ffb0f6fb4ffe19b0b14 commit c69fc3d0de6ca79d946a2715f8745a1eae69c3d8 commit c32699caeca802cfa3416f798abcff719d1633f7 commit 36951fc9460fce96bafd131ceb0f343cae6d3cb9 commit a06d565b4a1c032ff8a8d22ceb39c061443208d9 commit 504d3cae8b6718ab9c2fbef9e4cb56deb29ea9ee commit 9bb10b7aaec3b6278f9cc410c17dcaa129bbbbf0 commit 1e74c05b275cb4224f3f8c2240ab24486818a823 commit 6ed373b0d572cde539a461bf333661cb98595e63 commit 7bd571b274fd15e0e7dc3d79d104f32928010eff commit 627441f5a56e2ee119baf340b394cf4ec9c94251 commit 1099238b966e9b291fca40d908d6a016ce758455 commit 7ae1dbe6547c39410d82156c96eaa9c8cf55e87a commit 2d81c4cd78477e473dbdedd1dbfb67460fa53c58 commit fd234e7581162573742dfb8cc4dc0af3d3148138 commit e68d1e074d5e94b609de01a3ad3287d3d17721f2 commit 26a9f53198c955b15161da48cdb51041a38d5325 commit b5fefd01e8367763840e032bf1537747905a1447 commit f3f8f16b10f8258f1836e1110099097490a1d6c1 commit 82a10aff9428f1d190de55ef7971fdb84303cc7a commit 32953485c558cecf08f33fbfa251e80e44cef981 commit a03e3cb16dfdf4e39ed4ed80314256f9ba671ff0 commit f4658f43450478240e2e758f0532d19f921f9a69 commit cebc13de7e704b1355bea208a9f9cdb042c74588 commit abd74d262b07f33d6c298f1b2fe03cfcdb3c72f7 commit a38410860628909712ea6a2becd42bab56c70e9a commit faf67f640fa6c036d19727e294a2915e3fe5bf7c commit 37b42cf904e2ed92a612aa09481385cc9eb2a6ce commit 5abaa6835f42db7a20ff57447d60303cd81495f8 commit 4ce0c8e7cc1c81c2123a7b44223b0bffec00cea8 commit ca62297b2085b5b3168bd891ca24862242c635a1 commit fe82b93fc101beb6396193b1713029d18d740e7f commit d34b4288bd1e3c70ec6d790fcf1041e99d0fc85e commit 30c35a4ba9cd91e07825da8e2846887cb000114c commit 849ee8a2f0df7a4ed4d281e19d3c9824b8e60bc2 commit c103a23f2f297c6ab2e5e74e39b655439f3524a6 commit 254986e324add8a30d0019c6da59f81adc8b565f commit 12e8ed969852c11503216115952c84f7c2f4c6b5 commit 55cac10739d57b94de4626bcb009bcdafaa781af commit 0591bdad58c4b83a286872305e748bfd77d16d28 commit 775d1bee8fab737c9e70050f61ad5370d8733383 commit 29b41cf707b5ecc55cab12bfa04fbd9811f4fd04 commit 4d14d7717f19fb1125496b1fd836ca89f11d540f commit e3ecbd21776f1ff7610dc2c28b3b47ba8c23e10d commit 72122c69d71784e390527819754ea456421c4501 commit 409f07d353b3516c71fdf12d7fa576004f0167a9 commit c5dc1756dc98e730ebcaed156a05b961086dc2f0 commit 1a62dd9895dca78bee28bba3a36f08836fdd143d commit c3f059483671426266f681833bac6c09b0736247 commit 26f8c146924fac0f50157fe22d1948fcfadae9f6 commit d3708182cbc3404aa2f7fd5ccfa07328018f4bf5 commit 893a6c224a24be49ea5a30315d1ae5967598a43d commit 95ccb25e32af8a86286df215f19ab2c0418cbcc9 commit 825f0de2fdda691776b6f45af1d3c9ca3d5ff7fc commit fe00866c65602e94c1b6b3d3efcea3633330b02f commit 1b28c1c789d0c11be213bb5d892f9a094ab8e201 commit e81a3c12b88ab685ce10482c3f6d5aa46f08a6fa commit bd5a7886f5ff6899170f3acd85f57c0f43d0371e commit aad9729ec0e009440ac8c1a4be2204e4d3c08977 commit 6dbbff25b39565c801c87379bc85933fb436518e commit c0d5c293ceb752e4d91e40854196a13f3cc070c0 commit db1c1a8f0a2bb69eb9123b2d2a88cc7d3d49b13a commit aea9040c2df97a03b73a13ba124d1b6561e09c4e commit 2b595659d5aec797d2f469691cd543e9b3500471 commit f6c0cd55fed897e8441e41c4bd8220a39539bcf4 commit edfea16a6dae9c03bdc97babdd69960093263354 commit c1aafd6399a3fd35594778acc618075e1bac81d4 commit 9228742caf899fa72230dd8da19ca4c7528badb8 commit 0eaca1ed0d2f70e3e573ef103ddbde582b2b3745 commit a98ffd6e333583c9c3f57920c505a37eaf5b2586 commit dded35acecffe9b6ec881ddd42c6275a38fbfbfc commit 4b736ed40583631e0cf32c55dbc1e5ec0434a74b commit 6e9213287ce4d75765d2806986d4e3c7e4991b3b commit 43660b4ea53abc2be04be18a147a39e1f4cb8b72 commit f999adb7acb7d52aa8e8be0dc75f604d41e51e38 commit 7cb3cfc030640bf860bf8299aa00cdffff92a40c commit 7bb3956178e5eaeeab5134cf38e0f057bc2344c2 commit 4d2c09d68de2acec46fb471f5a358627c9dc3885 commit 2b396e75be74078640becb36ba8c01977bf1e0be commit 4c93c62e77467fd5e9a9fcfd708a50b23a9951e3 commit 0df2032ab72a47c531ff653d32d82df5e7d52e3a commit 4f17289f14da7fd255f330d0e6545251f81c711c commit 2024ccc8e28309d549578190ce0ec7a986069e9f commit 4688940a1e03fc2457e40aac2257fe55e97c8d3e commit fbf46565c67c626849c7ce2a326972d3008d2a91 commit 7138fc88fdc1f999a547657af8623d3a2a862fc1 commit 051ae8d59c321da4c3bc8ba7d75dfba7734e2c6f commit 55f86c2b030463f8c98e66911f4548a1fc0666ee commit c7850370574f0594993d21dd02c54d2a853d2d6a commit 0b6c67c22d2374a98890cc8b6204302f75e14cd7 commit a32d7d6b198b23b7d8f40efb9efe42779ea7b011 commit b059cba51979b3431b75e0c6f18e9f75e427537c commit 31865e96f9eb52ced6d5e23f9f3a5376f81c9410 commit dc622367c56fa0b5a911be73e22584b3cc69f5c5 commit 2d51f3afbea4184487132eed85ae83a13cd6b1c2 commit de534c1cb0313a070f45938a53b53927cd34e5b9 commit aee0c07a74d3f79aef553e3bfc6ddf184d33d3bf commit 67d198da2fd493629e498629781edc5695bbf4d9 commit c93aa7f33e94ee9d64277fa2a345dc30c127d798 commit 0db13eae41fcc67f408dbb3dfda59633c4fa03fb commit 0215ce9057edf69aff9c1a32f4254e1ec297db31 commit c0a561d96a281b91d48b77278714cf5b791a70bd commit 11efe095dfe0768f5b248b77a84e5aa748f14204 commit ab487ea8910d2a84f851cb87f2cb49adcb5b774b commit 1e88eb1b2c259994d034b0833cb489105a984ebb commit efa4c4df864ecd969670093524d3e8f69188e5eb commit 84c03df58d8bbf77feb2f199f10dbe8f7f72c782 commit 36516001a7c9cd7901673548ec685bd180b1b548 commit 76f5dc40ebb188b081e03783541856c03e97f8e0 commit 6455cb522191dac057d5cc4b3f24d5d3ae6a33ef commit 202a3816f37e49ab490ff4582f1fb34390e5824e commit 788c6e2ce5c74c0a22d4e44cca348c8458b3f01d commit 34fd6df7886989019d4f6996da2d2edfde5bcd34 commit 2b02d746c1818baf741f4eeeff9b97ab4b81e1cf commit bf77fda02411fe2cac3522f40d8d6882d27ac14b commit c186c13e65286a46b61f5c295f9f9c65c75c926e commit 4652ae7a51b78d7607c247228ac2a14fa0088bbf commit de930140bb578ebb075772e946e20db68550bf2f commit b5ac70369e3669df4a0c192c40c0e70c3e56439e commit 97fa4dfa66fdd52ad3d0c9fadeaaa1e87605bac7 commit 7da2bcda5899e92ef3442d5997154d8220245370 commit 2820433be2a33beb44b13b367e155cf221f29610 commit b8272241ff9df5b57e2777a07c1fe8af3d9cbf93 commit f7511289821ffccc07579406d6ab520aa11049f5 commit 7222f5841ff49709ca666b05ff336776e0664a20 commit 81f743a08f3b214638aa389e252ae5e6c3592e7c commit bb46a6a9bab134b9d15043ea8fa9d6c276e938b8 commit 1fd0da91a882a2421e7702201f707c5e06bba6aa commit d37a3929ca0363ed1dce02b2772cd5bc547ca66d commit 3e22193d8cdc0576cd2803da3cac9f4fc9222273 commit bd1b5799545ed838651c618c9fbf8fb8b5feeceb commit 13e3a038abe033b38db6313de7a9f55ac83ae422 commit a2c5dd9ec6409821505e0409814cbbf741ca61d9 commit 511a95552ec878fc59a294652ebbf73a0e8e0c76 commit 20ce5ed69bfee125b223bb0c6a731128caf07b09 commit 5fd1bea5c23bb921720b6c48ceba5d6415f2ed02 commit b79f85b7aa5a9ff9f702f40c6a5fe4a53e965cf6 commit f651a7b64cec907bd645dd7ce1739fbbe257bceb commit ba137e64191f313eb0e91eeb9a1a2db1b1d5234f commit 920da947af28638bc94bb0012ce8600ba2d06c0e commit e67db9d2fd33e1118b518deab45dd6cdcf3c62a5 commit e89838968ee4446073faa718e9303bd6341ee0d1 commit 5a2854e577dc2b4538711afb9d788a6fb835b640 commit 22de25f83c6b9b2df45fa346b632dcb9b6f1acda commit 8bf0d9cdf36b0bebf17b733e3f5158783d765df3 commit 36e88a9e4569df86e81dc75a7fc6f2d41f8ab8e0 commit dffe68131707df72c9a60f18fddd3732a6d3c676 commit 83923cb27323139f9e2185db9b3b1299e6cf22bc commit c0a76ae8743a8d6cfa5c06b5efa497139100bed6 commit d068b700432308962d1bb6da467d1dfb1358c2be commit a9d491d99ece898fe6fd5f7374eacb5223e1531b commit 6c5e25a0255d56e8455869cd7f90bb9be7478132 commit 58265640fbd9a57bca521c3d83012fff2cd15fc6 commit 3a906a0cb150a872a23f6204449d3f8b50693837 commit 5922231bd346da717ceee8d14b4361fd595e58ac commit 95f8138d669fd02e304e5e2531f11f4f335dcd22 commit 8d746ec4ab14e7cb82787c6f8bfadee8dd20effe commit 8ab3b0663e279ab550bc2c0b5d602960e8b94e02 commit 96c25b03145aaa0d2900cebf0349f13a689b01ce commit 0188be507b973e36f637ba010a369057c8cb7282 commit 561b31acfd65502a2cda2067513240fc57ccdbdc commit c4298d15778bf21eb4834768f04c0dcf7975dec2 commit 2b897eb4f5993a221dcd8e4f29fda3046669ed59 commit b09f9670b130380ebace4ce378ec04cb7d042871 commit 913e013e9e1a331b3cdc3d0a033e120d630a80aa commit ce086a32ae21a01e48d202cf85b43815a0eeccfc commit 3e853b9f89e4bcc8aa342fa350d83ff0df67d7e9 commit 2553bacaf953b48c59357f5a622282bc0c45adae commit c4a1e57b3544bd3d0252cf4e1d73d9a317de0923 commit 3e226e4a21808e4582020f813b041504f316022f commit 673515ba0249e47a0e69c56a16af24399c824d60 commit 6b931346ed0f7ec3238700d17742d092f164ddc0 commit 636f973c123fc64861cf41457a68302078b323e1 commit fcb0348912ab718a3613c13cba264aecc7462c74 commit cd414f4f59f64d7d2a249caaf387edbc5a874020 commit d1b3657fb5b66a40b4963f72834b193d18d0a98d commit 7cdae9e9ee5e29104010225007ee7a2f32ccdea8 commit 7b9a9e35e45def496b0a5b3f206bb4efa712ea4a commit b67e0f530fdf5671a94f079d48707e5ec5fbdbd7 commit d011db300ddeaefbcda6a7bb2a31a73d263bbca3 commit a1eccc574f977bd21a4ec8ac54bd73a2756bd281 commit d1c0cc8d0d7008856cf425c64d7203f95beed841 commit 5635adcb34b3f402dc013446d9e57eb534ab8c48 commit cc158d0e9b0866d3626a81c13542d3be8f1477a5 commit 2fb82d5a42bb0e69547a2d31340c50bbd3a3d276 commit d2ff2ef8c023ddc99e2d2e0c70ff307ebd7a6d89 commit e049497702acc5d16bc6493f68368963e0bef989 commit fe57235bc104f2389ae1a54ea2536c1b1d6a4611 commit d99c028941b37c412f1de35c59d96ae547be2d0f commit 03e7ac67e743195633455d7ecb4f7327e3797986 commit c94aa5e0407e23b9d51bcfd073d83d0e504705c3 commit 91affdf3517e9255443dfadaf6978ffec16f859a commit edc9f16763543e5f51f07164766fac8d6bc9e560 commit f8ad33797ab3dd3ea011c1d5f52ec684fe925271 commit 6ffdf8865dc52e33b9867fe745f681175b997209 commit 74b9a444baca40998d4b3c193b0a98b495fdb7de commit de7d09ffd5e74e3e1257944b3dd03357390b745a commit f8d221dd97cf054740017db9189029463c434a9f commit 038a24835ab68f341eaa7a0e3bcc6ce0f9b22e17 commit 0993234a00451e0a5c3e47d8b0f2e01dac6cedbf commit 01f05940a9a75e11a2be64993c44ad8dd06e6e26 commit 3b4723de0d9be3f2a1730c164987b6e0f38d7bb7 commit 49017304c099923289b0db676351307d95bbbdfb commit 8866d62716c918e5d09d8297281ef93155434da0 commit 75458a842cb59db8695a074d7a740321ff0a1254 commit 67f3c2096909c457c64f96954efee36e48299991 commit dcaf5000b054935780db718ecff8cafe6c183df8 commit 22f1482aff4aee39e5f3354808bc099084c2b64b commit 629fcf0b687e3244f4bc1ab0070074f836703b09 commit 28f7e8971846519720a83b85004ddfe33680be92 commit d6530c33a978c6d170125b3a2ca1d218b1863e52 commit 53e9d836ea7fa0bfe9950ffb92d50811a5e69f01 commit 6ab68650a10e89dc351cb12b42a89b8789126c13 commit c69d51395a3bd3905a3837691ed48c7c89ea3d95 commit 5640e06e60198d9abdf6c618c54d982d8ec9cc0a commit f81c31d975b463c24506d817a48390621f057a57 commit a6dcf9a7ccfed57abd44c24cc505b559281d44b9 commit af8312a38f713d0d5445277a57a1c8e4157da5ff commit fec70a8601a76272b08b7b8077b3c3e3c79bdb72 commit 474e2d491efe8ce516e743dbce6a6e75bac3b3db commit 566b6577849fcca743aa63d43793062aba62166c commit 84b31d484eb9759cb3d8fbbb7a0e191cc097ea28 commit 4648cf5fc8c78d71ebb22c9fca760062b7747ec4 commit 1aff0a5d71d23be6658f893c88c6a9791202bcb1 commit 9724ecdbb9ddd6da3260e4a442574b90fc75188a commit 53c4e64c6a0fdadc972217343f4439a96542f56e commit c8a76df60d5c4e38ed94fc46a05f7be2631a9839 commit faf0d83e103e38e8bf7cc4e56da1a2edb9dfdf74 commit bc37c98a3d44f705f30fa39a9b9f46a0837c856e commit 68070b76c4aac9369d7f84d802111ef83a7ff943 commit b79fe9abd58bab7363583d30d67a5385ed779616 commit 74e6a79fe8433ea0003d5308c566e68b3c7280a5 commit b3fec11d0dbf43d0b3df11ca71687e25a5698ce4 commit 9d8fdb04fb93bfa2edcdc15a2d48270829e9e95c commit 5d3f30e033ffdbe027add4f1366238cbde686d13 commit 4144334a41a577153913897922ead867ac9a27fa commit 54c7b715b5efe405dfd5fdafcaf930214b9c1fa9 commit 932698c88dc414e36e0683fbf6cf551b928441ac commit cd487b6d506329917bdd2a594b307aa469a53872 commit 98ef34186286c457b7fe6a73ece9b279438d645d commit 98ce7d32e2154a6676d4dc7e6877af68cebf8832 commit 5d04d13954479292dd45e38a46dfa31abb8dc2e0 commit d142d4113fd5c3f7afdb48dff4703ae7edddf53d commit 2792f98cdb1c8fa43bf4ee5ae00349b823a823b7 commit 825b3772a2047bd32ed3b3914234da0de19ef2e0 commit 8bf6e20253b2d2b614f2c0b491f840e956fa6b05 commit 6069b66cd9622c4b29817d4e19737e6f023b909a commit e2945e6c5111726536c6046eaa1b840636e066a8 commit d2a9692ad4295e227e3352fdbf14b8491b01e1c9 commit 313e9f63b74419ca14c2c09f581a79c7037ee0e2 commit 7fc0d011c378c6b2abc65cb536e0df0ee055ed39 commit 4713ace3246644519bf93cc8ea6e44efe57fc3ec commit f7f0085eec8d3c0c353d2e7bfa7fb54b3b925d7a commit 4230cea89cafb11b2c2e4dcac8b505e7a766b386 commit 328839ff93709a517e89ba1de1132c5d138e5dcb commit 8c042949af1e935123140ab6e6a3dff945194a11 commit fb4651f9e00dd4e07dce4c48d458abb50d276e40 commit eeefe7c4820b6baa0462a8b723ea0a3b5846ccae commit deaccddaf4921faa5dfc71e8936dd8daa98ba33d commit 562e08223a85f315122cd65e8f99b8c0a42b8771 commit 5f3401eeb064fab5ce50728cce46532cce7a85c5 commit 057e335c71361063e173381cecf2e8487ec8b552 commit 7108a1c1271dc4d26789002c1a6858b52f237cf5 commit c416a9e4e31eaec5a35417b056a22c73652db544 commit 05cff51055c1050bf3a730748db15eb84f34b31d commit c79503dc2ec2378d08cccb6b53da408d6bd6cf9e commit 3726b6e7c0f1842a2ffdfd5921c95f69c0524808 commit 22e3d9343b8292dfd8c72a5a539dc1ad4829b87a commit 7f544c5488cf5bc94b379de750e08fa3e146b6ba commit da9d669eab152dbd6e9410606a7c8c8a212a7959 commit fdc94d3a8c887e4e06a7ff8dcb51d55cd70e16cf commit 370808876b5cab365f8fc6dbaf8cae13a2bc6efa commit 65ba96e91b689c23d6fa99c11cfd65965dcddc47 commit dabc114e4bac903c365bfe6d7b6e8ed7fa38f8ad commit 4489f0fd9e01efac81d98884d5cf3fa708b9daac commit 0bad3200dffa26943ce2b561e5446cc3ac018bc9 commit 7ee938ac006096fe9c3f1075f56b9263587c150f commit 83842357c48ba9270bdf973fd21c8c1a2a4af72b commit 1de178421f1a95de408610c89655ec1d4edb9d29 commit 81e291d6f4296759df03666ca008453cd0e86821 commit abe3c66f3491ff14a5d616921441452f2c9693ff commit c14bff92abfe464974c795ad53625ffbb6d6ef31 commit b24343eaceedb902c1625854f85a193b0549d85f commit b0fbef65e227ad4ea81bf2ad3d17d073bd0c68de commit c7d18b40a80e5c0a31e1dbea15c9591c4150e0e4 commit b288d740f885648680a8f1bcfbb1039d16be3f13 commit 72f6107d2f2294f76d9fb086acd0b01690ea5021 commit 00000922a33d4adb06a947621f553cae12363083 commit 165d5133731a2e045abdd6d9d3c9221fdc2a556e commit 862643c7589dc97111cd59c471dca0b354f01eb7 commit ae1da08fb306caa8cc134b81ea68c537cfe7a451 commit c4252a11131c7f27a158294241466e2a4e7ff94e commit 14c7b2451adce947b034ce1891c2db9220a3e8ce commit c640f6c5570a6af904db37979d344ace8312c675 commit 6e889b1ce7f1be2bfcfe39a4bcc82b34380031c4 commit c931ef0041fe0a7b62b7d15774a831f3bc85713a commit 3f3fdc978b8dbac444f7187915a3c874b674bee1 commit 0e9b1e5be8656c0705237341401c78c26b6cdf43 commit 5747af7c7303a1ed438fcf51680b767dca08c5e2 commit 0ec2a5b291af32dcd2b52dc8c1d53c3037238939 commit af3004c9ac81a532a8106d1d3c06e09eb95f0dd6 commit 1aaba11da9aa7d7d6b52a74d45b31cac118295a1 commit 91f4228960adb6583a33af310912163469f49da7 commit 705c870179ae57815d15a9e783442f22030d3a7d commit 8cb1f95cca68421b08333175719fdd3615372ca8 commit 6e8acb6686d805ac5d127fb691e28e742248c523 commit 84f4ebe8c1abbe375babbea46eab746a0060e80c commit b5202a93cd3768b5f757dbc1c7d702772a34c9a3 commit 3cf15dc2f81f765078ca867eaf42400f26b2052c commit 90031bc33f7525f0cc7a9ef0b1df62a1a4463382 commit abae262640ef9c7f24bad65acade25b44c7ba0eb commit 5327469ec4c07977e1d824badadd2628fcd04e85 commit 5cc0de456749712c6840d5d9e5b3de1071932aa5 commit 09b9851776b57f7a8a132db55942fc3ee0fdd4f3 commit e1435b67afaef736f5001ba937ab5adb5bf4afa2 commit ee0285e13455fdbce5de315bdbe91b5f198a2a06 commit 556d5a2d4268e3ce860e85e032859ada1c64e1b0 commit b8bbbea1ae6441aaa2439f4fb5fb757d513833e1 commit 8261dd979e801a29f96e4996112eaaa65c04ea24 commit a89c957a955e00d9eac726551cb9fb386be1057a commit d19ccb4ca5436d7500f9fb47d71ea0bfecea52ce commit 8f1aaccb04b7cf63135f4e2748226dfa2fb01e3f commit b704eeae319608b48925869121c97c7bc1ea55fd commit d5701d8f5210f8c70ffd1b51283b2373573e7b5a commit d1837136d184dda0585a687c614a9117cc87ad27 commit be5c6b177229c5cb40f3fef785250afbfd669175 commit 04751a061ea055c4fa264f20f4558073c3d8fb2e commit 3a39841322be5502f5355a558617f0a56b2b3ad2 commit b931c166c47207c8c7bc7eda6c8881dfe0241389 commit 2b438065c3e538844a3b2b56f567303020bf97de commit 23a92abbf3ad44058b5d3cf57937cfb9de972c05 commit f328e96b764a603b3b70f0e9ef6ee052a78ed2ad commit 6780b94d8ed37a0f453a5bc90821ea669ac3c0d2 commit 3fce4c948e2b73ba6f6f2aa7e1c2f101b997e192 commit e85f436824f2e2e067c0a151e954cb403b483234 commit 8891698273b125e57d0d2b6a91451bac06e968be commit 2b9efaed4e4045a40944265f99f52b232df3347f commit ed58ee126c4da81af79ab40b7c6508a7100c7eac commit 5e3ea76492265fdbadd7a58963ff2a3a2e2e8be4 commit 67fcd5d2f3ec364cb7af2c307ed1999bedebb606 commit 749b30efffe58dc59c39c32673ac03010f822581 commit 28a4f5609c9aad29f921850d3fe58bec5074c86c commit 60d7bbb5b4b875d613a43e3be797ddd4ff92cb7b commit 76e1ff37b6872c9f2d11660258fc8c88b2f97b06 commit 6d179f84f274a87da51f24ac3e9427221bbaed51 commit 958e47977bd12e06752a559541867028b120de76 commit 091496e6cba32475ffa53a070d11d9a5a2f1f396 commit e752ab11dcb48353727ea26eefd740155e028865 commit e3890d84482a9479bf42ecb3ddc9e6030624dc84 commit 44df42e66139b5fac8db49ee354be279210f9816 commit 02abecdeebfcd3848b26b70778dd7f6eb0db65e1 commit 70b5ffb393f3f1fbb00ac52c5288d233ae6e991e commit 80ac788a8d2fc8904cce97b7873b6d8fd513a46d commit 014f0515a9e04edf4c35fbd89168aa33663b379a commit cf6c422bf55fa8ac2531d56a6d17408300a59e8b commit 0a93eeb5aef26f68ef247576662282a5d42c63d5 commit 562334d22a05a4793a620a9ef02516f3b8da9ec5 commit 1a324a40b452ae0a57676369c0a0150674728853 commit f161eb01f50ab31f2084975b43bce54b7b671e17 commit 80a892a4c2428b65366721599fc5fe50eaed35fd commit 3962ca4e080a525fc9eae87aa6b2286f1fae351d commit 92736f1b452bbb8a66bdb5b1d263ad00e04dd3b8 commit 41b4c7fe72b6105a4b49395eea9aa40cef94288d commit c6265f5c2f502e442c4f339f121bedbc990c12e7 commit d240daa2c40d384aa01d68163ce5c12625b92d10 commit d36d68fd1925d33066d52468b7c7c6aca6521248 commit aef98f2e1bc411a27f25db81574309b7415602ca commit d24eae4dd7ffb3e6de6080fad1297db8ab4b0260 commit af1f2985038fb2569786f3de64d7dd69f5580e03 commit 3234fac0f97671d55c466e8093e3bdf781dae329 commit f466b111a0c68dd3925deea37271f7aace2367d9 commit 5957a967599360477529ebd593e03f973dcb5fb2 commit 4db231d7dd80163fd251635f81280f1c93a393ab commit ceb4a5619c734ea679bf5a2446e6869056e353d4 commit 6091693a4bd1ba52e406cff44a4a9959e755c986 commit 7d67285e84f62fb5fd00405432ecf1b64f921091 commit 3cd658deb03868a2483484224baf2442bf4d0062 commit bf35dbc135854c809b5cb6bcce320838c6d1370e commit f825fead3570d7b7a13dd13b8d63209dc1acfe5e commit 80bd2de1db0f25c82c110433e92c0703e05e5ae9 commit f5211c5dedee48eac290940b1f1a67cbd5f8bf6f commit 4caee043bdbe375456f2db767c3e35dad0b3109b commit 3e4bc662eca6a18afb45d98ee5f6dafb5ea5787f commit 25a75f56be5c180e4c8e2017fc52f7e9a7a861aa commit 0b9ff428de417423ca87f77dd6e836be967831a5 commit a37558e63b636109b8a9a181b316bb3416be0708 commit 63d99a342a7c36a113d2162cb2cd267a333548ed commit bc517825c5d6c388cc7c668615a0b8f1b26ce513 commit b8c6b225d9d82b5245479960f62f0e95d611cc18 commit c54011512965ab221573b4d31ce1f5a279e15c15 commit 7afe3521bd405d878bc5f9b98d5db4682bcdf3a5 commit 14af917998a6126494423f8820a93982025c6963 commit 16a7004a2d7a2f8953daa5196d68766cfa120fcb commit 4082b9f5ead4966797dddcfef0905d59e5a83873 commit 1a593aa09000c513a912f250ddbe1dd191e871c4 commit cfa075982768840c468c874219dbec558722cb7f commit 74fa4c81aadf418341f0d073c864ea7dca730a2e commit 97cbcae3ff20234f6a59240df0b5d5fa238b3f9e commit 52b29307a98789853d87ed0a68031ec18063cba4 commit 3ad5dcfe00a22404dfa2168f37fecd500ab26a6d commit fe120b9f5ce873516a2604e4ff0c19084be94e8c commit ec64350d01cd45c91916e701964ed8cba383aa35 commit 28606c4e5877cdb27ea443b3f36e3f0bf9e7a5ac commit 28e5c9d601fb8c2f387516b095a9cf6ddf7c00d5 commit c964b86e322f91f409aead79b1b497b74ae0f795 commit ac84304d68c4b310e61b275317c0ddee1b746cb8 commit e89d890c1b4a29fd1871f9ce21e9a94720a10e98 commit 426714f89f7081ce8bf83546219eed6ea1511891 commit b5006f873b99a26f8bd36d691c09083495bc0a03 commit a8b537605e22bfe277e666727fa0e9e01f2c729b commit a36f72547e0eb623912957aeb68465e3c9f7effe commit 63bb1064a71d9372a643dbf1d00b736f203c867f commit ea2b852b656afaf6d45597abbcac8425fa6ab02d commit 75b204ee6cac4595cc663daf59b40162bbf411fb commit 27dd79c00aeab36cd7542c7a4481a32549038659 commit 1c1f61057c10107d15093522c097d9bf54703ae3 commit 2fedafc7ef071979b07fe9e9ccb7af210b65da0e commit ae8df8c9f630403bb74d3c6e9768fe3991d547f6 commit 2a867a85ee0251cf55abca75e745c5f66f76c125 commit 3043d13fefb9114a7698485552f75ad8fc3e7c2c commit 5ee33d905f89c18d4b33da6e5eefdae6060502df commit 5519fea915effccf57fa1369669f4a6bc6c44a07 commit ed8f4e1002781c47813e4e2b37ad15b927fd8b67 commit db8496d0b50519540e1ee50f7e209b3a536ed671 commit a5b44c4adb1699661d22e5152fb26885f30a2e4c commit 7423740b2515a4c8a70ccdc068c0ac4a2610a23d commit 6a4fef21816be4bc818905e07d47e0c20738e164 commit 24dc4f4c2a5cc97e340f440bb01f5f30fb4704f8 commit 8fbc9af55de0b274745e70118e20e0964e98bb05 commit 61b5d0072a88cfd8c5fda31a7c19d105187c8841 commit a51c7663f144606a5f08e772fa3e1e4f2277a614 commit b9c93f4ec737bbc6b6601284df3a14814feb53fe commit a972cd3f0eb50bde3823e8d1df8f6c1b0c673ecc commit 67165722c27cc46de112a4e10b450170c8980a6f commit f2c7959dda614d9b7c6a41510492de39d31705ec commit 06f66261a1567d66b9d35c87393b6edfbea4c8f8 commit b25f551ae197293e1efdf991f47a70e8da616845 commit 4e936b65211a578ad1291967fb2344abd9488cc6 commit a8da6c18b481efbe78618dbba18c2db3241f4fea commit c173a91b760844074abcd636eda47d3b2c107a64 commit 2983b869881b169288909b4ac93f407fe804a75a commit a8b4114d112530440c00fd5bc01e4497480fa4e8 commit 40a55b842bbcd3d79b7a8ff7c426b22b6700768b commit 7c1da0683e2adb969005ea195cb6bed22f844a69 commit 2a4d292f056b35f54cd7788e124937fe598369c4 commit 10d29bdceef79602af4136c14a6ec391ec3a2e7f commit badb30270960df505cf245bad8844c227731fb0b commit 459b26061a67e63e5aa24c6f2ad0546943357e43 commit 4f73dc7a079e15379bea0a70945ba1a7e5c16657 commit f210d8d28aa39fc670e7d80040ab1561abd77883 commit 33898377feb8ecf45fa29965bd1618e0997f76aa commit 18fd7f8aaedfd40e19ed8228db856326afbd9aa4 commit 883631771038d1b0c10c0929e31bbd5ffb5e682c commit c9a9f18d3ad8acb9f9d6b52b5e1922a70b48dc35 commit 4d6d94ba8823a2f4e48c56ed33cb77061c1f425d commit 845e730eaf36d2199e25860259611ffda8e07f6c commit 6a17b4d1b52f10a44c45eea2a9222088e7c9e573 commit 411de2b5ac61a29e1e79db44539f69bb9b35a34d commit 9469d456c6a28494dd9d5cc16e17cf2d4c15c571 commit 14aed8ea48e2f5c710ab678e1ba32b9f398d40b2 commit 779cb5ba64ec7df80675a956c9022929514f517a commit ef5cb493a9acd7d97870d6e542020980ae3f3483 commit bb8494423e2e4dbac9ece7eebba421011bafe389 commit 5a08585d38d66dd64b8ae22229bdfae3fdc1ef3e commit 2810ac6c753d17ee2572ffb57fe2382a786a080a commit 3735040978a43c25a19aa8015ab1a50dffe48f79 commit 9919d119fbbc913c2459b093eb81fe8197906424 commit 5f284e9c5aab5b12eb48a2cecc7a573c3b4e1cb4 commit 772a5803922a097eaf94cf865c6f4a81416aedb8 commit dbc9a5fb168deb140722c12d8332b25754def017 commit 3c67ce061b2136e0578734bae82fdf85c2c76217 commit c61d04c9eb4354980839cf938488ca703eba0f83 commit 1cc064dce4ed0ff111b6d6cb06b3cccf1cba29f5 commit 94d82e95219a3c581435480ab395eb04f569635f commit 86e11e30120387cb5c24bdb3a169a2135973a0a8 commit 9578a10d4a2b4bcbbebefb4156c16c82ee725b3a commit 7ed34927254ae9eac0f6b0ad7e7c2bceb96fcdfc commit c5de248484afeb6de259239a23645790038d9df3 commit 2e4026a1a24d53651c80aca7e683cc86c96ed9c4 commit 419e505dab203b85facc782ec34d2d98601644ff commit 5dff5d092ba6c5485aac1467dad938c74ba6ed57 commit aec11c8d7cb31c67deeba4c9fe015d09735c6813 commit 691fdba39e7fbbaf2755c31ad3800810185cac8c commit b43f9afb81262d6c150152e2831a000b3c1b5d11 commit 1a2dbf0303e8793444a57a2eec0c6b29523657d9 commit ff168b37a96736c892007730e703e74d5a23ca48 commit fd6435ea32d9243d116dbf50e7f1a8b33e01262b commit bd2eefd018e5a8066b7bc66d8e200fbe3095ea5e commit 14302ab0d6550ef0ea48f213b0ab13c9249de185 commit f5a5b08139e8fdab024c1e52854e24fe1e8b428b commit 4cf3ae9d8e9a5f77e8a1f69f17c92dc59ba15154 commit a76766664a9f91dfde906fecd1409ba596a30e33 commit 0e909e4fa8895bcef1b1ef2e39b9f1a158933ffe commit 981f8866754dc5aec6864b877acb248dc33a7bc8 commit e7447128ca4a250374d6721ee98e3e3cf99551a6 commit 4d562c70c4dc08294d6063dfa8d027d81e90e2a2 commit b2cfec52feb3bb737c4b65018ef4bfe9789e4be8 commit 1fb4da5f7858d78570a9f726e98f96797447b32e commit 42b4c479025d92b2a4869bd233f20159ae9ce692 commit de4149730d9d72f50d4e6dfedad0d11b1df05b7e commit fdd9b7dcf1ad7115b2d997e047e8e978c474736b commit cecdd52a3dd312564f81a39df08378b7b39a2654 commit 99e067637862c902f741744eaafe1472091937a5 commit cdf7911f7dbcb37228409a63bf75630776c45a15 commit 625af47255d9b30e22d6c98b7f5e97adc903b98e commit b7d70b8b06edf25c4b7526e20f5b3d11175cab81 commit 7fa5047a436ba27696e344d974811d9ea07ba249 commit 786119ff3280dcffdf11c605534a20b4070012cf commit d7d5a21dd6b4706c04fbba5d25db8da5f25aab68 commit f3823da7e4ba7d4781375c2bb786a8a78efc6591 commit b2c077d001b612b1f34f7e528b2dc6072bd6794e commit d39e48ca80c0960b039cb38633957f0040f63e1a commit 1ad0510cf730d8556fa7ff067b72aa960dde454b commit b5a24e13c8c8b2c98d114b16da40712b80d5cfc1 commit 3ccefdea226ba3f3b69f9e868d2b1c9995b56615 commit ea1deabc6f11575eb3375b454457eaa3c9837abc commit 49f6f6483b652108bcb73accd0204a464b922395 commit 929ae7c2e3adbbb2c2bddcd16854a6b11b56e95a commit 82bbec189ab34873688484cd14189a5392946fbb commit 8ba264f418f734aade3a77086bb1d51d0e2723ce commit 287bfaf6fee974caba7dc7b874b29c27b1a2dde9 commit 065695b3da984aa1ed5d619f3c307be1f564bec2 commit f84a27f9eea51df5c704ca16a00c6df85a31f805 commit 89e790ec1a1ed930b58b0aebe50792acad90723d commit 04500bfd7053482a1a4a81f86b57faff5c788199 commit 9df56e5632c5055ba2bbb6c8c593a4da15181be2 commit e27a85c1757655e2e7bd09164b87bf75627e5604 commit 5fba65efa7cfb8cef227a2c555deb10327a5e27b commit 9079363eda1ea0d9fa2cc5635e65821d8ed4f994 commit 8d8d062be6b96b1ba95a3f1a9ecaf218c9458497 commit 19d06582c47572be9635cf126195135df0720118 commit 44222656ecff73974c637b6b9c9bb5415978ed08 commit cdb015a61190060094152ff8ff6c6f34b616c13c commit f389e7ac8d8a9a17bf59507d02ffb756c19b4af5 commit 8d18373a0ef91845781755492510e00b5a912a0a commit 1164c92b2d13648fb156fe547dd1273111f05e3d commit bd80b0dd6a431aa23b70ff91b6905c1b1eed2f9c commit 7732e289c557809a4a92a218abe04a5f658ea5c2 commit 1119f009005ea89dafac298aeb3231cf2cf2a9ef commit f196198cafb8f0f2bedf1d8abc755f791fc03648 commit 618e51cd526cbbb2ea9ad01ef1f67719b775f792 commit 213eca2b0c042b024bf9697a278619f887bab4e5 commit 62f03dad76441ee3a58c26a0bbe703028e846db0 commit 9af357bc3e05400eb632f3975986e1eac196f159 commit 059478929a91acfeaa5cd2c15b6815e1a2c63f17 commit 1bb745d7596d2b368fd9afb90473f3581495e39d commit 8782007b5f5795f118c5167f46d8c8142abcc92f commit 120ceaf78e28f20ec7244c021d24d1e409572be1 commit f04b8af5e9fc42a8e3b26ebf3b8ccf681a064985 commit 276f7b4bd52425cd0ae38fd7bf870d94abac6b82 commit c4aab3499be2abd8671e5f3f70a9d38acd8e4ce4 commit 11b6005865e47c4cba862678936628175acfa16e commit b4bbe4761ee2d4127eb751737dcbf47a310a9f86 commit 041f5c416217e375c4d27a7ea905548e70d1a3b8 commit 62bb839d48ae87d6aa07259ff6bc8d049538d1f2 commit 3a745f6ac13216f85c3804654f4c703995c17180 commit e317a69fe891382a8be712d4aa03bf01b9af229f commit 9b926bcf26369ffbe347b9e76977f8425dd10f8b commit 52b36510a175607b653e6ab0fffaca64ab8903e2 commit 39def24f8c0f86a2d2edc52c694a1cbb41aee69e commit 5d55e1d02a49a7f27893a5ca5a3c3ef28efcfc42 commit f3409f76a6588137946c96313ed500b68bbc6021 commit 1b0f0f7b8be58b378657c1dc6a0806b5e7bc4783 commit 40a9634b4f09a63f69a373af5d4ca7e69e6a78ad commit b11e193093fb9dc9bb5a2468b81ba3a76f7871b3 commit ab1a157ea7e13a9cf93fa913f59a6bc2ffa6fa5a commit 6d4496bcfe1c73d5c97b133c31c8f779b4acbac9 commit 8e7a49e09e5c19a3a9073894a9d41a7ea0a0981d commit 4d77b7e53410dd4b1fe3e1313c3982e682cadef1 commit 018f7300d4f73522ae02868234b13c4b7c433fd9 commit 69bacf1545206ddf5e1cdcfe868b78f33bb4ea5c commit e86c30e951b50301fbc80e0ba7f6ffdc16e4fe85 commit d2cdc01451973235e2b83ea85493817705a48263 commit f7f28f268b861c29dd18086bb636abedf0ff59ff commit 9c224e058dd9ae9b03602d6c86d44f0d11e21ba3 commit d29fb7baab09b6a1dc484c9c67933253883e770a commit ac18b610fd95762125cd6a7194cc7e2e3b94e3ed commit 1991481828a84dcc5168f1e9b818311cbde86876 commit bf224e00a9f54e2bf14b4d720a09c3d2f4aa4aa8 commit f5442b35e69e42015ef3082008c0d85cdcc0ca05 commit 7b1b3f5818c33da2ab78fe62d34ee7bacc93cef0 commit 79978cc76f050d6cf24880645519f54aa6843da3 commit 8ef23f9268fc4364fc79bd017c2ed6a6495133ec commit e8e5cc645b2d6cfcff58d02743543eeb37e2795e commit 4ed793083afc2bbf22a7fb5993efccf3b5bcde25 commit 37403ced9f2873fab7f39ab4ac963bbb33fb0bc0 commit a78d43738ead68a40acf7da8a873f47a9f6e6eb3 commit 53c8ed46e81636c39528aeb7c3db353a906ecee3 commit cf31994d0b7c2489d0b83a53b510fdc1e4c731a9 commit 0cdf91bf67b782bf3548cb3cce8ab923a13ca6fe commit a1c9a1e27022d13c70a14c4faeab6ce293ad043b commit d3981ee76dda3370d2f51ac0c528dd4dfb45cb97 commit b0d58d1147b8b08241f4a0de018241dad804b1db commit a2f00188137940432e898952fa61e45adaaa68ff commit 828d9a872cdfffa7c650b9cead166d33187cd942 commit 3335a13535312c9fad4d8d1307a621e6617d6ed8 commit cebbfdd5f099a16d57d9221cec76882867839ad3 commit 16b34622f7b18d017c59bd648415cfb64a842d96 commit 1d44ff3d7a71d290d351bffab6160a26a966db7e commit e5a6702e513627f6924c43ec9dddc526ef6dd145 commit fac7c51d62f3536a66e47f3da076803016cc355f commit d7001e7285f933584788edefb7350dd5a09a7463 commit 0b872f653915dcefebba845949f968c01d91bde5 commit feae1bd80ec69a3a0011ba1fb88994785f705e3e commit a389789c0aaf8428cd44cac4f92c8786505f5f1e commit 5011f2915b70703a0347f97b8f2ca0b56ab49978 commit ac754358c68214f9945bdf9cc565fa18ce1b0185 commit dd4d6791eb0164ba59d3e105135188c355d80fa2 commit 9aeabe1988551f797f6e0cba0e7c2d4549cc3a4b commit 16e7a0db6ec9426fea36313b95c36624d983258b commit d4d17377e01f017fd5a22f68f13e7ab342f97551 commit cd8fe5b6dbb3a487bea5f1601437c013a3d56163 commit 1138398d71e8e583669fcec96784471332e488d4 commit a33c8f71d3d85ff1c0284270f710b071d480d547 commit 359d36e67da9de877c13c4b4ea6209a5e07264b3 commit 89b154091ab44098668614b52553ae3917eb8215 commit 39feb7b16b107625a0071e5bb8ea19ee89be2a9f commit 3eafcddf766b6bb8e6308ec2d587d4ef7a4381e4 commit 711762415ddacf54b1c973b208073438de5879b4 commit c5879999641f7860495cb9655de6775c96999103 commit 34a658b7e7128b35daf71cc003fbb659f914f7a7 commit 87107261bb73d7a8945f3cd37a6abc7befc327bf commit ab639f326e48385eeaf65fd129d3ff6d006cbeef commit d1fc4e391fbd321dff166208e58e30d3196626ba commit 712f422ed70c6778018152896d6b4e5ff70fb2b4 commit bd0fdd31c1023b9d94a470ed5bc301c3f9d80519 commit 3b7d5663702373358d58987a3684f6c59443d9d4 commit e0b1ef58d98ae0feba98190c9faf192aabceb811 commit 976a368b7198bf666ad3d273e10ed82b3713af3b commit 430ce0c7d3a3b2cdfdafb527d2f89be4267ac45c commit bc5f983a3d8d8e5a5eddfaf11275bbcef04017f5 commit 16cf693e31bdb423f35ab24081575ec9699303fc commit 7e696546353f659f60fd10616e04a2aa59ab2ac0 commit c55b73f391a726a45cc014464ba7ebea5f1d7386 commit 825535f44fef606e5b4484ebb8cb3827db59037e commit 8979918af711b057620c7c5f9d29a0043f927753 commit ebcabb8b15708023b71b7044fdf928454613d118 commit 9796a5b2725d1b3ddbbe7b1f3dec56af8cc6af22 commit 3acac2d06a7e0f0b182b86b25bb8a2e9b3300406 commit b108bdd0e22a402bd3e4a6391acbb6aefad31a9e commit 450c27fc9e9cf74ff9b96dd813817133e0f50cf1 commit 0f752b2178c988117927154fe3b1d2e619c80c57 commit f435b7ef3b360d689df2ffa8326352cd07940d92 commit 207395da5a97035f06360638f0c2fcd92963ce95 commit 41068c8b28e16f1c2c26c854271520e1f3afaa22 commit 98a07b82d8ac43f1cdb4fee8c340b020372c9392 commit 63c154a0445aa58a1ecb933e6117327b67b6dfa0 commit 75a252be27300c84c83c96399fa36fb5f6364124 commit 2792aed16ca7e594916893698f526ff31eeed237 commit e6a1e701edd0ef8fd51fd50e11bf29bbb2f37313 commit 5c908cd57eeb857f107732773a653c89ad08e9ce commit 445a1b818e20fbfff5905bb9070da703101a5c00 commit b29b32a2ae5a6753cdbe13cf2e64c752743f1923 commit 0b81afa5b6d245809d3cc0613adfe6098695253d commit 71d93eac585a5f94433d7d4a7340a0d7081d925c commit 98a1dacc246dad474c9f7ddf4f0c7e92d49a15c3 commit 6adba2903fa16c0c55b1f1e3f6506c407a26ff88 commit 0f923778f47bfc8c47fabb6a93721ae71a6e6702 commit 81d4baaf4b876589a72a500d45f2c67bbe82bcc2 commit 5d9543162fd6686e83f86a448fe2ba2e7a5ebbb5 commit 2447c731fe55a36accdd7aff96670d69c06c2372 commit a915450e0e44e9ed2a87fc5b3208d5ce01554a8a commit 4ed22f1e52426635873416007d2c12e09615165f commit 605f7c73133341d4b762cbd9a22174cc22d4c38b commit 26bfc3f36f2104c174dfc72415547d5c28ef3f1c commit 689e61a4fd6872537913b998101f364fe79a4f70 commit 7f6947fd36f2c562040ad5a2d3d1783440a4aeb6 commit aaee4bbe8a1aa6833d6c42c7015ae63c489fdeeb commit c1ebead36099deb85384f6fb262fe619a04cee73 commit 6f1ccbf07453eb1ee6bb24d6b531b88dd44ad229 commit 764b1c8df40daf618b293b367f9be1f4fcd1b6fb commit ce7498acaa88ac3db5385dad2317c03006c49837 commit 8cc0b604f2345c304b7ddc828b880f4f3f21816a commit e09220f42b5c28dae51a3cf2810afcb4fad9909d commit 899ff790d1a94dda9bd09a4a6bde01fb7ff0bec8 commit aa7b93eb94ad6d883016bffda670e028fe168051 commit ca161b259cc84fe1f4a2ce4c73c3832cf6f713f1 commit 4224011374d1b4228a59b73149320c61eeb700b3 commit 4b51210f98c2b89ce37aede5b8dc5105be0572c6 commit a80c882183e36b483734681c830a332add912186 commit 77d08a2de6a43521f5a02848f11185b6f46af21c commit 69e6dd149212cdd681201352a79e6634665004e8 commit d670c78ea7564f9baf915c8e1dc5898a9e6c360b commit 1d1e434dbe58ef31abc60135957e0735b62fdcad commit 673aa1ed1c9b6710bf24e3f0957d85e2f46c77db commit 1935f0deb6116dd785ea64d8035eab0ff441255b commit 36e239b5d509c1b564669e7ca3d016c444bbf808 commit ee4cce0a8f03a3332ccf48ef8b420a65d02d1fcf commit 5d844091f2370f01752c3129b147861b9dcd3d98 commit 23baf831a32c04f9a968812511540b1b3e648bf5 commit 4a06f6f3d395d15eb285606f28b74ce5dbc77e52 commit f2c7ca890182d24ac817fa321489346000271c5c commit c501ca23a6a306a7c11631e02a26c8e0a768d64b commit 379989e7cbdc7aa7496a00ee286ec146c7599cf0 commit 322458c2bb1a0398c5775333e1e71e1ece8a461f commit e44f18c6ff8beef7b2b10592287f0a9766376d9b commit 4dee3c4b32a65d6b140ed506a7a8859d5cab6611 commit 4a1b5d183273ef402edb7c7ff58052ae97259a2d commit f86286569e92a260fbf8a1975f9421b4a66581d8 commit 52b113e968be66b57f792b2e2a9b8b77f382bd5f commit efd8127454054d6d52040c17f7fa1656ac3befdc commit b358793c3bf231c455c55e0173256a86483997a8 commit 4d877b1a6e855d1c8685fa0e27ad7a521b31b6ca commit f1af066bcfd38daa9eee7195ef772dadaaa18520 commit ca0376ba196ff7ca5fb55e333a94ea23530ee888 commit e3adc46da349d4a4cda1c58d8186c5bce0b011fd commit a25c2f7a467265fa24d63fb6dd46fa7ba4e3b108 commit 5790d407daa30356669758180b68144a9518da0a commit b8d85bb50511c901d48fc34ea8f0bb958042fbf0 commit 78f0929884d4811c225fd2c57ecc602c84c07392 commit ac9aa21bdf40828583f73ae755dcee6bb1e9b3cb commit b8aa52913b84f8b59816b95c28d03424a100df7f commit 490438469d493e8f764bea14d47eaf4c2ae7cc80 commit 35d86fb626a2554de5d5916b6e2d47d06b483d37 commit a37a512db3fa1b65fe9087003e5b2072cefb3667 commit fd35174e13f98f9232c4aa66689816731d34ca28 commit 67abe9c6a8077819aae490dcd3b9629c2e87bfc2 commit 980d5baeb25cd65b7a791d7499daa07b34346def commit 97998b893c3000b27a780a4982e16cfc8f4ea555 commit 63a4d258ae1b975cd0dd1f0623f50c119953abda commit 583da1b82ac51f0631b6ab699153f16b241dd40e commit 9eb28ac1a25a2117ea5544ffcce59fcc1f128e1f commit abaeafb1b1fbeeb9e18638c6edbe9db31750c163 commit 0efa70356882ec2a843122f02892391ae61fc4d3 commit 6f6869dcf415f7c222057a3f07c23667e1758585 commit 385c3e4c29e1d4ce8f68687a8c84621e4c0e0416 commit 0289e0ed1b9ae20e7b682fc7ca30d2d324a47618 commit d170e938f01fc8c5c41f8a12f0c12491580829ef commit a2a0bdf1989c38ca2fc356edd23a114172ee09a2 commit 554836cc24411e4d3645db5392655f8d28d1d47a commit 7727e7b60f82e8265a1061b81379f5a7bce0dba6 commit 9dce8c2a5f1bf5a304aae39342816f099247d7da commit d116db180decec1b21bba31d2ff495ac4d8e1b83 commit e38dddcaed60c0692b77a7af355d34a13183cee1 commit 52f1783ff4146344342422c1cd94fcb4ce39b6fe commit 11f25c844e29f85abb0b3ffdb360a2f82a2c4ed0 commit 207bbfb63dc0eb491f71e96baa5db9c25626a247 commit 89317d4255122f05aaa0ac16d189a9ab3022653c commit af152c2120587b02e03dfe370b52ba75c40f8952 commit e86bd8b21d57670e38c23ed435a053e7e4cc9e21 commit edd48e6d8f341dcaf1c0a45f4822172d33e75129 commit 5e08e9c742a00384e5abe74bd40cf4dc15cb3a2e commit fc926faefcb7fade1abc05043db540f5c0fef79e commit 5591a051b86be170a84943698ab140342602ff7b commit 52a3a40ee4f89c89026837838f7df386d64c2892 commit 86f3a961f367f5796ed1915cc8253e21c2a329fa commit 418431bcc9ae6509263f4f3bf4b6a80f39da0772 commit ff38d974bc2842797d1d75f5060afd1cea4a76a9 commit 75bf1df75d5e9a22898c5b6c3410ef8ec3a0de70 commit 94aec514c872250887e435faee333c9da741cd72 commit fdf8ea814ae48d7f5670bc7c3bf34101fb58f7c8 commit aee89b7d0929bfc6530a1468d34e0befc1991389 commit febc9c65b37f6f5cc03ed0b6d613fb045c39b376 commit caa4dffa9abd80f3360432cf89236f018be355ca commit 58bc2a9cbfdd4abdbfaafd835a0cd78bdad11423 commit 3e3320a7d96c1a5c66b60fbabb38af1f4c4fae1a commit 00fa40353bf3894adb495f8cce10a8bce43cd375 commit 27488686cb1835f1c69d3efb0eedeb411f675d73 commit 81900e3a37750d8c6ad705045310e002f6dd0356 commit d8dab40a8b37fe8207e1edf68205c709b477e0a4 commit 6246059a19d4cd32ef1af42a6ab016b779cd68c4 commit e69c373c3f0c1888b4b758e37d05e2e7b76585f2 commit 318e431b306e966d2ee99e900a11bdc9a701ee83 commit dd299441654fd8209056c7985ddf2373ebaba6ed commit fd784a418ed832fbadfa846cef61741fdab0377a commit 6fe2ecdba34445a17049cda73a399d9685189efc commit f03eb1d26c2739b75580f58bbab4ab2d5d3eba46 commit 0512e9ffebca0f9a91f6e54b0da90976dce2b025 commit ff742e0ca3db876eb152a5d6bdcf7654ef6f9398 commit 73c4b0f83693604ae5964c68fb23159b823b12ac commit afa351a15d80993f8ba6ae28652cc23127237e37 commit 501e2c7d42d61bd5f473cc719db431973959e55a commit be1c21f17ce2d1e8cdb6d27b88a5346cfebfae49 commit 2efc8e1001acfdc143cf2d25a08a4974c322e2a8 commit 56e51681246e574dcb2e13fc071c2945c7667c83 commit 7c0f7ee00c7d52e7ef1953e151a7f5d5fd5db64b commit f22067419e9683f8fba40ca3a0d56fb3106c7c6f commit fbc24293ca16b3b9ef891fe32ccd04735a6f8dc1 commit 8855818ce7554fb7420200187fac9c3b69500da0 commit 83688771400895ce39994f158362a3c666993504 commit 70bdfedaaec12dd47b24f16a59d31ae1bafffd99 commit ca9beb8aac68468f1778ad0e0fdad4e204f91393 commit de7511aef767656950d1c236a294c1b941f14ae7 commit 6a929fea7f80fc968f26baceecfdb5129d159c98 commit 88c7ad91e378775a08f54b4a85068d51b5cf52f3 commit 5e5d4b39ce2098a1d09064eb8b4e6b6b9a0cbd57 commit b805d8d785e49cb3ee9279dad1402d5dcf902166 commit 0530553ba842884737a689ae5fac11154dcf3122 commit 541372bb62f289f4402cf55be51fb9cec7373627 commit e82c98f2ca439356d5595ba8c9cd782f993f6f8c commit d1691bb22eba23a0131f1bde41d268bb0ebb0f59 commit 631420b06597a33c72b6dcef78d1c2dea17f452d commit 803033c148f754f32da1b93926c49c22731ec485 commit 5dd45b66742a1f3cfa9a92dc0ac8714c7708ee6c commit ab4f869fba6119997f7630d600049762a2b014fa commit a50be876f4fe2349dc8b056a49d87f69c944570f commit 4de867fc237487ce2951a8231d7390237d3f3be8 commit 8d9cdb4674f6e4e7fc789f8184a58c73eeadc16c commit 38eecbe086a4e52f54b2bbda8feba65d44addbef commit 764ba43d34ac5fd16e0e377643f89a7208f1f67b commit ef3d74aa7e5d0ba4e9fc00f1409652e29f46fc59 commit 83aeb49c8c467e9fe77c4f01c80472a4329db49c commit 0fdf06e449b6d6d970c0709c71a8738cfe551ecc commit ac7485cc363f2c603a3e1a7a609ef065ad56b19b commit b62f91569f9aa54b0a60d46a022482415cb968a9 commit 64626c0ee13257e330bc09fa6a169385c0eaf9ca commit 0c1f033159712b3d071cfe4a3ec0f36f1914453b commit 2c69679626d5daa680d71c77ad58af0088db537f commit 4327a6137ed43a091d900b1ac833345d60f32228 commit c8687694bb1f5c48134f152f8c5c2e53483eb99d commit 02a8ae723225afae25ddf9d2c7ca271b3f856b5a commit d944eafed618a8507270b324ad9d5405bb7f0b3e commit 21fc506cf5ef5de9c2cdc04036e35169d2b3e7d6 commit 13525645e2246ebc8a21bd656248d86022a6ee8f commit 0d68683838f2850dd8ff31f1121e05bfb7a2def0 commit c8cc58e289ed3b5bc50258f52776cf3dfa3bad66 commit 793582ff47f8b73be8d3d925d750bf3ef79f33c7 commit 98f99e67a1dc456e9a542584819b2aa265ffc737 commit cf03e2956af307dc25e8c41fd4cffe44482a6ec1 commit 474f01015ffdb74e01c2eb3584a2822c64e7b2be commit ce560ac40272a5c8b5b68a9d63a75edd9e66aed2 commit 822b84ecfc646da0f87fd947fa00dc3be5e45ecc commit f11aee97b13ea6817287cd8dbed9b09a260ff0e7 commit 3fb7efd6866e5d43770e999b33d619a3b345dc2f commit da5e14909776edea4462672fb4a3007802d262e7 commit 025ce392b5f213696ca0af3e07735d0fae020694 commit 0c0463ff010b80a0c03937ca8cf85587ded2f20e commit 3cf7cd3f770a0b89dc5f06e19edb52e65b93b214 commit 56d8ce9d8c17bea955b0c2551ee86149486890ae commit e0cce122514ff76c3c986103c94de68fbb401949 commit dd24662d9dfbad281bbf030f06d68c7938fa0c66 commit fc3888fe2c63b35a22db8234d142823a5ffda9d8 commit b1bcdd409d2d158867ce0b71cfa9bcefe83ce07f commit d1c5c3e252b8a911a524e6ee33b82aca81397745 commit 425afa0ac99a05b39e6cd00704fa0e3e925cee2b commit 99d92eaca5d915763b240aae24669f5bf3227ecf commit 989cd3e76a4aab76fe7dd50090ac3fa501c537f6 commit 3caab67db1f69e077fb12ac194d3cd2a4de06d8d commit 9675b3ba99ec79273d94afa09e9b69e2b8c0d238 commit 08da182175db4c7f80850354849d95f2670e8cd9 commit d893f39320e1248d1c97fde0d6e51e5ea008a76b commit 32f7ad0fbe7521de2a5e8f79c33d46110247fd7c commit 556eb8b79190151506187bf0b16dda423c34d9a8 commit cec24b8b6bb841a19b5c5555b600a511a8988100 commit b6a7828502dc769e1a5329027bc5048222fa210a commit 7fa8a8ee9400fe8ec188426e40e481717bc5e924 commit 25feda6fbd0cfefcb69308fb20d4d4815a107c5e commit 70cc1b5307e8ee3076fdf2ecbeb89eb973aa0ff7 commit 1816f4a17f54a01afa2f06d6571c39890b97d282 commit 6ece90e3665a9b7fb2637fcca26cebd42991580b commit c8c2969bfcba5fcba3a5b078315c1b586d927d9f commit 74a49415144035f171751d55b11ba04c9f348f9f commit 4eea7fb980dc44545a32eec92e2662053b34cd9d commit b03f38b9bd90d9eb29951e56f5a4375984c8dffb commit 13af556104fa93b1945c70bbf8a0a62cd2c92879 commit 08c677cb0b436a96a836792bb35a8ec5de4999c2 commit 922a76ba31adf84e72bc947267385be420c689ee commit 2397e3d8d2e120355201a8310b61929f5a8bd2c0 commit 100bd00881f8553d0ccfc99a575966d990c455eb commit 8f586cc16c1fc3c2202c9d54563db8c7ed365f82 commit 682439fffad9fa9a38d37dd1b1318e9374232213 commit 1253685f0d3eb3eab0bfc4bf15ab341a5f3da0c8 commit a26cc2934331b57b5a7164bff344f0a2ec245fc0 commit 6f5a5e8670587d5066aacd0235071a166ee458fc commit fa0d9c066dee8f52eabcb8416459aa0568b832f9 commit f4c41a7fd7f99329e5af0ac0a236504a60bfb17c commit 1bef84af084e981550d9ecc3359baa22533d7b99 commit 084f51d473cd566eab310d5da56fe7b68d0b10be commit 2da5bffe9eaa5819a868e8eaaa11b3fd0f16a691 commit e6232180e524e11205d285bb27045bf2c19db265 commit e7ec3a249c38a9c9be3a1eeb0142fcbaa3bd02d9 commit 476ac50fc30540e29191615a26aaf5f9dee91c49 commit af7828fbceed4f9e503034111066a0adef3db383 commit 58d9b9a14b47c2a3da6effcbb01607ad7edc0275 commit f57fa0f23d9707747272b0d09af8b93b19cf8ee4 commit b504f99ccaa64da364443431e388ecf30b604e38 commit 720b47229a5b24061d1c2e29ddb6043a59178d79 commit 6c032c37ac3ef3b7df30937c785ecc4da428edc0 commit 8b229ada2669b74fdae06c83fbfda5a5a99fc253 commit 275dac1f7f5e9c2a2e806b34d3b10804eec0ac3c commit a41d985902c153c31c616fe183cf2ee331e95ecb commit 0ff80028e2702c7c3d78b69705dc47c1ccba8c39 commit 79c901c93562bdf1c84ce6c1b744fbbe4389a6eb commit 5247f05eadf1081a74b2233f291cee2efed25e3a commit 4a76680311330aefe5074bed8f06afa354b85c48 commit 5b94db73e45e2e6c2840f39c022fd71dfa47fc58 commit 996e93a3fe74dcf9d467ae3020aea42cc3ff65e3 commit ad81e23426a651eb89a4b306e1c4169e6308c124 commit dc49c3b1d463a99fb529d2a69cc0e2270d6cb27e commit 9235c21c37facd131b4d126ce7535ca573f850e3 commit d8843eebbbd15b78c6a7745717b3705eca923b0f commit 50282fd57bcd3525c9d81eef58df8718e4337c6d commit 5896f2d363d5cfb7510856c90d5e0ed934a1d340 commit 1aa7f416175619e0286fddc5fc44e968b06bf2aa commit d5aa417808cf14c052ca042920b3c6b9f1dc6aa4 commit 8173cab3368a13cdc3cad0bd5cf14e9399b0f501 commit 11fbdda2ab6bf049e2869139c07016022b4e045b commit 9d2d1827af295fd6971786672c41c4dba3657154 commit 68518294d00da6a2433357af75a63abc6030676e commit c1a322a7a4a96cd0a3dde32ce37af437a78bf8cd commit bf4823267a817f7c155876a125b94336d7113e77 commit 6d600229df1ed06f46ba68ac706d9f44ba8c5fb4 commit 79ef1c9d14c65a5c3f7eec47389d8c2a33be8e8d commit aa8bf93101a185b49f83c9137453571a08be6e76 commit c47d122c5ba5f3b3371cfe051d770b5bbd591f6b commit c21f11d182c2180d8b90eaff84f574cfa845b250 commit 45dfbd992923f4df174db4e23b96fca7e30d73e2 commit e79d85c6c217221ea32354a5ac0587a7ccea02b9 commit 60ecaaf54886b0642d5c4744f7fbf1ff0d6b3e42 commit 7fc602dbfd548045862df096910b7d21e6d300bf commit a34fc1bcd2c4d8b09dcfc0b95ac65bca1e579bd7 commit 0d2dd02d74e6377268f56b90261de0fae8f0d2cb commit 40baba5693b9af586dc1063af603d05a79e57a6b commit 137f9cee113df91107cf91c130d5c414c4b191f0 commit 482e6ad9adde69d9da08864b4ccf4dfd53edb2f0 commit 13aa38f86eea7f95eca4909c075b3b511dc3f500 commit 5502d1fab09df791a8b1208dea9defc418b9bbf7 commit bed61c8fc7ba17d0f259c674137a5198fd2e3334 commit 6a07826f2057b5fa1c479ba56460195882464270 commit c1d35412b3e826ae8119e3fb5f51dd0fa5b6b567 commit f1373a97a41f429e0095d4be388092ffa3c1a157 commit bfc03568d9d81332382c73a1985a90c4506bd36c commit 55e02c14f9b5fd973ba32a16a715baa42617f9c6 commit c14fb01c4629b96b64ab54caea7e543a0239f14e commit 8e1b45c578b799510f9a01a9745a737e74f43cb1 commit ac1d8e2f074d9bffc2d368ad0720cdbb4c938fa5 commit 6889f28c736c357700f5755fed852a2badc15a7b commit 020c76d983151f6f6c9493a3bbe83c1ec927617a commit ce784421a3e15fd89d5fc1b9da7d846dd8309661 commit 30b2d778f629d51e2ff30beb6d060a0bd7f70104 commit bc3e1d60f933f823599376f830eb99451afb995a commit e490d60a2f76bff636c68ce4fe34c1b6c34bbd86 commit 663b930e24842f3d3bb79418bb5cd8d01b40c559 commit 62fe398761cd06a428e6f367aba84732a2f1c268 commit 3692ababa322b4d9ffbd973865bc88018e896fcd commit b6ccf213d95e9373ac1f7fbcb5de3b52eec0ddb3 commit 40023959dbab3c6ad56fa7213770e63d197b69fb commit cb2e701305f4ffe3a107c1d97f8588b4ed48ccb3 commit 2d6f2f79e06571d41eb1223abebe9097511c9544 commit 79d0150d2d983a4f6efee676cea06027f586fcd0 commit 30c3d3b70aba2464ee8c91025e91428f92464077 commit 2a1eb1a343208ce7d6839b73d62aece343e693ff commit 1d13c49cf4e246b218d71873f1bb1bbd376aa10e commit 38e4ced804796c5725e2a52ec3601951552c4a97 commit 99b3886f8674502e967b1d050e40aa669c9098c1 commit 59de751e3845d699e02dc4da47322b92d83a41e2 commit 3b3ffd729e7e3ad706ddba4bb84358df5d43a647 commit d511f95938bf9e75ab73ace0ab1cebbe9a13df4b commit 73c12de8bee258b51bd418f33dc59f2c6e5fb5f6 commit 982b173a6c6d9472730c3116051977e05d17c8c5 commit b447b079cf3a9971ea4d31301e673f49612ccc18 commit dac652220ba0e5a2ef2da2a47a60b60aea333fdb commit e1a600208286c197c2696e51fc313e49889315bd commit d6d4f0a1189313310d77f1d5a2bb6277f3afa13f commit bcd84301a33b7434a506fdb1a9076b7a234817a7 commit 11d24327c2d7ad7f24fcc44fb00e1fa91ebf6525 commit 95011f267c44a4d1f9ca1769e8a29ab2c559e004 commit 20a2ce87fbaf81e4c3dcb631d738e423959eb320 commit 1dbcf770cc2d15baf8a1e8174d6fd014a68b45ca commit 55b94bb8c42464bad3d2217f6874aa1a85664eac commit 94034b306ddde4a4a9c1a597ae7f61f04b710dc7 commit 87af86ae89963c227a3beb4d914f3dc7959a690e commit 5b711e7f9c73e5ff44d6ac865711d9a05c2a0360 commit e61f67749b351c19455ce3085af2ae9af80023bc commit 3eb1a3a04056ba3df3205e169b8acc9da0c65a94 commit 7ab1a4913d0051cf5196ef7987b5fa42c25e13b6 commit 7ca302d488f80cf4529620acc1c545f9022d8bb8 commit 7ac9be96b0113a34c33110b32912642bdc8ff33d commit 9db5ec1ceb5303398ec4f899d691073d531257c3 commit 34e5a54327dce5033582f3609eb54812a8c61b90 commit e749dd10e5f292061ad63d2b030194bf7d7d452c commit ea2062dd1f0384ae1b136d333ee4ced15bedae38 commit 7c5835bcb9176df94683396f1c0e5df6bf5094b3 commit c8a5d5ea3ba6a18958f8d76430e4cd68eea33943 commit 9930f518b6a82ff10a3d13e0cbde05cce04f5930 commit b7cb3821905b79b6ed474fd5ba34d1e187649139 commit 54d217406afe250d7a768783baaa79a035f21d38 commit 8ba90f5cc71701aa262f222effead02206b04227 commit a92b7d26c743b9dc06d520f863d624e94978a1d9 Signed-off-by: Mika Penttilä <mpenttil@redhat.com>
2023-09-01 05:07:01 +00:00
static void dma_fence_array_set_deadline(struct dma_fence *fence,
ktime_t deadline)
{
struct dma_fence_array *array = to_dma_fence_array(fence);
unsigned i;
for (i = 0; i < array->num_fences; ++i)
dma_fence_set_deadline(array->fences[i], deadline);
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
const struct dma_fence_ops dma_fence_array_ops = {
.get_driver_name = dma_fence_array_get_driver_name,
.get_timeline_name = dma_fence_array_get_timeline_name,
.enable_signaling = dma_fence_array_enable_signaling,
.signaled = dma_fence_array_signaled,
.release = dma_fence_array_release,
Merge DRM changes from upstream v6.3..v6.4 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.4 RHEL-1350 JIRA: https://issues.redhat.com/browse/RHEL-1350 Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c drivers/gpu/drm/amd/display/dc/core/dc.c drivers/gpu/drm/amd/display/dc/dc.h drivers/gpu/drm/amd/display/dc/dc_dp_types.h drivers/gpu/drm/amd/display/dc/dc_types.h drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c drivers/gpu/drm/amd/display/dc/inc/link.h drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c drivers/gpu/drm/amd/display/dc/link/link_detection.c drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c drivers/gpu/drm/drm_displayid.c drivers/gpu/drm/drm_fb_helper.c drivers/gpu/drm/gma500/framebuffer.c drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c drivers/gpu/drm/i915/gt/intel_workarounds.c drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c Conflict resolution: diff --cc drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 0eb51c3a69a7,7acd73e5004f..11e99e8ca7ba --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@@ -350,35 -348,46 +348,75 @@@ static inline bool is_dc_timing_adjust_ return false; } + static inline void reverse_planes_order(struct dc_surface_update *array_of_surface_update, + int planes_count) + { + int i, j; + + for (i = 0, j = planes_count - 1; i < j; i++, j--) + swap(array_of_surface_update[i], array_of_surface_update[j]); + } + + /** + * update_planes_and_stream_adapter() - Send planes to be updated in DC + * + * DC has a generic way to update planes and stream via + * dc_update_planes_and_stream function; however, DM might need some + * adjustments and preparation before calling it. This function is a wrapper + * for the dc_update_planes_and_stream that does any required configuration + * before passing control to DC. + */ + static inline bool update_planes_and_stream_adapter(struct dc *dc, + int update_type, + int planes_count, + struct dc_stream_state *stream, + struct dc_stream_update *stream_update, + struct dc_surface_update *array_of_surface_update) + { + reverse_planes_order(array_of_surface_update, planes_count); + + /* + * Previous frame finished and HW is ready for optimization. + */ + if (update_type == UPDATE_TYPE_FAST) + dc_post_update_surfaces_to_stream(dc); + + return dc_update_planes_and_stream(dc, + array_of_surface_update, + planes_count, + stream, + stream_update); + } + +/** + * update_planes_and_stream_adapter() - Send planes to be updated in DC + * + * DC has a generic way to update planes and stream via + * dc_update_planes_and_stream function; however, DM might need some + * adjustments and preparation before calling it. This function is a wrapper + * for the dc_update_planes_and_stream that does any required configuration + * before passing control to DC. + */ +static inline bool update_planes_and_stream_adapter(struct dc *dc, + int update_type, + int planes_count, + struct dc_stream_state *stream, + struct dc_stream_update *stream_update, + struct dc_surface_update *array_of_surface_update) +{ + /* + * Previous frame finished and HW is ready for optimization. + */ + if (update_type == UPDATE_TYPE_FAST) + dc_post_update_surfaces_to_stream(dc); + + return dc_update_planes_and_stream(dc, + array_of_surface_update, + planes_count, + stream, + stream_update); +} + /** * dm_pflip_high_irq() - Handle pageflip interrupt * @interrupt_params: ignored @@@ -7901,16 -7905,16 +7931,23 @@@ static void amdgpu_dm_commit_cursors(st */ for_each_old_plane_in_state(state, plane, old_plane_state, i) if (plane->type == DRM_PLANE_TYPE_CURSOR) - handle_cursor_update(plane, old_plane_state); + amdgpu_dm_plane_handle_cursor_update(plane, old_plane_state); + } + + static inline uint32_t get_mem_type(struct drm_framebuffer *fb) + { + struct amdgpu_bo *abo = gem_to_amdgpu_bo(fb->obj[0]); + + return abo->tbo.resource ? abo->tbo.resource->mem_type : 0; } +static inline uint32_t get_mem_type(struct drm_framebuffer *fb) +{ + struct amdgpu_bo *abo = gem_to_amdgpu_bo(fb->obj[0]); + + return abo->tbo.resource ? abo->tbo.resource->mem_type : 0; +} + static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, struct dc_state *dc_state, struct drm_device *dev, diff --cc drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c index 862cb0f93b7d,18e098568cb4..3f047c985406 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c @@@ -142,49 -134,347 +134,391 @@@ void dc_restore_link_res_map(const stru bool dc_link_update_dsc_config(struct pipe_ctx *pipe_ctx) { - return link_update_dsc_config(pipe_ctx); + struct dc_link *link = pipe_ctx->stream->link; + + return link->dc->link_srv->update_dsc_config(pipe_ctx); + } + + bool dc_is_oem_i2c_device_present( + struct dc *dc, + size_t slave_address) + { + if (dc->res_pool->oem_device) + return dce_i2c_oem_device_present( + dc->res_pool, + dc->res_pool->oem_device, + slave_address); + + return false; + } + + bool dc_submit_i2c( + struct dc *dc, + uint32_t link_index, + struct i2c_command *cmd) + { + + struct dc_link *link = dc->links[link_index]; + struct ddc_service *ddc = link->ddc; + + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + } + + bool dc_submit_i2c_oem( + struct dc *dc, + struct i2c_command *cmd) + { + struct ddc_service *ddc = dc->res_pool->oem_device; + + if (ddc) + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + + return false; + } + + void dc_link_dp_handle_automated_test(struct dc_link *link) + { + link->dc->link_srv->dp_handle_automated_test(link); + } + + bool dc_link_dp_set_test_pattern( + struct dc_link *link, + enum dp_test_pattern test_pattern, + enum dp_test_pattern_color_space test_pattern_color_space, + const struct link_training_settings *p_link_settings, + const unsigned char *p_custom_pattern, + unsigned int cust_pattern_size) + { + return link->dc->link_srv->dp_set_test_pattern(link, test_pattern, + test_pattern_color_space, p_link_settings, + p_custom_pattern, cust_pattern_size); + } + + void dc_link_set_drive_settings(struct dc *dc, + struct link_training_settings *lt_settings, + struct dc_link *link) + { + struct link_resource link_res; + + dc->link_srv->get_cur_link_res(link, &link_res); + dc->link_srv->dp_set_drive_settings(link, &link_res, lt_settings); + } + + void dc_link_set_preferred_link_settings(struct dc *dc, + struct dc_link_settings *link_setting, + struct dc_link *link) + { + dc->link_srv->dp_set_preferred_link_settings(dc, link_setting, link); + } + + void dc_link_set_preferred_training_settings(struct dc *dc, + struct dc_link_settings *link_setting, + struct dc_link_training_overrides *lt_overrides, + struct dc_link *link, + bool skip_immediate_retrain) + { + dc->link_srv->dp_set_preferred_training_settings(dc, link_setting, + lt_overrides, link, skip_immediate_retrain); + } + + bool dc_dp_trace_is_initialized(struct dc_link *link) + { + return link->dc->link_srv->dp_trace_is_initialized(link); + } + + void dc_dp_trace_set_is_logged_flag(struct dc_link *link, + bool in_detection, + bool is_logged) + { + link->dc->link_srv->dp_trace_set_is_logged_flag(link, in_detection, is_logged); + } + + bool dc_dp_trace_is_logged(struct dc_link *link, bool in_detection) + { + return link->dc->link_srv->dp_trace_is_logged(link, in_detection); + } + + unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link, + bool in_detection) + { + return link->dc->link_srv->dp_trace_get_lt_end_timestamp(link, in_detection); + } + + const struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link, + bool in_detection) + { + return link->dc->link_srv->dp_trace_get_lt_counts(link, in_detection); + } + + unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link) + { + return link->dc->link_srv->dp_trace_get_link_loss_count(link); + } + + struct dc_sink *dc_link_add_remote_sink( + struct dc_link *link, + const uint8_t *edid, + int len, + struct dc_sink_init_data *init_data) + { + return link->dc->link_srv->add_remote_sink(link, edid, len, init_data); + } + + void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink) + { + link->dc->link_srv->remove_remote_sink(link, sink); + } + + int dc_link_aux_transfer_raw(struct ddc_service *ddc, + struct aux_payload *payload, + enum aux_return_code_type *operation_result) + { + const struct dc *dc = ddc->link->dc; + + return dc->link_srv->aux_transfer_raw( + ddc, payload, operation_result); + } + + uint32_t dc_link_bw_kbps_from_raw_frl_link_rate_data(const struct dc *dc, uint8_t bw) + { + return dc->link_srv->bw_kbps_from_raw_frl_link_rate_data(bw); + } + + bool dc_link_decide_edp_link_settings(struct dc_link *link, + struct dc_link_settings *link_setting, uint32_t req_bw) + { + return link->dc->link_srv->edp_decide_link_settings(link, link_setting, req_bw); + } + + + bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link, + struct dc_link_settings *max_link_enc_cap) + { + return link->dc->link_srv->dp_get_max_link_enc_cap(link, max_link_enc_cap); + } + + enum dp_link_encoding dc_link_dp_mst_decide_link_encoding_format( + const struct dc_link *link) + { + return link->dc->link_srv->mst_decide_link_encoding_format(link); + } + + const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link) + { + return link->dc->link_srv->dp_get_verified_link_cap(link); + } + + bool dc_link_is_dp_sink_present(struct dc_link *link) + { + return link->dc->link_srv->dp_is_sink_present(link); + } + + bool dc_link_is_fec_supported(const struct dc_link *link) + { + return link->dc->link_srv->dp_is_fec_supported(link); + } + + void dc_link_overwrite_extended_receiver_cap( + struct dc_link *link) + { + link->dc->link_srv->dp_overwrite_extended_receiver_cap(link); + } + + bool dc_link_should_enable_fec(const struct dc_link *link) + { + return link->dc->link_srv->dp_should_enable_fec(link); + } + + int dc_link_dp_dpia_handle_usb4_bandwidth_allocation_for_link( + struct dc_link *link, int peak_bw) + { + return link->dc->link_srv->dpia_handle_usb4_bandwidth_allocation_for_link(link, peak_bw); + } + + void dc_link_handle_usb4_bw_alloc_response(struct dc_link *link, uint8_t bw, uint8_t result) + { + link->dc->link_srv->dpia_handle_bw_alloc_response(link, bw, result); + } + + bool dc_link_check_link_loss_status( + struct dc_link *link, + union hpd_irq_data *hpd_irq_dpcd_data) + { + return link->dc->link_srv->dp_parse_link_loss_status(link, hpd_irq_dpcd_data); + } + + bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link) + { + return link->dc->link_srv->dp_should_allow_hpd_rx_irq(link); + } + + void dc_link_dp_handle_link_loss(struct dc_link *link) + { + link->dc->link_srv->dp_handle_link_loss(link); + } + + enum dc_status dc_link_dp_read_hpd_rx_irq_data( + struct dc_link *link, + union hpd_irq_data *irq_data) + { + return link->dc->link_srv->dp_read_hpd_rx_irq_data(link, irq_data); + } + + bool dc_link_handle_hpd_rx_irq(struct dc_link *link, + union hpd_irq_data *out_hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work) + { + return link->dc->link_srv->dp_handle_hpd_rx_irq(link, out_hpd_irq_dpcd_data, + out_link_loss, defer_handling, has_left_work); + } + + void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on) + { + link->dc->link_srv->dpcd_write_rx_power_ctrl(link, on); + } + + enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link, + struct dc_link_settings *link_setting) + { + return link->dc->link_srv->dp_decide_lttpr_mode(link, link_setting); + } + + void dc_link_edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd) + { + link->dc->link_srv->edp_panel_backlight_power_on(link, wait_for_hpd); + } + + int dc_link_get_backlight_level(const struct dc_link *link) + { + return link->dc->link_srv->edp_get_backlight_level(link); + } + + bool dc_link_get_backlight_level_nits(struct dc_link *link, + uint32_t *backlight_millinits_avg, + uint32_t *backlight_millinits_peak) + { + return link->dc->link_srv->edp_get_backlight_level_nits(link, + backlight_millinits_avg, + backlight_millinits_peak); + } + + bool dc_link_set_backlight_level(const struct dc_link *link, + uint32_t backlight_pwm_u16_16, + uint32_t frame_ramp) + { + return link->dc->link_srv->edp_set_backlight_level(link, + backlight_pwm_u16_16, frame_ramp); + } + + bool dc_link_set_backlight_level_nits(struct dc_link *link, + bool isHDR, + uint32_t backlight_millinits, + uint32_t transition_time_in_ms) + { + return link->dc->link_srv->edp_set_backlight_level_nits(link, isHDR, + backlight_millinits, transition_time_in_ms); + } + + int dc_link_get_target_backlight_pwm(const struct dc_link *link) + { + return link->dc->link_srv->edp_get_target_backlight_pwm(link); + } + + bool dc_link_get_psr_state(const struct dc_link *link, enum dc_psr_state *state) + { + return link->dc->link_srv->edp_get_psr_state(link, state); + } + + bool dc_link_set_psr_allow_active(struct dc_link *link, const bool *allow_active, + bool wait, bool force_static, const unsigned int *power_opts) + { + return link->dc->link_srv->edp_set_psr_allow_active(link, allow_active, wait, + force_static, power_opts); + } + + bool dc_link_setup_psr(struct dc_link *link, + const struct dc_stream_state *stream, struct psr_config *psr_config, + struct psr_context *psr_context) + { + return link->dc->link_srv->edp_setup_psr(link, stream, psr_config, psr_context); + } + + bool dc_link_wait_for_t12(struct dc_link *link) + { + return link->dc->link_srv->edp_wait_for_t12(link); + } + + bool dc_link_get_hpd_state(struct dc_link *link) + { + return link->dc->link_srv->get_hpd_state(link); + } + + void dc_link_enable_hpd(const struct dc_link *link) + { + link->dc->link_srv->enable_hpd(link); + } + + void dc_link_disable_hpd(const struct dc_link *link) + { + link->dc->link_srv->disable_hpd(link); + } + + void dc_link_enable_hpd_filter(struct dc_link *link, bool enable) + { + link->dc->link_srv->enable_hpd_filter(link, enable); + } + + bool dc_link_validate(struct dc *dc, const struct dc_stream_state *streams, const unsigned int count) + { + return dc->link_srv->validate_dpia_bandwidth(streams, count); } + +bool dc_is_oem_i2c_device_present( + struct dc *dc, + size_t slave_address) +{ + if (dc->res_pool->oem_device) + return dce_i2c_oem_device_present( + dc->res_pool, + dc->res_pool->oem_device, + slave_address); + + return false; +} + +bool dc_submit_i2c( + struct dc *dc, + uint32_t link_index, + struct i2c_command *cmd) +{ + + struct dc_link *link = dc->links[link_index]; + struct ddc_service *ddc = link->ddc; + + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); +} + +bool dc_submit_i2c_oem( + struct dc *dc, + struct i2c_command *cmd) +{ + struct ddc_service *ddc = dc->res_pool->oem_device; + + if (ddc) + return dce_i2c_submit_command( + dc->res_pool, + ddc->ddc_pin, + cmd); + + return false; +} + diff --cc drivers/gpu/drm/amd/display/dc/dc.h index 9307442dc225,30f0ba05a6e6..49ac369cc926 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@@ -1663,39 -1664,36 +1664,83 @@@ bool dc_is_oem_i2c_device_present /* return true if the connected receiver supports the hdcp version */ bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal); bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal); - #endif + + /* Notify DC about DP RX Interrupt (aka DP IRQ_HPD). + * + * TODO - When defer_handling is true the function will have a different purpose. + * It no longer does complete hpd rx irq handling. We should create a separate + * interface specifically for this case. + * + * Return: + * true - Downstream port status changed. DM should call DC to do the + * detection. + * false - no change in Downstream port status. No further action required + * from DM. + */ + bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link, + union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work); + /* handle DP specs define test automation sequence*/ + void dc_link_dp_handle_automated_test(struct dc_link *link); + + /* handle DP Link loss sequence and try to recover RX link loss with best + * effort + */ + void dc_link_dp_handle_link_loss(struct dc_link *link); + + /* Determine if hpd rx irq should be handled or ignored + * return true - hpd rx irq should be handled. + * return false - it is safe to ignore hpd rx irq event + */ + bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link); + ++/* Determine if link loss is indicated with a given hpd_irq_dpcd_data. ++ * @link - link the hpd irq data associated with ++ * @hpd_irq_dpcd_data - input hpd irq data ++ * return - true if hpd irq data indicates a link lost ++ */ ++bool dc_link_check_link_loss_status(struct dc_link *link, ++ union hpd_irq_data *hpd_irq_dpcd_data); ++ ++/* Read hpd rx irq data from a given link ++ * @link - link where the hpd irq data should be read from ++ * @irq_data - output hpd irq data ++ * return - DC_OK if hpd irq data is read successfully, otherwise hpd irq data ++ * read has failed. ++ */ ++enum dc_status dc_link_dp_read_hpd_rx_irq_data( ++ struct dc_link *link, ++ union hpd_irq_data *irq_data); + +/* Notify DC about DP RX Interrupt (aka DP IRQ_HPD). + * + * TODO - When defer_handling is true the function will have a different purpose. + * It no longer does complete hpd rx irq handling. We should create a separate + * interface specifically for this case. + * + * Return: + * true - Downstream port status changed. DM should call DC to do the + * detection. + * false - no change in Downstream port status. No further action required + * from DM. + */ +bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link, + union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss, + bool defer_handling, bool *has_left_work); +/* handle DP specs define test automation sequence*/ +void dc_link_dp_handle_automated_test(struct dc_link *link); + +/* handle DP Link loss sequence and try to recover RX link loss with best + * effort + */ +void dc_link_dp_handle_link_loss(struct dc_link *link); + +/* Determine if hpd rx irq should be handled or ignored + * return true - hpd rx irq should be handled. + * return false - it is safe to ignore hpd rx irq event + */ +bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link); + /* Determine if link loss is indicated with a given hpd_irq_dpcd_data. * @link - link the hpd irq data associated with * @hpd_irq_dpcd_data - input hpd irq data diff --cc drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c index 91b59d858108,eeca16faf31a..35333daf4cd9 --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c @@@ -297,12 -309,33 +307,32 @@@ void dcn32_determine_det_override(struc struct dc_plane_state *current_plane = NULL; uint8_t stream_count = 0; + int phy_pix_clk_mult, lower_mode_stream_index; + int phy_pix_clk[MAX_PIPES] = {0}; + bool use_new_det_override_algorithm = false; + for (i = 0; i < context->stream_count; i++) { /* Don't count SubVP streams for DET allocation */ - if (context->streams[i]->mall_stream_config.type != SUBVP_PHANTOM) + if (context->streams[i]->mall_stream_config.type != SUBVP_PHANTOM) { + phy_pix_clk[i] = context->streams[i]->phy_pix_clk; stream_count++; + } } + /* Check for special case with two displays, one with much higher pixel rate */ + if (stream_count == 2) { + ASSERT((phy_pix_clk[0] > 0) && (phy_pix_clk[1] > 0)); + if (phy_pix_clk[0] < phy_pix_clk[1]) { + lower_mode_stream_index = 0; + phy_pix_clk_mult = phy_pix_clk[1] / phy_pix_clk[0]; + } else { + lower_mode_stream_index = 1; + phy_pix_clk_mult = phy_pix_clk[0] / phy_pix_clk[1]; + } + + if (phy_pix_clk_mult >= DCN3_2_NEW_DET_OVERRIDE_MIN_MULTIPLIER) + use_new_det_override_algorithm = true; + } + if (stream_count > 0) { stream_segments = 18 / stream_count; for (i = 0; i < context->stream_count; i++) { diff --cc drivers/gpu/drm/amd/display/dc/link/link_detection.c index 8145d208512d,d471d58aba92..ee16d94b2b63 --- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c @@@ -1334,7 -1331,7 +1331,6 @@@ const struct dc_link_status *link_get_s return &link->link_status; } -- static bool link_add_remote_sink_helper(struct dc_link *dc_link, struct dc_sink *sink) { if (dc_link->sink_count >= MAX_SINKS_PER_LINK) { diff --cc drivers/gpu/drm/bridge/tc358767.c index 232e23a1bfcc,91f7cb56a654..d6349af4f1b6 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@@ -1896,12 -1896,12 +1896,12 @@@ static int tc_mipi_dsi_host_attach(stru "failed to create dsi device\n"); tc->dsi = dsi; - dsi->lanes = dsi_lanes; dsi->format = MIPI_DSI_FMT_RGB888; - dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE; + dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS; - ret = mipi_dsi_attach(dsi); + ret = devm_mipi_dsi_attach(dev, dsi); if (ret < 0) { dev_err(dev, "failed to attach dsi to host: %d\n", ret); return ret; diff --cc drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c index 8035e50f7422,3aeede6aee4d..ae367d473200 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@@ -2467,7 -2462,7 +2462,7 @@@ gen8_dispatch_bsd_engine(struct drm_i91 /* Check whether the file_priv has already selected one ring. */ if ((int)file_priv->bsd_engine < 0) file_priv->bsd_engine = - prandom_u32_max(num_vcs_engines(dev_priv)); - get_random_u32_below(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]); ++ prandom_u32_max(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]); return file_priv->bsd_engine; } Commit list: commit cbf143b282c64e59559cc8351c0b5b1ab4bbdcbe commit d33a54e3991dfce88b4fc6d9c3360951c2c5660d commit d703a0f45a70e6ed4749780ed5efb2d1ec042297 commit e566507bf2f460967f53030ef84b67ef26dcaf8e commit 851a4a77a9f6441bd73625fe6dbc29c814ae681f commit 18d2f6d956d0a39d5a27b0512aee17cb253f5788 commit 413ebc4803f025c64ec80de07c50e65e2f59ae89 commit 19ff997ffc43cb203fb7d6ac169b69e26c7dcbfb commit 249a4f5e663ccd1c1b1d11db68020e488a020791 commit 357513233d6456c9f99e34794897efd4ae907e83 commit 6d8d5c6b643062a0dfc7632f7a73057e75fca057 commit 680d0c7960f12fc3852c70b2bab278cc5e70b88a commit 7b775d36589390eaf19ceada78141c60ed1c7c84 commit f3783aa6b871ffece27388076d2c200a22bdb162 commit c886118bd8f574a635dda176b2460c03c28b1177 commit 0d6e08c72474043d7e686c32f25b735bfcdc9daa commit 220b3376c0781ec46cf86e19b7460e7e1ccf913d commit 6e52ced02392c760936159cc53da5669c94dd9a3 commit d374c047b38e9f1130308aae207dc44045cd5cac commit 9b469093d321f23adf13d966797f55242278c3b5 commit 24efe424f096953d355cc366cdd471ba8cdaf035 commit 2b6f7e39ccae065abfbe3b6e562ec95ccad09f1e commit 60bb4478f7de8ad45bc9464f94d766d8ec807606 commit fceeca7f3cf1c2b8628cd76c936b51271b793b1b commit 28cbe92b59d7b8b1768f1900f677cf8567edd0bd commit 1a45d6811c8790f4f9821038b243a71c9be1ebe2 commit d023d6f741c85bb00d2ca43d338327fbc150c113 commit c22cf04c6ab1d9ad5be2ec36e9822bc45526e8ca commit 9d691c197631f152d7dc6788098f372b64d3bc43 commit d1702963ab145eff51c31e5fdc2867e9c5959ad5 commit 69ea87e1591a39dd53968f2f5d496f0f9499ad74 commit 3c4b33d0e67ddb900efa7a0eabd33a667c699ff9 commit 9c608cf39b96666ecbc163e3f6197f6d8ea78e56 commit 33d0c67dcbb045cbbbba9d41fa6e4b1f73bf3888 commit c76f67275f9c60d7ff53b6a90e90897c207d3d9c commit 2324cdfffbaf0bc2404d919d9920b09148f8645f commit 9dd56e979cb69f5cd904574c852b620777a2f69f commit 16bede135fb1319c22dfa55b2de20f482fcc9cd9 commit 77d3b6130203299123d17df78b843f193c18b25f commit 7f66476c930cdb5e0bc4dc563f241498a3791f99 commit 19d7dc6638a92535769b9ecc2b04a7f3afa0a7ed commit 7fd7eacff0dec488071b5f1fedfcd382bf3ac074 commit 2a6d731a8f16192ece8e1649ca13e55d80561594 commit df5bf3b942a8d344bd9cbbe6ac31c9a2ea1557a4 commit c913cd5489930abbb557ef144a333846286754c3 commit 73a6c676542ac18d2556be80260bf554f1cef4ae commit c580c2d27ac8754cc6f01da1d715b7272f5f9cbb commit 43e6fad17a182de1825277d986a1e4309111e5b7 commit 9541fd164bddde24eb575c5744b6a31a6f62213e commit 14f25bd0bb938af7359433db4ef9495aad4cf703 commit 4fae160fde76e9dc929ba57ec0efbbc1197daaf0 commit 1f16fdbb2a5a7504fcc4be057000e589cb427fbd commit e4ef6503bd4c4ee6fbed2623c50a338dc93d5e9e commit 23cc452e9b6186d6a8c1ddb380a0193652ea6579 commit 3965b8812e173c38b2fd1872dc3e08f436311575 commit da97065e4692247767d2a7f2850d193eb2f65229 commit 247c7a4cdad87564da49a7879aca2f0653689502 commit 5dfb29d444daf94120762e9d7b9fe6aa4e0f9929 commit 1af546c2cec6e28b6bbe01a4ad0c38e96e54fcb4 commit 7206b517665e8b59d7e18877d9741da193cd3325 commit 4b284831c6f3656627958bced181215e7b9fd322 commit 36e491f8f6e9bd9460923da48b2e516aafb80bb2 commit 01f0411f8e307e7154d062f62d4b0799b8498748 commit 960dafa30455450d318756a9896a02727f2639e0 commit fde789e8339c60c8c58e5a71fa819fcfe52d839e commit 58c7ee0676bace7a7aae8a3e21ec8d09eab1c895 commit 24243212c5ed2a5f3c1d1d74fd1913d8c189dec7 commit 1802537820389183dfcd814e0f6a60d1496a75ef commit c7ea16f6a47f9b6eca4e9cdcab8d1f587ea9e484 commit f87c1f0b7b79b7a4f165750d1884da1fd29ae93c commit 0349c41b05968befaffa5fbb7e73d0ee6004f610 commit 54762e920eb483bd70aa92421788bc4e87e4fd1d commit ec852e3c88d5caa457557406c0c787b56c36dffb commit 389b9d91dd57fd2d4428bd0c19ed1cacf2fe918d commit e3ea1806e4ad097c9e67e108853a4ae0f3f100cc commit 8d993276486a1642fdb70410debfe3692cc508f6 commit fec37500cf1bca65934c60b03f0409328e60ab7b commit 118b5c136c04da705b274b0d39982bb8b7430fc5 commit ba00eb6a4bfbe5194ddda50730aba063951f8ce0 commit b33771546309b46b681388b3540b69a75a0e2e69 commit ac7215c423a34837b634c90cf29681537bd9998c commit 70994becf2d0899dc9f8c23154af6aad34b0981d commit aae4f817b8176c0232fb1cde491da6d0775bed14 commit 9310dba467990d393942cfd0c77acf21484050da commit a0dcb06d29d9e477e1984dc3859e61568361fc1a commit 4039e44237e8ebb06f0e4af549fbedf7c41df9db commit 5f21dc07b52eb54a908e66f5d6e05a87bcb5b049 commit 05d5562e401eb0aefab89788a24c0d4e776150d7 commit 3a38be31ec82920a871963c086393bc0ba26a655 commit 869bace73ae2b4227e57ee3fd994bfa7d4808938 commit 4602f42f015232f6c1b19f92d14688aea00448b9 commit 4fd4fde8e42e16425e7acab2e093614491107083 commit 580419965c263120ee05cd99ab8d35c2fdbc449b commit 96eecf9beea7603d6ccb5d0baace85fda842ea15 commit 1c621f2a21cd519965c6820698345fa14126fec5 commit 9847ffce9b5f83a7707504b0127aeb6a05dbd378 commit a13af50d75bc266bc746a2ac2b38d597f08f4201 commit aed01a68047bd92e6f1273fb2e0b8e99ca72a876 commit 2b9ed318ad1c579df943c1eb07ae1f1c0e5e9d83 commit 064b3eee8e0260d8053b588c71a3f71b762cc0f3 commit 7ee6f99dbc45eb457c87241aac1067fef3f263d9 commit 96a7b60f6ddb2bc966fac800c1dd18876a6e3c3f commit 7c18189b14b33c1fbf76480b1bd217877c086e67 commit aa8c85affe3facd3842c8912186623415931cc72 commit e5e43d3363d7c53d99163e94cc61d418230da17c commit 3cd7cb2a7b6b94841aa7aad4c56ac5d7bad683ad commit 2cfd1b38413c15d1c0af6e24ec3f0af8c36cc27d commit 4583d6beb04976dff3440b1efd2c5956997fd839 commit 9da2957f9f81ed29d0046021f131be352cb2199e commit 6b2e8aa45126161135fb4a88870c9526fd8319f8 commit 09881d2940bbd641f27f9ae7907e8a1893bc54b2 commit 6703e28f976d9240311ad260a73504bdc6f6a74b commit cb8097a45da128127db71cfba2d4a2614cbf71f0 commit e0029da927fa9cc3c8ca6b37dc10624d1209e310 commit 39985eea5a6dd1e844f216028252870e980b9e7f commit 668b206601c5f5063e03b76784a0d3024fa2b249 commit a44df74c720eb45d16a92ab9fc8a780d961d5e2b commit f1dc979b6088426698b13e888c65f9c287af48e7 commit dfefe7bc53a115d8a99478ab9b8d7726c70c0c49 commit d24b34758dfaf47276363746e286464d13649efb commit db5d650ff0b5204ba679320ecdbc5e5d7ea80508 commit 5f42196d39291ac5a34b4c68c754a7b023892d53 commit 9151c85cbb2c3962d65f12dd0e8b2a7f0d9908ee commit ee9125720c024e759d5c0f888fe7b98dd22e40cd commit 1b108bc7607e0ac54e1664b9d8b15c70d2b0af62 commit b5d0bea79367144cead950bad38e7c9a1ba5c087 commit b17a15d6189fa86bc06cb88bb2980888d81cdd75 commit 9d4b7af520e542b82a5db210c2053b5dc190eae0 commit 36d421e632e9a0e8375eaed0143551a34d81a7e3 commit 9ef8d83e8e25d5f1811b3a38eb1484f85f64296c commit 9542d708409a41449e99c9a464deb5e062c4bee2 commit 2bf91341ee42fddb6615936701bf2ed68689d452 commit 273e1daa1c025d8a8649d5622ab8b7f344960e9b commit f9dfa87c43a38dca16fcb4fb527d3789ca7bf611 commit 1b2146de7c5bcc25b75484c6ff1c94971c7696e8 commit 94b49d53acece870d242f6b148aff3940cb6c92e commit 284c5baa44218ef615ed8f5edcd6cfdedaef6abc commit 0e7a16f9ddde61d7d65bae9c7ddda2e4a22cbc12 commit d6683bbe70d4cdbf3da6acecf7d569cc6f0b4382 commit f56e0071a6fea6b416943d8736f3128c8b2abed2 commit b3baf0c00cbd2174e9fdc7141ea30adf123c4a8f commit f20eb7845ffde91abc954493431aced4f5f5c4f5 commit c50ad291e4d9cf32dd893c2e06019e8c7da89f65 commit 61b795a9c35264022cf0bfc49d26e75162a23d5d commit 06f1b06dc5b75b1a4071c905231d40cd74587a18 commit 9fcbae04987b9bbc6b5459bb37814be811c6e05d commit 3dadb4a17035ad4c84670d2ee1a3070f5fab4bbc commit 7380f545a8147500e02843d1327f32ea905c953a commit f22c982ef4152f55516865e4d802760cedda6470 commit 4923e99fd0a711f854b964e1a8cf9163112d1cee commit ae2ac2d806b7c3a0cfad4cd76c22aa44b69d9265 commit 2bd4054c7d5c888db8a2f985c8f01a9278792210 commit 98463a24797c494108850441510c48741976c2e6 commit bdfee32454843161ebdfa3ff9fe37dd110604db5 commit 1e116253821a7a3404f4220a0493793f39c7117e commit cd5103eed56fd9012221659c403c3339b8c20305 commit aa80b2b12b89a4d5de2960968b01128003b147e6 commit 8910d8b7ed288564fdb0ad41e02fd8a381f7b727 commit 59ea2887907db7315388f4e37f59aafac8ab2530 commit 8eb2e3b47e3564d2ed49d3fbea5f472950ef98b7 commit 46b3c0f683d6a2128f7f2bf236bcdc62caec5c83 commit 5ed88f96c137b9b68ad99f40721031feb6b26923 commit 22fac49febaafd7e3f141952915f56ccd09f5cbf commit 02107ef11b438a2528a113d8a546d4dceb8bcce1 commit f99926383bd62d2b707e4599b4e096e943f63d42 commit 6fd3d8bf89fc6525264552910accb09c93abba02 commit 158350aae16a4e666e261da0bb4d91c0601a3edd commit 01361096a33a81cc224e12e8cf06240f12737365 commit 1008266e31a0cb86cf8ac18eb77047283ae2b800 commit bb45217ff335d2662ee3cdfe3f32817e2d2e06ae commit fce187ca0cdd6dc707db2c7c22b863cd8bb91ef8 commit 01a789fa45bb0802cb396f4f30b1351840ce0c09 commit 55a4679e88b20310de0d614bd3b2f935f98ba5a9 commit 48630a3151b0373f005270c69f0caaaf08e22fd3 commit 5ac421a9ec6668369b7910d4b1e7f5e7e9e9ec94 commit 3eb08ea58e5717cf758b9eff6d9604aa3525ab94 commit 998894d5dd49462013f1f61f094e9e91990f9e7a commit 1d9ce1cbdc191180038b66a914b420b8b0075062 commit 9c0cd4bb9a2da8c69cd9331ba1824bca027d6090 commit 050db7d70c3c6cf72d11dde8961f953f990b9c6e commit 61a55f8b1ebcde68bc7bfd57435b1b3bb1121b8f commit 6068771673a38efc31ed5b99645176b4d3a33129 commit 93604a5ade3a021fe3daf37f8d378b12cabb26b4 commit 495e440b354203d286127f8515f67a7a711ab6ed commit 1e84dadb2762cddbb5a1066713fc5fc6505e9f27 commit 169b9182f192e8725c8de5d7d77f00f6ae6c7fd4 commit 8f85e4a1667fb12a2f0f83876ec68a75554ed5b3 commit b712b3830a327b171f0a00512aee5e84d45f6d36 commit 2a742fd1640574b80682669825274122e71141e7 commit fedee62781e3aed958be475af6e5dbea90cf232c commit 1f89b94bcfbf1d9ce7f26bb66d8ee0cd7ca7d6d7 commit d5f84973acddbc6140cc82d74ae8f5b3e11c027f commit e18b19740299285fb18ac1513dcaaf0fa40e140e commit bfa5969e1144c8d0fbbe1a976601dcbc50549757 commit 2846cf3fdb8b500e374efdcad3134633dcc5ce60 commit 1552dd6ef99fb54479afdd2fb84473b9655cad3c commit 9548fefcaf9ab61291c0bd427627aa773b19dc75 commit 992ed9d525609e2bcef9207c25fe2b1949f158f1 commit c604d31950d10db45267bbcb9ce8f1dbc2bfa74e commit b129ff30acea495b1455cf8d6e1d86fdb87d22d4 commit 95d39a0c64aa529adbff1bdafd391e83ad587602 commit 5eba7426050755c96d4b9561432b18ca000a4fd4 commit 66560f33059ebe606cad7aef9c298a19d4f9e998 commit 839259b8afbb78bcd6d0b698e82cd4578a505ba4 commit d1e8959203f21aa577f2fef531109c9cf872d4b1 commit 3687ce7517a1e81141191bf12e3e86840d6b9ed9 commit e7e12f6ec8bfb040e28ea7287c907c19477149e6 commit 518b761a7b0e2bb2fac2518f041c71b461adf761 commit 82ea22256b9c1fe3f5a089733969f6539d92d9f0 commit d24b77e444bef83155557ebf4c2b3c551f198926 commit 28d58468ad7d9630c83e4ab3dcc0b2953a276f7e commit b2daaa9360610c584fbe8d7d5e8d1fdb99abc7ef commit 4fa01c6357d5f4ae80b1794c5ecb71c0c66cd528 commit 4d3ed6326449ddb1356544bf838024eb232dd315 commit 4f101d5710a84f334b05a96713000ce8dfd4d598 commit c3ed0e72c872901659ed0fef4b91eb6ab7dc6aad commit 0c3c99364361171f8cfeb8b66b1e6f4709919dc3 commit cb42e8ede5b475c096e473b86c356b1158b4bc3b commit 957565a473a630a3d01932c7173860b33e7acdbd commit da6198afb01df0dce47fde23b53183cc0009b6a2 commit ba8ff971008cfaef6049df52a6058801202435d8 commit 0eb1173422f648a503a2ed1a8364f2d8bd7f690c commit c087bbb6d84e7a2e8dc834fe066d2a91360c0db6 commit 1c388da529c8206818de6dd89b99ba21acc74f6b commit c6a53c90e3be8b7e745a46c941631d0855648313 commit 5bacecc3c56131c31f18b23d366f2184328fd9cf commit 5631f6a0436ac30eecfb2e6fdcd0a517f90add8a commit b568e6bb49d49ef05fa3aa4bb294ae960e1d778a commit 217a8c63df30246f180760b1e1f3e57267efbb6a commit c5a486af9df7a7180d0f19fd4b6c801da64a154e commit 8ac752463390882a5e73d85b141b68d5c259652d commit 7eabaa892d9c57ad9b2946f923d781e8a16f8e88 commit 3842d671d7556f33d5909d472954328201b8b530 commit 3f6a1e22fae95a50a2e4815305931ed1da5c9a12 commit 67fe7487fe8946f33009c7b5a7eafec535a7826b commit 67b7836d4458790f1261e31fe0ce3250989784f0 commit a8e47884f1906cd7440fafa056adc8817568e73e commit 5767dc9e2df70550552c856ebc4b8467767661f6 commit f9b9297b1facb636ee81f03be3658087067babc2 commit 7416cbbc9fb9b09ba7664dc0f3176c567685a83c commit e0106ac97886b6bc36c480de72562d3e70b3f8b1 commit 567172bbb4805a9d9e84e4621210212126703d04 commit e47f1691adbcbba22b364888cb34686d6c7d1152 commit 283947bbd5dd8885dbfbd86515276a9ce4a31251 commit 60971b204c615a6881f50c3dc9a2182551282b94 commit 1a80993ae37341c2017108d02975683076ace2a6 commit 61d2a9bec406329ad57e2ecf8e33338a21057eec commit 1e5d4d8eb8c0f15d90c50e7abd686c980e54e42e commit b4ceeffd13870b641a284ffb0f6fb4ffe19b0b14 commit c69fc3d0de6ca79d946a2715f8745a1eae69c3d8 commit c32699caeca802cfa3416f798abcff719d1633f7 commit 36951fc9460fce96bafd131ceb0f343cae6d3cb9 commit a06d565b4a1c032ff8a8d22ceb39c061443208d9 commit 504d3cae8b6718ab9c2fbef9e4cb56deb29ea9ee commit 9bb10b7aaec3b6278f9cc410c17dcaa129bbbbf0 commit 1e74c05b275cb4224f3f8c2240ab24486818a823 commit 6ed373b0d572cde539a461bf333661cb98595e63 commit 7bd571b274fd15e0e7dc3d79d104f32928010eff commit 627441f5a56e2ee119baf340b394cf4ec9c94251 commit 1099238b966e9b291fca40d908d6a016ce758455 commit 7ae1dbe6547c39410d82156c96eaa9c8cf55e87a commit 2d81c4cd78477e473dbdedd1dbfb67460fa53c58 commit fd234e7581162573742dfb8cc4dc0af3d3148138 commit e68d1e074d5e94b609de01a3ad3287d3d17721f2 commit 26a9f53198c955b15161da48cdb51041a38d5325 commit b5fefd01e8367763840e032bf1537747905a1447 commit f3f8f16b10f8258f1836e1110099097490a1d6c1 commit 82a10aff9428f1d190de55ef7971fdb84303cc7a commit 32953485c558cecf08f33fbfa251e80e44cef981 commit a03e3cb16dfdf4e39ed4ed80314256f9ba671ff0 commit f4658f43450478240e2e758f0532d19f921f9a69 commit cebc13de7e704b1355bea208a9f9cdb042c74588 commit abd74d262b07f33d6c298f1b2fe03cfcdb3c72f7 commit a38410860628909712ea6a2becd42bab56c70e9a commit faf67f640fa6c036d19727e294a2915e3fe5bf7c commit 37b42cf904e2ed92a612aa09481385cc9eb2a6ce commit 5abaa6835f42db7a20ff57447d60303cd81495f8 commit 4ce0c8e7cc1c81c2123a7b44223b0bffec00cea8 commit ca62297b2085b5b3168bd891ca24862242c635a1 commit fe82b93fc101beb6396193b1713029d18d740e7f commit d34b4288bd1e3c70ec6d790fcf1041e99d0fc85e commit 30c35a4ba9cd91e07825da8e2846887cb000114c commit 849ee8a2f0df7a4ed4d281e19d3c9824b8e60bc2 commit c103a23f2f297c6ab2e5e74e39b655439f3524a6 commit 254986e324add8a30d0019c6da59f81adc8b565f commit 12e8ed969852c11503216115952c84f7c2f4c6b5 commit 55cac10739d57b94de4626bcb009bcdafaa781af commit 0591bdad58c4b83a286872305e748bfd77d16d28 commit 775d1bee8fab737c9e70050f61ad5370d8733383 commit 29b41cf707b5ecc55cab12bfa04fbd9811f4fd04 commit 4d14d7717f19fb1125496b1fd836ca89f11d540f commit e3ecbd21776f1ff7610dc2c28b3b47ba8c23e10d commit 72122c69d71784e390527819754ea456421c4501 commit 409f07d353b3516c71fdf12d7fa576004f0167a9 commit c5dc1756dc98e730ebcaed156a05b961086dc2f0 commit 1a62dd9895dca78bee28bba3a36f08836fdd143d commit c3f059483671426266f681833bac6c09b0736247 commit 26f8c146924fac0f50157fe22d1948fcfadae9f6 commit d3708182cbc3404aa2f7fd5ccfa07328018f4bf5 commit 893a6c224a24be49ea5a30315d1ae5967598a43d commit 95ccb25e32af8a86286df215f19ab2c0418cbcc9 commit 825f0de2fdda691776b6f45af1d3c9ca3d5ff7fc commit fe00866c65602e94c1b6b3d3efcea3633330b02f commit 1b28c1c789d0c11be213bb5d892f9a094ab8e201 commit e81a3c12b88ab685ce10482c3f6d5aa46f08a6fa commit bd5a7886f5ff6899170f3acd85f57c0f43d0371e commit aad9729ec0e009440ac8c1a4be2204e4d3c08977 commit 6dbbff25b39565c801c87379bc85933fb436518e commit c0d5c293ceb752e4d91e40854196a13f3cc070c0 commit db1c1a8f0a2bb69eb9123b2d2a88cc7d3d49b13a commit aea9040c2df97a03b73a13ba124d1b6561e09c4e commit 2b595659d5aec797d2f469691cd543e9b3500471 commit f6c0cd55fed897e8441e41c4bd8220a39539bcf4 commit edfea16a6dae9c03bdc97babdd69960093263354 commit c1aafd6399a3fd35594778acc618075e1bac81d4 commit 9228742caf899fa72230dd8da19ca4c7528badb8 commit 0eaca1ed0d2f70e3e573ef103ddbde582b2b3745 commit a98ffd6e333583c9c3f57920c505a37eaf5b2586 commit dded35acecffe9b6ec881ddd42c6275a38fbfbfc commit 4b736ed40583631e0cf32c55dbc1e5ec0434a74b commit 6e9213287ce4d75765d2806986d4e3c7e4991b3b commit 43660b4ea53abc2be04be18a147a39e1f4cb8b72 commit f999adb7acb7d52aa8e8be0dc75f604d41e51e38 commit 7cb3cfc030640bf860bf8299aa00cdffff92a40c commit 7bb3956178e5eaeeab5134cf38e0f057bc2344c2 commit 4d2c09d68de2acec46fb471f5a358627c9dc3885 commit 2b396e75be74078640becb36ba8c01977bf1e0be commit 4c93c62e77467fd5e9a9fcfd708a50b23a9951e3 commit 0df2032ab72a47c531ff653d32d82df5e7d52e3a commit 4f17289f14da7fd255f330d0e6545251f81c711c commit 2024ccc8e28309d549578190ce0ec7a986069e9f commit 4688940a1e03fc2457e40aac2257fe55e97c8d3e commit fbf46565c67c626849c7ce2a326972d3008d2a91 commit 7138fc88fdc1f999a547657af8623d3a2a862fc1 commit 051ae8d59c321da4c3bc8ba7d75dfba7734e2c6f commit 55f86c2b030463f8c98e66911f4548a1fc0666ee commit c7850370574f0594993d21dd02c54d2a853d2d6a commit 0b6c67c22d2374a98890cc8b6204302f75e14cd7 commit a32d7d6b198b23b7d8f40efb9efe42779ea7b011 commit b059cba51979b3431b75e0c6f18e9f75e427537c commit 31865e96f9eb52ced6d5e23f9f3a5376f81c9410 commit dc622367c56fa0b5a911be73e22584b3cc69f5c5 commit 2d51f3afbea4184487132eed85ae83a13cd6b1c2 commit de534c1cb0313a070f45938a53b53927cd34e5b9 commit aee0c07a74d3f79aef553e3bfc6ddf184d33d3bf commit 67d198da2fd493629e498629781edc5695bbf4d9 commit c93aa7f33e94ee9d64277fa2a345dc30c127d798 commit 0db13eae41fcc67f408dbb3dfda59633c4fa03fb commit 0215ce9057edf69aff9c1a32f4254e1ec297db31 commit c0a561d96a281b91d48b77278714cf5b791a70bd commit 11efe095dfe0768f5b248b77a84e5aa748f14204 commit ab487ea8910d2a84f851cb87f2cb49adcb5b774b commit 1e88eb1b2c259994d034b0833cb489105a984ebb commit efa4c4df864ecd969670093524d3e8f69188e5eb commit 84c03df58d8bbf77feb2f199f10dbe8f7f72c782 commit 36516001a7c9cd7901673548ec685bd180b1b548 commit 76f5dc40ebb188b081e03783541856c03e97f8e0 commit 6455cb522191dac057d5cc4b3f24d5d3ae6a33ef commit 202a3816f37e49ab490ff4582f1fb34390e5824e commit 788c6e2ce5c74c0a22d4e44cca348c8458b3f01d commit 34fd6df7886989019d4f6996da2d2edfde5bcd34 commit 2b02d746c1818baf741f4eeeff9b97ab4b81e1cf commit bf77fda02411fe2cac3522f40d8d6882d27ac14b commit c186c13e65286a46b61f5c295f9f9c65c75c926e commit 4652ae7a51b78d7607c247228ac2a14fa0088bbf commit de930140bb578ebb075772e946e20db68550bf2f commit b5ac70369e3669df4a0c192c40c0e70c3e56439e commit 97fa4dfa66fdd52ad3d0c9fadeaaa1e87605bac7 commit 7da2bcda5899e92ef3442d5997154d8220245370 commit 2820433be2a33beb44b13b367e155cf221f29610 commit b8272241ff9df5b57e2777a07c1fe8af3d9cbf93 commit f7511289821ffccc07579406d6ab520aa11049f5 commit 7222f5841ff49709ca666b05ff336776e0664a20 commit 81f743a08f3b214638aa389e252ae5e6c3592e7c commit bb46a6a9bab134b9d15043ea8fa9d6c276e938b8 commit 1fd0da91a882a2421e7702201f707c5e06bba6aa commit d37a3929ca0363ed1dce02b2772cd5bc547ca66d commit 3e22193d8cdc0576cd2803da3cac9f4fc9222273 commit bd1b5799545ed838651c618c9fbf8fb8b5feeceb commit 13e3a038abe033b38db6313de7a9f55ac83ae422 commit a2c5dd9ec6409821505e0409814cbbf741ca61d9 commit 511a95552ec878fc59a294652ebbf73a0e8e0c76 commit 20ce5ed69bfee125b223bb0c6a731128caf07b09 commit 5fd1bea5c23bb921720b6c48ceba5d6415f2ed02 commit b79f85b7aa5a9ff9f702f40c6a5fe4a53e965cf6 commit f651a7b64cec907bd645dd7ce1739fbbe257bceb commit ba137e64191f313eb0e91eeb9a1a2db1b1d5234f commit 920da947af28638bc94bb0012ce8600ba2d06c0e commit e67db9d2fd33e1118b518deab45dd6cdcf3c62a5 commit e89838968ee4446073faa718e9303bd6341ee0d1 commit 5a2854e577dc2b4538711afb9d788a6fb835b640 commit 22de25f83c6b9b2df45fa346b632dcb9b6f1acda commit 8bf0d9cdf36b0bebf17b733e3f5158783d765df3 commit 36e88a9e4569df86e81dc75a7fc6f2d41f8ab8e0 commit dffe68131707df72c9a60f18fddd3732a6d3c676 commit 83923cb27323139f9e2185db9b3b1299e6cf22bc commit c0a76ae8743a8d6cfa5c06b5efa497139100bed6 commit d068b700432308962d1bb6da467d1dfb1358c2be commit a9d491d99ece898fe6fd5f7374eacb5223e1531b commit 6c5e25a0255d56e8455869cd7f90bb9be7478132 commit 58265640fbd9a57bca521c3d83012fff2cd15fc6 commit 3a906a0cb150a872a23f6204449d3f8b50693837 commit 5922231bd346da717ceee8d14b4361fd595e58ac commit 95f8138d669fd02e304e5e2531f11f4f335dcd22 commit 8d746ec4ab14e7cb82787c6f8bfadee8dd20effe commit 8ab3b0663e279ab550bc2c0b5d602960e8b94e02 commit 96c25b03145aaa0d2900cebf0349f13a689b01ce commit 0188be507b973e36f637ba010a369057c8cb7282 commit 561b31acfd65502a2cda2067513240fc57ccdbdc commit c4298d15778bf21eb4834768f04c0dcf7975dec2 commit 2b897eb4f5993a221dcd8e4f29fda3046669ed59 commit b09f9670b130380ebace4ce378ec04cb7d042871 commit 913e013e9e1a331b3cdc3d0a033e120d630a80aa commit ce086a32ae21a01e48d202cf85b43815a0eeccfc commit 3e853b9f89e4bcc8aa342fa350d83ff0df67d7e9 commit 2553bacaf953b48c59357f5a622282bc0c45adae commit c4a1e57b3544bd3d0252cf4e1d73d9a317de0923 commit 3e226e4a21808e4582020f813b041504f316022f commit 673515ba0249e47a0e69c56a16af24399c824d60 commit 6b931346ed0f7ec3238700d17742d092f164ddc0 commit 636f973c123fc64861cf41457a68302078b323e1 commit fcb0348912ab718a3613c13cba264aecc7462c74 commit cd414f4f59f64d7d2a249caaf387edbc5a874020 commit d1b3657fb5b66a40b4963f72834b193d18d0a98d commit 7cdae9e9ee5e29104010225007ee7a2f32ccdea8 commit 7b9a9e35e45def496b0a5b3f206bb4efa712ea4a commit b67e0f530fdf5671a94f079d48707e5ec5fbdbd7 commit d011db300ddeaefbcda6a7bb2a31a73d263bbca3 commit a1eccc574f977bd21a4ec8ac54bd73a2756bd281 commit d1c0cc8d0d7008856cf425c64d7203f95beed841 commit 5635adcb34b3f402dc013446d9e57eb534ab8c48 commit cc158d0e9b0866d3626a81c13542d3be8f1477a5 commit 2fb82d5a42bb0e69547a2d31340c50bbd3a3d276 commit d2ff2ef8c023ddc99e2d2e0c70ff307ebd7a6d89 commit e049497702acc5d16bc6493f68368963e0bef989 commit fe57235bc104f2389ae1a54ea2536c1b1d6a4611 commit d99c028941b37c412f1de35c59d96ae547be2d0f commit 03e7ac67e743195633455d7ecb4f7327e3797986 commit c94aa5e0407e23b9d51bcfd073d83d0e504705c3 commit 91affdf3517e9255443dfadaf6978ffec16f859a commit edc9f16763543e5f51f07164766fac8d6bc9e560 commit f8ad33797ab3dd3ea011c1d5f52ec684fe925271 commit 6ffdf8865dc52e33b9867fe745f681175b997209 commit 74b9a444baca40998d4b3c193b0a98b495fdb7de commit de7d09ffd5e74e3e1257944b3dd03357390b745a commit f8d221dd97cf054740017db9189029463c434a9f commit 038a24835ab68f341eaa7a0e3bcc6ce0f9b22e17 commit 0993234a00451e0a5c3e47d8b0f2e01dac6cedbf commit 01f05940a9a75e11a2be64993c44ad8dd06e6e26 commit 3b4723de0d9be3f2a1730c164987b6e0f38d7bb7 commit 49017304c099923289b0db676351307d95bbbdfb commit 8866d62716c918e5d09d8297281ef93155434da0 commit 75458a842cb59db8695a074d7a740321ff0a1254 commit 67f3c2096909c457c64f96954efee36e48299991 commit dcaf5000b054935780db718ecff8cafe6c183df8 commit 22f1482aff4aee39e5f3354808bc099084c2b64b commit 629fcf0b687e3244f4bc1ab0070074f836703b09 commit 28f7e8971846519720a83b85004ddfe33680be92 commit d6530c33a978c6d170125b3a2ca1d218b1863e52 commit 53e9d836ea7fa0bfe9950ffb92d50811a5e69f01 commit 6ab68650a10e89dc351cb12b42a89b8789126c13 commit c69d51395a3bd3905a3837691ed48c7c89ea3d95 commit 5640e06e60198d9abdf6c618c54d982d8ec9cc0a commit f81c31d975b463c24506d817a48390621f057a57 commit a6dcf9a7ccfed57abd44c24cc505b559281d44b9 commit af8312a38f713d0d5445277a57a1c8e4157da5ff commit fec70a8601a76272b08b7b8077b3c3e3c79bdb72 commit 474e2d491efe8ce516e743dbce6a6e75bac3b3db commit 566b6577849fcca743aa63d43793062aba62166c commit 84b31d484eb9759cb3d8fbbb7a0e191cc097ea28 commit 4648cf5fc8c78d71ebb22c9fca760062b7747ec4 commit 1aff0a5d71d23be6658f893c88c6a9791202bcb1 commit 9724ecdbb9ddd6da3260e4a442574b90fc75188a commit 53c4e64c6a0fdadc972217343f4439a96542f56e commit c8a76df60d5c4e38ed94fc46a05f7be2631a9839 commit faf0d83e103e38e8bf7cc4e56da1a2edb9dfdf74 commit bc37c98a3d44f705f30fa39a9b9f46a0837c856e commit 68070b76c4aac9369d7f84d802111ef83a7ff943 commit b79fe9abd58bab7363583d30d67a5385ed779616 commit 74e6a79fe8433ea0003d5308c566e68b3c7280a5 commit b3fec11d0dbf43d0b3df11ca71687e25a5698ce4 commit 9d8fdb04fb93bfa2edcdc15a2d48270829e9e95c commit 5d3f30e033ffdbe027add4f1366238cbde686d13 commit 4144334a41a577153913897922ead867ac9a27fa commit 54c7b715b5efe405dfd5fdafcaf930214b9c1fa9 commit 932698c88dc414e36e0683fbf6cf551b928441ac commit cd487b6d506329917bdd2a594b307aa469a53872 commit 98ef34186286c457b7fe6a73ece9b279438d645d commit 98ce7d32e2154a6676d4dc7e6877af68cebf8832 commit 5d04d13954479292dd45e38a46dfa31abb8dc2e0 commit d142d4113fd5c3f7afdb48dff4703ae7edddf53d commit 2792f98cdb1c8fa43bf4ee5ae00349b823a823b7 commit 825b3772a2047bd32ed3b3914234da0de19ef2e0 commit 8bf6e20253b2d2b614f2c0b491f840e956fa6b05 commit 6069b66cd9622c4b29817d4e19737e6f023b909a commit e2945e6c5111726536c6046eaa1b840636e066a8 commit d2a9692ad4295e227e3352fdbf14b8491b01e1c9 commit 313e9f63b74419ca14c2c09f581a79c7037ee0e2 commit 7fc0d011c378c6b2abc65cb536e0df0ee055ed39 commit 4713ace3246644519bf93cc8ea6e44efe57fc3ec commit f7f0085eec8d3c0c353d2e7bfa7fb54b3b925d7a commit 4230cea89cafb11b2c2e4dcac8b505e7a766b386 commit 328839ff93709a517e89ba1de1132c5d138e5dcb commit 8c042949af1e935123140ab6e6a3dff945194a11 commit fb4651f9e00dd4e07dce4c48d458abb50d276e40 commit eeefe7c4820b6baa0462a8b723ea0a3b5846ccae commit deaccddaf4921faa5dfc71e8936dd8daa98ba33d commit 562e08223a85f315122cd65e8f99b8c0a42b8771 commit 5f3401eeb064fab5ce50728cce46532cce7a85c5 commit 057e335c71361063e173381cecf2e8487ec8b552 commit 7108a1c1271dc4d26789002c1a6858b52f237cf5 commit c416a9e4e31eaec5a35417b056a22c73652db544 commit 05cff51055c1050bf3a730748db15eb84f34b31d commit c79503dc2ec2378d08cccb6b53da408d6bd6cf9e commit 3726b6e7c0f1842a2ffdfd5921c95f69c0524808 commit 22e3d9343b8292dfd8c72a5a539dc1ad4829b87a commit 7f544c5488cf5bc94b379de750e08fa3e146b6ba commit da9d669eab152dbd6e9410606a7c8c8a212a7959 commit fdc94d3a8c887e4e06a7ff8dcb51d55cd70e16cf commit 370808876b5cab365f8fc6dbaf8cae13a2bc6efa commit 65ba96e91b689c23d6fa99c11cfd65965dcddc47 commit dabc114e4bac903c365bfe6d7b6e8ed7fa38f8ad commit 4489f0fd9e01efac81d98884d5cf3fa708b9daac commit 0bad3200dffa26943ce2b561e5446cc3ac018bc9 commit 7ee938ac006096fe9c3f1075f56b9263587c150f commit 83842357c48ba9270bdf973fd21c8c1a2a4af72b commit 1de178421f1a95de408610c89655ec1d4edb9d29 commit 81e291d6f4296759df03666ca008453cd0e86821 commit abe3c66f3491ff14a5d616921441452f2c9693ff commit c14bff92abfe464974c795ad53625ffbb6d6ef31 commit b24343eaceedb902c1625854f85a193b0549d85f commit b0fbef65e227ad4ea81bf2ad3d17d073bd0c68de commit c7d18b40a80e5c0a31e1dbea15c9591c4150e0e4 commit b288d740f885648680a8f1bcfbb1039d16be3f13 commit 72f6107d2f2294f76d9fb086acd0b01690ea5021 commit 00000922a33d4adb06a947621f553cae12363083 commit 165d5133731a2e045abdd6d9d3c9221fdc2a556e commit 862643c7589dc97111cd59c471dca0b354f01eb7 commit ae1da08fb306caa8cc134b81ea68c537cfe7a451 commit c4252a11131c7f27a158294241466e2a4e7ff94e commit 14c7b2451adce947b034ce1891c2db9220a3e8ce commit c640f6c5570a6af904db37979d344ace8312c675 commit 6e889b1ce7f1be2bfcfe39a4bcc82b34380031c4 commit c931ef0041fe0a7b62b7d15774a831f3bc85713a commit 3f3fdc978b8dbac444f7187915a3c874b674bee1 commit 0e9b1e5be8656c0705237341401c78c26b6cdf43 commit 5747af7c7303a1ed438fcf51680b767dca08c5e2 commit 0ec2a5b291af32dcd2b52dc8c1d53c3037238939 commit af3004c9ac81a532a8106d1d3c06e09eb95f0dd6 commit 1aaba11da9aa7d7d6b52a74d45b31cac118295a1 commit 91f4228960adb6583a33af310912163469f49da7 commit 705c870179ae57815d15a9e783442f22030d3a7d commit 8cb1f95cca68421b08333175719fdd3615372ca8 commit 6e8acb6686d805ac5d127fb691e28e742248c523 commit 84f4ebe8c1abbe375babbea46eab746a0060e80c commit b5202a93cd3768b5f757dbc1c7d702772a34c9a3 commit 3cf15dc2f81f765078ca867eaf42400f26b2052c commit 90031bc33f7525f0cc7a9ef0b1df62a1a4463382 commit abae262640ef9c7f24bad65acade25b44c7ba0eb commit 5327469ec4c07977e1d824badadd2628fcd04e85 commit 5cc0de456749712c6840d5d9e5b3de1071932aa5 commit 09b9851776b57f7a8a132db55942fc3ee0fdd4f3 commit e1435b67afaef736f5001ba937ab5adb5bf4afa2 commit ee0285e13455fdbce5de315bdbe91b5f198a2a06 commit 556d5a2d4268e3ce860e85e032859ada1c64e1b0 commit b8bbbea1ae6441aaa2439f4fb5fb757d513833e1 commit 8261dd979e801a29f96e4996112eaaa65c04ea24 commit a89c957a955e00d9eac726551cb9fb386be1057a commit d19ccb4ca5436d7500f9fb47d71ea0bfecea52ce commit 8f1aaccb04b7cf63135f4e2748226dfa2fb01e3f commit b704eeae319608b48925869121c97c7bc1ea55fd commit d5701d8f5210f8c70ffd1b51283b2373573e7b5a commit d1837136d184dda0585a687c614a9117cc87ad27 commit be5c6b177229c5cb40f3fef785250afbfd669175 commit 04751a061ea055c4fa264f20f4558073c3d8fb2e commit 3a39841322be5502f5355a558617f0a56b2b3ad2 commit b931c166c47207c8c7bc7eda6c8881dfe0241389 commit 2b438065c3e538844a3b2b56f567303020bf97de commit 23a92abbf3ad44058b5d3cf57937cfb9de972c05 commit f328e96b764a603b3b70f0e9ef6ee052a78ed2ad commit 6780b94d8ed37a0f453a5bc90821ea669ac3c0d2 commit 3fce4c948e2b73ba6f6f2aa7e1c2f101b997e192 commit e85f436824f2e2e067c0a151e954cb403b483234 commit 8891698273b125e57d0d2b6a91451bac06e968be commit 2b9efaed4e4045a40944265f99f52b232df3347f commit ed58ee126c4da81af79ab40b7c6508a7100c7eac commit 5e3ea76492265fdbadd7a58963ff2a3a2e2e8be4 commit 67fcd5d2f3ec364cb7af2c307ed1999bedebb606 commit 749b30efffe58dc59c39c32673ac03010f822581 commit 28a4f5609c9aad29f921850d3fe58bec5074c86c commit 60d7bbb5b4b875d613a43e3be797ddd4ff92cb7b commit 76e1ff37b6872c9f2d11660258fc8c88b2f97b06 commit 6d179f84f274a87da51f24ac3e9427221bbaed51 commit 958e47977bd12e06752a559541867028b120de76 commit 091496e6cba32475ffa53a070d11d9a5a2f1f396 commit e752ab11dcb48353727ea26eefd740155e028865 commit e3890d84482a9479bf42ecb3ddc9e6030624dc84 commit 44df42e66139b5fac8db49ee354be279210f9816 commit 02abecdeebfcd3848b26b70778dd7f6eb0db65e1 commit 70b5ffb393f3f1fbb00ac52c5288d233ae6e991e commit 80ac788a8d2fc8904cce97b7873b6d8fd513a46d commit 014f0515a9e04edf4c35fbd89168aa33663b379a commit cf6c422bf55fa8ac2531d56a6d17408300a59e8b commit 0a93eeb5aef26f68ef247576662282a5d42c63d5 commit 562334d22a05a4793a620a9ef02516f3b8da9ec5 commit 1a324a40b452ae0a57676369c0a0150674728853 commit f161eb01f50ab31f2084975b43bce54b7b671e17 commit 80a892a4c2428b65366721599fc5fe50eaed35fd commit 3962ca4e080a525fc9eae87aa6b2286f1fae351d commit 92736f1b452bbb8a66bdb5b1d263ad00e04dd3b8 commit 41b4c7fe72b6105a4b49395eea9aa40cef94288d commit c6265f5c2f502e442c4f339f121bedbc990c12e7 commit d240daa2c40d384aa01d68163ce5c12625b92d10 commit d36d68fd1925d33066d52468b7c7c6aca6521248 commit aef98f2e1bc411a27f25db81574309b7415602ca commit d24eae4dd7ffb3e6de6080fad1297db8ab4b0260 commit af1f2985038fb2569786f3de64d7dd69f5580e03 commit 3234fac0f97671d55c466e8093e3bdf781dae329 commit f466b111a0c68dd3925deea37271f7aace2367d9 commit 5957a967599360477529ebd593e03f973dcb5fb2 commit 4db231d7dd80163fd251635f81280f1c93a393ab commit ceb4a5619c734ea679bf5a2446e6869056e353d4 commit 6091693a4bd1ba52e406cff44a4a9959e755c986 commit 7d67285e84f62fb5fd00405432ecf1b64f921091 commit 3cd658deb03868a2483484224baf2442bf4d0062 commit bf35dbc135854c809b5cb6bcce320838c6d1370e commit f825fead3570d7b7a13dd13b8d63209dc1acfe5e commit 80bd2de1db0f25c82c110433e92c0703e05e5ae9 commit f5211c5dedee48eac290940b1f1a67cbd5f8bf6f commit 4caee043bdbe375456f2db767c3e35dad0b3109b commit 3e4bc662eca6a18afb45d98ee5f6dafb5ea5787f commit 25a75f56be5c180e4c8e2017fc52f7e9a7a861aa commit 0b9ff428de417423ca87f77dd6e836be967831a5 commit a37558e63b636109b8a9a181b316bb3416be0708 commit 63d99a342a7c36a113d2162cb2cd267a333548ed commit bc517825c5d6c388cc7c668615a0b8f1b26ce513 commit b8c6b225d9d82b5245479960f62f0e95d611cc18 commit c54011512965ab221573b4d31ce1f5a279e15c15 commit 7afe3521bd405d878bc5f9b98d5db4682bcdf3a5 commit 14af917998a6126494423f8820a93982025c6963 commit 16a7004a2d7a2f8953daa5196d68766cfa120fcb commit 4082b9f5ead4966797dddcfef0905d59e5a83873 commit 1a593aa09000c513a912f250ddbe1dd191e871c4 commit cfa075982768840c468c874219dbec558722cb7f commit 74fa4c81aadf418341f0d073c864ea7dca730a2e commit 97cbcae3ff20234f6a59240df0b5d5fa238b3f9e commit 52b29307a98789853d87ed0a68031ec18063cba4 commit 3ad5dcfe00a22404dfa2168f37fecd500ab26a6d commit fe120b9f5ce873516a2604e4ff0c19084be94e8c commit ec64350d01cd45c91916e701964ed8cba383aa35 commit 28606c4e5877cdb27ea443b3f36e3f0bf9e7a5ac commit 28e5c9d601fb8c2f387516b095a9cf6ddf7c00d5 commit c964b86e322f91f409aead79b1b497b74ae0f795 commit ac84304d68c4b310e61b275317c0ddee1b746cb8 commit e89d890c1b4a29fd1871f9ce21e9a94720a10e98 commit 426714f89f7081ce8bf83546219eed6ea1511891 commit b5006f873b99a26f8bd36d691c09083495bc0a03 commit a8b537605e22bfe277e666727fa0e9e01f2c729b commit a36f72547e0eb623912957aeb68465e3c9f7effe commit 63bb1064a71d9372a643dbf1d00b736f203c867f commit ea2b852b656afaf6d45597abbcac8425fa6ab02d commit 75b204ee6cac4595cc663daf59b40162bbf411fb commit 27dd79c00aeab36cd7542c7a4481a32549038659 commit 1c1f61057c10107d15093522c097d9bf54703ae3 commit 2fedafc7ef071979b07fe9e9ccb7af210b65da0e commit ae8df8c9f630403bb74d3c6e9768fe3991d547f6 commit 2a867a85ee0251cf55abca75e745c5f66f76c125 commit 3043d13fefb9114a7698485552f75ad8fc3e7c2c commit 5ee33d905f89c18d4b33da6e5eefdae6060502df commit 5519fea915effccf57fa1369669f4a6bc6c44a07 commit ed8f4e1002781c47813e4e2b37ad15b927fd8b67 commit db8496d0b50519540e1ee50f7e209b3a536ed671 commit a5b44c4adb1699661d22e5152fb26885f30a2e4c commit 7423740b2515a4c8a70ccdc068c0ac4a2610a23d commit 6a4fef21816be4bc818905e07d47e0c20738e164 commit 24dc4f4c2a5cc97e340f440bb01f5f30fb4704f8 commit 8fbc9af55de0b274745e70118e20e0964e98bb05 commit 61b5d0072a88cfd8c5fda31a7c19d105187c8841 commit a51c7663f144606a5f08e772fa3e1e4f2277a614 commit b9c93f4ec737bbc6b6601284df3a14814feb53fe commit a972cd3f0eb50bde3823e8d1df8f6c1b0c673ecc commit 67165722c27cc46de112a4e10b450170c8980a6f commit f2c7959dda614d9b7c6a41510492de39d31705ec commit 06f66261a1567d66b9d35c87393b6edfbea4c8f8 commit b25f551ae197293e1efdf991f47a70e8da616845 commit 4e936b65211a578ad1291967fb2344abd9488cc6 commit a8da6c18b481efbe78618dbba18c2db3241f4fea commit c173a91b760844074abcd636eda47d3b2c107a64 commit 2983b869881b169288909b4ac93f407fe804a75a commit a8b4114d112530440c00fd5bc01e4497480fa4e8 commit 40a55b842bbcd3d79b7a8ff7c426b22b6700768b commit 7c1da0683e2adb969005ea195cb6bed22f844a69 commit 2a4d292f056b35f54cd7788e124937fe598369c4 commit 10d29bdceef79602af4136c14a6ec391ec3a2e7f commit badb30270960df505cf245bad8844c227731fb0b commit 459b26061a67e63e5aa24c6f2ad0546943357e43 commit 4f73dc7a079e15379bea0a70945ba1a7e5c16657 commit f210d8d28aa39fc670e7d80040ab1561abd77883 commit 33898377feb8ecf45fa29965bd1618e0997f76aa commit 18fd7f8aaedfd40e19ed8228db856326afbd9aa4 commit 883631771038d1b0c10c0929e31bbd5ffb5e682c commit c9a9f18d3ad8acb9f9d6b52b5e1922a70b48dc35 commit 4d6d94ba8823a2f4e48c56ed33cb77061c1f425d commit 845e730eaf36d2199e25860259611ffda8e07f6c commit 6a17b4d1b52f10a44c45eea2a9222088e7c9e573 commit 411de2b5ac61a29e1e79db44539f69bb9b35a34d commit 9469d456c6a28494dd9d5cc16e17cf2d4c15c571 commit 14aed8ea48e2f5c710ab678e1ba32b9f398d40b2 commit 779cb5ba64ec7df80675a956c9022929514f517a commit ef5cb493a9acd7d97870d6e542020980ae3f3483 commit bb8494423e2e4dbac9ece7eebba421011bafe389 commit 5a08585d38d66dd64b8ae22229bdfae3fdc1ef3e commit 2810ac6c753d17ee2572ffb57fe2382a786a080a commit 3735040978a43c25a19aa8015ab1a50dffe48f79 commit 9919d119fbbc913c2459b093eb81fe8197906424 commit 5f284e9c5aab5b12eb48a2cecc7a573c3b4e1cb4 commit 772a5803922a097eaf94cf865c6f4a81416aedb8 commit dbc9a5fb168deb140722c12d8332b25754def017 commit 3c67ce061b2136e0578734bae82fdf85c2c76217 commit c61d04c9eb4354980839cf938488ca703eba0f83 commit 1cc064dce4ed0ff111b6d6cb06b3cccf1cba29f5 commit 94d82e95219a3c581435480ab395eb04f569635f commit 86e11e30120387cb5c24bdb3a169a2135973a0a8 commit 9578a10d4a2b4bcbbebefb4156c16c82ee725b3a commit 7ed34927254ae9eac0f6b0ad7e7c2bceb96fcdfc commit c5de248484afeb6de259239a23645790038d9df3 commit 2e4026a1a24d53651c80aca7e683cc86c96ed9c4 commit 419e505dab203b85facc782ec34d2d98601644ff commit 5dff5d092ba6c5485aac1467dad938c74ba6ed57 commit aec11c8d7cb31c67deeba4c9fe015d09735c6813 commit 691fdba39e7fbbaf2755c31ad3800810185cac8c commit b43f9afb81262d6c150152e2831a000b3c1b5d11 commit 1a2dbf0303e8793444a57a2eec0c6b29523657d9 commit ff168b37a96736c892007730e703e74d5a23ca48 commit fd6435ea32d9243d116dbf50e7f1a8b33e01262b commit bd2eefd018e5a8066b7bc66d8e200fbe3095ea5e commit 14302ab0d6550ef0ea48f213b0ab13c9249de185 commit f5a5b08139e8fdab024c1e52854e24fe1e8b428b commit 4cf3ae9d8e9a5f77e8a1f69f17c92dc59ba15154 commit a76766664a9f91dfde906fecd1409ba596a30e33 commit 0e909e4fa8895bcef1b1ef2e39b9f1a158933ffe commit 981f8866754dc5aec6864b877acb248dc33a7bc8 commit e7447128ca4a250374d6721ee98e3e3cf99551a6 commit 4d562c70c4dc08294d6063dfa8d027d81e90e2a2 commit b2cfec52feb3bb737c4b65018ef4bfe9789e4be8 commit 1fb4da5f7858d78570a9f726e98f96797447b32e commit 42b4c479025d92b2a4869bd233f20159ae9ce692 commit de4149730d9d72f50d4e6dfedad0d11b1df05b7e commit fdd9b7dcf1ad7115b2d997e047e8e978c474736b commit cecdd52a3dd312564f81a39df08378b7b39a2654 commit 99e067637862c902f741744eaafe1472091937a5 commit cdf7911f7dbcb37228409a63bf75630776c45a15 commit 625af47255d9b30e22d6c98b7f5e97adc903b98e commit b7d70b8b06edf25c4b7526e20f5b3d11175cab81 commit 7fa5047a436ba27696e344d974811d9ea07ba249 commit 786119ff3280dcffdf11c605534a20b4070012cf commit d7d5a21dd6b4706c04fbba5d25db8da5f25aab68 commit f3823da7e4ba7d4781375c2bb786a8a78efc6591 commit b2c077d001b612b1f34f7e528b2dc6072bd6794e commit d39e48ca80c0960b039cb38633957f0040f63e1a commit 1ad0510cf730d8556fa7ff067b72aa960dde454b commit b5a24e13c8c8b2c98d114b16da40712b80d5cfc1 commit 3ccefdea226ba3f3b69f9e868d2b1c9995b56615 commit ea1deabc6f11575eb3375b454457eaa3c9837abc commit 49f6f6483b652108bcb73accd0204a464b922395 commit 929ae7c2e3adbbb2c2bddcd16854a6b11b56e95a commit 82bbec189ab34873688484cd14189a5392946fbb commit 8ba264f418f734aade3a77086bb1d51d0e2723ce commit 287bfaf6fee974caba7dc7b874b29c27b1a2dde9 commit 065695b3da984aa1ed5d619f3c307be1f564bec2 commit f84a27f9eea51df5c704ca16a00c6df85a31f805 commit 89e790ec1a1ed930b58b0aebe50792acad90723d commit 04500bfd7053482a1a4a81f86b57faff5c788199 commit 9df56e5632c5055ba2bbb6c8c593a4da15181be2 commit e27a85c1757655e2e7bd09164b87bf75627e5604 commit 5fba65efa7cfb8cef227a2c555deb10327a5e27b commit 9079363eda1ea0d9fa2cc5635e65821d8ed4f994 commit 8d8d062be6b96b1ba95a3f1a9ecaf218c9458497 commit 19d06582c47572be9635cf126195135df0720118 commit 44222656ecff73974c637b6b9c9bb5415978ed08 commit cdb015a61190060094152ff8ff6c6f34b616c13c commit f389e7ac8d8a9a17bf59507d02ffb756c19b4af5 commit 8d18373a0ef91845781755492510e00b5a912a0a commit 1164c92b2d13648fb156fe547dd1273111f05e3d commit bd80b0dd6a431aa23b70ff91b6905c1b1eed2f9c commit 7732e289c557809a4a92a218abe04a5f658ea5c2 commit 1119f009005ea89dafac298aeb3231cf2cf2a9ef commit f196198cafb8f0f2bedf1d8abc755f791fc03648 commit 618e51cd526cbbb2ea9ad01ef1f67719b775f792 commit 213eca2b0c042b024bf9697a278619f887bab4e5 commit 62f03dad76441ee3a58c26a0bbe703028e846db0 commit 9af357bc3e05400eb632f3975986e1eac196f159 commit 059478929a91acfeaa5cd2c15b6815e1a2c63f17 commit 1bb745d7596d2b368fd9afb90473f3581495e39d commit 8782007b5f5795f118c5167f46d8c8142abcc92f commit 120ceaf78e28f20ec7244c021d24d1e409572be1 commit f04b8af5e9fc42a8e3b26ebf3b8ccf681a064985 commit 276f7b4bd52425cd0ae38fd7bf870d94abac6b82 commit c4aab3499be2abd8671e5f3f70a9d38acd8e4ce4 commit 11b6005865e47c4cba862678936628175acfa16e commit b4bbe4761ee2d4127eb751737dcbf47a310a9f86 commit 041f5c416217e375c4d27a7ea905548e70d1a3b8 commit 62bb839d48ae87d6aa07259ff6bc8d049538d1f2 commit 3a745f6ac13216f85c3804654f4c703995c17180 commit e317a69fe891382a8be712d4aa03bf01b9af229f commit 9b926bcf26369ffbe347b9e76977f8425dd10f8b commit 52b36510a175607b653e6ab0fffaca64ab8903e2 commit 39def24f8c0f86a2d2edc52c694a1cbb41aee69e commit 5d55e1d02a49a7f27893a5ca5a3c3ef28efcfc42 commit f3409f76a6588137946c96313ed500b68bbc6021 commit 1b0f0f7b8be58b378657c1dc6a0806b5e7bc4783 commit 40a9634b4f09a63f69a373af5d4ca7e69e6a78ad commit b11e193093fb9dc9bb5a2468b81ba3a76f7871b3 commit ab1a157ea7e13a9cf93fa913f59a6bc2ffa6fa5a commit 6d4496bcfe1c73d5c97b133c31c8f779b4acbac9 commit 8e7a49e09e5c19a3a9073894a9d41a7ea0a0981d commit 4d77b7e53410dd4b1fe3e1313c3982e682cadef1 commit 018f7300d4f73522ae02868234b13c4b7c433fd9 commit 69bacf1545206ddf5e1cdcfe868b78f33bb4ea5c commit e86c30e951b50301fbc80e0ba7f6ffdc16e4fe85 commit d2cdc01451973235e2b83ea85493817705a48263 commit f7f28f268b861c29dd18086bb636abedf0ff59ff commit 9c224e058dd9ae9b03602d6c86d44f0d11e21ba3 commit d29fb7baab09b6a1dc484c9c67933253883e770a commit ac18b610fd95762125cd6a7194cc7e2e3b94e3ed commit 1991481828a84dcc5168f1e9b818311cbde86876 commit bf224e00a9f54e2bf14b4d720a09c3d2f4aa4aa8 commit f5442b35e69e42015ef3082008c0d85cdcc0ca05 commit 7b1b3f5818c33da2ab78fe62d34ee7bacc93cef0 commit 79978cc76f050d6cf24880645519f54aa6843da3 commit 8ef23f9268fc4364fc79bd017c2ed6a6495133ec commit e8e5cc645b2d6cfcff58d02743543eeb37e2795e commit 4ed793083afc2bbf22a7fb5993efccf3b5bcde25 commit 37403ced9f2873fab7f39ab4ac963bbb33fb0bc0 commit a78d43738ead68a40acf7da8a873f47a9f6e6eb3 commit 53c8ed46e81636c39528aeb7c3db353a906ecee3 commit cf31994d0b7c2489d0b83a53b510fdc1e4c731a9 commit 0cdf91bf67b782bf3548cb3cce8ab923a13ca6fe commit a1c9a1e27022d13c70a14c4faeab6ce293ad043b commit d3981ee76dda3370d2f51ac0c528dd4dfb45cb97 commit b0d58d1147b8b08241f4a0de018241dad804b1db commit a2f00188137940432e898952fa61e45adaaa68ff commit 828d9a872cdfffa7c650b9cead166d33187cd942 commit 3335a13535312c9fad4d8d1307a621e6617d6ed8 commit cebbfdd5f099a16d57d9221cec76882867839ad3 commit 16b34622f7b18d017c59bd648415cfb64a842d96 commit 1d44ff3d7a71d290d351bffab6160a26a966db7e commit e5a6702e513627f6924c43ec9dddc526ef6dd145 commit fac7c51d62f3536a66e47f3da076803016cc355f commit d7001e7285f933584788edefb7350dd5a09a7463 commit 0b872f653915dcefebba845949f968c01d91bde5 commit feae1bd80ec69a3a0011ba1fb88994785f705e3e commit a389789c0aaf8428cd44cac4f92c8786505f5f1e commit 5011f2915b70703a0347f97b8f2ca0b56ab49978 commit ac754358c68214f9945bdf9cc565fa18ce1b0185 commit dd4d6791eb0164ba59d3e105135188c355d80fa2 commit 9aeabe1988551f797f6e0cba0e7c2d4549cc3a4b commit 16e7a0db6ec9426fea36313b95c36624d983258b commit d4d17377e01f017fd5a22f68f13e7ab342f97551 commit cd8fe5b6dbb3a487bea5f1601437c013a3d56163 commit 1138398d71e8e583669fcec96784471332e488d4 commit a33c8f71d3d85ff1c0284270f710b071d480d547 commit 359d36e67da9de877c13c4b4ea6209a5e07264b3 commit 89b154091ab44098668614b52553ae3917eb8215 commit 39feb7b16b107625a0071e5bb8ea19ee89be2a9f commit 3eafcddf766b6bb8e6308ec2d587d4ef7a4381e4 commit 711762415ddacf54b1c973b208073438de5879b4 commit c5879999641f7860495cb9655de6775c96999103 commit 34a658b7e7128b35daf71cc003fbb659f914f7a7 commit 87107261bb73d7a8945f3cd37a6abc7befc327bf commit ab639f326e48385eeaf65fd129d3ff6d006cbeef commit d1fc4e391fbd321dff166208e58e30d3196626ba commit 712f422ed70c6778018152896d6b4e5ff70fb2b4 commit bd0fdd31c1023b9d94a470ed5bc301c3f9d80519 commit 3b7d5663702373358d58987a3684f6c59443d9d4 commit e0b1ef58d98ae0feba98190c9faf192aabceb811 commit 976a368b7198bf666ad3d273e10ed82b3713af3b commit 430ce0c7d3a3b2cdfdafb527d2f89be4267ac45c commit bc5f983a3d8d8e5a5eddfaf11275bbcef04017f5 commit 16cf693e31bdb423f35ab24081575ec9699303fc commit 7e696546353f659f60fd10616e04a2aa59ab2ac0 commit c55b73f391a726a45cc014464ba7ebea5f1d7386 commit 825535f44fef606e5b4484ebb8cb3827db59037e commit 8979918af711b057620c7c5f9d29a0043f927753 commit ebcabb8b15708023b71b7044fdf928454613d118 commit 9796a5b2725d1b3ddbbe7b1f3dec56af8cc6af22 commit 3acac2d06a7e0f0b182b86b25bb8a2e9b3300406 commit b108bdd0e22a402bd3e4a6391acbb6aefad31a9e commit 450c27fc9e9cf74ff9b96dd813817133e0f50cf1 commit 0f752b2178c988117927154fe3b1d2e619c80c57 commit f435b7ef3b360d689df2ffa8326352cd07940d92 commit 207395da5a97035f06360638f0c2fcd92963ce95 commit 41068c8b28e16f1c2c26c854271520e1f3afaa22 commit 98a07b82d8ac43f1cdb4fee8c340b020372c9392 commit 63c154a0445aa58a1ecb933e6117327b67b6dfa0 commit 75a252be27300c84c83c96399fa36fb5f6364124 commit 2792aed16ca7e594916893698f526ff31eeed237 commit e6a1e701edd0ef8fd51fd50e11bf29bbb2f37313 commit 5c908cd57eeb857f107732773a653c89ad08e9ce commit 445a1b818e20fbfff5905bb9070da703101a5c00 commit b29b32a2ae5a6753cdbe13cf2e64c752743f1923 commit 0b81afa5b6d245809d3cc0613adfe6098695253d commit 71d93eac585a5f94433d7d4a7340a0d7081d925c commit 98a1dacc246dad474c9f7ddf4f0c7e92d49a15c3 commit 6adba2903fa16c0c55b1f1e3f6506c407a26ff88 commit 0f923778f47bfc8c47fabb6a93721ae71a6e6702 commit 81d4baaf4b876589a72a500d45f2c67bbe82bcc2 commit 5d9543162fd6686e83f86a448fe2ba2e7a5ebbb5 commit 2447c731fe55a36accdd7aff96670d69c06c2372 commit a915450e0e44e9ed2a87fc5b3208d5ce01554a8a commit 4ed22f1e52426635873416007d2c12e09615165f commit 605f7c73133341d4b762cbd9a22174cc22d4c38b commit 26bfc3f36f2104c174dfc72415547d5c28ef3f1c commit 689e61a4fd6872537913b998101f364fe79a4f70 commit 7f6947fd36f2c562040ad5a2d3d1783440a4aeb6 commit aaee4bbe8a1aa6833d6c42c7015ae63c489fdeeb commit c1ebead36099deb85384f6fb262fe619a04cee73 commit 6f1ccbf07453eb1ee6bb24d6b531b88dd44ad229 commit 764b1c8df40daf618b293b367f9be1f4fcd1b6fb commit ce7498acaa88ac3db5385dad2317c03006c49837 commit 8cc0b604f2345c304b7ddc828b880f4f3f21816a commit e09220f42b5c28dae51a3cf2810afcb4fad9909d commit 899ff790d1a94dda9bd09a4a6bde01fb7ff0bec8 commit aa7b93eb94ad6d883016bffda670e028fe168051 commit ca161b259cc84fe1f4a2ce4c73c3832cf6f713f1 commit 4224011374d1b4228a59b73149320c61eeb700b3 commit 4b51210f98c2b89ce37aede5b8dc5105be0572c6 commit a80c882183e36b483734681c830a332add912186 commit 77d08a2de6a43521f5a02848f11185b6f46af21c commit 69e6dd149212cdd681201352a79e6634665004e8 commit d670c78ea7564f9baf915c8e1dc5898a9e6c360b commit 1d1e434dbe58ef31abc60135957e0735b62fdcad commit 673aa1ed1c9b6710bf24e3f0957d85e2f46c77db commit 1935f0deb6116dd785ea64d8035eab0ff441255b commit 36e239b5d509c1b564669e7ca3d016c444bbf808 commit ee4cce0a8f03a3332ccf48ef8b420a65d02d1fcf commit 5d844091f2370f01752c3129b147861b9dcd3d98 commit 23baf831a32c04f9a968812511540b1b3e648bf5 commit 4a06f6f3d395d15eb285606f28b74ce5dbc77e52 commit f2c7ca890182d24ac817fa321489346000271c5c commit c501ca23a6a306a7c11631e02a26c8e0a768d64b commit 379989e7cbdc7aa7496a00ee286ec146c7599cf0 commit 322458c2bb1a0398c5775333e1e71e1ece8a461f commit e44f18c6ff8beef7b2b10592287f0a9766376d9b commit 4dee3c4b32a65d6b140ed506a7a8859d5cab6611 commit 4a1b5d183273ef402edb7c7ff58052ae97259a2d commit f86286569e92a260fbf8a1975f9421b4a66581d8 commit 52b113e968be66b57f792b2e2a9b8b77f382bd5f commit efd8127454054d6d52040c17f7fa1656ac3befdc commit b358793c3bf231c455c55e0173256a86483997a8 commit 4d877b1a6e855d1c8685fa0e27ad7a521b31b6ca commit f1af066bcfd38daa9eee7195ef772dadaaa18520 commit ca0376ba196ff7ca5fb55e333a94ea23530ee888 commit e3adc46da349d4a4cda1c58d8186c5bce0b011fd commit a25c2f7a467265fa24d63fb6dd46fa7ba4e3b108 commit 5790d407daa30356669758180b68144a9518da0a commit b8d85bb50511c901d48fc34ea8f0bb958042fbf0 commit 78f0929884d4811c225fd2c57ecc602c84c07392 commit ac9aa21bdf40828583f73ae755dcee6bb1e9b3cb commit b8aa52913b84f8b59816b95c28d03424a100df7f commit 490438469d493e8f764bea14d47eaf4c2ae7cc80 commit 35d86fb626a2554de5d5916b6e2d47d06b483d37 commit a37a512db3fa1b65fe9087003e5b2072cefb3667 commit fd35174e13f98f9232c4aa66689816731d34ca28 commit 67abe9c6a8077819aae490dcd3b9629c2e87bfc2 commit 980d5baeb25cd65b7a791d7499daa07b34346def commit 97998b893c3000b27a780a4982e16cfc8f4ea555 commit 63a4d258ae1b975cd0dd1f0623f50c119953abda commit 583da1b82ac51f0631b6ab699153f16b241dd40e commit 9eb28ac1a25a2117ea5544ffcce59fcc1f128e1f commit abaeafb1b1fbeeb9e18638c6edbe9db31750c163 commit 0efa70356882ec2a843122f02892391ae61fc4d3 commit 6f6869dcf415f7c222057a3f07c23667e1758585 commit 385c3e4c29e1d4ce8f68687a8c84621e4c0e0416 commit 0289e0ed1b9ae20e7b682fc7ca30d2d324a47618 commit d170e938f01fc8c5c41f8a12f0c12491580829ef commit a2a0bdf1989c38ca2fc356edd23a114172ee09a2 commit 554836cc24411e4d3645db5392655f8d28d1d47a commit 7727e7b60f82e8265a1061b81379f5a7bce0dba6 commit 9dce8c2a5f1bf5a304aae39342816f099247d7da commit d116db180decec1b21bba31d2ff495ac4d8e1b83 commit e38dddcaed60c0692b77a7af355d34a13183cee1 commit 52f1783ff4146344342422c1cd94fcb4ce39b6fe commit 11f25c844e29f85abb0b3ffdb360a2f82a2c4ed0 commit 207bbfb63dc0eb491f71e96baa5db9c25626a247 commit 89317d4255122f05aaa0ac16d189a9ab3022653c commit af152c2120587b02e03dfe370b52ba75c40f8952 commit e86bd8b21d57670e38c23ed435a053e7e4cc9e21 commit edd48e6d8f341dcaf1c0a45f4822172d33e75129 commit 5e08e9c742a00384e5abe74bd40cf4dc15cb3a2e commit fc926faefcb7fade1abc05043db540f5c0fef79e commit 5591a051b86be170a84943698ab140342602ff7b commit 52a3a40ee4f89c89026837838f7df386d64c2892 commit 86f3a961f367f5796ed1915cc8253e21c2a329fa commit 418431bcc9ae6509263f4f3bf4b6a80f39da0772 commit ff38d974bc2842797d1d75f5060afd1cea4a76a9 commit 75bf1df75d5e9a22898c5b6c3410ef8ec3a0de70 commit 94aec514c872250887e435faee333c9da741cd72 commit fdf8ea814ae48d7f5670bc7c3bf34101fb58f7c8 commit aee89b7d0929bfc6530a1468d34e0befc1991389 commit febc9c65b37f6f5cc03ed0b6d613fb045c39b376 commit caa4dffa9abd80f3360432cf89236f018be355ca commit 58bc2a9cbfdd4abdbfaafd835a0cd78bdad11423 commit 3e3320a7d96c1a5c66b60fbabb38af1f4c4fae1a commit 00fa40353bf3894adb495f8cce10a8bce43cd375 commit 27488686cb1835f1c69d3efb0eedeb411f675d73 commit 81900e3a37750d8c6ad705045310e002f6dd0356 commit d8dab40a8b37fe8207e1edf68205c709b477e0a4 commit 6246059a19d4cd32ef1af42a6ab016b779cd68c4 commit e69c373c3f0c1888b4b758e37d05e2e7b76585f2 commit 318e431b306e966d2ee99e900a11bdc9a701ee83 commit dd299441654fd8209056c7985ddf2373ebaba6ed commit fd784a418ed832fbadfa846cef61741fdab0377a commit 6fe2ecdba34445a17049cda73a399d9685189efc commit f03eb1d26c2739b75580f58bbab4ab2d5d3eba46 commit 0512e9ffebca0f9a91f6e54b0da90976dce2b025 commit ff742e0ca3db876eb152a5d6bdcf7654ef6f9398 commit 73c4b0f83693604ae5964c68fb23159b823b12ac commit afa351a15d80993f8ba6ae28652cc23127237e37 commit 501e2c7d42d61bd5f473cc719db431973959e55a commit be1c21f17ce2d1e8cdb6d27b88a5346cfebfae49 commit 2efc8e1001acfdc143cf2d25a08a4974c322e2a8 commit 56e51681246e574dcb2e13fc071c2945c7667c83 commit 7c0f7ee00c7d52e7ef1953e151a7f5d5fd5db64b commit f22067419e9683f8fba40ca3a0d56fb3106c7c6f commit fbc24293ca16b3b9ef891fe32ccd04735a6f8dc1 commit 8855818ce7554fb7420200187fac9c3b69500da0 commit 83688771400895ce39994f158362a3c666993504 commit 70bdfedaaec12dd47b24f16a59d31ae1bafffd99 commit ca9beb8aac68468f1778ad0e0fdad4e204f91393 commit de7511aef767656950d1c236a294c1b941f14ae7 commit 6a929fea7f80fc968f26baceecfdb5129d159c98 commit 88c7ad91e378775a08f54b4a85068d51b5cf52f3 commit 5e5d4b39ce2098a1d09064eb8b4e6b6b9a0cbd57 commit b805d8d785e49cb3ee9279dad1402d5dcf902166 commit 0530553ba842884737a689ae5fac11154dcf3122 commit 541372bb62f289f4402cf55be51fb9cec7373627 commit e82c98f2ca439356d5595ba8c9cd782f993f6f8c commit d1691bb22eba23a0131f1bde41d268bb0ebb0f59 commit 631420b06597a33c72b6dcef78d1c2dea17f452d commit 803033c148f754f32da1b93926c49c22731ec485 commit 5dd45b66742a1f3cfa9a92dc0ac8714c7708ee6c commit ab4f869fba6119997f7630d600049762a2b014fa commit a50be876f4fe2349dc8b056a49d87f69c944570f commit 4de867fc237487ce2951a8231d7390237d3f3be8 commit 8d9cdb4674f6e4e7fc789f8184a58c73eeadc16c commit 38eecbe086a4e52f54b2bbda8feba65d44addbef commit 764ba43d34ac5fd16e0e377643f89a7208f1f67b commit ef3d74aa7e5d0ba4e9fc00f1409652e29f46fc59 commit 83aeb49c8c467e9fe77c4f01c80472a4329db49c commit 0fdf06e449b6d6d970c0709c71a8738cfe551ecc commit ac7485cc363f2c603a3e1a7a609ef065ad56b19b commit b62f91569f9aa54b0a60d46a022482415cb968a9 commit 64626c0ee13257e330bc09fa6a169385c0eaf9ca commit 0c1f033159712b3d071cfe4a3ec0f36f1914453b commit 2c69679626d5daa680d71c77ad58af0088db537f commit 4327a6137ed43a091d900b1ac833345d60f32228 commit c8687694bb1f5c48134f152f8c5c2e53483eb99d commit 02a8ae723225afae25ddf9d2c7ca271b3f856b5a commit d944eafed618a8507270b324ad9d5405bb7f0b3e commit 21fc506cf5ef5de9c2cdc04036e35169d2b3e7d6 commit 13525645e2246ebc8a21bd656248d86022a6ee8f commit 0d68683838f2850dd8ff31f1121e05bfb7a2def0 commit c8cc58e289ed3b5bc50258f52776cf3dfa3bad66 commit 793582ff47f8b73be8d3d925d750bf3ef79f33c7 commit 98f99e67a1dc456e9a542584819b2aa265ffc737 commit cf03e2956af307dc25e8c41fd4cffe44482a6ec1 commit 474f01015ffdb74e01c2eb3584a2822c64e7b2be commit ce560ac40272a5c8b5b68a9d63a75edd9e66aed2 commit 822b84ecfc646da0f87fd947fa00dc3be5e45ecc commit f11aee97b13ea6817287cd8dbed9b09a260ff0e7 commit 3fb7efd6866e5d43770e999b33d619a3b345dc2f commit da5e14909776edea4462672fb4a3007802d262e7 commit 025ce392b5f213696ca0af3e07735d0fae020694 commit 0c0463ff010b80a0c03937ca8cf85587ded2f20e commit 3cf7cd3f770a0b89dc5f06e19edb52e65b93b214 commit 56d8ce9d8c17bea955b0c2551ee86149486890ae commit e0cce122514ff76c3c986103c94de68fbb401949 commit dd24662d9dfbad281bbf030f06d68c7938fa0c66 commit fc3888fe2c63b35a22db8234d142823a5ffda9d8 commit b1bcdd409d2d158867ce0b71cfa9bcefe83ce07f commit d1c5c3e252b8a911a524e6ee33b82aca81397745 commit 425afa0ac99a05b39e6cd00704fa0e3e925cee2b commit 99d92eaca5d915763b240aae24669f5bf3227ecf commit 989cd3e76a4aab76fe7dd50090ac3fa501c537f6 commit 3caab67db1f69e077fb12ac194d3cd2a4de06d8d commit 9675b3ba99ec79273d94afa09e9b69e2b8c0d238 commit 08da182175db4c7f80850354849d95f2670e8cd9 commit d893f39320e1248d1c97fde0d6e51e5ea008a76b commit 32f7ad0fbe7521de2a5e8f79c33d46110247fd7c commit 556eb8b79190151506187bf0b16dda423c34d9a8 commit cec24b8b6bb841a19b5c5555b600a511a8988100 commit b6a7828502dc769e1a5329027bc5048222fa210a commit 7fa8a8ee9400fe8ec188426e40e481717bc5e924 commit 25feda6fbd0cfefcb69308fb20d4d4815a107c5e commit 70cc1b5307e8ee3076fdf2ecbeb89eb973aa0ff7 commit 1816f4a17f54a01afa2f06d6571c39890b97d282 commit 6ece90e3665a9b7fb2637fcca26cebd42991580b commit c8c2969bfcba5fcba3a5b078315c1b586d927d9f commit 74a49415144035f171751d55b11ba04c9f348f9f commit 4eea7fb980dc44545a32eec92e2662053b34cd9d commit b03f38b9bd90d9eb29951e56f5a4375984c8dffb commit 13af556104fa93b1945c70bbf8a0a62cd2c92879 commit 08c677cb0b436a96a836792bb35a8ec5de4999c2 commit 922a76ba31adf84e72bc947267385be420c689ee commit 2397e3d8d2e120355201a8310b61929f5a8bd2c0 commit 100bd00881f8553d0ccfc99a575966d990c455eb commit 8f586cc16c1fc3c2202c9d54563db8c7ed365f82 commit 682439fffad9fa9a38d37dd1b1318e9374232213 commit 1253685f0d3eb3eab0bfc4bf15ab341a5f3da0c8 commit a26cc2934331b57b5a7164bff344f0a2ec245fc0 commit 6f5a5e8670587d5066aacd0235071a166ee458fc commit fa0d9c066dee8f52eabcb8416459aa0568b832f9 commit f4c41a7fd7f99329e5af0ac0a236504a60bfb17c commit 1bef84af084e981550d9ecc3359baa22533d7b99 commit 084f51d473cd566eab310d5da56fe7b68d0b10be commit 2da5bffe9eaa5819a868e8eaaa11b3fd0f16a691 commit e6232180e524e11205d285bb27045bf2c19db265 commit e7ec3a249c38a9c9be3a1eeb0142fcbaa3bd02d9 commit 476ac50fc30540e29191615a26aaf5f9dee91c49 commit af7828fbceed4f9e503034111066a0adef3db383 commit 58d9b9a14b47c2a3da6effcbb01607ad7edc0275 commit f57fa0f23d9707747272b0d09af8b93b19cf8ee4 commit b504f99ccaa64da364443431e388ecf30b604e38 commit 720b47229a5b24061d1c2e29ddb6043a59178d79 commit 6c032c37ac3ef3b7df30937c785ecc4da428edc0 commit 8b229ada2669b74fdae06c83fbfda5a5a99fc253 commit 275dac1f7f5e9c2a2e806b34d3b10804eec0ac3c commit a41d985902c153c31c616fe183cf2ee331e95ecb commit 0ff80028e2702c7c3d78b69705dc47c1ccba8c39 commit 79c901c93562bdf1c84ce6c1b744fbbe4389a6eb commit 5247f05eadf1081a74b2233f291cee2efed25e3a commit 4a76680311330aefe5074bed8f06afa354b85c48 commit 5b94db73e45e2e6c2840f39c022fd71dfa47fc58 commit 996e93a3fe74dcf9d467ae3020aea42cc3ff65e3 commit ad81e23426a651eb89a4b306e1c4169e6308c124 commit dc49c3b1d463a99fb529d2a69cc0e2270d6cb27e commit 9235c21c37facd131b4d126ce7535ca573f850e3 commit d8843eebbbd15b78c6a7745717b3705eca923b0f commit 50282fd57bcd3525c9d81eef58df8718e4337c6d commit 5896f2d363d5cfb7510856c90d5e0ed934a1d340 commit 1aa7f416175619e0286fddc5fc44e968b06bf2aa commit d5aa417808cf14c052ca042920b3c6b9f1dc6aa4 commit 8173cab3368a13cdc3cad0bd5cf14e9399b0f501 commit 11fbdda2ab6bf049e2869139c07016022b4e045b commit 9d2d1827af295fd6971786672c41c4dba3657154 commit 68518294d00da6a2433357af75a63abc6030676e commit c1a322a7a4a96cd0a3dde32ce37af437a78bf8cd commit bf4823267a817f7c155876a125b94336d7113e77 commit 6d600229df1ed06f46ba68ac706d9f44ba8c5fb4 commit 79ef1c9d14c65a5c3f7eec47389d8c2a33be8e8d commit aa8bf93101a185b49f83c9137453571a08be6e76 commit c47d122c5ba5f3b3371cfe051d770b5bbd591f6b commit c21f11d182c2180d8b90eaff84f574cfa845b250 commit 45dfbd992923f4df174db4e23b96fca7e30d73e2 commit e79d85c6c217221ea32354a5ac0587a7ccea02b9 commit 60ecaaf54886b0642d5c4744f7fbf1ff0d6b3e42 commit 7fc602dbfd548045862df096910b7d21e6d300bf commit a34fc1bcd2c4d8b09dcfc0b95ac65bca1e579bd7 commit 0d2dd02d74e6377268f56b90261de0fae8f0d2cb commit 40baba5693b9af586dc1063af603d05a79e57a6b commit 137f9cee113df91107cf91c130d5c414c4b191f0 commit 482e6ad9adde69d9da08864b4ccf4dfd53edb2f0 commit 13aa38f86eea7f95eca4909c075b3b511dc3f500 commit 5502d1fab09df791a8b1208dea9defc418b9bbf7 commit bed61c8fc7ba17d0f259c674137a5198fd2e3334 commit 6a07826f2057b5fa1c479ba56460195882464270 commit c1d35412b3e826ae8119e3fb5f51dd0fa5b6b567 commit f1373a97a41f429e0095d4be388092ffa3c1a157 commit bfc03568d9d81332382c73a1985a90c4506bd36c commit 55e02c14f9b5fd973ba32a16a715baa42617f9c6 commit c14fb01c4629b96b64ab54caea7e543a0239f14e commit 8e1b45c578b799510f9a01a9745a737e74f43cb1 commit ac1d8e2f074d9bffc2d368ad0720cdbb4c938fa5 commit 6889f28c736c357700f5755fed852a2badc15a7b commit 020c76d983151f6f6c9493a3bbe83c1ec927617a commit ce784421a3e15fd89d5fc1b9da7d846dd8309661 commit 30b2d778f629d51e2ff30beb6d060a0bd7f70104 commit bc3e1d60f933f823599376f830eb99451afb995a commit e490d60a2f76bff636c68ce4fe34c1b6c34bbd86 commit 663b930e24842f3d3bb79418bb5cd8d01b40c559 commit 62fe398761cd06a428e6f367aba84732a2f1c268 commit 3692ababa322b4d9ffbd973865bc88018e896fcd commit b6ccf213d95e9373ac1f7fbcb5de3b52eec0ddb3 commit 40023959dbab3c6ad56fa7213770e63d197b69fb commit cb2e701305f4ffe3a107c1d97f8588b4ed48ccb3 commit 2d6f2f79e06571d41eb1223abebe9097511c9544 commit 79d0150d2d983a4f6efee676cea06027f586fcd0 commit 30c3d3b70aba2464ee8c91025e91428f92464077 commit 2a1eb1a343208ce7d6839b73d62aece343e693ff commit 1d13c49cf4e246b218d71873f1bb1bbd376aa10e commit 38e4ced804796c5725e2a52ec3601951552c4a97 commit 99b3886f8674502e967b1d050e40aa669c9098c1 commit 59de751e3845d699e02dc4da47322b92d83a41e2 commit 3b3ffd729e7e3ad706ddba4bb84358df5d43a647 commit d511f95938bf9e75ab73ace0ab1cebbe9a13df4b commit 73c12de8bee258b51bd418f33dc59f2c6e5fb5f6 commit 982b173a6c6d9472730c3116051977e05d17c8c5 commit b447b079cf3a9971ea4d31301e673f49612ccc18 commit dac652220ba0e5a2ef2da2a47a60b60aea333fdb commit e1a600208286c197c2696e51fc313e49889315bd commit d6d4f0a1189313310d77f1d5a2bb6277f3afa13f commit bcd84301a33b7434a506fdb1a9076b7a234817a7 commit 11d24327c2d7ad7f24fcc44fb00e1fa91ebf6525 commit 95011f267c44a4d1f9ca1769e8a29ab2c559e004 commit 20a2ce87fbaf81e4c3dcb631d738e423959eb320 commit 1dbcf770cc2d15baf8a1e8174d6fd014a68b45ca commit 55b94bb8c42464bad3d2217f6874aa1a85664eac commit 94034b306ddde4a4a9c1a597ae7f61f04b710dc7 commit 87af86ae89963c227a3beb4d914f3dc7959a690e commit 5b711e7f9c73e5ff44d6ac865711d9a05c2a0360 commit e61f67749b351c19455ce3085af2ae9af80023bc commit 3eb1a3a04056ba3df3205e169b8acc9da0c65a94 commit 7ab1a4913d0051cf5196ef7987b5fa42c25e13b6 commit 7ca302d488f80cf4529620acc1c545f9022d8bb8 commit 7ac9be96b0113a34c33110b32912642bdc8ff33d commit 9db5ec1ceb5303398ec4f899d691073d531257c3 commit 34e5a54327dce5033582f3609eb54812a8c61b90 commit e749dd10e5f292061ad63d2b030194bf7d7d452c commit ea2062dd1f0384ae1b136d333ee4ced15bedae38 commit 7c5835bcb9176df94683396f1c0e5df6bf5094b3 commit c8a5d5ea3ba6a18958f8d76430e4cd68eea33943 commit 9930f518b6a82ff10a3d13e0cbde05cce04f5930 commit b7cb3821905b79b6ed474fd5ba34d1e187649139 commit 54d217406afe250d7a768783baaa79a035f21d38 commit 8ba90f5cc71701aa262f222effead02206b04227 commit a92b7d26c743b9dc06d520f863d624e94978a1d9 Signed-off-by: Mika Penttilä <mpenttil@redhat.com>
2023-09-01 05:07:01 +00:00
.set_deadline = dma_fence_array_set_deadline,
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
};
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
EXPORT_SYMBOL(dma_fence_array_ops);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
/**
Merge DRM changes from upstream v6.11..v6.12 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.12 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: Conflict resolution: diff --cc drivers/gpu/drm/amd/amdkfd/kfd_svm.c index a6b5ab89b7ca1,1893c27746a52..db88bfc044b5b --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@@ -2677,15 -2727,13 +2727,16 @@@ svm_range_get_range_boundaries(struct k return -EFAULT; } - *is_heap_stack = vma_is_initial_heap(vma) || vma_is_initial_stack(vma); + *is_heap_stack = (vma->vm_start <= vma->vm_mm->brk && + vma->vm_end >= vma->vm_mm->start_brk) || + (vma->vm_start <= vma->vm_mm->start_stack && + vma->vm_end >= vma->vm_mm->start_stack); start_limit = max(vma->vm_start >> PAGE_SHIFT, - (unsigned long)ALIGN_DOWN(addr, 2UL << 8)); + (unsigned long)ALIGN_DOWN(addr, 1UL << p->svms.default_granularity)); end_limit = min(vma->vm_end >> PAGE_SHIFT, - (unsigned long)ALIGN(addr + 1, 2UL << 8)); + (unsigned long)ALIGN(addr + 1, 1UL << p->svms.default_granularity)); + /* First range that starts after the fault address */ node = interval_tree_iter_first(&p->svms.objects, addr + 1, ULONG_MAX); if (node) { diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index a69e861eb1130,eef03d04e0cd2..56a4041f5ef5c --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -12,8 -13,9 +13,9 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> + #include <linux/spi/spi.h> #include <video/mipi_display.h> Commit list: commit 9fc97277eb2d17492de636b68cf7d2f5c4f15c1b commit 7c0389c615b5c6aef1b0e38e30db759b3cbff885 commit 627c961d672d3304564455ba471f5e4405170eec commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7 commit 67d90d679eb3447f73e2a1fe55f7e6c6a44c9fa1 commit 2e524668c440104633af1effcc85d1d6234c7ccf commit 96e7ebb220f8a873321cfc5a87bc4533d36ec444 commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 commit 282e6f846d8c3fcf36293f68f38d814645c3b852 commit a708f6501c692551e3d4ea618c44021f436730d9 commit 04e9c0ce19ac68afd8be7fd54772db3b0356cf75 commit 9dae9751c7b0086963f5cbb82424b5e4cf58f123 commit 466a6c3855cf00653c14a92a6e9f8ae50077b77d commit 3078d9c8b6a0939bc732fd1c36ef86c0178127dd commit 01570b446939c3538b1aa3d059837f49fa14a3ae commit c55f79f317ab428ae6d005965bc07e37496f209f commit 01e0cfc994be484ddcb9e121e353e51d8bb837c0 commit f3a47a269119ade7ea22d0465c7fbe518ca1bdfc commit 74e3076800067c6dc0dcff5b75344cec064c20eb commit caaf1f44a6a27bae33eee189842c4d8fc21c3b02 commit f592e01664b4a57b109fcf6f6916145517f94bd7 commit 6be74ddd0609959b4005f88b6a4d4af678e4a71f commit 9c62fb62c9f0761eeda8f2a9517e007ff2cdbe9a commit 8e9bf0fb10a79aaed37474600948cd33d14aa606 commit 4c44f89c5daee9540cb7428de5d835bd00951350 commit da966b82bf3d16f89a05732c933a589ec798d3f7 commit 10efe34dae798c652053d4363871914c478f1475 commit 3756310e9fe1e0182adac89cedaa98c0eea66675 commit 1dcfca093be9e013a53e3c9b74b3f60ea9c5160e commit 014e597d35816b56c7aac1348b77c73657c4066e commit c4ce398cf18ae2859cc9930a9486b576ce262de9 commit 533ca79cd9f734aae56814445e3f1e6cc1a50358 commit 56ab6986992ba143aee0bda33e15a764343e271d commit 3d122660dc70029d9cccb4e8670125f0affa959e commit 7b5bdae7740eb6a3d09f9cd4e4b07362a15b86b3 commit b2013783c4458a1fe8b25c0b249d2e878bcf6999 commit ea74bf9ccba9ae80fc0766c07c4abaef927e9e63 commit 7fbad577c82c5dd6db7217855c26f51554e53d85 commit 33891539f9d6f245e93a76e3fb5791338180374f commit 24179ff9a2e4524ce83014b8827a73ad03a25c13 commit 7f58ebaccb67cb22b2936ba79c844f1e446dc73b commit a16b680a2140e6cbda41ac144564696c3ee2815f commit e4bd1db1c1f771983393bf5574854dff26ca7532 commit 0e7f4e6a20d550252c4f355d5a303b1d9c8ff052 commit 76299a557f36d624ca32500173ad7856e1ad93c0 commit 9d8c094ddab05db88d183ba82e23be807848cad8 commit 71733b8d7f50b61403f940c6c9745fb3a9b98dcb commit 993d36ac99efeafeb7b5f12353def6d7d20d6389 commit 0daf44ea9dccfcdb1fe694e9ea85497b6cc3a065 commit a4d5ce61765c08ab364aa4b327f6739b646e6cfa commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588 commit 4613aa66e42ba1b0c896495a207b3b26e94e44d5 commit 61fe488fc78a3024b8d4cafc90a34158f4562dae commit f6ca930d974e473fd608fc9aa1759fbe731fe44d commit bd85e00fa489f5374c2bad0eac15842d2ec68045 commit 57c2b3e684ba3e82e9944bc1975e047bd1630537 commit d6e850acc716d0fad756f09488d198db2077141e commit ff10c99ab1e644fed578dce13e94e372d2c688c3 commit 0237368193e897aadeea9801126c101e33047354 commit e97701a069612ba2fa1d92b56a720b108049df4e commit 3b0974d7b74a908d1caa27f05a97551943e1bffe commit 09af6037128c101c280c95c56d970ce8475506c2 commit bc34d310b578952d37b5200a7fa7475ab2a2bd5e commit fd5a9b950ea8ba2c08ce07418b36b296a04d712b commit 6c9ee258b1f4e7021224c9bf541fe6b17a03ee40 commit a5beee65241d25ad20dd814668c975ba13a42615 commit da9bbdb97469383a2ac97435a3b09543d14139fe commit 4c46e34e67587b268abc3916c9613426018561e6 commit 94900000380300b230dc1bed489b598a2a2c55a1 commit 6a1738b3fdd92d48e61de438d05dedbc00fc598f commit 566ad72ba636b745beb8a440bd4c05e779b95728 commit 4290eaa8424905dcee4daa0666ec841dc3a0bfb3 commit f89d7664c3617836aecd291c56c8ab63fe228fbd commit 4d722029930bca7f53d99dbfc300a40dc297dee6 commit d43caea1faf5c31dc02aa1adb8bb1aa1c33bf86f commit 43a6faa6d9b5e9139758200a79fe9c8f4aaa0c8d commit 6f1cacf4eba7a3203f08954a7e00b744e43f741c commit 4c3fe5eae46b92e2fd961b19f7779608352e5368 commit 86c5b70a9c0c3f05f7002ef8b789460c96b54e27 commit cd3a2e8b0a0367c636cd82efaf7802cf85ae5dad commit 7bb97cf915884956311352eae3f444eaaae48cea commit 3ac9384061b250ee40eda5facff10b85e2d5d3d8 commit 45d30c828c613441bfbe5c97ca766854152b7181 commit a237f217bad50c381773da5b00442710d1449098 commit e1a261ba599eec97e1c5c7760d5c3698fc24e6a6 commit e02cea83d32d3a616c9ef8b6b50a83444a6bbcbf commit 7dbe8af13c189f5937e87e9fb924d5bbc49e6f71 commit 452bca0edbd0764ca0284239d5438b3edd305ab3 commit 108c972a11c5f6e37be58207460d9bcac06698db commit 54f07cfc016226c3959e0b3b7ed306124d986ce4 commit 8d79acd567db183e675cccc6cc737d2959e2a2d9 commit 2b808d6b2919cb2fe92901e5087da7b4ed4b9e07 commit 523f191cc0c728a02a7e5fd0ec26526c41f399ef commit 8a92e2a67f627e69dd52aa9c2d3176be13aef2cc commit 3849c6ff3a1517e4c8a6d004d9cb31241c849713 commit 775d0adc01a55fe0458139330415d86bb3533efe commit 275aa53f59df769802f28a0a623019aadab2e05d commit bc657615e10ddd7637dcc05811194ad7e2baea33 commit 99e0fb8b087120b5a7019f1cff6c5c2b5b925ae5 commit 0fde907da2d5fd4da68845e96c6842497159c858 commit 5e4e1ed6b87b6b3a3531cd8b5cfa9c3b09d841b2 commit 104bcfae57d80c484185c012cc0ee8d8d5889a7e commit e4a0251d36fc6c190c545aa95702eec0efe05a4f commit 7108b4a589cd6d3a2c1276fd610b3500f46de66a commit 0c977ff2b807aa53f655f095b0a306f18d8cf7be commit 3d0c4a62cc553c6ffde4cb11620eba991e770665 commit ce8c161cbad43f4056451e541f7ae3471d0cca12 commit a2387e69493df3de706f14e4573ee123d23d5d34 commit 2149ded63079449b8dddf9da38392632f155e6b5 commit 754c9129b9494b2b058add1d1a627fb3c9466a03 commit b345b3542d66fea49bff53288d347ccb06fa1b3a commit e8f834b559621d634a939381caf99a024e272211 commit d6460bd52c27fde97d6a73e3d9c7a8d747fbaa3e commit 5cd522b5331b348302fe410dab1cd070e4fd6998 commit ad16682db18f4414e53bba1ce0db75b08bdc4dff commit 89c6ea2006e2d39b125848fb0195c08fa0b354be commit d5070c9b29440c270b534bbacd636b8fa558e82b commit 9f774c42a908affba615bbed7463dd4f904dd5f1 commit c2c2a91f3868515969a758042887fdc722216525 commit 3a9b77cee7502f7450c725d4ead2c4a44924d158 commit 7e33fc2ff6754b5ff39b11297f713cd0841d9962 commit a522b285c6b4b611406d59612a8d7241714d2e31 commit 61ac035361ae555ee5a17a7667fe96afdde3d59a commit 0a382f9bc5dc4744a33970a5ed4df8f9c702ee9e commit d930c19fdff3109e97b610fa10943b7602efcabd commit be1dcdffa8fadc22ad272f605a53e2a2fd30e7f8 commit 2885d283cce544cf3619f35f0acb3d073de036e1 commit ec92c47d7d098e85eae7fb25c6bc07158686e675 commit f6f22012e6c73867b959524604984ee5ebfd105f commit bd40536ae33911bc74df5ba3b29b573dcb72f904 commit 8bfab7cd8335b10bad92e44f58c5a038762bcbc3 commit e17eedf56ea7afacd919a3d6cc75a617cddd003a commit 8f3d86f13eb2b37d86fc48df8995dffd9b7d9010 commit 37db1e776285518a7e1269b868d094a4532b2d54 commit 57ecead343e724b6ea38e9c2d8f794b293cf2951 commit cf1e6edbd1c8ba654f97071ccb748d87ef0115aa commit 9790bbe3ba48b659c0152f49552f6abc18f85bc8 commit 25ec7e809cc1fe9f01a71199d29092f6f1b4611c commit bc3ca4d94369838c3b6668a183467d4a69a5a482 commit f00bfaca704ca1a2c4e31501a0a7d4ee434e73a7 commit 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f commit d4b9b6da5777bb03f36f01bb6b05c6cc303ededb commit b26d9dddad7bca6727069f6a26b265d303c65c49 commit bf32a3a1268638442ac43b347e4a4a09044dccea commit d5e79eeba3086a52593b295ac4bf6eddd64d4aad commit 9c27f613d55f8ffeb3f250d9d34e41edca3df3b5 commit 649b93dbb902ae3237fddbe998eb1f4de1a14b71 commit c8a31ff6199f12ca65d73f1235117c1d9e6365a9 commit 8af13c3fc1259c1b8cfc4459d3701fcf41ad74df commit 1fb4dceeedc5f0d1d062ddc44c4a426e1639e387 commit 19cc4b7d75b52df2b4fbb76428a6b0dda3d248bc commit f763c3b543d80ebcb94dd19a69324bf2b72b23ab commit 08bed7e4ff24f90e200defcd2c23e70b0a3cd710 commit 43796955a89572c63f7f96e271a2849c27d18f2d commit 00bb3223bf7cfed3c9c714e994cbd454cc3e6b73 commit 1eba165aa40c79f65f487678c8ea8e77b1c6a5a4 commit ccb54d7d91d256485cfe5403a12abb0175ce4539 commit 0f1a93704a5cf53ce819a7c544125442666d61ce commit e84f798a93881062cd14ce316a68068edd50bfb4 commit b68417613d4134b9e39fff95e72ca726268b47db commit 4ccc8fdcca670edd76d8bfd6389f04c448cff6f6 commit 5f30ee493044e9ea3a46167e5597a96f5c302adb commit 0961367cb5208850a123d235d147f92f586b2491 commit 98579743c4561acc3b1c7d2f3fcd46b2160db5ba commit e8d77cfdd2698039667432b8569bac34d13508c1 commit bc2fe69f16c7122b5dabc294aa2d6065d8da2169 commit 3c9154310af71802de2f40c5689b66009a407f37 commit 5fc77c26970d443f1c020ee8a5d475ad6b81e15f commit c83ecc0bee94995117329fccbfa6e8b43ce56044 commit 218784049f4b90834dd7b854857df0b7e0f76567 commit f5c783868855bbecfc4311050dbaca4cb28ada5e commit b3c9c9affd71f1f9b136534d6f56f392edb78620 commit c18fa08e6fd8952e88fa9ad108371c2bd5b82564 commit d94df7cad26b4c5958fbfa550d65794c89aa90ba commit f60881ca126cf825b89b4118e93dbd82ea9bcf33 commit b995c0a6de6c74656a0c39cd57a0626351b13e3c commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 commit 3718a619a8c0a53152e76bb6769b6c414e1e83f4 commit 5559598742fb4538e4c51c48ef70563c49c2af23 commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 commit 35ff747c86767937ee1e0ca987545b7eed7a0810 commit 892abca6877a96c9123bb1c010cafccdf8ca1b75 commit 906fd46a65383cd639e5eec72a047efc33045d86 commit 5d2c102deff63ff8980dfa848ee41858d255c291 commit 2563391e57b5a9c1d83fd36c05ac4cbafeb5efe6 commit 5ed9481db74740fd33ec4079b29db88e8c9f4a1c commit f91a9af09dea850d83d4b217b8acbafd97b5c61f commit 39d496d4721ba509647a70041f38d82b03c74680 commit 4e8eac98046446d99cbbed740f0767204b839f3f commit a41d58fb91248557438de4e8298d1d2ed5b39564 commit f82200703434522f1b35d38bdef02486d22b2f25 commit 9932ca4c03c8181601f611dd366fceb765329800 commit 0beca868cde8742240cd0038141c30482d2b7eb8 commit be1fb44389ca3038ad2430dac4234669bc177ee3 commit fdd5ecbbff751c3b9061d8ebb08e5c96119915b4 commit 6d64d39486197083497a01b39e23f2f8474b35d3 commit 323b19f424486e61784e8797a8bfb2e24585e162 commit b8d3782da396215615c3d125f0829d1d06ad2c97 commit 08cbe68d4aafcf651a86730a485df53e6ee9f594 commit be7a6a5171649c39f79a6259518218351082bd99 commit acce1eb8eb5de360fd82fd900454ff180912d8b1 commit 748b3c4ca0bf43cec186ace2ecb33457d7a4653d commit f59549c7e705be0087d08bc116ccc767b86d8362 commit 48eba83018c14ba6c102f5801d31c398807535d9 commit 6b0a9bf72c04cd8d2864fccce42817c24b060aec commit 2d67c4b54909982d462bfe227279d1499b329545 commit 60a9472cf0a8568f32be6cbbd32ee7759bffe215 commit 90985660ba488cd3428706e7d53d6c9cdbbf3101 commit 78dd6a8d33a3363fb4196e173be0eb4002962798 commit a6e23bec8ed184ed2a11080b28cdbd7a3024f0c0 commit fb1b5e1dd53fc834e12f69749cbc8484382599c4 commit a9ed2f052c5c14e4be58c5ec8794dffc87588123 commit 27cdf8c3cae2ad1dbfe1a32ff999c98349366862 commit 56631dee2932dbc203f0abd1011aa9d3d621e206 commit a7e8467fbeee654e390aad1736291d273b407a2c commit 7a38efeee6b59d0984ff0470d234a06fe6a7cf3c commit ca82ee4e9fc1443f9ceec615918b299766432eec commit f2ac52634963fc38e4935e11077b6f7854e5d700 commit 4df9e2200fb8ae7199e46eaffeb9430bc0ba3ea7 commit 666f14cab21b17ccc1bdfe1e82458aa429b3b7e0 commit 93381e6b61804b777f60357d96d6254eb10b9b56 commit abf839f5ebd98134f51764f2a2841faa6cbf268a commit 80237bfc031cd74cb8abf0d21094207284d56a48 commit fec5f8e8c6bcf83ed7a392801d7b44c5ecfc1e82 commit 585e3fdb36f59c5cfed0ae06c852dc1df22b1d60 commit 49cfaebe48e97500a68d5322a8194736b0a2c3cf commit caaf576292f8ccef5cdc0ac16e77b87dbf6e17ab commit f9e292cbba21e79abea7315b41a52c36ea2b6980 commit c86ad39140bbcb9dc75a10046c2221f657e8083b commit a11b36ba9c1ac494c6a5cf7f1a5e68c1ce4dbe18 commit db54a725d57985c869f6fe4153a36cd229ab0b73 commit fb91065851cd5f2735348c5f3eddeeca3d7c2973 commit 72dc6bf159467f43667bead6016965821186490b commit 3f7477bfbb906ec1cd9ad681475a04a142345eae commit 6fa4bf3dce0668a96faca0024e382f4489a9cc9b commit 332315885d3ccc6d8fe99700f3c2e4c24aa65ab7 commit 14d6ca0740e6237f4bca2dabee4e240b6f4be508 commit 0cf80506918da0d2cd9d31e3b07831f94a2c5cc6 commit 94beb4ac1b3bc5fbeef977960a90ee4f594b4465 commit aaa21e6a33bae017fc190bd75f76baa29d259346 commit f52ea01925f4eeb967c09cb5dae61608a2330541 commit f7543209ce5dc09e3f5a27a7d4ee53e226283719 commit fa53b23ff7c98930c7e529b8f5228d9f182ae2bc commit a90e1dc25c064bf21353cb342aac938662a148e4 commit ec0d7abbb0d464619d6d1646f03603c6616d966e commit fae1879dc229249c17e5fd4ef81bf33684ee58f0 commit 1a03b0e6c5fdb476203be4f4597205ff8799369b commit d925c04d974c657d10471c0c2dba3bc9c7d994ee commit 3237403b98e173c296ec83cbba5e9def331c5e13 commit 58ed441367b9b0fb48aa8cd471a73073d1143e16 commit 8732594017d32132ca741f4ec4eec91211f5d10c commit 779ea9d32612f8e78a2f362d52cf31c23ba878f0 commit c8a0222dedf90e9a79b88814e32ffb43ac4beef6 commit 0352e39e7e781fe6a408c70a336d0f321dfe108b commit bc50b614d59990747dd5aeced9ec22f9258991ff commit b7e99058eb2e86aabd7a10761e76cae33d22b49f commit bdf606810210e8e07a0cdf1af3c467291363b295 commit d81873f9e715b72d4f8d391c8eb243946f784dfc commit f22f4754aaa47d8c59f166ba3042182859e5dff7 commit ac2140449184a26eac99585b7f69814bd3ba8f2d commit 12fb3e9c88406732749fb2f111911a2438eeb0fc commit 7e60ecc2b70adb41b92752cbcd749040e00b57b8 commit 9c7e69d2e1245fdd5fa5c65cd022530b2a5ef1b7 commit 68e599db7a549f010a329515f3508d8a8c3467a4 commit cba7fec864172dadd953daefdd26e01742b71a6a commit 4b6377f0e96085cbec96eb7f0b282430ccdd3d75 commit eac3b274aaea11ec4ade8e8f684055db80d5f8b7 commit 22a9d5cbf88a92ac6cd473c3ba1c369aee8fec9a commit 834368eab36922595a402b9e76470f8efa2fac7f commit 8284951a6e79c6806c675e5f68a4cd425dd56bc4 commit c395fd47d1565bd67671f45cca281b3acc2c31ef commit 015b8a2fdf39a4c288ff24e7b715b8d9198e56dc commit a2737c404cb2c1c335db30737925a306a2e7cc11 commit f53f526f7050041718af84e33fc24f670e7dccdb commit af4808ac40dbf668183d0b69ef6b31e62e1fc5df commit 4b95cec68937a6302c7085b26258cf721d726684 commit 2662b7d9d8bc1dda1f89f0dd33422e069f2f861c commit 39879321769cc2d9a690725959ef76af92a38ac1 commit 48695573d2feaf42812c1ad54e01caff0d1c2d71 commit acddd5cf70e609e1e1e638ac0422977ea2b4783f commit a7909022371dc8c70bdc4871a97cc49e34d78a6d commit bc6c2a6f6495668e3cf0acbecf820b93ca03aef7 commit 5ebca62eb8ebff67e2c8c4903bdb4f3c07922114 commit 238352b4949bc5c724f6adc1c78d50f1d15e4759 commit bd4bea5ab2bda37ddb092a978218c4d9b46927e6 commit 61eec998c9399d1cce91c7a2f51a4d0cfbab97bb commit c60ca14bfd2d399a66f7164e044b63991c6a5a82 commit 708899133615bdb8087cafa129b8e24397d0c79d commit 2108cdcee58b06460a8ecb106d15ab69f5bd49fc commit 6482253e6e1ad1c3a76645a3899d3cfdb5b918cb commit 76a791fa0926e504f262310cbd0c8f1a60e67ae8 commit a2b4da9501c120d60413065169f140bc3d2e5991 commit 66ac3451fb467ce44fb1d4517f91db7390b9fa6b commit 7214da0ed2220a2b9ad22aa77a5974cdd2a62799 commit b46119578167150810184494b2a097c40e2144b8 commit b049504e211e8f4dbcd40434f2dcab2215ea1039 commit 305cd109b761202d71f2f655ea369fe889ba1d01 commit 3b37e2725ab32c9055bec00ef41caa63839efd37 commit 0b071245ddd98539d4f7493bdd188417fcf2d629 commit 08ae395ea22fb3d9b318c8bde28c0dfd2f5fa4d2 commit 47c0388b0589cb481c294dcb857d25a214c46eb3 commit 517fff221c1e6b8a8db69e7a440116caee120ff5 commit 629568d25fea8ece4f65073f039aeef4e240ab67 commit 1a394b4f504f33eac8c38b6f42ba025105c7e869 commit 31b42af516afa1e184d1a9f9dd4096c54044269a commit d34f4f058edf1235c103ca9c921dc54820d14d40 commit b4224f6bae3801d589f815672ec62800a1501b0d commit 3e307d6c28e7bc7d94b5699d0ed7fe07df6db094 commit 10ba3753665f77314cb475e1a4ad0785f4770c4b commit 83b501c1799a96a41e163973e88826253ffadfb3 commit 773884e39bb5a57f998af48b3948308568027a54 commit 93183c9959d456530ae502865586522acf21adf7 commit 3c8d2d5da3e29f73fec6e04a424e789422f697db commit d969b31afa439f71f810076a5612596dae38fd86 commit e814902866ed22bc07d2af1303f3183357a438e8 commit f4aa02c43969c36213a7fd4e56831693fc83ec4b commit 351a88713b6daae5435d683ddab1913a65d09eb2 commit 8155566a26b8d6c1dd914f06a0c652e4e2f2adf1 commit 17c6baff3d5f65c8da164137a58742541a060b2f commit 75c3f06fd900e01a68b8ade17e6b6be64cfdc9ff commit fdedd77b0eb31209c59107de66880ef0be21a77a commit f3c681f0c3b171db923d6147785064962351e043 commit 60c30ba7ba2064066ec462236666058cbbf619c1 commit e06b71b2313a00579ba64a1cc43ad29d64cb8d4c commit 8f28c465a455563917aa15bf5ef40016b2a665d6 commit 641a118c9d91e53bc920ec0ea2ea350d84eb7a9d commit be8f9f4c866f41b62a3df9a5cfd54e0e88fc3e3e commit 81e0a3d1063e388efcbbb4648e07479575ec85b4 commit 5e9209c3739454a08c4d770c649187b0f51dffc6 commit 9d8e91439fc3890de55eef2bcfde97470b7dc04d commit fd6797ec50c561f085bc94e3ee26f484a52af79e commit 0d5040e406d2c4404d26b841c4aa34cec0bf1088 commit 20d70de5823ee6b9d4e8b3db4c13123cee0358af commit 961ae5f9807bb15af0065485785725768a7269b9 commit 448359c1ce50a8e61842c39ffd52f399409a6860 commit c0bfe34330b5fafdbbc63a7124841711651b96b9 commit 6777264dfabe2a7c75453031bee5bcc2e7882cf7 commit ea94c8e217f9a845bf2c565b77c5eb078e975eae commit 2e408ad7a55273b55b14ce28f62111dc1c4f7fb6 commit ba6b8479c944c50db7e2a81794885896fa6c48a8 commit d075d99ef73bbeca878fe2cbf758f8524bb698d5 commit 8bc1ab4f615b200507b113d31ca614fa17b9772d commit b5bd7cf76b7cf8f2dfe36aec0e4916a2a95c8fbb commit 4a865f6a76ed1295d878029cf7a1797395b1aec0 commit b2d474d4c8fa9cf7d18dae3c0784c4a710e850ca commit ca6eef9b1c3486bedadad6a85d246b26df51c61d commit d6e44a8548b614fa9d6c77e0c12b929c2c791258 commit 455167e8751c7fc50e88496e6d5dfb896e2ab3dc commit ffe9f1bfb3e6709769779bc6c1a5b1d971b7b95d commit 7e0d8de4d35789b57eee8acb0a952b854edb37a1 commit a897f65b3a6175243e4878e2fd2e9b8f494710ec commit def122b64e37daa39774d4afa433ad42b8a5eaf3 commit c45c999cfb6716d40af9048ed0142e42a6235378 commit 246b228eb905c94663af435a1cd6cd31cc205ba0 commit fabc65d16337b6cee1cbbd1470bbb903f6daf3ea commit cced63c3dd23e061f0fca754a3aeb35b62b0a628 commit 216c3c4424bb42bd6e4ea75cfe0c22aa7dceda6a commit 8d7b2d3a7e3aa4fac309f9a496e6b237729d2b01 commit 6901f1d6479b6f81b537672cc16720b06b2ab3a5 commit c6bf82d426d8293d7257b9db368e025b1fd66454 commit 0fa0955acdb342bee3651bacfdce3d8927ab1025 commit 3019023ec9fb2bd7b0d2d82ce847ae2520f24c1b commit 5cca41ac70e5877383ed925bd017884c37edf09b commit 2eb58f22e2761b75e4f35847be03ddd425ae2b5e commit 3543e84e20fbd60e02264f757c77c7dbdfd1ee4a commit 034142a303fed2903957b06a7c91abdff5531bcf commit 0df26c0d69dce1141218e0e5ed0ad378a0c6c058 commit 723388bc0fb68f2487795796f4e616ea39cee99c commit 61671d85def2960bbf52db22e9e45b3bf8a5ceb5 commit f3392e662efdc095f10109f588aa4f3be86f7eb5 commit 50d10d9271f6c6542196c54275091c7b2c6edf97 commit 58d283801d06d4434df6625ed6e6b8d2ba47fe65 commit cd162ae9bc3ba91eb630a1321afd3d1dde5f2000 commit fbfb5f0342253d92c4e446588c428a9d90c3f610 commit 25dd25f86eca77b1ce4a611432f57b006fa91615 commit 8e4ed3cf1642df0c4456443d865cff61a9598aa8 commit 66d71a72539e173a9b00ca0b1852cbaa5f5bf1ad commit 7c5b344537a143d15385992e41a50a9c5125e93c commit f9e6759888866748f31b6b6c2142a481d587f51f commit 7fb363c57522b704e156fc4c5fbcb7ee133fe304 commit 17e68f89132b9ee4b144358b49e5df404b314181 commit 0e4b858285e633ea6bc7335fd66529955d023af9 commit 076362d931d0d5ed01a3d1cd4d066f2e6e7f86f8 commit fcb3a4fb8255149a73afeb3d8f2397eaac3a46b0 commit 680caca6feee720d0a6cb00f892c0d2d46dc4075 commit d5022deb4a526009fdc20e4d62528b25b05112dc commit 3f96f545f877ac59d0c967f52d760b4b2b3b9a47 commit 722e96c99f1d7532fdfbb557f50a399f6cc57d82 commit 58a8ee96f84d2c21abb85ad8c22d2bbdf59bd7a9 commit 739d0f3e1f36738d4cd84166784a8f7a58d69612 commit 9724b8494d3e85cb01c377f201bfaf25fd7d38ff commit 093b79d034c59a3b66f6312863502378a422496d commit 4981bd4749fa769b3d6acbc82fe8059c030d0920 commit df18a4de9e77ad92c472fd1eb0fb1255d52dd4cd commit bd870cfd21489d28195fda157710ebd4cecaa8ca commit cead9ac8b0992ae2659b637e86a0da7cfeb5e267 commit a15268787b79fd183dd526cc16bec9af4f4e49a1 commit 13d8850a3387635c051c5ed1c8a8b6c1e9bd1341 commit 608d886c978cd5f3d8650630568d96c231845227 commit aeb81b62c7fe4782198e9dd79c7d6cdf04d92586 commit c6bb3acf1cdeed5d01ebde70b769a8e25993965d commit b5126ba85beadfa1f3cfdc9e7a8533ad444ca210 commit c3f15273721f2ee60d32fc7d4f2c233a1eff47a8 commit 6eb1fe53ee94cffd7187844d08d46ba8659d667a commit 4067f4fa0423a89fb19a30b57231b384d77d2610 commit 31663521ede2edb622ee1b397ae3ac666d6351c5 commit c9bfc37f085aa180b3c49b9c95756b9ef032243e commit 0c3f3a83c7e8dfaaae4ba8a5b69bd6bc13340d0b commit 0e8655b4e852ef97655648b91ce780384a073ff4 commit a6ed988ecdffb2680a65f142acfe3271e6c04ab4 commit 6f4e43a2f771b737d991142ec4f6d4b7ff31fbb4 commit 7657d7c96657179d002817d5ec2a1d4c84f21cdb commit e525473fd5b7202ae751316799ed759bfaaf02bc commit 20c3a0241b5c15c0d64929cba04653d5556b7d5d commit d93a4fec186c106115d0b3165047dd06f2c1aaab commit 9eab82c38d0184289ffea56477daca8425758442 commit 6da8acfdb6e1aa72787efb733e3af9e9e0c57b9a commit d51a75ac975a6147a4dea2d68cef4566f5c2ecaf commit 1c408c516414fd9760c54f6d42ed1fa44a1dff15 commit dbcbfc72d3b660b6dd9ea7d2c089c228609714ec commit e4ac526c440af8aa94d2bdfe6066339dd93b4db2 commit 250ac9ee60dbb14cdf422ab7f2bc28d671ac9f46 commit eb53e5b933b9ff315087305b3dc931af3067d19c commit c91d75a3c6a2567e8c6b44f7337b6955596ffb86 commit cbacb1b74400299edea7e9bcd58bbc7c40dad8c1 commit 2281475168d2ab3fbd763c2fd762f99a411fa1b6 commit 2000ddac9b5ce5102ab1b194a1cf91e8af3017d5 commit 833cf12846aa19adf9b76bc79c40747726f3c0c1 commit f2881dfdaaa9ec873dbd383ef5512fc31e576cbb commit 7f7a2da3bf8bc0e0f6c239af495b7050056e889c commit 6f20fc09936e786a4ba18f5514fe185e0451ada9 commit 4c288f56030f380acb9572d88396ac15edfd30ed commit a755947e050b8751fc5402609a7d600e9c756fa7 commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 commit dbaeef363ea54f4c18112874b77503c72ba60fec commit 0cf09702a118b1c09b694862061913108565edd0 commit a64d5fe490cd92d74b1cf46da63164cefcc61a58 commit a3f91f405aa7c54d0856c1b8698e4ff05ae7d439 commit a4530e20faddcc4ef4e5939f186a8560c71a5e94 commit 634e1804242b0d5d64031199236fb3f337b5af3d commit 96c468c366dacc0e41e08ac53e20a5025f6ba967 commit aa705f7ec6e2423af87c20b30f0e26eafdfd4513 commit 8f1fe39ded725483a67c15014a1863179c783b38 commit 9d1f218ddce20329a01c46d7a1ea4d88fdb0fe86 commit e40fbf616610e33aba9597f278925b4ae8cc806c commit e44bc451aa4b08845c238028daafb4eaffb573a3 commit 5c7b393452b55ee0cdbced0d3bc798f6875b5c24 commit f1e6f89506e48b42235755fb3c2b73022697d8e5 commit 4da409ba6430e3b5c6da7879dbbdc5f6717d91b1 commit 6c9e14ee9f519ee605a3694fbfa4711284781d22 commit 688c43dd6ca9e0cd0568868aefca5b041695c3f4 commit bb99c51bdaa846bddb85a1e7acca3a3aa5e9f082 commit 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83 commit d97e71e449373efbd2403f1d7a32d416599f32ac commit c0e0bde2c7e6bca2a1f195d82ef7598d521399e5 commit 146458645e505f5eac498759bcd865cf7c0dfd9a commit c3bc97d2f102ddd5a8341eeb2dbae2a3e98bb46a commit 53369581dc0c68a5700ed51e1660f44c4b2bb524 commit 4f04d07c0a94b0b30db839e44f1b8364a1b508ac commit b6b242d019ed23195c81cf00eb8290d386efb83f commit 717b432b6d55e1dcefcb5e2ec315bf66b6ab8c54 commit 21e97d3ca814ea59d5ddb6a734125bd006b66a60 commit 2009e808bc3e0df6d4d83e2271bc25ae63a4ac05 commit a4172af3040cdc207f1b60efffcdd219156093c9 commit da1878b61c8d480c361ba6a39ce8a31c80b65826 commit a99aff2608f422da833cd91fa1eff23daa05c0bd commit be1dec570b6f5a29ce9c99334c52bea94c28914b commit 8d5309b7f67571bc0c95d430f4722a99d38f3b79 commit 843f10ce6539cd5e4989415e18cb809f4cff8b91 commit fceff12e52985e49c464f402e11b2f97bce3cc24 commit 3196763851b5fb9f7c8c488e233e947292cd71a6 commit 8466a14173e5ff7c2a52d8700a13f4b841d0e17c commit ce9b1466f5a9a1b2acc80d29f12d69559fa97174 commit e60244554ca98e87ef731739f608eac54e478e9a commit 2796b7ceec95bd5a7069cd27af7e4cf01a692db4 commit 1de99ff7371bc6ce2187081bf5bfbbb4a7de28d7 commit 34d0472ce1087fbf8e2ba504a4625e4c74286c63 commit 60a2066c50058086510c91f404eb582029650970 commit 97b6784753da06d9d40232328efc5c5367e53417 commit 54bf0af90844fbf18f5be3272eda69198dfdb622 commit 92653f2a572505adaf7f13f695c1907e71a1dc84 commit 7c5537cee9a8dff956e3b9a3f68c22af06a57558 commit 7b6cf6c750da7661a90c12642c3a8f141c7c2819 commit 68914b7c4dae0fd59ccb6b8bd8e2b6f5656cd25d commit 0b8778af8babe55f133b9bfe3a5bf234a36ad7f8 commit 75830999587470b17a30d2ecad25ad13cb272c19 commit d7683c49638c83bcb6a817671bb348dc435da3b5 commit a0ac33cb9a12f1e499c9f009067a3135df626cd5 commit 16c9898ac5ab00fc96efee404a1b8bcfe20ad48b commit 9a72570491b524c9dc4c1caa7323b2297c27b0b7 commit ca0fb243c3bb53dbbd71d16c76f319bf923ee3d4 commit 9330af0af3d54df71b6b752a260dadef05a4fc44 commit 29d0732f8f61ed028d642034e5323b8cdf6a1905 commit 85ecfdda063b6f148335c354c8b7200a49640510 commit 5d6a620875a04e70c51d8366eccae74d9cef0308 commit 6cc213b9aa34bc3213e20f9256345c5cc1495b0b commit c7b3569b3ebc53e997500be09eb612b6c852525a commit ab799c16c9d537fa2f070283f1ca63a4425502e9 commit 675d9ac9d0de765531e94f9fdc536989a997a324 commit 24ffa5bb6d363c8164be6af974e318f5752797e1 commit a00a177055cced5cd2bb057a1ace9a95a286bc49 commit 74bad61c5d83f5af8a855c8b7dc8e20377c74d46 commit d91f93c7a7fb9589e62814c1e229943e1259b48c commit 946e2c5be80b2cf93be34e28b3a6bdadc8ca419b commit 3e048c8846a658098d935df83050170c8a8fb104 commit 1cb62da0802c8f08e26443a5409edba99b8a1f6e commit 8141f21b941710ecebe49220b69822cab3abd23d commit 9710b84e2a6afde2db20cd33435038eb75b91200 commit 17277da26623d4aa8bdda628d0024cf2f2e39ae6 commit 836af5be1b6d8e93d736c252e711a20db7dbde9d commit 4a4c815b08dc774dde67fb90a0286925f98204af commit e89d2fec4cde967445e16e02e406481bac380cc4 commit ee0a469cf9175aeb6131c0476c4a4a8eb5997dfa commit 67c4ca9f794951482c54a7006c8b3c367d6c3efc commit b41a382932263b2951bc9e83a22168d579a94865 commit 847e387e00547b0cc728a5e61f5beb2ff861ed1d commit 62eefd10ac1c7e976bda47ff311bd87cee40ab8d commit 62ed6f0f198da04e884062264df308277628004f commit dd340acd42c24a3f28dd22fae6bf38662334264c commit 28574b08c70e56d34d6f6379326a860b96749051 commit f59902ffcc43ce7e1db5d0c4dfee37ec2a1bae0c commit dfe9d047b162f3a79ab63046608c693ee14c5b7a commit bb670c31e13a402d30afa3d484403196031d0fbd commit dee44a7cb577f2aba39e1713a51e9faee2f65534 commit fd69ef05029f9beb7b031ef96e7a36970806a670 commit 62341f7bc2ccb7c024eb023a05714d798ba6437d commit 0964fbd59e7131c1bad4c8549ec13a27104f0b11 commit 0345c8bc22c92f3d5fc0287957a96fd214297aa4 commit e9180253e22596991db426ab5b01111c2a739db4 commit 4f842ba7cdd83cba1d5c0bbd15ed9d14d882cf89 commit e1dbe625d6ac2821eb29e087db46cb539d8079f0 commit 507293b1b207e419fc7ea4ff1d72c2f1db18e33c commit 64a905203fd0da3e8a3f649593cc48c9fbab25d0 commit 792be2e23ac69821db7860ba4ba94592101f0b07 commit eaf3adb8faab611ba57594fa915893fc93a7788c commit c9875d0a789060facc274dee0d4eb6500d471772 commit 671af06690e7f79db51b475a35c3b2619f345abc commit 434967aadbbbe3ad9103cc29e9a327de20fdba01 commit 65f6e9f7e1319119096a6dc93e62894e4375b578 commit dd3e296289346109d41c6317124f51aee0269c25 commit b3a3c9a6b27b68310f1d4d486f47556808c7c855 commit 5aacf8917fde5bc2a640f3cd49130c0e2e85e726 commit 7b2363e06c0ff4b868e7d768d605a9e656ff61f3 commit 51d334d6a49629ea03a2dde562d46846eb7d07a0 commit b8dc6ca028d9a39196a3a066b9ef2d4a5eca475d commit be64336307a6c3ee71fe1337c1b9f0495aa83c50 commit 78c508a1c162c90c48e12faa62bdab8b90e6f17c commit 41cb5a5e8480fa41ee452ee60e620a4c1de3c323 commit 8151a6c13111b465dbabe07c19f572f7cbd16fef commit 329ee7087bc9862977fb6e431b8b0ea5e7e261b0 commit 00f06855f6e68954f67616cd5560fca25c755eba commit e80f8f491df873ea2e07c941c747831234814612 commit a0fcd3df4591043d447bb08919eed2ce68fbdb5b commit 130376ab8300ef06231ebac4db147f06d601d53c commit 86598c3819fdc70e59d28221bfa7bc36e9f5777e commit 57b09a168ffe88a4c088e8f7ca5de2ffbb8fefa3 commit c0277b9d7c2ee9ee5dbc948548984f0fbb861301 commit 92549780e32718d64a6d08bbbb3c6fffecb541c7 commit ecabb5e6ce54711c28706fc794d77adb3ecd0605 commit 4eb0aab6e4434ada240286d934651dfdb2e08301 commit 9cc033e07d025dee1fac178c20ba96c56f8d9a91 commit dae5d79a3bcc3101e1e02a1c2999ca74d1efde05 commit b62ef7e4021f74bb12445987efd8109ccca289c4 commit e102b5ed6e283a144793cab8fcd95f61d0ddbadb commit a225800f322a3d6cc8b8b6c7dc4d5281f2f5375b commit 1da86618bdce301d23e89ecce92161f9d3b3c5e7 commit 0829b5bcdd3ba077c408e71e22ac2bfa85bf2c95 commit 17419a5c8c75e1f9de01b094f763ec1c6ad02979 commit cecab0bb737fb74813733f2472761fc3a93857b1 commit b7b930d104c38a545d862896759863d649be8252 commit 6600c55ba0d46c6f2f74eaa6ddfe2b66cb8df852 commit b635066c2e0fcf74428b0864c249c1dbcaa4b5bc commit 94a438a7595bb5a7a2efb94de2dc818845254e4f commit 372f244b01784b5ee233cdfd732b4c1929ddd71e commit 91dae758bdb854367bf0811d97acb84e791764d9 commit 636cdf6fbddff4780ff4452a82afb099292b88b1 commit e422c0bfd9e47e399e86bcc483f49d8b54064fc2 commit f5510726608fa035bdd2f1fc167cf4a0f7bee22b commit dc06efbb7934405461d95bba5b702849058424a4 commit 9d09cac47de5358ace64dddd14278fea002e68c3 commit 0f9ff361ad823b887cfb09dd78ecc8f25d32ecfa commit 219b45d023ed0902b05c5902a4f31c2c38bcf68c commit 5bdacb0907c1f531995b6ba47b832ac3a0182ae9 commit 4e996697a443a214887ef81b008c344d183b5659 commit a857add73e61277fb8f688234c9d383130313ea7 commit 89121e5d0857bbf41f1987c3c6019f4f318aec4c commit 2eb20b96d7696dc354e1b38c511418b56291013c commit 549dd786b61cd3db903f5d94d07fc5a89ccdbeb9 commit a86ee96ce819800a399e0260c5ffad793c9c6ac3 commit fc33077765e9104f84b49d9b9e0702a41d5269d6 commit 17d6abcbf6249b4ef22f41b255de2be2691ec32e commit 885c31382509d13fd70f6a9c42637eb72056a6ce commit d79fdaef2b55deea0df3fc6af4d4ac60e81a527c commit 08b5a4798713f4331317272752b27b1c4f6a246d commit 7d113cce5fe92c8bf0a2e2f19f71762a845e9d9e commit cae39e60abb10ba1e8cc095b7d5567edc9005f03 commit 6d470f9b8cd3e88d097b332bab3e7231f2fb3dad commit d27a14060f8501e556a65b346b2644be0d0a2de8 commit 969135862e731620b9e03bb0c21179ff1cccfd0e commit 5d45c01dea6f9e0f2dbed3ffee02ac2e80579ad4 commit 0dc4fb69eb14320ea0fcd9657b7748eec201ccaa commit f7303ab29d08a551975aecb4bc6851ac3445abf4 commit b7f317e62968979343a4677ffd5bd91dd3edc204 commit 769b081c18b916e362a2b623d7c28ce761c3165c commit 9aec6f76a28cd669aa98403883edda3a7981fef0 commit 5c61f59824b5e46516ea5d0543ad7a8871567416 commit b9396b49879b6e3d9069586e39432b2203de0a7a commit acc4e41ec41fa28ae9fbdb1a2750525a7a242743 commit 39fa14e5bdd037f50df0af408da7251e400b41fd commit 21ff3a16e92e2fa4f906a61d148aca1423c58298 commit 1da91ea87aefe2c25b68c9f96947a9271ba6325d commit db639278e6217173c21bf8bd52eff2e9a0d6919e commit b8cdc47adf059f60a39555eeba1db92c503a5061 commit 50680d1698f4d4c9651822398805cb943b7c04aa commit ec0796e6446352e9e4ecb1804bf470d1ca47c5f9 commit d408d6f8cbbb5ad92b383f33d091f027f5740aea commit 844efaef48e846b5310b0e7af5e7578762eb7e8d commit 34e087e8920e635c62e2ed6a758b0cd27f836d13 commit 237193e21b29d4aa0617ffeea3d6f49e72999708 commit c3c5b79b6ed1d7ae7356b51f7c17bd88197bf405 commit 7a26f18119d1daf910cca58f875582d50d0e4974 commit db1aeaf2a1374fb05d82a1f8fef5cbb059ce6a01 commit a0634663d09abcda84eae37e9817490628a034c9 commit 17674d6603eab37a4f7b1cf5ba345d5a1e275fb7 commit 8df39400d0db29f84a72c891d1f526e3b61a332a commit 6c22aadbf6fd0240181eb4897308153c2aabec2a commit b5757a5be2fac24f5c138e8ddb3b2c7be8ba1cb3 commit 446d0f4849b101bfc35c0d00835c3e3a4804616d commit b7ecc44a1b0427d8c71fe2e2d46c4a8dd6e6f64d commit c6c2e8b6a427d4fecc7c36cffccb908185afcab2 commit 0cee47cde41e22712c034ae961076067d4ac13a0 commit 7b3a4e1d559e892ea563f46f45c504a60c82d70f commit 3834ce360067b4ee98fdef14571923500a0499a4 commit 9a12b1c7a0595736d398b24712dc1ce79072662e commit 8641b817392bfb12fb1e71ebb68c31783297bfbd commit 17d30ed33c8a9e7b866dd7c2ceb4a6858cfcaa81 commit 020620424b27bababf7f53d00692ab919c357a3f commit c6dbab46324b1742b50dc2fb5c1fee2c28129439 commit c30fb344a2f7fb5d553e98577185d9f8147598e2 commit 45a2a4514320f9c835eccb661601357cb1fefd82 commit 947c0808693e267185c5471f87f83146e4300561 commit a46a7bef7d41ee7787c246f47a656fbafe02f122 commit 3df34334147e73b05480db6cf8353a405597d04a commit c7d4355648ffa02a1551495b05c71ea6c884d29c commit 2f93ec07ab54cae66155d0a09182843f358da178 commit 434b3554d6435dc4e19083a2214dee40a88e09e1 commit 311f2b587461f86e3c30e7ac28df38be4a862ac7 commit 0fe20258b4989b9112b5e9470df33a0939403fd4 commit 596a4ec72876f1061f0ef4be47076b093f03b4f9 commit 782cef7fc367542ccc851d93edbed166defdfc27 commit c20da89edb69f05ab78fe804899d50be2596b0f0 commit 95d9e0803e51d5a24276b7643b244c7477daf463 commit 4af0d8ebf74ccbb60d33fdd410891283dd6cb109 commit 680458d41aa46a009909482f58358205b5c4b438 commit 8c4f9e466169b3e411947347fef09382c14e5733 commit ce4f9f79ff8cfc78a064c533f0aab563a5613d81 commit 1b686053c06ffb9f4524b288110cf2a831ff7a25 commit 66e2d2d9a59f896def82a1c8684368be45cf4c06 commit 07f4f9c00ec545dfa6251a44a09d2c48a76e7ee5 commit 98df5a7732e3b78bf8824d2938a8865a45cfc113 commit bd15f805cdc503ac229a14f5fe21db12e6e7f84a commit 9b7e697839c2745c10f63fe5fd54c9e328fa2e3b commit 70f83e7706e57200edb8ffa36883b2f43d214142 commit a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 commit 3bb41f2e9134906e0814766c07dfbdd9de0bfaf5 commit 027347d17a16562f3be272833243b835c21aa2a5 commit cd9e9e0852d501f169aa3bb34e4b413d2eb48c37 commit cc2991203c9d4e23051dbe5bcb1fc700fea26992 commit 67ea53a4bd9d03a85eecd99875a2a794c886f788 commit 7a1eb66809390d06b744aa13123b925b64b54c4c commit 24f483ba49c9acc1139a0b4cbfd1b122fbe1ed7f commit 5b7813bc6218100d7bbc6d3a1b582bfd64034bf4 commit d6ed53712f583423db61fbb802606759e023bf7b commit 12dbb3ed212fc7655fce421542a5add637f8af7a commit 5ac2557d75f94777076885b5119d3b6755e6761d commit 17b6527dcfb3249401e037734ed3fd0f4752572f commit be280fddfd645ea0ce4c7a26692c3d1115447e32 commit 1fd2cf090096af8a25bf85564341cfc21cec659d commit 8f9b23abbae5ffcd64856facd26a86b67195bc2f commit 267c5876c977d5f2d5a89f377d74adf42b5c38a5 commit bbec7cea6fa4a0463d4766ed0e6bb347773d3949 commit ef6c2cb349c708676b7820c36a5beb75868ad544 commit 61cffacb3a1c590b15c0e9ff987de02d293e0dd8 commit 42b3a6f12aa56dcf789464d29fdf11f33bf0e793 commit aa02486fb18cecbaca0c4fd393d1a03f1d4c3f9a commit 35c7152202e111968b10140383f49da9159d2704 commit f83cec3b3a7c968bbceb810b7acd1baf3fe8cd87 commit e69c2dd7534f3fcabf7bb801db2a7ac71e7e5da6 commit 9c081c11c62112f1c30ff2426f755279a43fa1a1 commit a85c3db6b3b088f63b5b8c4fd4352f56f0e4ce3d commit 9e823f307074c0f82b5f6044943b0086e3079bed commit b2dee0837a4be63e8d3e00550a9f057644f962c4 commit aa539da8aff07ab08def6490e8c9b441439e70ba commit ea5d6db17a8e3635ad91e8c53faa1fdc9570fbbb commit 98cae695a8ae0e4291b1fa7feef9b54fabefe885 commit f7fb9d677faf0460131bc2af15afd766d48a1f47 commit a7f670d5d8e77b092404ca8a35bb0f8f89ed3117 commit 6a28a072d90e4543b5e07a904e3a6afad0117e26 commit 1091796fb1d9d6888656f2416ad5c99cfc62a4bf commit b232c4a63a176ed837e3c6bb4a3ac79a1ca5ef1d commit 98aded657f506cd5d6d459d68ab4996d9dc0938c commit 1d734a3e5d6bb266f52eaf2b1400c5d3f1875a54 commit 4b498d19610c6acd36a8ddf622afdefe4ab093fe commit 5ddb0a8aa8e4754a8fb77e284e0d6f46c2350f88 commit b080a60731ad909eae4463684acc23d322e93579 commit 52e371914ed37f531a8d8c3b4cf1a1af2753eb6d commit a884dde8d9b6a4a817cc39663db824e5602a8001 commit 1eda95cba9df35f1fb0fb4b89511beb6603c614e commit fde7679a2b374c8c0932f5cc48438a312f3f442c commit 29323882aa48fc9f273db5820babf32c979359a9 commit dfa5543193f303a7270ec7c725e656970faf7d57 commit 202b85da0a2fb6f034f0290af841e0f29352af9f commit ab0d6ef864c5fa820e894ee1a07f861e63851664 commit f0ffa657e9f3913c7921cbd4d876343401f15f52 commit 4551d60299b5ddc2655b6b365a4b92634e14e04f commit a98a1a3c448820dfb3974839e1ccedf80b6fcacd commit dd925902634def895690426bf10e0a8b3e56f56d commit c7085d08c7e53d9aef0cdd4b20798356f6f5d469 commit 23ab1cb6591dba7c97b65eb407cd71147bd878b8 commit b0ee81dac3205db1e01019629c83595e9433d96b commit 8d3a2d3d766a823c7510cdc17e6ff7c042c63b61 commit 3396900aa273903639a1792afa4d23dc09bec291 commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a commit ddda6542c85304eff31fe433cc0fc2c0d03c8f3d commit b3a901841ed1edd65b2f4cb9dd890ea1e2fc7551 commit f366d8804fc58f87b682bb02e8bf970b08e5df7d commit 21d6376865219277ca91bf95f9e54494c1ea7ae1 commit 7f75eb222d5c8c4b166ff99a38c85a3de97e0647 commit 649ae0e0d55f6d432ea73298929560ecdfaabd05 commit 34aa0a87f83b5322bd8541cd9534179c90c580d6 commit cb2f92569a2b7809a0569b380b9a6f2afa368cb2 commit 9aec90f9e545fba64ca47c18c37c588fa0d71b22 commit 1b9e8095fa3ac29e3a00ba1326976b479fd809e0 commit c6cbfc18138a22cfbffb208be92b18a531233528 commit d0fc54a201d673013b031ebce32e5d8a7e3bfb70 commit 6276706f33cc38ec59ebf03b680240ff74740c8a commit 7d085bb17e3cab501218a7a4604aff6c4a8b9585 commit fbc64aafc99baabe4d4e4d5a58d6113aad7909c7 commit f76506358078809461866086c5e224d949002016 commit 2e5d47fe7839298fa096970e184aac9bf82c3bd3 commit 5a891a0e69f134f53cc91b409f38e5ea1cafaf0a commit db3461a7743817ad7c73553902231b096616813a commit ed7171ff9fabc49ae6ed42fbd082a576473836fc commit 437ad4534a15ccf538ddb440cb29d3f445251605 commit 8a0f58ec4728ec04c654645bf8ed4070821ebbf3 commit fc7c7498db3da52efe874029a9c2ccc0ad2646ee commit f9e491c8633277d5398f384cf1fd1a477e04363f commit 37ee1456239cc5680f672f37417e52db2349965b commit 406792dc2a5c82e2f312e10c3c2c887de6ef80a4 commit 57a372f67688dc7aee23a2a00bcaf6188f592934 commit 15789fa0f0e29cf802f30d0e308da9c6b18c116a commit fb0a5834a338329bc665c7ce2b89f3e376557565 commit 5fb4d2a77113d3ebaa5c9dcdbef8b7bdfdeeffb2 commit b5e1a3874fe3cde73a4b02870bf3e8fa43777c5c commit fdbd69486b468e4963b4ef9f76901d3788252dd5 commit 5d0112f77793c0351faee6c723a6fb9191c12be6 commit 6f38589e170f7649bb4b5efbff6b681c31433440 commit 4c953e53cc34f8601b7b7c6286c65322452d35fe commit 186020c16650d6f7a05774ef318ae9056aae4f21 commit 2e9bbdd7b7cb5f364a917e7c6eff2a2c36f11895 commit 4dc4422f11b041a9cb7a86f2f9bc310e48620fa2 commit 31ef969301e58daaaed1728690e16192b77b9028 commit c4f503551fd65e50e657219c9bfc2987c51805ca commit 27ef61f9617478c432bc477d4eed8963deb89f24 commit a48f31fb78265d992c75d45bea215998367d4956 commit d082e5cde489caf7b29e966a9dbbc3fb43fb9164 commit 3ec2ad7c34c412bd9264cd1ff235d0812be90e82 commit 0f2c243dbfa008cec2dad03ea074156b6b176a03 commit 89ec85d16eb8110d88c273d1d34f1fe5a70ba8cc commit 3fbaf475a5b8361ebee7da18964db809e37518b7 commit 20588d5afce3992ff4fc9b61085e3e1affbac620 commit 27a74c125d029d0606b81ef865bb68dd975ca2f7 commit ab10f7748789fa9247949b530d8ee7d56eafe9a3 commit 6d88c0f94ac07ffc9f08e459cca036f4af08617d commit f685b38455b0c990a0f018a17b238d8ffb5acccc commit 4af8071b654dbd9b8bd003ab8e49eb16b4cb9fcd commit d479158f6502a3698b91829fa03bd3f2ea38efe7 commit b5be054c585110b2c5c1b180136800e8c41c7bb4 commit 76acba7b7f12517990f326fabfecb6f55e334233 commit 478efcb90b074f0fdd18e62b30ce09140bd69022 commit 5b7a59de4845460a313d93d4839258bfb982357c commit d4f1fde734eb73767015272dd2e8af1440b30a9b commit 32aada4d0a35ee613ffed23090bc23e1b40da419 commit f3c958ab857927e1ef2cc6806fcb0eb3f36c923a commit 8962915044364bb7c36b3018f74371a798aee46d commit 9d87dac3f9adbe30d545c577aab483dfce71143d commit 46553db49cf7b7dce95879ee0725f7d95de3c184 commit dc57edda816df4fb43bfc2809675e91d15994195 commit 3a50a51d04d2ca5066949073274e70191104f8e5 commit 439c3b124e9ee704766040d5182ccdaeb4d45499 commit 837cc7f1bf2bbebb05781efb6bc1b10d5c2e9308 commit ef9f3b5fd9d2594766c60b1e12b0e72e4918512c commit 2239aaa204f1c5002018a02903df7e45a0e0e503 commit b910cacb4e70066238feafaf3f2430ef2c8c3b12 commit 0eea81ee2e12900bd5276558434b675b52ab2d5d commit bc62abe1b92db4e027a92a6799f2193bb93970ea commit 1a2103d68547407a098c237d7cade79b4ad2b88f commit 2dc3851ef7d9c5439ea8e9623fc36878f3b40649 commit f49280ffd254e718ee01ef515fe91854fdf005cf commit aec773a1fb0253494b85b073f46a0ba1d798b726 commit ee7a846ea27bcbef5182d15923339a7bf182ec65 commit 96595204195d7e13736a84295e217316610d4cdb commit 19cff16559a4f2d763faf4f8392bf86d3a21b93c commit 0523374e303051c94457df9170f12a752d8b09cf commit 852856e3b6f679c694dd5ec41e5a3c11aa46640b commit f784750c670f7c5ac572590ddad77a89b4c997bf commit 3dc6da76ae55d667fca2c9f9497e8ea1a27497b1 commit 7970cb36966c9b9183255dc097ae0446300eebcf commit 53fdfa19e6a9220a14c0bb21273880774ea70dbd commit 7f0d7bee2079fc899c8280e177b0c0feb8b9debe commit 0d92cd8935a3fffbbfee0fd59cdc89ac5167b14a commit 2750ff97ee385b85195c5579ee911a551fbb0dd9 commit 770bd1d341130ff38feda169177159cd78389cfc commit d16ef1a18e39a5086a419d8b3c71adb30273881a commit 226d92e49a7e7a7f5a3a37a34df7c319b72009fc commit 4099cfda9dd856222d7cab6970a65896375616d5 commit 6b77dab5da721f2fa9d3c3611e1cbaead8030706 commit 7116c35aacedc38be6d15bd21b2fc936eed0008b commit 492be2a070f023c66aaef6ebd664567fda28c2a6 commit cb8f81c1753187995b7a43e79c12959f14eb32d3 commit fe828fbd87786238b30f44cafd698d975d956c97 commit 737ad3776343f6fcffee9d0d849dcd6f6b25f05a commit 11c742bb5a26d4adc873f6e6e2b69a59e1eae285 commit 8a879141dcd15d2db876ce3adf88b9b01650b7fa commit 6841a26e2c6715dc52a1cdd888e958dd2a92a5bc commit decbfaf06db05fa1f9b33149ebb3c145b44e878f commit 23683061805be368c8d1c7e7ff52abc470cac275 commit b9d228a5b2ebcb1f1f63170f5b20bc2f9d276168 commit 00b8a47d8ebe0419e649dc81b96033f6db6a4746 commit a055c91ac6ea493c2508401537e8732dd2a7bbf8 commit 6a60273a0e8274820210abcfe7ec0d5f1f38f458 commit f7c4a15225faeffe1e9f9a752097e7d85603ffef commit 91a759d402b5c17263f82097c647e784f217e2d4 commit 97d1f449c359207b2fb5bc62eaefb7e21ad619ae commit 64ddf5123eff2edf47202e08744c3c14a9d28f59 commit e139c0eb22ce5b2ab6a2056c1ff495f3a38322d7 commit b61c4bc674c6032827f2682a0c72ff577c36143f commit 1453323eac4f13817a07f40e78e76dfc635aab34 commit 7586fc52b14e0b8edd0d1f8a434e0de2078b7b2b commit 3338e4f90c143cf32f77d64f464cb7f2c2d24700 commit df2dbc925fad3274b952b865f85d26d1e056c1cc commit 60db6f540af9f93144d5039140aa2ed17171d168 commit 051c86afc342aed1f84d66ff5d09dc9e1c1685a1 commit 04b5b362bc2a36f1dfe5cad52c83b1ea9d25b87c commit dba1a6cfc311833e10df978f07147ea93b7045fa commit e189be9b2e3820c88164d95090f1fd6343cd77fc commit d361ad5d2fc0e4d59d5d538092c9b37889756642 commit 22ff907d4f0457b2800f4c6d4f40d4d4d31f7de1 commit c2e70d307f4491ff970208a41cce84c95771f340 commit d4c38154951b2bff6bfa4d5eb56df0bd08703cf9 commit 335288315af18c0def7f47a37fe7eaa782c98f6d commit b1f49ff9cbe14264c7eb33462fb700c49c7d91a8 commit 234eebe16138f94de3046f60c52763dc17fe5fed commit afefd6f245024684fff75100052065d6a9e8f75f commit b710dbe55dee946d82bc4815c40373cf8a391581 commit f846250b8a20e6c1225c64ce87a90d4f29cbf351 commit 87758a0ef12cfebb9fab8ef1d0e234dd7b3f4579 commit ccf8ef6b7506cc43e7fd504a85465c1c0786a107 commit 9a16042f02cd08bbd0a5a2d8e9c95347717165a3 commit eb067d65c33eecd4b81771384183ad42eec259bf commit 18ac82c26da45d033df7eb993139da83dd53ee68 commit 9de60462cdba60f575f97ca2655533b35273c715 commit 8783a18409b48455b3a63f0cd930c7c88beee93d commit 7c9cb6d1bf122fdac6a7d51f7dd8cc2d8c94b452 commit 4e9e50b6aeda3e3ce727453c5455cf08c68dac8b commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1 commit f327189389785b26e49904a7d3ba0c96506a4586 commit ec9e2e7acc6dabb8f00c2c60785931310caaa883 commit 2344413205521775d3b1d418e5659e3ae3bc263f commit 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d commit d07722e1fc749fbd78992650b6d00c9a2619be70 commit e389eefe34cebc6219dbe76a923b342b2f31e3ba commit bf2bc61638033d118c9ef4ab1204295ba6694401 commit 186fb12e7a7b038c2710ceb2fb74068f1b5d55a4 commit 88c511dea151b931ba4873119b1b3555aac0ce53 commit a9556637a23311dea96f27fa3c3e5bfba0b38ae4 commit f15e5587448989a55cf8b4feaad0df72ca3aa6a0 commit a8efd8ce280996fe29f2564f705e96e18da3fa62 commit 609d8b1c422cd8d1f93bf526fb236f2e07687e7c commit 255fc1703e42321b5afdedc8259ad03c7cc533ec commit 32a42c93b74c8ca6d0915ea3eba21bceff53042f commit 77cc3f6c58b1b28cee73904946c46a1415187d04 commit 4cce34b3835b6f7dc52ee2da95c96b6364bb72e5 commit 5151fa35ae5979821d091b80096b4c790b187bac commit fca0abb23447c37a6bdbc76798c24623a9b69a11 commit 40520283e0fd11237ed9dfc0991503b3403d5fa4 commit 321d6b4b9cbe3dd0bc99937d5e5b4d730b5b5798 commit f6d9f39f8d9167627bc0f9e3e12ee0100c1c1919 commit 80431c017f745a818ea45ae6a8373b737f73b1a8 commit f89001ea41771fe94005920c363dee43e8078bec commit 0e35457eb4b75f2bc9eca58a46d12e200e15e47f commit 770a961d581c577b579d8d38414b2bfc0b4766c2 commit bbad0090b9f4735e35e9881278b7a353f71b43d0 commit 9e7a74a12101bb07ccc22fb180c5e44051c5a407 commit 44a37ba12857c78389cda176c093967406250cfe commit d20c2f8464280550aeabd2766728590cf0ca8a4d commit 2a2391f857cdc5cf16f8df030944cef8d3d2bc30 commit 5e9c0d1c5ea355679f5b2a57b0c1b5932d78719d commit 11df68c265460d4dff5d19a1313f0fff69470f98 commit 453afb1a439994deeacb8d9ecbb48c1f2348ea0a commit fa509a33e34849cce6c17f969991dc87a864fbde commit 7bb98ca6542e19a9da7cc322114bb4867acd9614 commit 85878978fcd2812eaca309ead436bcd38777f6f7 commit c8fc8346bdd097d624771e606aef93644c072ef2 commit 5a48d67ac336436ed4a79c1c9e036a409b502329 commit 4446387572fb7952a387b8e45e8a96b4f08a2a53 commit dfc88eac97e2177844e5dfa877f2ff60c73bf507 commit e0446e122eae43c173d0c99375e1b2cc8da009a7 commit 168448111279e639e3296ee5c19e0cd96756422e commit 69f0925c67c21c1e3ccda152d2b6ce21c363e563 commit 244fe1666364865154930f34d8df5489df1922b6 commit df99acc7ba1be9f111debdb75e00539fed8ad21a commit 6dbd43dcedf3b58a18eb3518e5c19e38a97aa68a commit 6062ea9398d3ec09c521774f9d81f604d1a85fbd commit 0567f18e0757a260031e59487fe01f402c16c0de commit 8b5ccc9743ab026b12075eb5e3883cc9e42bc683 commit 1144e0dff5e68907cb8d3e2d64d1c00e2a96d1b2 commit 136367290ea5d7b5d05696189e9fd6162b9d9742 commit 15ca09499bc669b600dcdaf01fc0bf8c55e15b35 commit 34e804220f693fe6bb1c4e50f27dd855e9313f0c commit 919bb54e989c1edef87e9797be125c94c450fc65 commit dd6ded6e87a97a32e06c10b7f6639eebb779257d commit 58cfea648ff3b3bd283c03f094f24d379fe6fa82 commit aa451ae76fda24f919174a17df31c290f91a953c commit 852791985af63bcfd66d7f6ec160cc5f9fcb020a commit ab0b0eb5c85c5961913bdb9b8011cc8f5c14978a commit 065ca63e161a1ed7e619ef7dea0c7c6435ee2f8d commit 1c8f80c2aadf76daff01ab133fb11136e7248746 commit 6133cf70725049344a679f85df27d146a2d995ea commit 4b570ac2eb54f66ff64f2864be6303b8d67cc7f9 commit db6341a9168d2a24ded526277eeab29724d76e9d commit e28604d8337eac97fa956d6682b6312741ce85a1 commit 01bfabc2d1d8aaffe5268f8df0843a6d916dcbaa commit 75f0efbc4b3b088cca20864d055b3854a51b5af0 commit 8f4eca6ac52a72181b4f054d4ef6289a5d8cfa5d commit b05d6476ae2dde8eb447f907ab689083499edeaa commit 40318a2406bd426c6f4591269669c04e8eda571d commit 988bfa0bc67d7220ff8d9e2ba3a425727aa98af3 commit 0e405395e0b162075001b9c027443dd10b723a03 commit 570867ef90550b01f0ca0f919dba308c3f2fb605 commit 2845f512232de9e436b9e3b5529e906e62414013 commit 4416377ae1fdc41a90b665943152ccd7ff61d3c5 commit 73dd0ad9e5dad53766ea3e631303430116f834b3 commit 875ff9a7ee8824200885384effa7743892a34ed6 commit 010cc730ace807c6d267481b5fb6ff99acc35c46 commit 6ef29715ac06fad7b3e43086cb4df97952c3a4de commit 3376f922bfe070eff762164b3fc66981e3079417 commit cb5164ac43d0fc37ac6b45cabbc4d244068289ef commit 537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b commit e45b6716de4bf06b628a9f3559f7fc8dd5e94d58 commit 58a261bfc96763a851cb48b203ed57da37e157b8 commit 25ebe10e3f4c897a2d348a9d4b674ee9ea28225c commit 5b993d00d7f0c970a5e5d34c1031069fb13b6986 commit b5de6a5ced074910b8fe57d3b0ab7f8843f85a3a commit a323782567812ee925e9b7926445532c7afe331b commit 6eb2aad402cc94ab4dd3780d8fd94c5c9bb7ed4a commit 501d94389310bb282915e730386d1150b13ae321 commit a64e7e5b05e014dad9ae5858c9644d61400ec6ef commit 122824165471ea492d8b07d15384345940aababb commit 66a0f6b9f5fc205272035b6ffa4830be51e3f787 commit 6628851159c77cf5666160e0272d46acc0772a6c commit 3126d5fff54368288e7fe1c0fd4ecb36b868e5aa commit a4dbe45c4c14edc316ae94b9af86a28f8c5d8123 commit ff9c674d1127e768050fe418470e74586985c87b commit e24b0ef20a20cd26a770c66bf87d911838ea00d4 commit 65112db0c21022cb1caed5a03c6392eaaf984c14 commit 4836c6cc01a16f1ac2b436550299474ad7183c46 commit 6729c73103bd7a0e60b0c980b51b5434010b4502 commit 1b5dfd1881dbe303536d4167500b94549ff2f6a7 commit b330f148017251810fc1f0c297f51b3039b796e0 commit 594cf78dc36f31c0c7e0de4567e644f406d46bae commit 51394119f640423858a2f04076d6f1c3e83fa715 commit 67733d7a71503fd3e32eeada371f8aa2516c5c95 commit cf4d37b8157ca085c17fdc1faad737465ff311b9 commit 22bc22ccf95bfa6eb6288ba4bc33d7fc0078381e commit 5fbca8b48b3050ae7fb611a8b09af60012ed6de1 commit 45c4d994b82b08f0ce5eb50f8da29379c92a391e commit 071d583e01c88272f6ff216d4f867f8f35e94d7d commit 037f93434ce9aea3dc19ba2d97e888a12e538f7b commit 54f90b03335916e21c417a31d0926841f7d97c56 commit 9c57bc08652a7c8e0e355c52c023fddc090fe9bb commit 002353a537a29b9be5bde3c1d9964628f0d20d45 commit 11b7309dbe9fa98d9b8d18cd51db4f385c37ae30 commit 19f01d4bbe9daf71901b200ab5c52591946b022a commit 8a04e342684a75ad1455fc3f23fab8e67c1aa9fc commit f9ae00b1cfb37ccf57017bf9cd82712ee0a5316b commit 3f53d7e442197b7e7d56b470b02dfd37a8bc5c46 commit 4461e9e5c374f8c11fee8e4a0e3290b072cfd538 commit e55ef65510a401862b902dc979441ea10ae25c61 commit 01cc7b2e8a59fcae0c4493720561e5b33a195fe7 commit 014125c64d09e58e90dde49fbb57d802a13e2559 commit 04cf420bbc32a599aa2481725f708435ea19bf3d commit bbb05f8a9cd87f5046d05a0c596fddfb714ee457 commit b932d5ad9257f262a0bfd1bd7146120b0adc11a7 commit b86a6a57b8ad1699ba8b1c270a79678383baf632 commit a08d75927f99e57c793f3a5d11260c22893fc0e9 commit 3d054c40766024d9d8fb051d017ceacf2b795f1c commit 5d666496c24129edeb2bcb500498b87cc64e7f07 commit f0b7dcf25834afd17df316367dfe5d4c890c713c commit 949237a34dba3f0218857f5afa0dde2076dd8c82 commit 6dcc304f85898b099b35c63748c5e11ba56d0c8a commit 87d23164d89c3898a0acb4ec0b431e787c27a91e commit 6692982582a54e7ecc80d7b0dae5db6cd47e2567 commit e565b6b0b5eee112db803bd955fb0387ce952d54 commit 4437936c6b696b98f3fe1d8679a2788c41b4df77 commit 9793a4a6e5eb8764c7410c361984ed01722bab9f commit 6efc0ab3b05de0d7bab8ec0597214e4788251071 commit b4148dc2fa062cdb94b5165d39827bcb1a3daa28 commit 1b0ce903fe747d72e9eab86a06c79fb2c7ba2bab commit 469a486541b6eb0d695a5558e68851fef35c16f7 commit 38d6f7e27d318cf41c2376980a105d02ac6e8b16 commit 3715112c1b35036039e8c4f75868a0b56a71a51d commit ff95eabe57368d641589441e8f638b4d59f79a82 commit e45a3933bb3ebd9a2ac95b6b60da029ee3a9f4e7 commit c50fe289ed7207f71df3b5f1720512a9620e84fb commit 97c6efb3649724e6163774f0e7405c5ca8b1097a commit c66f4711f79c937832b6c0e0b1805061667d99ea commit 727eb1e3f014e66dcdec53afc6f5bfe0d8c0871d commit 7546a8201ba288530ed1bbf2a8bdcce5e034a234 commit 789e51597d33ec0053b029127d797d86c0d857eb commit 379cad69bdfe522e840ed5f5c01ac8769006d53e commit aec8485f226c36eb4eea1d489772cd6f2c40144d commit bad928d2cae5d4d5ec1474ae7428a797fb34c111 commit c72084163cd22ebf59d936669ec25b1fc2b7494c commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335 commit aeb4ae66cb50faddf60be9297d0d5d392aacdd3e commit a7f657097e96d8fa745c74bb1a239ebd5a8c971c commit 87d8ecf015444c51ea9d9154f633f98b7748a724 commit 33929707b808ba7839c40c15d3e68cbc51070b31 commit 4548f10bf4c67b569b7c9fbc6746340a558faab9 commit b71ccff68ef1a5bd1c02d0fca01ddb3d9088329a commit 175d648be98bae22eb22444377dd9a0c497c9d46 commit e0cb0c785250d0565c19ba17fc95bd7ab97670ba commit 076403a69837c1f8454ceced3ed6f0465835f4d1 commit bfbdf72d6c145e008805f0745ff79f9b8e301e0e commit 33eca84db6e31091cef63584158ab64704f78462 commit 84addde447fd9d713e101437db0d4924855eff4f commit 81a1c37c8b52eff636e77a794d0f0620c3a40af0 commit 21bb04152a18ac2314ef4186b6dcd46f1b847354 commit 70a65a5de23337c0c0251c482520224ac80bdeb5 commit eb4556f25fb4cb3a005a93dcc6dcc4b0c024f5f7 commit a69dcaf9310ab09ed97711e0fee08e59218ed8a6 commit 8d5ac8efb6d94efda53f604fd9c072b4754a3d85 commit 2039809783d630c1022bb3debe648abced7861c4 commit 06358ccecd75bfcd988f347f79592e23159aaaa2 commit 51e039542b87cb649d50ea3b5cf90847be32a30b commit 44378f6ef2efee3ccfa87de5860662f2356bdde8 commit 07226d09a200b92797afabd3a5131a0b504344c1 commit b5d4657e192ba7a3f21fc397cf5d169982b4ec0c commit b2fcb48214980adf6687dda84fa33f01e9a47e28 commit a74549dd55d21612171334fb70e45241d0ce0487 commit 2160f6f6e3cf6893a83357c3b82ff8589bdc0f08 commit 7293859c51e1d7f923073aa46e2072333b3e143d commit f7c2ea682d8ba17bfd37abd1e734348e0cf46c99 commit 5ee2d63ca1201ed23c6595cb2fc927222215bce3 commit 7745a1dee0a687044888179e6e7fcd6d704992a9 commit a9b67c036c7f5d187fb88eb74fe04dff1098700f commit 7c1a2d8aba6cadde0cc542b2d805edc0be667e79 commit 6122f5c72e38a88eda13c7168e2ebbd3bd80b681 commit c67db6a6a6be4bb1db1b0fd5b24040d68e461cb1 commit af76ca8e180f38a7d874c18cf810707762766627 commit 30e8f4c2bd532c44af0e0fad9c04e7d2970b91a6 commit 28d43d0895896f84c038d906d244e0a95eb243ec commit 1e487c9173ca12ae372f71a5f5c0eb57ce0ab108 commit 1125f95cd2455b51ad1c16d7f96ae39117083d20 commit 96316211eb5c4b58f34099e9e6f71fdfad7af01a commit 52491d97aadcde543986d596ed55f70bf2142851 commit 6c0a7c3c693ac84f8b50269a9088af8f37446863 commit 02a416afbe127b1c9ce85ffa340c0a32dbc53184 commit 70c33a2710cd08a4be974a1c7f9cdb5601a8806f commit 4f7d8da5e349c1126cdfcdd2ceede00382ad2ceb commit 8bdb468dd7a5d17f8556afdd4c8d046939ff965f commit 6d0ebb3904853d18eeec7af5e8b4ca351b6f9025 commit 641bb4394f405cba498b100b44541ffc0aed5be1 commit 16ba2b28df3a83443fc6b4e5491189d2e5caca64 commit 65fe9617a1256f0a36696d48f7c63a8d3ec290bc commit d69300abc2dec930fd280a013984150ae7c6a386 commit 2bd87f0fc24ae29ead9808d341497f465b339c0a commit c5f728de696caa35481fd84202dfbc9fecc18e0b commit cad08fa7760ace5e01b24c6f9e1f918fe72324bf commit 3034cc8107b8d0c7d1b56584394e215dab57f8a3 commit 20f61c1ead989e5d16f35bd0a546c6233b703b69 commit d7eafed3223af19add14b67a390ec2b983d890e0 commit 2bb3fc536d692d43cd55396ecff73c7691eeae85 commit ddc94d0b17e8ea8179ecbbefacac3fba0fb77265 commit bf758226c7e6927f1c2c34fd6eb2cb580b77f543 commit 590b9d576caec6b4c46bba49ed36223a399c3fc5 commit ccbfd2df3018e2694f750abe5e93b647a4eef5b1 commit 83e5af5997554115e198c2e9e97564702eac04a6 commit 6a2161a155f92985b21e38a9e8b9217f620d606f commit 14ee9fa87d8c96b23d77397b684fb431c5bc2677 commit 3eac4684ecb5ea696bd283bd7f35e4829973f4f8 commit b1aa0491fad27f030c94ed42c873c3f46f5e7364 commit 8906064715c16571e691f67c2746ed1bf1bda6b9 commit 390fa93e6efef330baa2785edc2a484f7ce0b292 commit ad17b124c3a08241da36eb94a6f076446432743b commit 6f4835f9df2df7eee0af74c850d0a06166c199eb commit c66db9e9a025006d729c87143c3f43b5873b4a1f commit 988fe2862635c1b1b40e41c85c24db44ab337c13 commit 0ba3cb8e7cf08223a9246ded3c1bee25a74d1f7f commit b3e9bfd86658b562a33b1ee8563d59a593327aaf commit c24538c4aa352b68bd5c429b7fd3ccf4d4407143 commit 8a060e9c17d0fd7a182e335a52dcb5fe327e3d86 commit 6e8410944767381524544390ce030c86f07399da commit efaf15752d113e81a5e9f25f57dc203f7c3007ab commit fc5da5c00c0a4880220f6f539293e49c766fb93d commit 29d3d6af43135de7bec677f334292ca8dab53d67 commit 9888773753333ee7bed1697abd6fd9c84239cc4a commit f2ea269bd2a55c4a28a9b825424b059a20259793 commit 072b4414784524b6debda1b3b2ffbf10d66095e9 commit 7d8e9e65f23040b2f9e9670bc971d3ec8fa69d47 commit a10c93931b61b22ff6601f74192151d548b0b14b commit 1741281a157fcfacf46dbb6ce39c13bf2699d371 commit 2f3806f781421ce6dfa60471eb2116627c0eb893 commit 097af47d3cfb99ee02afbdd7e0d9596eb012c65a commit d1f214432110748603dd310fbe6099df875e6f04 commit 2480599890296b386839bc53367c10f19d97716d commit 8fe4fde381a103114903f823c6d18457b4b891e4 commit 8b2429a13feaee01d62bc248417343586f6fa489 commit 01b4ae38e5dc6798c6cd477be9c363c5ae45fa7f commit 178ad0e280c088f5abfa61793cb992fa120d1830 commit 4d5ddfa4b1b2bf1e936b8d38735910480f9545ed commit 01163079e136e6d6ce4474b964b8a7ec954cac81 commit 1a1995b1dc948d471854360ec0fd3306f54dfbae commit bcee4c3f89879e15ef57f3217ded97f00b1334d3 commit 01d05521f7e2523045d3ff7b857dd68db276d31d commit f8eee864ba5cbe1447a68949883f69228e53b138 commit 21818f39beda2e843199e5d8d9e3f9e43c8080a3 commit 3f2d35c325534c1b7ac5072173f0dc7ca969dec2 commit ead60e9c4e29c8574cae1be4fe3af1d9a978fb0f commit a1498ab229ca16dfc35331dfb309f8e28b84bb5d commit da6ec743397702e0b551bcacfeaa48829d303a29 commit b3b91369908ac63be6f64905448b8ba5cd151875 commit fcba2ed66b39252210f4e739722ebcc5398c2197 commit 9f6b47907e2d01bfa90c3003e42b6dfeefd8d03a commit 059f6fc89968f4f4527f1b706de8017d368ad9dd commit 1138137c2c48f036b87e80cf3905c1acbff6b0de commit b34b43f9cb45ac15b0e48b5570af9e074959dc68 commit a954e0a26146c465934f4944d49cc03324747917 commit f70e43763e6a550f5b50ba4f6a0d6aef5121ecba commit 402bd11a5394636b2bc9712a58b97bc3cbca69df commit 631ef2e6adb0aec8d639dbea17c5ed08c8364df7 commit 8a37cd4dc50e8f29168dd5bc766ba40a1968724a commit 41a46296214fa07cf5140c9ac9254e095bdcb960 commit 7134cc23fe73f4ddeeaaab9284399cebfd826c51 commit 963ed4efe0c6416f5a2f61e107ee3a27f0bb757d commit bc947d9a8c3ebd207e52c0e35cfc88f3e1abe54f commit 8da19441d0a02b53e362df81843bb20db3a8006a commit 34bb7b813ab398106f700b0a6b218509bb0b904c commit 7a199557643e993d4e7357860624b8aa5d8f4340 commit 596a7f1084e49cc65072c458c348861e9b9ceab9 commit eb7205b7cbff5f9ddafedf82b62590aae0a72dc0 commit 4da5a95bf125fd682249f60e296455c6413b4e10 commit 4453808d9eab0461dea338e89372ffc4a3c50acc commit 4c4e9cb58dd75c87300ca63307ef7d4f9656eda0 commit 7b17e8f3a074ff4558527f6c595f49444a2c6fa0 commit 0126c0ae11e8b52ecfde9d1b174ee2f32d6c3a5d commit 2c7795e245d993bcba2f716a8c93a5891ef910c9 commit 6fbbb660b1d423a777d7567b7475a6a01aa7fd91 commit 760e3c8b3288279841aa8a71e6d65c67a3934d01 commit a3cc326a43bdc48fbdf53443e1027a03e309b643 commit 0607a50c004798a96e62c089a4c34c220179dcb5 commit 4481df364d2038eb4a8f5150367b47955940f027 commit 5359d5bc975466e8791d7f870ea4a96f1b0973bf commit f5a972dfe3e993f09cf12bd36389a942ecd23350 commit 2578487ebe6ca34fe9cd950bf68e8158639ddb1b commit 559a285816af5b72284a6ed65eb82a68ee497d60 commit e146a7ab218626827b7c06e189e69cd2abcd1d37 commit e8397d327e7b0d6132197c9d8fd7977f84f3dbd9 commit 01be2b62c0f3c66832472ed3e48e61d631094606 commit 101025e94b537e8b5426c73a985b26fc95c199cb commit 7eafe7a730bad6f0efb62b2d260f1ae3f2d09b95 commit 663b0f1e141dc60ce6c09ae6afc5f213b22d13ca commit 27f9dcb9cc067d40077e116ac062e185ccd7a0d8 commit 7ccde2e6c0a5e50e11b74353b456bfe602efe6aa commit 0df8ef6e1b5dc7a6edc6242a95f47a257ffecff0 commit af04e65f6b66339080fba0d5f44a759647371652 commit bd7c8ff9fef4b21a97f9b30a7364845ee6eaaf23 commit 2ef8d63da81d9e89cbc1eb4867d638f88bf5dc78 commit 2f7eedca6cecbfad52d5b52c1550066d9252c947 commit 578aab4ecc73476393389440724b7a391cc0cea9 commit aa47fe8d3595365a935921a90d00bc33ee374728 commit 25d48f2eb0af1f0e6f09f54a1a1716f48c0722c9 commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24 commit 88dcad2d07c8d82e6a097c8e74239eb67333bcf7 commit b8faa981a7e62848ca4ba1c77282dfdc71d0edf5 commit b2d4da31a1f40b05a61076efd4c79b88439003b7 commit 6c6ca71bc1653d00623702ae031d0f9bde06a6fc commit a4500b82bc85f7a15cff0729315c96015849e9e8 commit 4c3140fea6277e1478ba206e8f45b9cf7a128cb9 commit 32bd3eb5fbab954e68adba8c0b6a43cf03605c93 commit 741d73f587d5cc86db5e65cc107e031263302616 commit b615b9c36cae0468491547206406a909a9a37f26 commit f7e3885aa80559d5e497eec18e6909d594497c13 commit 0289507609dcb7690e45e79fbcc3680d9298ec77 commit 0c8c5bdd7eaf291b6f727e98506fb68acee3a4cc commit 70a6587dca37a3cf12ab323f7fd73266abfc274f commit 83dcf232cc7919725a331359a300fb3929651b6e commit ad92f52312614b0ef6eee07ee64f1e7661072a49 commit 457ca96d04f599d2f95bd61144851f2181ccacc4 commit 2efba0c095419f93f8913f1cbae8bf3fb030db20 commit 70b4ab5489da0fe5b699a8466aa4f73ea304ae65 commit da9a73b7b25eab574cb9c984fcce0b5e240bdd2c commit f1a4dceeb2bd4b4478e4f0c77dac55569d153fb3 commit bf05aeac230e390a5aee4bd3dc978b0c4d7e745f commit d92b90f9a54d9300a6e883258e79f36dab53bfae commit 9498f2e24ee0133d486667c9fa4c27ecdaadc272 commit fcd33d434d31a210bc9f209b5bfd92f3b91a2dda commit ec2231b8dd2dc515912ff7816c420153b4a95e92 commit 8f72c31f45a575d156cfe964099b4cfcc02e03eb commit 2775df6e5e324be9dc375f7db2c8d3042df72bbf commit 26df39de93bb8763bb3088db6c76eb98d4cd7213 commit ae2c6d8b3b88c176dff92028941a4023f1b4cb91 commit 9ea925c806dbb8fee6797f59148daaf7f648832e commit 21d1d72475809734a5149ecfffdc7551503b042b commit 52755373ea6197dac40b9804ce967611b5e989bf commit 0da531c82a0fcac65407d28ecdb2a1e19c833df5 commit c389a0604cfbcdb1f8f53a76560eb31e0700e206 commit 28b0ef922738b74335c20b8ed4bf8e259353a3a3 commit 2f27fce67173bbb05d5a0ee03dae5c021202c912 commit 7ab9ebc580617831355843f19224f1e31bb8e983 commit ee06c09ded3c2f722be4e240ed06287e23596bda commit 99b1f7493bfa757b03d41ee6d7f7d00f81fcba5d commit 69bbe3adf36de47315498c9384f99a1ff9171694 commit 73d10c7788f6d2b7badf9973afbdea7ca433c15d commit ddc73c465628ab3e60f7eb5b4063b644c18b6336 commit 9460f4bd5970f2e46fe190a0cb9814697bd7f21a commit 6c10ba06bb1b48acce6d4d9c1e33beb9954f1788 commit bfc00a7754c40544c7446d3b664049d6e00ee0bd commit 902b4027216aeaabe1562e1db070550c06f3ec89 commit 0110ac11952f06419d267f51a3989e989b17e67a commit c400ec6990fb04a2ec9929b253dafa7e77c7f555 commit c77a46bebe99e70600e636a3a1f285637c479f46 commit 2ed186df27f078eb75c52d09e04aa7b0f9920f57 commit 3c75518cf27aa5a7e22e1f8f33339ded3779079b commit 03b5038c0ad069380fab7e251d2bf3f1540d20f4 commit 797fb1533315571ff9e55e80154f48cd47f3dbe5 commit c1de938fb7e5edc4c71d33f73e9fc5c77feb02a0 commit 7181faaa4703705939580abffaf9cb5d6b50dbb7 commit 151b1813919d4ab932e69ca4032761ee0789b04c commit 2ae6cd583c4c86c2b7e879b07effb8ffb10756bc commit 2778701b165eda674756537054d460fb4b0cf2e2 commit c03fca619fc687338a3b6511fdbed94096abdf79 commit c2ed7002c0614c5eab6c8f62a7a76be5df5805cf commit f588da30a20cf184f150420e4098b694908a4207 commit d18a56b247f4f3f7dbdd3adeeebd05c23f1e3d3e commit 5a3d3e11349c2e298c0b6b4d37c8241f44d37e3d commit f57b77d667dc6bd2b114d08d04b03869539209f6 commit 0765b2afc1118a6ab5fee624e206c782d70db28a commit 09cb922c4e14e6531979bff4e6bb3babcd9cb188 commit 401c90c4d64f2227fc2f4c02d2ad23296bf5ca6f commit 3766a840e093d30e1a2522f650d8a6ac892a8719 commit ae5100805f98641ea4112241e350485c97936bbe commit cf4cebcec619d963fa7496018f03cb0ff00dc257 commit e79563bf5fb17d1a199c7c0f7d5a7a98c077302a commit 07bfa9cdbf3cd2daadfaaba0601f126f45951ffa commit ce83ae29f93772d604b4ea73459fb17822d6a6b0 commit ff599ef6970ee000fa5bc38d02fa5ff5f3fc7575 commit b6499840cafca25175f43ebd601913bf31d06f16 commit f510dd5c210bf8cc22e4be48cbbda3cb754219f5 commit 4bdc5b504af7de1f649004cfdd37445d36db6703 commit b74571a83fd3e50f804f090aae60c864d458187c commit 327e62f47eb57ae5ff63de82b0815557104e439a commit 199888aa25b3a3315360224bda9134a9b58c9306 commit fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317 commit 06c9aeb57fe894e6e442cd66870cd3e863bbf08c commit ef126c06a98bde1a41303970eb0fc0ac33c3cc02 commit 42ac749d5b8bf78b347ac8a52eb15cc397b157a0 commit 54b86443fd4437c051aefd3f462cfff4defd420c commit f2be7b39e43893ab5361115de2b95e7c5c86f190 commit 375b035f689735fd7a87ff31ccac3a42717252bf commit e7d4e1438533abe448813bdc45691f9c230aa307 commit 042658d17a54c9dc8c028986dfbde49f4aa01871 commit 7b6df1d73290961ff0a00fd0022f28dd19e37181 commit d5a29e6a61028887bb8480e7c4af3547d6f3862d commit 87d749a6aab73d8069d0345afaa98297816cb220 commit 6dcba0975d39b30be65dd038fed69e1aa111c73a commit 856265caa94a3c78feaa23ec1acd799fe1989201 commit 84f76408abe989809de19d02e476b044fd985adc commit de848da12f752170c2ebe114804a985314fd5a6a commit 617a814f14b8914271f7a70366d72c6196d17663 commit 7856a565416e0cf091f825b0e25c7a1b7abb650e commit cac075706f298948898b1f63e81709df42afa75d commit f8ffbc365f703d74ecca8ca787318d05bbee2bf7 commit 3a37872316c2e3288e09a1322221c83e5929768d commit 440d52b370b03b366fd26ace36bab20552116145 commit f0fa69b5011a45394554fb8061d74fee4d7cd72c commit 338aae5478befee9e0e66afb78c2ad1e8d69825c commit d7126c0cfc137a580eba92bd82b6d288bd43961d commit e860513f56d8428fcb2bd0282ac8ab691a53fc6c commit 8b0d2f61545545ab5eef923ed6e59fc3be2385e0 commit 4771d2ecb7b9e4c2c73ede2908d7e7c989460981 commit 126be9b2bef9c7068fdd464790d82e6d70f9d8e6 commit e1d27f7a9cea1e0c06699164e3b177862e7b4096 commit 6ae9e1aba97e4cdaa31a0bfdc07497ad0e915c84 commit e45b011d2c4146442a388113657b70f0c7cad09b commit 8048e5ade8224969023902b0b3f64470f9c250a7 commit d52ac79053a2f3eba04c1e7b56334df84d1d289f commit 4286cc2c953983d44d248c9de1c81d3a9643345c commit cbc8764e29c2318229261a679b2aafd0f9072885 commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5 commit 3cb576bc6dfb8940228b8130638860b631dd428a commit a8387ddc0d15a365dd04baaa325a863d3612e020 commit 34ad56a467c320d07db22146cfb99ee01704a5de commit d7d2688bf4ea58734d73e18edcbf4684b1496d30 commit cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 commit e7268dd9bb9953a9eb0df9948abf5195bf474538 commit 994aeacbb3c039b4f3e02e76e6d39407920e76c6 commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8 commit 43102a2012c2e2f8424d7eef52aede8e73cf2fed commit 394b52462020b6cceff1f7f47fdebd03589574f3 commit 2cd86f02c017bf9733e5cd891381b7d40f6f37ad commit 2b55639a4e25ff02ee496368b03456bd28ebdc0b commit fa998a9eac8809da4f219aad49836fcad2a9bf5c commit 282864cc5d3f144af0cdea1868ee2dc2c5110f0d commit 7a1f30afe97294281a2ba05977688385744f9844 commit f9e7ac6e2e9986c2ee63224992cb5c8276e46b2a commit d51160ab00969ee6758ed2dcbc0f81dd476a181c commit c36df0f5f5e5acec5d78f23c4725cc500df28843 commit 05af800704ee7187d9edd461ec90f3679b1c4aba commit ef785ca7f7c80891580cafd36c8dd86375684310 commit 52d4e3fb3d340447dcdac0e14ff21a764f326907 commit 34f50cc6441b7fee4a86495d5ef43da5d254bad9 commit 9286a191abe2ea01b34be577e8a09a412dcbb644 commit 5f60d5f6bbc12e782fac78110b0ee62698f3b576 commit 156cc376a200aa9890c1f71c5e3d2fec874a7d07 commit 475be5144459b502d8aa987637dd4d9f38422786 commit 240ebf1c9d4ce1576f58e10365fdd3bed8aba7dc commit cffa8e83df9fe525afad1e1099097413f9174f57 commit 790533e44bfc7af929842fccd9674c9f424d4627 commit 2d2be279f1ca9e7288282d4214f16eea8a727cdb commit cb58977016d1b25781743e5fbe6a545493785e37 commit d1ef967126e295d36201e79ec64efdba31710353 commit 0f18ac78aa974660a948dafcc45f4dc6e2c5858d commit 7929ffce0f8b9c76cb5c2a67d1966beaed20ab61 commit 3bf90935aafc750c838c8831e96c3ac36cfd48d5 commit 6ef5a04221aaeb858d1a825b2ecb7e200cac80f8 commit 1b30f87e088b499eb74298db256da5c98e8276e2 commit 9e3c85ddea7a473ed57b6cdfef2dfd468356fc91 commit 74231870cf4976f69e83aa24f48edb16619f652f commit 67801fa67b94ebd0e4da7a77ac2d9f321b75fbe0 commit 8135f1c09dd2eecee7cb637f7ec9a29e57300eb8 commit 7257d9c9a3c6cfe26c428e9b7ae21d61f2f55a79 commit a6f3b2527375c786f2eff77d3ee8b805bcfe026d commit 301d194d01f3074efcf3a10eae116fcddb76788a commit 5b272bf7dcf969eb4f19ef994b6e60458ee6300f commit fe6fceceaecf4c7488832be18a37ddf9213782bc commit 4cc2718f621a6a57a02581125bb6d914ce74d23b commit d7d7b947a4fa6d0a82ff2bf0db413edc63738e3a commit 8e82d1199564ea0baab7be31f6558406bab4fe1d commit d6b9f492e229be1d1bd360c3ac5bee4635bacf99 commit 0a9906cc45d21e21ca8bb2b98b79fd7c05420fda commit 79bc412ef787cf25773d0ece93f8739ce0e6ac1e commit 04e0481526e30ab8c7e7580033d2f88b7ef2da3f commit 835745a377a4519decd1a36d6b926e369b3033e2 commit 32fda5650625065b8ae6dbd9967fb572d3835c35 commit db7f92af626178ba59dbbcdd5dee9ec24a987a88 commit e863781abe4fe430406dd075ca0cab99165b4e63 commit 42465603a31089a89b5fe25966ecedb841eeaa0f commit 3fd76be868ae5c7e9f905f3bcc2ce0e3d8f5aa08 commit 1badf482816417dca71f8120b4c540cdc82aa03c commit fc4d262721705f2a7b860946504e7b8a313f06e1 commit fcddc71ec7ecf15b4df3c41288c9cf0b8e886111 commit 28a5dfd4f615539fb22fb6d5c219c199c14e6eb6 commit 4809a017a2bc42ff239d53ade4b2e70f2fe81348 commit 512a9721cae0d88d34ff441f2f5917cd149af8af commit 26498b8d54373d31a621d7dec95c4bd842563b3b commit fe4a435bd0c20beb6d7caf87b49bc49a2233b18b commit b634acb2a070c072900c56154aa43e2ec2d45b2d commit f07fd958a49264eebc1db9c946eb5d2e91c470fd commit ac44ff7cec33d5c2d4b72d52603552ec64c1a8bf commit fcf38bc321fbc87dfcd829f42e64e541f17599f7 commit d2c72d96dff5ba408bb107193b53e3134a516c4b commit c0ec082f10b7a1fd25e8c1e2a686440da913b7a3 commit 7760d7f93c764625fedca176891238675fd06d62 commit e7457532cb7167516263150ceae86f36d6ef9683 commit 68d26c10ef503175df3142db6fcd75dd94860592 commit 7a1613e47e65ba6967085ad99dee95420346a0ce commit 28127dba64d8ae1a0b737b973d6d029908599611 commit cb07c8338fc2b9d5f949a19d4a07ee4d5ecf8793 commit 69b3d87212676c4c22aa4660435e2066dc7d1311 commit 2f54e71359eb2abc0bdf6619cd356e5e350ff27b commit 4ceead37ca9f5e555fe46e8528bd14dd1d2728e8 commit 03a86c24aea0920a1ca20a0d7771d5e176db538d commit 761f916af44279a99db4e78c5f5ee839b31107ea commit ed931fb40e353586f26c3327813d142f782f5f78 commit 82926f52d7a09c65d916c0ef8d4305fc95d68c0c commit 477d665e9b6a1369968383f50c688d56b692a155 commit e7518276e9388d36f103e8c1c7e99898a30d11f5 commit 4e8b5a165160e2f521cc10bae58ce0b72b2e22b5 commit 816b186ce2e87df7c7ead4ad44f70f3b10a04c91 commit 6df106e93f79fb7dc90546a2d93bb3776b42863e commit ffafd12696d1a4c8eeb7386d798d75e1fafb4e01 commit ec1aab7816b06c32f42935e34ce3a3040c778afb commit e5a3c24bcaf7bc1c3c2647395aae5de4660c1c64 commit 5b3c0209e88a67a8d029ed8b6e30bca383cbdc55 commit c09c4f2a972ca7cd9c8926594aa2099bcbcd3b79 commit 7626b4e96bdbbadca046a775c6b8e02b842c05e7 commit 49ff3e79a7f49e269b0278e75d35d6421f5538a2 commit 83f000784844cb9d4669ef1a3366479db3197b33 commit 338b655a1178900ac05aca7ac66dc28b05100430 commit 85e444a68126a631221ae32c63fce882bb18a262 commit 5c23878252515b8d2b86839bd4cb7dea7088aacd commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 commit 9515e74d756b6825f6119823d41b437832d89355 commit f888e3d34b8641a551eba8e0fa26209c5392eec8 commit f67644b219d458d4b314e78f2304b73985390311 commit 23d16ede33a4db4973468bf6652a09da5efd1468 commit 63feb35cd26557572ad95fc062ede344bb61d9ad commit 108bc59fe817686a59d2008f217bad38a5cf4427 commit ba1959f71117b27f3099ee789e0815360b4081dd commit 7c210ca5a2d72868e5a052fc533d5dcb7e070f89 commit c8fb95e7a54315460b45090f0968167a332e1657 commit 22ef43c78647dd37b0dafe2182b8650b99dbbe59 commit 69418db678567bdf9a4992c83d448da462ffa78c commit 9c1813b3253480b30604c680026c7dc721ce86d1 commit cdc21021f0351226a4845715564afd5dc50ed44b commit 2ba1f81ec7cbb2a9920cd3435c515247863b32a6 commit e3e1cfe33f932860e070eafec8df8780e3b889a8 commit 4d95a12beba146b0ca2de59c7ce905bc0aadfd0c commit 746ae46c11137ba21f0c0c68f082a9d8c1222c78 commit 4aa923a6e6406b43566ef6ac35a3d9a3197fa3e8 commit 935abb86a95def8c20dbb184ce30051db168e541 commit 25f2ff53838ccbd5ce558b5d23fac8a5d7f86655 commit dcb6c1d071712186c213c26b245779f7859b9cec commit 6a9d2e2988fa3ef9b03ddd9ba9aaa54dc23635e6 commit 5d01b56f0518d80211812420a8907ca0b6c6e4e3 commit 412a2a8fdd4eb89b263623c7a59b77dbfcf8f215 commit 4700fd3e050da8302e60ebd4850d008250fa7204 commit caa714f86699bcfb01aa2d698db12d91af7d0d81 commit 926163342a2e7595d950e84c17c693b1272bd491 commit add4163aca0d4a86e9fe4aa513865e4237db8aef commit 993ca0eccec65a2cacc3cefb15d35ffadc6f00fb commit fe05cee4d9533892210e1ee90147175d87e7c053 commit 8594a2d8d72d86b70b8bace607100d88111aedf6 commit f99c7cca2f712d11a67148cfbe463fdefeb82dc5 commit b0ef514bc6bbdeb8cc7492c0f473e14cb06b14d4 commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 commit 7fd3fa006fa56c0ec299c61ecf5c572c723adad5 commit 4b468a92ddb2985da66823910a1643349fe6447d commit 55e8a3f37e54eb1c7b914d6d5565a37282ec1978 commit 7d1e2580ed166f36949b468373b468d188880cd3 commit 1491efb39acee3848b61fcb3e5cc4be8de304352 commit 4f26c95ffc21a91281429ed60180619bae19ae92 commit 694c79769cb384bca8b1ec1d1e84156e726bd106 commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e commit 1356bfc54c8d4c8e7c9fb8553dc8c28e9714b07b commit 74e1006430a5377228e49310f6d915628609929e commit e301aea030d60da760f85f854a82ce788d5cf6e7 commit 3ce3f85787352fa48fc02ef6cbd7a5e5aba93347 commit b46dadf7e3cfe26d0b109c9c3d81b278d6c75361 commit f790a2c494c4ef587eeeb9fca20124de76a1646f commit 4d75b9468021c73108b4439794d69e892b1d24e3 commit af797b831d8975cb4610f396dcb7f03f4b9908e7 commit 64a2b6ed4bfd890a0e91955dd8ef8422a3944ed9 commit a353c78459f4d116216393cc29032ef5fe1472d2 commit 514447a1219021298329ce586536598c3b4b2dc0 commit 052ef642bd6c108a24f375f9ad174b97b425a50b commit 444fa5b100e5c90550d6bccfe4476efb0391b3ca commit f432a1621f049bb207e78363d9d0e3c6fa2da5db commit 9b984a71c240ed9287d6358109f6a0c6ab5bba32 commit 1a6bbc4d9e55d6c9df2dfe7d4f2705a544d8ca13 commit b8d9d5fef4915a383b4ce4d0f418352aa4701a87 commit bd8a9576617439bdc907c9ce0875909aea4221cb commit 6825cb07b79ffeb1d90ffaa7a1227462cdca34ae commit 9fc0cbcb6e45d6fc96ffd3bb7b6d6d28d693ff4d commit 16dd2825c23530f2259fc671960a3a65d2af69bd commit d641a151fcaf0d043075b214b469a14abab25af2 commit df0279e2a1c0735e8ca80c5df8d9f8f9fc120b4a commit 0e5ac88fb918297a7484b67f2b484d43bed3fbbe commit 79365ea70714427b4dff89b43234ad7c3233d7ba commit db0fc586edde83ff7ff65fea56c4f72dae511764 commit 67e023b93d69e5a21b16f9602656a803d314e825 commit 5a67c31669a3aca814a99428328d2be40d82b333 commit 4bb2f52ac01b8d45d64c7c04881207722e5e6fe4 commit 5f77ee21eb44e37e371bcea195ea9403b95d1399 commit 7013a8268d311fded6c7a6528fc1de82668e75f6 commit 3387e043918e154ca08d83954966a8b087fe2835 commit ce0d6970231903f43572a6998020fdc8b3a8f455 commit dd886a63d6e2ce5c16e662c07547c067ad7d91f5 commit 46f1f4b0f3c2a2dff9887de7c66ccc7ef482bd83 commit be7eeaba2a11d7c16a9dc034a25f224f1343f303 commit c0403e4ceecaefbeaf78263dffcd3e3f06a19f6b commit 21ec425eaf2cb7c0371f7683f81ad7d9679b6eb5 commit b6ad7debf5ab3e581b5cb0f5c94e404ec968bd5b commit 9776c0a75a1a86b753b2dc7c1ecc3baa048a8dec commit 93d1f41a82de382845af460bf03bcb17dcbf08c5 commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d commit 99d051c4b33cfb451dca0c30e28da25db2ce4d7f commit 1eb0de899b1eafe2c3aca8763c99e5c5ed791561 commit 21c1c6c7d732c2f6f4c5ffc77e103aa3ae8bff1d commit 44f392fbf628a7ff2d8bb8e83ca1851261f81a6f commit f48ab0a39f12fd83fae13bf81152531565cd5e75 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:41 +00:00
* dma_fence_array_alloc - Allocate a custom fence array
* @num_fences: [in] number of fences to add in the array
*
* Return dma fence array on success, NULL on failure
*/
struct dma_fence_array *dma_fence_array_alloc(int num_fences)
{
struct dma_fence_array *array;
return kzalloc(struct_size(array, callbacks, num_fences), GFP_KERNEL);
}
EXPORT_SYMBOL(dma_fence_array_alloc);
/**
* dma_fence_array_init - Init a custom fence array
* @array: [in] dma fence array to arm
* @num_fences: [in] number of fences to add in the array
* @fences: [in] array containing the fences
* @context: [in] fence context to use
* @seqno: [in] sequence number to use
* @signal_on_any: [in] signal on any fence in the array
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
*
Merge DRM changes from upstream v6.11..v6.12 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.12 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: Conflict resolution: diff --cc drivers/gpu/drm/amd/amdkfd/kfd_svm.c index a6b5ab89b7ca1,1893c27746a52..db88bfc044b5b --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@@ -2677,15 -2727,13 +2727,16 @@@ svm_range_get_range_boundaries(struct k return -EFAULT; } - *is_heap_stack = vma_is_initial_heap(vma) || vma_is_initial_stack(vma); + *is_heap_stack = (vma->vm_start <= vma->vm_mm->brk && + vma->vm_end >= vma->vm_mm->start_brk) || + (vma->vm_start <= vma->vm_mm->start_stack && + vma->vm_end >= vma->vm_mm->start_stack); start_limit = max(vma->vm_start >> PAGE_SHIFT, - (unsigned long)ALIGN_DOWN(addr, 2UL << 8)); + (unsigned long)ALIGN_DOWN(addr, 1UL << p->svms.default_granularity)); end_limit = min(vma->vm_end >> PAGE_SHIFT, - (unsigned long)ALIGN(addr + 1, 2UL << 8)); + (unsigned long)ALIGN(addr + 1, 1UL << p->svms.default_granularity)); + /* First range that starts after the fault address */ node = interval_tree_iter_first(&p->svms.objects, addr + 1, ULONG_MAX); if (node) { diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index a69e861eb1130,eef03d04e0cd2..56a4041f5ef5c --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -12,8 -13,9 +13,9 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> + #include <linux/spi/spi.h> #include <video/mipi_display.h> Commit list: commit 9fc97277eb2d17492de636b68cf7d2f5c4f15c1b commit 7c0389c615b5c6aef1b0e38e30db759b3cbff885 commit 627c961d672d3304564455ba471f5e4405170eec commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7 commit 67d90d679eb3447f73e2a1fe55f7e6c6a44c9fa1 commit 2e524668c440104633af1effcc85d1d6234c7ccf commit 96e7ebb220f8a873321cfc5a87bc4533d36ec444 commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 commit 282e6f846d8c3fcf36293f68f38d814645c3b852 commit a708f6501c692551e3d4ea618c44021f436730d9 commit 04e9c0ce19ac68afd8be7fd54772db3b0356cf75 commit 9dae9751c7b0086963f5cbb82424b5e4cf58f123 commit 466a6c3855cf00653c14a92a6e9f8ae50077b77d commit 3078d9c8b6a0939bc732fd1c36ef86c0178127dd commit 01570b446939c3538b1aa3d059837f49fa14a3ae commit c55f79f317ab428ae6d005965bc07e37496f209f commit 01e0cfc994be484ddcb9e121e353e51d8bb837c0 commit f3a47a269119ade7ea22d0465c7fbe518ca1bdfc commit 74e3076800067c6dc0dcff5b75344cec064c20eb commit caaf1f44a6a27bae33eee189842c4d8fc21c3b02 commit f592e01664b4a57b109fcf6f6916145517f94bd7 commit 6be74ddd0609959b4005f88b6a4d4af678e4a71f commit 9c62fb62c9f0761eeda8f2a9517e007ff2cdbe9a commit 8e9bf0fb10a79aaed37474600948cd33d14aa606 commit 4c44f89c5daee9540cb7428de5d835bd00951350 commit da966b82bf3d16f89a05732c933a589ec798d3f7 commit 10efe34dae798c652053d4363871914c478f1475 commit 3756310e9fe1e0182adac89cedaa98c0eea66675 commit 1dcfca093be9e013a53e3c9b74b3f60ea9c5160e commit 014e597d35816b56c7aac1348b77c73657c4066e commit c4ce398cf18ae2859cc9930a9486b576ce262de9 commit 533ca79cd9f734aae56814445e3f1e6cc1a50358 commit 56ab6986992ba143aee0bda33e15a764343e271d commit 3d122660dc70029d9cccb4e8670125f0affa959e commit 7b5bdae7740eb6a3d09f9cd4e4b07362a15b86b3 commit b2013783c4458a1fe8b25c0b249d2e878bcf6999 commit ea74bf9ccba9ae80fc0766c07c4abaef927e9e63 commit 7fbad577c82c5dd6db7217855c26f51554e53d85 commit 33891539f9d6f245e93a76e3fb5791338180374f commit 24179ff9a2e4524ce83014b8827a73ad03a25c13 commit 7f58ebaccb67cb22b2936ba79c844f1e446dc73b commit a16b680a2140e6cbda41ac144564696c3ee2815f commit e4bd1db1c1f771983393bf5574854dff26ca7532 commit 0e7f4e6a20d550252c4f355d5a303b1d9c8ff052 commit 76299a557f36d624ca32500173ad7856e1ad93c0 commit 9d8c094ddab05db88d183ba82e23be807848cad8 commit 71733b8d7f50b61403f940c6c9745fb3a9b98dcb commit 993d36ac99efeafeb7b5f12353def6d7d20d6389 commit 0daf44ea9dccfcdb1fe694e9ea85497b6cc3a065 commit a4d5ce61765c08ab364aa4b327f6739b646e6cfa commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588 commit 4613aa66e42ba1b0c896495a207b3b26e94e44d5 commit 61fe488fc78a3024b8d4cafc90a34158f4562dae commit f6ca930d974e473fd608fc9aa1759fbe731fe44d commit bd85e00fa489f5374c2bad0eac15842d2ec68045 commit 57c2b3e684ba3e82e9944bc1975e047bd1630537 commit d6e850acc716d0fad756f09488d198db2077141e commit ff10c99ab1e644fed578dce13e94e372d2c688c3 commit 0237368193e897aadeea9801126c101e33047354 commit e97701a069612ba2fa1d92b56a720b108049df4e commit 3b0974d7b74a908d1caa27f05a97551943e1bffe commit 09af6037128c101c280c95c56d970ce8475506c2 commit bc34d310b578952d37b5200a7fa7475ab2a2bd5e commit fd5a9b950ea8ba2c08ce07418b36b296a04d712b commit 6c9ee258b1f4e7021224c9bf541fe6b17a03ee40 commit a5beee65241d25ad20dd814668c975ba13a42615 commit da9bbdb97469383a2ac97435a3b09543d14139fe commit 4c46e34e67587b268abc3916c9613426018561e6 commit 94900000380300b230dc1bed489b598a2a2c55a1 commit 6a1738b3fdd92d48e61de438d05dedbc00fc598f commit 566ad72ba636b745beb8a440bd4c05e779b95728 commit 4290eaa8424905dcee4daa0666ec841dc3a0bfb3 commit f89d7664c3617836aecd291c56c8ab63fe228fbd commit 4d722029930bca7f53d99dbfc300a40dc297dee6 commit d43caea1faf5c31dc02aa1adb8bb1aa1c33bf86f commit 43a6faa6d9b5e9139758200a79fe9c8f4aaa0c8d commit 6f1cacf4eba7a3203f08954a7e00b744e43f741c commit 4c3fe5eae46b92e2fd961b19f7779608352e5368 commit 86c5b70a9c0c3f05f7002ef8b789460c96b54e27 commit cd3a2e8b0a0367c636cd82efaf7802cf85ae5dad commit 7bb97cf915884956311352eae3f444eaaae48cea commit 3ac9384061b250ee40eda5facff10b85e2d5d3d8 commit 45d30c828c613441bfbe5c97ca766854152b7181 commit a237f217bad50c381773da5b00442710d1449098 commit e1a261ba599eec97e1c5c7760d5c3698fc24e6a6 commit e02cea83d32d3a616c9ef8b6b50a83444a6bbcbf commit 7dbe8af13c189f5937e87e9fb924d5bbc49e6f71 commit 452bca0edbd0764ca0284239d5438b3edd305ab3 commit 108c972a11c5f6e37be58207460d9bcac06698db commit 54f07cfc016226c3959e0b3b7ed306124d986ce4 commit 8d79acd567db183e675cccc6cc737d2959e2a2d9 commit 2b808d6b2919cb2fe92901e5087da7b4ed4b9e07 commit 523f191cc0c728a02a7e5fd0ec26526c41f399ef commit 8a92e2a67f627e69dd52aa9c2d3176be13aef2cc commit 3849c6ff3a1517e4c8a6d004d9cb31241c849713 commit 775d0adc01a55fe0458139330415d86bb3533efe commit 275aa53f59df769802f28a0a623019aadab2e05d commit bc657615e10ddd7637dcc05811194ad7e2baea33 commit 99e0fb8b087120b5a7019f1cff6c5c2b5b925ae5 commit 0fde907da2d5fd4da68845e96c6842497159c858 commit 5e4e1ed6b87b6b3a3531cd8b5cfa9c3b09d841b2 commit 104bcfae57d80c484185c012cc0ee8d8d5889a7e commit e4a0251d36fc6c190c545aa95702eec0efe05a4f commit 7108b4a589cd6d3a2c1276fd610b3500f46de66a commit 0c977ff2b807aa53f655f095b0a306f18d8cf7be commit 3d0c4a62cc553c6ffde4cb11620eba991e770665 commit ce8c161cbad43f4056451e541f7ae3471d0cca12 commit a2387e69493df3de706f14e4573ee123d23d5d34 commit 2149ded63079449b8dddf9da38392632f155e6b5 commit 754c9129b9494b2b058add1d1a627fb3c9466a03 commit b345b3542d66fea49bff53288d347ccb06fa1b3a commit e8f834b559621d634a939381caf99a024e272211 commit d6460bd52c27fde97d6a73e3d9c7a8d747fbaa3e commit 5cd522b5331b348302fe410dab1cd070e4fd6998 commit ad16682db18f4414e53bba1ce0db75b08bdc4dff commit 89c6ea2006e2d39b125848fb0195c08fa0b354be commit d5070c9b29440c270b534bbacd636b8fa558e82b commit 9f774c42a908affba615bbed7463dd4f904dd5f1 commit c2c2a91f3868515969a758042887fdc722216525 commit 3a9b77cee7502f7450c725d4ead2c4a44924d158 commit 7e33fc2ff6754b5ff39b11297f713cd0841d9962 commit a522b285c6b4b611406d59612a8d7241714d2e31 commit 61ac035361ae555ee5a17a7667fe96afdde3d59a commit 0a382f9bc5dc4744a33970a5ed4df8f9c702ee9e commit d930c19fdff3109e97b610fa10943b7602efcabd commit be1dcdffa8fadc22ad272f605a53e2a2fd30e7f8 commit 2885d283cce544cf3619f35f0acb3d073de036e1 commit ec92c47d7d098e85eae7fb25c6bc07158686e675 commit f6f22012e6c73867b959524604984ee5ebfd105f commit bd40536ae33911bc74df5ba3b29b573dcb72f904 commit 8bfab7cd8335b10bad92e44f58c5a038762bcbc3 commit e17eedf56ea7afacd919a3d6cc75a617cddd003a commit 8f3d86f13eb2b37d86fc48df8995dffd9b7d9010 commit 37db1e776285518a7e1269b868d094a4532b2d54 commit 57ecead343e724b6ea38e9c2d8f794b293cf2951 commit cf1e6edbd1c8ba654f97071ccb748d87ef0115aa commit 9790bbe3ba48b659c0152f49552f6abc18f85bc8 commit 25ec7e809cc1fe9f01a71199d29092f6f1b4611c commit bc3ca4d94369838c3b6668a183467d4a69a5a482 commit f00bfaca704ca1a2c4e31501a0a7d4ee434e73a7 commit 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f commit d4b9b6da5777bb03f36f01bb6b05c6cc303ededb commit b26d9dddad7bca6727069f6a26b265d303c65c49 commit bf32a3a1268638442ac43b347e4a4a09044dccea commit d5e79eeba3086a52593b295ac4bf6eddd64d4aad commit 9c27f613d55f8ffeb3f250d9d34e41edca3df3b5 commit 649b93dbb902ae3237fddbe998eb1f4de1a14b71 commit c8a31ff6199f12ca65d73f1235117c1d9e6365a9 commit 8af13c3fc1259c1b8cfc4459d3701fcf41ad74df commit 1fb4dceeedc5f0d1d062ddc44c4a426e1639e387 commit 19cc4b7d75b52df2b4fbb76428a6b0dda3d248bc commit f763c3b543d80ebcb94dd19a69324bf2b72b23ab commit 08bed7e4ff24f90e200defcd2c23e70b0a3cd710 commit 43796955a89572c63f7f96e271a2849c27d18f2d commit 00bb3223bf7cfed3c9c714e994cbd454cc3e6b73 commit 1eba165aa40c79f65f487678c8ea8e77b1c6a5a4 commit ccb54d7d91d256485cfe5403a12abb0175ce4539 commit 0f1a93704a5cf53ce819a7c544125442666d61ce commit e84f798a93881062cd14ce316a68068edd50bfb4 commit b68417613d4134b9e39fff95e72ca726268b47db commit 4ccc8fdcca670edd76d8bfd6389f04c448cff6f6 commit 5f30ee493044e9ea3a46167e5597a96f5c302adb commit 0961367cb5208850a123d235d147f92f586b2491 commit 98579743c4561acc3b1c7d2f3fcd46b2160db5ba commit e8d77cfdd2698039667432b8569bac34d13508c1 commit bc2fe69f16c7122b5dabc294aa2d6065d8da2169 commit 3c9154310af71802de2f40c5689b66009a407f37 commit 5fc77c26970d443f1c020ee8a5d475ad6b81e15f commit c83ecc0bee94995117329fccbfa6e8b43ce56044 commit 218784049f4b90834dd7b854857df0b7e0f76567 commit f5c783868855bbecfc4311050dbaca4cb28ada5e commit b3c9c9affd71f1f9b136534d6f56f392edb78620 commit c18fa08e6fd8952e88fa9ad108371c2bd5b82564 commit d94df7cad26b4c5958fbfa550d65794c89aa90ba commit f60881ca126cf825b89b4118e93dbd82ea9bcf33 commit b995c0a6de6c74656a0c39cd57a0626351b13e3c commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 commit 3718a619a8c0a53152e76bb6769b6c414e1e83f4 commit 5559598742fb4538e4c51c48ef70563c49c2af23 commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 commit 35ff747c86767937ee1e0ca987545b7eed7a0810 commit 892abca6877a96c9123bb1c010cafccdf8ca1b75 commit 906fd46a65383cd639e5eec72a047efc33045d86 commit 5d2c102deff63ff8980dfa848ee41858d255c291 commit 2563391e57b5a9c1d83fd36c05ac4cbafeb5efe6 commit 5ed9481db74740fd33ec4079b29db88e8c9f4a1c commit f91a9af09dea850d83d4b217b8acbafd97b5c61f commit 39d496d4721ba509647a70041f38d82b03c74680 commit 4e8eac98046446d99cbbed740f0767204b839f3f commit a41d58fb91248557438de4e8298d1d2ed5b39564 commit f82200703434522f1b35d38bdef02486d22b2f25 commit 9932ca4c03c8181601f611dd366fceb765329800 commit 0beca868cde8742240cd0038141c30482d2b7eb8 commit be1fb44389ca3038ad2430dac4234669bc177ee3 commit fdd5ecbbff751c3b9061d8ebb08e5c96119915b4 commit 6d64d39486197083497a01b39e23f2f8474b35d3 commit 323b19f424486e61784e8797a8bfb2e24585e162 commit b8d3782da396215615c3d125f0829d1d06ad2c97 commit 08cbe68d4aafcf651a86730a485df53e6ee9f594 commit be7a6a5171649c39f79a6259518218351082bd99 commit acce1eb8eb5de360fd82fd900454ff180912d8b1 commit 748b3c4ca0bf43cec186ace2ecb33457d7a4653d commit f59549c7e705be0087d08bc116ccc767b86d8362 commit 48eba83018c14ba6c102f5801d31c398807535d9 commit 6b0a9bf72c04cd8d2864fccce42817c24b060aec commit 2d67c4b54909982d462bfe227279d1499b329545 commit 60a9472cf0a8568f32be6cbbd32ee7759bffe215 commit 90985660ba488cd3428706e7d53d6c9cdbbf3101 commit 78dd6a8d33a3363fb4196e173be0eb4002962798 commit a6e23bec8ed184ed2a11080b28cdbd7a3024f0c0 commit fb1b5e1dd53fc834e12f69749cbc8484382599c4 commit a9ed2f052c5c14e4be58c5ec8794dffc87588123 commit 27cdf8c3cae2ad1dbfe1a32ff999c98349366862 commit 56631dee2932dbc203f0abd1011aa9d3d621e206 commit a7e8467fbeee654e390aad1736291d273b407a2c commit 7a38efeee6b59d0984ff0470d234a06fe6a7cf3c commit ca82ee4e9fc1443f9ceec615918b299766432eec commit f2ac52634963fc38e4935e11077b6f7854e5d700 commit 4df9e2200fb8ae7199e46eaffeb9430bc0ba3ea7 commit 666f14cab21b17ccc1bdfe1e82458aa429b3b7e0 commit 93381e6b61804b777f60357d96d6254eb10b9b56 commit abf839f5ebd98134f51764f2a2841faa6cbf268a commit 80237bfc031cd74cb8abf0d21094207284d56a48 commit fec5f8e8c6bcf83ed7a392801d7b44c5ecfc1e82 commit 585e3fdb36f59c5cfed0ae06c852dc1df22b1d60 commit 49cfaebe48e97500a68d5322a8194736b0a2c3cf commit caaf576292f8ccef5cdc0ac16e77b87dbf6e17ab commit f9e292cbba21e79abea7315b41a52c36ea2b6980 commit c86ad39140bbcb9dc75a10046c2221f657e8083b commit a11b36ba9c1ac494c6a5cf7f1a5e68c1ce4dbe18 commit db54a725d57985c869f6fe4153a36cd229ab0b73 commit fb91065851cd5f2735348c5f3eddeeca3d7c2973 commit 72dc6bf159467f43667bead6016965821186490b commit 3f7477bfbb906ec1cd9ad681475a04a142345eae commit 6fa4bf3dce0668a96faca0024e382f4489a9cc9b commit 332315885d3ccc6d8fe99700f3c2e4c24aa65ab7 commit 14d6ca0740e6237f4bca2dabee4e240b6f4be508 commit 0cf80506918da0d2cd9d31e3b07831f94a2c5cc6 commit 94beb4ac1b3bc5fbeef977960a90ee4f594b4465 commit aaa21e6a33bae017fc190bd75f76baa29d259346 commit f52ea01925f4eeb967c09cb5dae61608a2330541 commit f7543209ce5dc09e3f5a27a7d4ee53e226283719 commit fa53b23ff7c98930c7e529b8f5228d9f182ae2bc commit a90e1dc25c064bf21353cb342aac938662a148e4 commit ec0d7abbb0d464619d6d1646f03603c6616d966e commit fae1879dc229249c17e5fd4ef81bf33684ee58f0 commit 1a03b0e6c5fdb476203be4f4597205ff8799369b commit d925c04d974c657d10471c0c2dba3bc9c7d994ee commit 3237403b98e173c296ec83cbba5e9def331c5e13 commit 58ed441367b9b0fb48aa8cd471a73073d1143e16 commit 8732594017d32132ca741f4ec4eec91211f5d10c commit 779ea9d32612f8e78a2f362d52cf31c23ba878f0 commit c8a0222dedf90e9a79b88814e32ffb43ac4beef6 commit 0352e39e7e781fe6a408c70a336d0f321dfe108b commit bc50b614d59990747dd5aeced9ec22f9258991ff commit b7e99058eb2e86aabd7a10761e76cae33d22b49f commit bdf606810210e8e07a0cdf1af3c467291363b295 commit d81873f9e715b72d4f8d391c8eb243946f784dfc commit f22f4754aaa47d8c59f166ba3042182859e5dff7 commit ac2140449184a26eac99585b7f69814bd3ba8f2d commit 12fb3e9c88406732749fb2f111911a2438eeb0fc commit 7e60ecc2b70adb41b92752cbcd749040e00b57b8 commit 9c7e69d2e1245fdd5fa5c65cd022530b2a5ef1b7 commit 68e599db7a549f010a329515f3508d8a8c3467a4 commit cba7fec864172dadd953daefdd26e01742b71a6a commit 4b6377f0e96085cbec96eb7f0b282430ccdd3d75 commit eac3b274aaea11ec4ade8e8f684055db80d5f8b7 commit 22a9d5cbf88a92ac6cd473c3ba1c369aee8fec9a commit 834368eab36922595a402b9e76470f8efa2fac7f commit 8284951a6e79c6806c675e5f68a4cd425dd56bc4 commit c395fd47d1565bd67671f45cca281b3acc2c31ef commit 015b8a2fdf39a4c288ff24e7b715b8d9198e56dc commit a2737c404cb2c1c335db30737925a306a2e7cc11 commit f53f526f7050041718af84e33fc24f670e7dccdb commit af4808ac40dbf668183d0b69ef6b31e62e1fc5df commit 4b95cec68937a6302c7085b26258cf721d726684 commit 2662b7d9d8bc1dda1f89f0dd33422e069f2f861c commit 39879321769cc2d9a690725959ef76af92a38ac1 commit 48695573d2feaf42812c1ad54e01caff0d1c2d71 commit acddd5cf70e609e1e1e638ac0422977ea2b4783f commit a7909022371dc8c70bdc4871a97cc49e34d78a6d commit bc6c2a6f6495668e3cf0acbecf820b93ca03aef7 commit 5ebca62eb8ebff67e2c8c4903bdb4f3c07922114 commit 238352b4949bc5c724f6adc1c78d50f1d15e4759 commit bd4bea5ab2bda37ddb092a978218c4d9b46927e6 commit 61eec998c9399d1cce91c7a2f51a4d0cfbab97bb commit c60ca14bfd2d399a66f7164e044b63991c6a5a82 commit 708899133615bdb8087cafa129b8e24397d0c79d commit 2108cdcee58b06460a8ecb106d15ab69f5bd49fc commit 6482253e6e1ad1c3a76645a3899d3cfdb5b918cb commit 76a791fa0926e504f262310cbd0c8f1a60e67ae8 commit a2b4da9501c120d60413065169f140bc3d2e5991 commit 66ac3451fb467ce44fb1d4517f91db7390b9fa6b commit 7214da0ed2220a2b9ad22aa77a5974cdd2a62799 commit b46119578167150810184494b2a097c40e2144b8 commit b049504e211e8f4dbcd40434f2dcab2215ea1039 commit 305cd109b761202d71f2f655ea369fe889ba1d01 commit 3b37e2725ab32c9055bec00ef41caa63839efd37 commit 0b071245ddd98539d4f7493bdd188417fcf2d629 commit 08ae395ea22fb3d9b318c8bde28c0dfd2f5fa4d2 commit 47c0388b0589cb481c294dcb857d25a214c46eb3 commit 517fff221c1e6b8a8db69e7a440116caee120ff5 commit 629568d25fea8ece4f65073f039aeef4e240ab67 commit 1a394b4f504f33eac8c38b6f42ba025105c7e869 commit 31b42af516afa1e184d1a9f9dd4096c54044269a commit d34f4f058edf1235c103ca9c921dc54820d14d40 commit b4224f6bae3801d589f815672ec62800a1501b0d commit 3e307d6c28e7bc7d94b5699d0ed7fe07df6db094 commit 10ba3753665f77314cb475e1a4ad0785f4770c4b commit 83b501c1799a96a41e163973e88826253ffadfb3 commit 773884e39bb5a57f998af48b3948308568027a54 commit 93183c9959d456530ae502865586522acf21adf7 commit 3c8d2d5da3e29f73fec6e04a424e789422f697db commit d969b31afa439f71f810076a5612596dae38fd86 commit e814902866ed22bc07d2af1303f3183357a438e8 commit f4aa02c43969c36213a7fd4e56831693fc83ec4b commit 351a88713b6daae5435d683ddab1913a65d09eb2 commit 8155566a26b8d6c1dd914f06a0c652e4e2f2adf1 commit 17c6baff3d5f65c8da164137a58742541a060b2f commit 75c3f06fd900e01a68b8ade17e6b6be64cfdc9ff commit fdedd77b0eb31209c59107de66880ef0be21a77a commit f3c681f0c3b171db923d6147785064962351e043 commit 60c30ba7ba2064066ec462236666058cbbf619c1 commit e06b71b2313a00579ba64a1cc43ad29d64cb8d4c commit 8f28c465a455563917aa15bf5ef40016b2a665d6 commit 641a118c9d91e53bc920ec0ea2ea350d84eb7a9d commit be8f9f4c866f41b62a3df9a5cfd54e0e88fc3e3e commit 81e0a3d1063e388efcbbb4648e07479575ec85b4 commit 5e9209c3739454a08c4d770c649187b0f51dffc6 commit 9d8e91439fc3890de55eef2bcfde97470b7dc04d commit fd6797ec50c561f085bc94e3ee26f484a52af79e commit 0d5040e406d2c4404d26b841c4aa34cec0bf1088 commit 20d70de5823ee6b9d4e8b3db4c13123cee0358af commit 961ae5f9807bb15af0065485785725768a7269b9 commit 448359c1ce50a8e61842c39ffd52f399409a6860 commit c0bfe34330b5fafdbbc63a7124841711651b96b9 commit 6777264dfabe2a7c75453031bee5bcc2e7882cf7 commit ea94c8e217f9a845bf2c565b77c5eb078e975eae commit 2e408ad7a55273b55b14ce28f62111dc1c4f7fb6 commit ba6b8479c944c50db7e2a81794885896fa6c48a8 commit d075d99ef73bbeca878fe2cbf758f8524bb698d5 commit 8bc1ab4f615b200507b113d31ca614fa17b9772d commit b5bd7cf76b7cf8f2dfe36aec0e4916a2a95c8fbb commit 4a865f6a76ed1295d878029cf7a1797395b1aec0 commit b2d474d4c8fa9cf7d18dae3c0784c4a710e850ca commit ca6eef9b1c3486bedadad6a85d246b26df51c61d commit d6e44a8548b614fa9d6c77e0c12b929c2c791258 commit 455167e8751c7fc50e88496e6d5dfb896e2ab3dc commit ffe9f1bfb3e6709769779bc6c1a5b1d971b7b95d commit 7e0d8de4d35789b57eee8acb0a952b854edb37a1 commit a897f65b3a6175243e4878e2fd2e9b8f494710ec commit def122b64e37daa39774d4afa433ad42b8a5eaf3 commit c45c999cfb6716d40af9048ed0142e42a6235378 commit 246b228eb905c94663af435a1cd6cd31cc205ba0 commit fabc65d16337b6cee1cbbd1470bbb903f6daf3ea commit cced63c3dd23e061f0fca754a3aeb35b62b0a628 commit 216c3c4424bb42bd6e4ea75cfe0c22aa7dceda6a commit 8d7b2d3a7e3aa4fac309f9a496e6b237729d2b01 commit 6901f1d6479b6f81b537672cc16720b06b2ab3a5 commit c6bf82d426d8293d7257b9db368e025b1fd66454 commit 0fa0955acdb342bee3651bacfdce3d8927ab1025 commit 3019023ec9fb2bd7b0d2d82ce847ae2520f24c1b commit 5cca41ac70e5877383ed925bd017884c37edf09b commit 2eb58f22e2761b75e4f35847be03ddd425ae2b5e commit 3543e84e20fbd60e02264f757c77c7dbdfd1ee4a commit 034142a303fed2903957b06a7c91abdff5531bcf commit 0df26c0d69dce1141218e0e5ed0ad378a0c6c058 commit 723388bc0fb68f2487795796f4e616ea39cee99c commit 61671d85def2960bbf52db22e9e45b3bf8a5ceb5 commit f3392e662efdc095f10109f588aa4f3be86f7eb5 commit 50d10d9271f6c6542196c54275091c7b2c6edf97 commit 58d283801d06d4434df6625ed6e6b8d2ba47fe65 commit cd162ae9bc3ba91eb630a1321afd3d1dde5f2000 commit fbfb5f0342253d92c4e446588c428a9d90c3f610 commit 25dd25f86eca77b1ce4a611432f57b006fa91615 commit 8e4ed3cf1642df0c4456443d865cff61a9598aa8 commit 66d71a72539e173a9b00ca0b1852cbaa5f5bf1ad commit 7c5b344537a143d15385992e41a50a9c5125e93c commit f9e6759888866748f31b6b6c2142a481d587f51f commit 7fb363c57522b704e156fc4c5fbcb7ee133fe304 commit 17e68f89132b9ee4b144358b49e5df404b314181 commit 0e4b858285e633ea6bc7335fd66529955d023af9 commit 076362d931d0d5ed01a3d1cd4d066f2e6e7f86f8 commit fcb3a4fb8255149a73afeb3d8f2397eaac3a46b0 commit 680caca6feee720d0a6cb00f892c0d2d46dc4075 commit d5022deb4a526009fdc20e4d62528b25b05112dc commit 3f96f545f877ac59d0c967f52d760b4b2b3b9a47 commit 722e96c99f1d7532fdfbb557f50a399f6cc57d82 commit 58a8ee96f84d2c21abb85ad8c22d2bbdf59bd7a9 commit 739d0f3e1f36738d4cd84166784a8f7a58d69612 commit 9724b8494d3e85cb01c377f201bfaf25fd7d38ff commit 093b79d034c59a3b66f6312863502378a422496d commit 4981bd4749fa769b3d6acbc82fe8059c030d0920 commit df18a4de9e77ad92c472fd1eb0fb1255d52dd4cd commit bd870cfd21489d28195fda157710ebd4cecaa8ca commit cead9ac8b0992ae2659b637e86a0da7cfeb5e267 commit a15268787b79fd183dd526cc16bec9af4f4e49a1 commit 13d8850a3387635c051c5ed1c8a8b6c1e9bd1341 commit 608d886c978cd5f3d8650630568d96c231845227 commit aeb81b62c7fe4782198e9dd79c7d6cdf04d92586 commit c6bb3acf1cdeed5d01ebde70b769a8e25993965d commit b5126ba85beadfa1f3cfdc9e7a8533ad444ca210 commit c3f15273721f2ee60d32fc7d4f2c233a1eff47a8 commit 6eb1fe53ee94cffd7187844d08d46ba8659d667a commit 4067f4fa0423a89fb19a30b57231b384d77d2610 commit 31663521ede2edb622ee1b397ae3ac666d6351c5 commit c9bfc37f085aa180b3c49b9c95756b9ef032243e commit 0c3f3a83c7e8dfaaae4ba8a5b69bd6bc13340d0b commit 0e8655b4e852ef97655648b91ce780384a073ff4 commit a6ed988ecdffb2680a65f142acfe3271e6c04ab4 commit 6f4e43a2f771b737d991142ec4f6d4b7ff31fbb4 commit 7657d7c96657179d002817d5ec2a1d4c84f21cdb commit e525473fd5b7202ae751316799ed759bfaaf02bc commit 20c3a0241b5c15c0d64929cba04653d5556b7d5d commit d93a4fec186c106115d0b3165047dd06f2c1aaab commit 9eab82c38d0184289ffea56477daca8425758442 commit 6da8acfdb6e1aa72787efb733e3af9e9e0c57b9a commit d51a75ac975a6147a4dea2d68cef4566f5c2ecaf commit 1c408c516414fd9760c54f6d42ed1fa44a1dff15 commit dbcbfc72d3b660b6dd9ea7d2c089c228609714ec commit e4ac526c440af8aa94d2bdfe6066339dd93b4db2 commit 250ac9ee60dbb14cdf422ab7f2bc28d671ac9f46 commit eb53e5b933b9ff315087305b3dc931af3067d19c commit c91d75a3c6a2567e8c6b44f7337b6955596ffb86 commit cbacb1b74400299edea7e9bcd58bbc7c40dad8c1 commit 2281475168d2ab3fbd763c2fd762f99a411fa1b6 commit 2000ddac9b5ce5102ab1b194a1cf91e8af3017d5 commit 833cf12846aa19adf9b76bc79c40747726f3c0c1 commit f2881dfdaaa9ec873dbd383ef5512fc31e576cbb commit 7f7a2da3bf8bc0e0f6c239af495b7050056e889c commit 6f20fc09936e786a4ba18f5514fe185e0451ada9 commit 4c288f56030f380acb9572d88396ac15edfd30ed commit a755947e050b8751fc5402609a7d600e9c756fa7 commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 commit dbaeef363ea54f4c18112874b77503c72ba60fec commit 0cf09702a118b1c09b694862061913108565edd0 commit a64d5fe490cd92d74b1cf46da63164cefcc61a58 commit a3f91f405aa7c54d0856c1b8698e4ff05ae7d439 commit a4530e20faddcc4ef4e5939f186a8560c71a5e94 commit 634e1804242b0d5d64031199236fb3f337b5af3d commit 96c468c366dacc0e41e08ac53e20a5025f6ba967 commit aa705f7ec6e2423af87c20b30f0e26eafdfd4513 commit 8f1fe39ded725483a67c15014a1863179c783b38 commit 9d1f218ddce20329a01c46d7a1ea4d88fdb0fe86 commit e40fbf616610e33aba9597f278925b4ae8cc806c commit e44bc451aa4b08845c238028daafb4eaffb573a3 commit 5c7b393452b55ee0cdbced0d3bc798f6875b5c24 commit f1e6f89506e48b42235755fb3c2b73022697d8e5 commit 4da409ba6430e3b5c6da7879dbbdc5f6717d91b1 commit 6c9e14ee9f519ee605a3694fbfa4711284781d22 commit 688c43dd6ca9e0cd0568868aefca5b041695c3f4 commit bb99c51bdaa846bddb85a1e7acca3a3aa5e9f082 commit 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83 commit d97e71e449373efbd2403f1d7a32d416599f32ac commit c0e0bde2c7e6bca2a1f195d82ef7598d521399e5 commit 146458645e505f5eac498759bcd865cf7c0dfd9a commit c3bc97d2f102ddd5a8341eeb2dbae2a3e98bb46a commit 53369581dc0c68a5700ed51e1660f44c4b2bb524 commit 4f04d07c0a94b0b30db839e44f1b8364a1b508ac commit b6b242d019ed23195c81cf00eb8290d386efb83f commit 717b432b6d55e1dcefcb5e2ec315bf66b6ab8c54 commit 21e97d3ca814ea59d5ddb6a734125bd006b66a60 commit 2009e808bc3e0df6d4d83e2271bc25ae63a4ac05 commit a4172af3040cdc207f1b60efffcdd219156093c9 commit da1878b61c8d480c361ba6a39ce8a31c80b65826 commit a99aff2608f422da833cd91fa1eff23daa05c0bd commit be1dec570b6f5a29ce9c99334c52bea94c28914b commit 8d5309b7f67571bc0c95d430f4722a99d38f3b79 commit 843f10ce6539cd5e4989415e18cb809f4cff8b91 commit fceff12e52985e49c464f402e11b2f97bce3cc24 commit 3196763851b5fb9f7c8c488e233e947292cd71a6 commit 8466a14173e5ff7c2a52d8700a13f4b841d0e17c commit ce9b1466f5a9a1b2acc80d29f12d69559fa97174 commit e60244554ca98e87ef731739f608eac54e478e9a commit 2796b7ceec95bd5a7069cd27af7e4cf01a692db4 commit 1de99ff7371bc6ce2187081bf5bfbbb4a7de28d7 commit 34d0472ce1087fbf8e2ba504a4625e4c74286c63 commit 60a2066c50058086510c91f404eb582029650970 commit 97b6784753da06d9d40232328efc5c5367e53417 commit 54bf0af90844fbf18f5be3272eda69198dfdb622 commit 92653f2a572505adaf7f13f695c1907e71a1dc84 commit 7c5537cee9a8dff956e3b9a3f68c22af06a57558 commit 7b6cf6c750da7661a90c12642c3a8f141c7c2819 commit 68914b7c4dae0fd59ccb6b8bd8e2b6f5656cd25d commit 0b8778af8babe55f133b9bfe3a5bf234a36ad7f8 commit 75830999587470b17a30d2ecad25ad13cb272c19 commit d7683c49638c83bcb6a817671bb348dc435da3b5 commit a0ac33cb9a12f1e499c9f009067a3135df626cd5 commit 16c9898ac5ab00fc96efee404a1b8bcfe20ad48b commit 9a72570491b524c9dc4c1caa7323b2297c27b0b7 commit ca0fb243c3bb53dbbd71d16c76f319bf923ee3d4 commit 9330af0af3d54df71b6b752a260dadef05a4fc44 commit 29d0732f8f61ed028d642034e5323b8cdf6a1905 commit 85ecfdda063b6f148335c354c8b7200a49640510 commit 5d6a620875a04e70c51d8366eccae74d9cef0308 commit 6cc213b9aa34bc3213e20f9256345c5cc1495b0b commit c7b3569b3ebc53e997500be09eb612b6c852525a commit ab799c16c9d537fa2f070283f1ca63a4425502e9 commit 675d9ac9d0de765531e94f9fdc536989a997a324 commit 24ffa5bb6d363c8164be6af974e318f5752797e1 commit a00a177055cced5cd2bb057a1ace9a95a286bc49 commit 74bad61c5d83f5af8a855c8b7dc8e20377c74d46 commit d91f93c7a7fb9589e62814c1e229943e1259b48c commit 946e2c5be80b2cf93be34e28b3a6bdadc8ca419b commit 3e048c8846a658098d935df83050170c8a8fb104 commit 1cb62da0802c8f08e26443a5409edba99b8a1f6e commit 8141f21b941710ecebe49220b69822cab3abd23d commit 9710b84e2a6afde2db20cd33435038eb75b91200 commit 17277da26623d4aa8bdda628d0024cf2f2e39ae6 commit 836af5be1b6d8e93d736c252e711a20db7dbde9d commit 4a4c815b08dc774dde67fb90a0286925f98204af commit e89d2fec4cde967445e16e02e406481bac380cc4 commit ee0a469cf9175aeb6131c0476c4a4a8eb5997dfa commit 67c4ca9f794951482c54a7006c8b3c367d6c3efc commit b41a382932263b2951bc9e83a22168d579a94865 commit 847e387e00547b0cc728a5e61f5beb2ff861ed1d commit 62eefd10ac1c7e976bda47ff311bd87cee40ab8d commit 62ed6f0f198da04e884062264df308277628004f commit dd340acd42c24a3f28dd22fae6bf38662334264c commit 28574b08c70e56d34d6f6379326a860b96749051 commit f59902ffcc43ce7e1db5d0c4dfee37ec2a1bae0c commit dfe9d047b162f3a79ab63046608c693ee14c5b7a commit bb670c31e13a402d30afa3d484403196031d0fbd commit dee44a7cb577f2aba39e1713a51e9faee2f65534 commit fd69ef05029f9beb7b031ef96e7a36970806a670 commit 62341f7bc2ccb7c024eb023a05714d798ba6437d commit 0964fbd59e7131c1bad4c8549ec13a27104f0b11 commit 0345c8bc22c92f3d5fc0287957a96fd214297aa4 commit e9180253e22596991db426ab5b01111c2a739db4 commit 4f842ba7cdd83cba1d5c0bbd15ed9d14d882cf89 commit e1dbe625d6ac2821eb29e087db46cb539d8079f0 commit 507293b1b207e419fc7ea4ff1d72c2f1db18e33c commit 64a905203fd0da3e8a3f649593cc48c9fbab25d0 commit 792be2e23ac69821db7860ba4ba94592101f0b07 commit eaf3adb8faab611ba57594fa915893fc93a7788c commit c9875d0a789060facc274dee0d4eb6500d471772 commit 671af06690e7f79db51b475a35c3b2619f345abc commit 434967aadbbbe3ad9103cc29e9a327de20fdba01 commit 65f6e9f7e1319119096a6dc93e62894e4375b578 commit dd3e296289346109d41c6317124f51aee0269c25 commit b3a3c9a6b27b68310f1d4d486f47556808c7c855 commit 5aacf8917fde5bc2a640f3cd49130c0e2e85e726 commit 7b2363e06c0ff4b868e7d768d605a9e656ff61f3 commit 51d334d6a49629ea03a2dde562d46846eb7d07a0 commit b8dc6ca028d9a39196a3a066b9ef2d4a5eca475d commit be64336307a6c3ee71fe1337c1b9f0495aa83c50 commit 78c508a1c162c90c48e12faa62bdab8b90e6f17c commit 41cb5a5e8480fa41ee452ee60e620a4c1de3c323 commit 8151a6c13111b465dbabe07c19f572f7cbd16fef commit 329ee7087bc9862977fb6e431b8b0ea5e7e261b0 commit 00f06855f6e68954f67616cd5560fca25c755eba commit e80f8f491df873ea2e07c941c747831234814612 commit a0fcd3df4591043d447bb08919eed2ce68fbdb5b commit 130376ab8300ef06231ebac4db147f06d601d53c commit 86598c3819fdc70e59d28221bfa7bc36e9f5777e commit 57b09a168ffe88a4c088e8f7ca5de2ffbb8fefa3 commit c0277b9d7c2ee9ee5dbc948548984f0fbb861301 commit 92549780e32718d64a6d08bbbb3c6fffecb541c7 commit ecabb5e6ce54711c28706fc794d77adb3ecd0605 commit 4eb0aab6e4434ada240286d934651dfdb2e08301 commit 9cc033e07d025dee1fac178c20ba96c56f8d9a91 commit dae5d79a3bcc3101e1e02a1c2999ca74d1efde05 commit b62ef7e4021f74bb12445987efd8109ccca289c4 commit e102b5ed6e283a144793cab8fcd95f61d0ddbadb commit a225800f322a3d6cc8b8b6c7dc4d5281f2f5375b commit 1da86618bdce301d23e89ecce92161f9d3b3c5e7 commit 0829b5bcdd3ba077c408e71e22ac2bfa85bf2c95 commit 17419a5c8c75e1f9de01b094f763ec1c6ad02979 commit cecab0bb737fb74813733f2472761fc3a93857b1 commit b7b930d104c38a545d862896759863d649be8252 commit 6600c55ba0d46c6f2f74eaa6ddfe2b66cb8df852 commit b635066c2e0fcf74428b0864c249c1dbcaa4b5bc commit 94a438a7595bb5a7a2efb94de2dc818845254e4f commit 372f244b01784b5ee233cdfd732b4c1929ddd71e commit 91dae758bdb854367bf0811d97acb84e791764d9 commit 636cdf6fbddff4780ff4452a82afb099292b88b1 commit e422c0bfd9e47e399e86bcc483f49d8b54064fc2 commit f5510726608fa035bdd2f1fc167cf4a0f7bee22b commit dc06efbb7934405461d95bba5b702849058424a4 commit 9d09cac47de5358ace64dddd14278fea002e68c3 commit 0f9ff361ad823b887cfb09dd78ecc8f25d32ecfa commit 219b45d023ed0902b05c5902a4f31c2c38bcf68c commit 5bdacb0907c1f531995b6ba47b832ac3a0182ae9 commit 4e996697a443a214887ef81b008c344d183b5659 commit a857add73e61277fb8f688234c9d383130313ea7 commit 89121e5d0857bbf41f1987c3c6019f4f318aec4c commit 2eb20b96d7696dc354e1b38c511418b56291013c commit 549dd786b61cd3db903f5d94d07fc5a89ccdbeb9 commit a86ee96ce819800a399e0260c5ffad793c9c6ac3 commit fc33077765e9104f84b49d9b9e0702a41d5269d6 commit 17d6abcbf6249b4ef22f41b255de2be2691ec32e commit 885c31382509d13fd70f6a9c42637eb72056a6ce commit d79fdaef2b55deea0df3fc6af4d4ac60e81a527c commit 08b5a4798713f4331317272752b27b1c4f6a246d commit 7d113cce5fe92c8bf0a2e2f19f71762a845e9d9e commit cae39e60abb10ba1e8cc095b7d5567edc9005f03 commit 6d470f9b8cd3e88d097b332bab3e7231f2fb3dad commit d27a14060f8501e556a65b346b2644be0d0a2de8 commit 969135862e731620b9e03bb0c21179ff1cccfd0e commit 5d45c01dea6f9e0f2dbed3ffee02ac2e80579ad4 commit 0dc4fb69eb14320ea0fcd9657b7748eec201ccaa commit f7303ab29d08a551975aecb4bc6851ac3445abf4 commit b7f317e62968979343a4677ffd5bd91dd3edc204 commit 769b081c18b916e362a2b623d7c28ce761c3165c commit 9aec6f76a28cd669aa98403883edda3a7981fef0 commit 5c61f59824b5e46516ea5d0543ad7a8871567416 commit b9396b49879b6e3d9069586e39432b2203de0a7a commit acc4e41ec41fa28ae9fbdb1a2750525a7a242743 commit 39fa14e5bdd037f50df0af408da7251e400b41fd commit 21ff3a16e92e2fa4f906a61d148aca1423c58298 commit 1da91ea87aefe2c25b68c9f96947a9271ba6325d commit db639278e6217173c21bf8bd52eff2e9a0d6919e commit b8cdc47adf059f60a39555eeba1db92c503a5061 commit 50680d1698f4d4c9651822398805cb943b7c04aa commit ec0796e6446352e9e4ecb1804bf470d1ca47c5f9 commit d408d6f8cbbb5ad92b383f33d091f027f5740aea commit 844efaef48e846b5310b0e7af5e7578762eb7e8d commit 34e087e8920e635c62e2ed6a758b0cd27f836d13 commit 237193e21b29d4aa0617ffeea3d6f49e72999708 commit c3c5b79b6ed1d7ae7356b51f7c17bd88197bf405 commit 7a26f18119d1daf910cca58f875582d50d0e4974 commit db1aeaf2a1374fb05d82a1f8fef5cbb059ce6a01 commit a0634663d09abcda84eae37e9817490628a034c9 commit 17674d6603eab37a4f7b1cf5ba345d5a1e275fb7 commit 8df39400d0db29f84a72c891d1f526e3b61a332a commit 6c22aadbf6fd0240181eb4897308153c2aabec2a commit b5757a5be2fac24f5c138e8ddb3b2c7be8ba1cb3 commit 446d0f4849b101bfc35c0d00835c3e3a4804616d commit b7ecc44a1b0427d8c71fe2e2d46c4a8dd6e6f64d commit c6c2e8b6a427d4fecc7c36cffccb908185afcab2 commit 0cee47cde41e22712c034ae961076067d4ac13a0 commit 7b3a4e1d559e892ea563f46f45c504a60c82d70f commit 3834ce360067b4ee98fdef14571923500a0499a4 commit 9a12b1c7a0595736d398b24712dc1ce79072662e commit 8641b817392bfb12fb1e71ebb68c31783297bfbd commit 17d30ed33c8a9e7b866dd7c2ceb4a6858cfcaa81 commit 020620424b27bababf7f53d00692ab919c357a3f commit c6dbab46324b1742b50dc2fb5c1fee2c28129439 commit c30fb344a2f7fb5d553e98577185d9f8147598e2 commit 45a2a4514320f9c835eccb661601357cb1fefd82 commit 947c0808693e267185c5471f87f83146e4300561 commit a46a7bef7d41ee7787c246f47a656fbafe02f122 commit 3df34334147e73b05480db6cf8353a405597d04a commit c7d4355648ffa02a1551495b05c71ea6c884d29c commit 2f93ec07ab54cae66155d0a09182843f358da178 commit 434b3554d6435dc4e19083a2214dee40a88e09e1 commit 311f2b587461f86e3c30e7ac28df38be4a862ac7 commit 0fe20258b4989b9112b5e9470df33a0939403fd4 commit 596a4ec72876f1061f0ef4be47076b093f03b4f9 commit 782cef7fc367542ccc851d93edbed166defdfc27 commit c20da89edb69f05ab78fe804899d50be2596b0f0 commit 95d9e0803e51d5a24276b7643b244c7477daf463 commit 4af0d8ebf74ccbb60d33fdd410891283dd6cb109 commit 680458d41aa46a009909482f58358205b5c4b438 commit 8c4f9e466169b3e411947347fef09382c14e5733 commit ce4f9f79ff8cfc78a064c533f0aab563a5613d81 commit 1b686053c06ffb9f4524b288110cf2a831ff7a25 commit 66e2d2d9a59f896def82a1c8684368be45cf4c06 commit 07f4f9c00ec545dfa6251a44a09d2c48a76e7ee5 commit 98df5a7732e3b78bf8824d2938a8865a45cfc113 commit bd15f805cdc503ac229a14f5fe21db12e6e7f84a commit 9b7e697839c2745c10f63fe5fd54c9e328fa2e3b commit 70f83e7706e57200edb8ffa36883b2f43d214142 commit a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 commit 3bb41f2e9134906e0814766c07dfbdd9de0bfaf5 commit 027347d17a16562f3be272833243b835c21aa2a5 commit cd9e9e0852d501f169aa3bb34e4b413d2eb48c37 commit cc2991203c9d4e23051dbe5bcb1fc700fea26992 commit 67ea53a4bd9d03a85eecd99875a2a794c886f788 commit 7a1eb66809390d06b744aa13123b925b64b54c4c commit 24f483ba49c9acc1139a0b4cbfd1b122fbe1ed7f commit 5b7813bc6218100d7bbc6d3a1b582bfd64034bf4 commit d6ed53712f583423db61fbb802606759e023bf7b commit 12dbb3ed212fc7655fce421542a5add637f8af7a commit 5ac2557d75f94777076885b5119d3b6755e6761d commit 17b6527dcfb3249401e037734ed3fd0f4752572f commit be280fddfd645ea0ce4c7a26692c3d1115447e32 commit 1fd2cf090096af8a25bf85564341cfc21cec659d commit 8f9b23abbae5ffcd64856facd26a86b67195bc2f commit 267c5876c977d5f2d5a89f377d74adf42b5c38a5 commit bbec7cea6fa4a0463d4766ed0e6bb347773d3949 commit ef6c2cb349c708676b7820c36a5beb75868ad544 commit 61cffacb3a1c590b15c0e9ff987de02d293e0dd8 commit 42b3a6f12aa56dcf789464d29fdf11f33bf0e793 commit aa02486fb18cecbaca0c4fd393d1a03f1d4c3f9a commit 35c7152202e111968b10140383f49da9159d2704 commit f83cec3b3a7c968bbceb810b7acd1baf3fe8cd87 commit e69c2dd7534f3fcabf7bb801db2a7ac71e7e5da6 commit 9c081c11c62112f1c30ff2426f755279a43fa1a1 commit a85c3db6b3b088f63b5b8c4fd4352f56f0e4ce3d commit 9e823f307074c0f82b5f6044943b0086e3079bed commit b2dee0837a4be63e8d3e00550a9f057644f962c4 commit aa539da8aff07ab08def6490e8c9b441439e70ba commit ea5d6db17a8e3635ad91e8c53faa1fdc9570fbbb commit 98cae695a8ae0e4291b1fa7feef9b54fabefe885 commit f7fb9d677faf0460131bc2af15afd766d48a1f47 commit a7f670d5d8e77b092404ca8a35bb0f8f89ed3117 commit 6a28a072d90e4543b5e07a904e3a6afad0117e26 commit 1091796fb1d9d6888656f2416ad5c99cfc62a4bf commit b232c4a63a176ed837e3c6bb4a3ac79a1ca5ef1d commit 98aded657f506cd5d6d459d68ab4996d9dc0938c commit 1d734a3e5d6bb266f52eaf2b1400c5d3f1875a54 commit 4b498d19610c6acd36a8ddf622afdefe4ab093fe commit 5ddb0a8aa8e4754a8fb77e284e0d6f46c2350f88 commit b080a60731ad909eae4463684acc23d322e93579 commit 52e371914ed37f531a8d8c3b4cf1a1af2753eb6d commit a884dde8d9b6a4a817cc39663db824e5602a8001 commit 1eda95cba9df35f1fb0fb4b89511beb6603c614e commit fde7679a2b374c8c0932f5cc48438a312f3f442c commit 29323882aa48fc9f273db5820babf32c979359a9 commit dfa5543193f303a7270ec7c725e656970faf7d57 commit 202b85da0a2fb6f034f0290af841e0f29352af9f commit ab0d6ef864c5fa820e894ee1a07f861e63851664 commit f0ffa657e9f3913c7921cbd4d876343401f15f52 commit 4551d60299b5ddc2655b6b365a4b92634e14e04f commit a98a1a3c448820dfb3974839e1ccedf80b6fcacd commit dd925902634def895690426bf10e0a8b3e56f56d commit c7085d08c7e53d9aef0cdd4b20798356f6f5d469 commit 23ab1cb6591dba7c97b65eb407cd71147bd878b8 commit b0ee81dac3205db1e01019629c83595e9433d96b commit 8d3a2d3d766a823c7510cdc17e6ff7c042c63b61 commit 3396900aa273903639a1792afa4d23dc09bec291 commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a commit ddda6542c85304eff31fe433cc0fc2c0d03c8f3d commit b3a901841ed1edd65b2f4cb9dd890ea1e2fc7551 commit f366d8804fc58f87b682bb02e8bf970b08e5df7d commit 21d6376865219277ca91bf95f9e54494c1ea7ae1 commit 7f75eb222d5c8c4b166ff99a38c85a3de97e0647 commit 649ae0e0d55f6d432ea73298929560ecdfaabd05 commit 34aa0a87f83b5322bd8541cd9534179c90c580d6 commit cb2f92569a2b7809a0569b380b9a6f2afa368cb2 commit 9aec90f9e545fba64ca47c18c37c588fa0d71b22 commit 1b9e8095fa3ac29e3a00ba1326976b479fd809e0 commit c6cbfc18138a22cfbffb208be92b18a531233528 commit d0fc54a201d673013b031ebce32e5d8a7e3bfb70 commit 6276706f33cc38ec59ebf03b680240ff74740c8a commit 7d085bb17e3cab501218a7a4604aff6c4a8b9585 commit fbc64aafc99baabe4d4e4d5a58d6113aad7909c7 commit f76506358078809461866086c5e224d949002016 commit 2e5d47fe7839298fa096970e184aac9bf82c3bd3 commit 5a891a0e69f134f53cc91b409f38e5ea1cafaf0a commit db3461a7743817ad7c73553902231b096616813a commit ed7171ff9fabc49ae6ed42fbd082a576473836fc commit 437ad4534a15ccf538ddb440cb29d3f445251605 commit 8a0f58ec4728ec04c654645bf8ed4070821ebbf3 commit fc7c7498db3da52efe874029a9c2ccc0ad2646ee commit f9e491c8633277d5398f384cf1fd1a477e04363f commit 37ee1456239cc5680f672f37417e52db2349965b commit 406792dc2a5c82e2f312e10c3c2c887de6ef80a4 commit 57a372f67688dc7aee23a2a00bcaf6188f592934 commit 15789fa0f0e29cf802f30d0e308da9c6b18c116a commit fb0a5834a338329bc665c7ce2b89f3e376557565 commit 5fb4d2a77113d3ebaa5c9dcdbef8b7bdfdeeffb2 commit b5e1a3874fe3cde73a4b02870bf3e8fa43777c5c commit fdbd69486b468e4963b4ef9f76901d3788252dd5 commit 5d0112f77793c0351faee6c723a6fb9191c12be6 commit 6f38589e170f7649bb4b5efbff6b681c31433440 commit 4c953e53cc34f8601b7b7c6286c65322452d35fe commit 186020c16650d6f7a05774ef318ae9056aae4f21 commit 2e9bbdd7b7cb5f364a917e7c6eff2a2c36f11895 commit 4dc4422f11b041a9cb7a86f2f9bc310e48620fa2 commit 31ef969301e58daaaed1728690e16192b77b9028 commit c4f503551fd65e50e657219c9bfc2987c51805ca commit 27ef61f9617478c432bc477d4eed8963deb89f24 commit a48f31fb78265d992c75d45bea215998367d4956 commit d082e5cde489caf7b29e966a9dbbc3fb43fb9164 commit 3ec2ad7c34c412bd9264cd1ff235d0812be90e82 commit 0f2c243dbfa008cec2dad03ea074156b6b176a03 commit 89ec85d16eb8110d88c273d1d34f1fe5a70ba8cc commit 3fbaf475a5b8361ebee7da18964db809e37518b7 commit 20588d5afce3992ff4fc9b61085e3e1affbac620 commit 27a74c125d029d0606b81ef865bb68dd975ca2f7 commit ab10f7748789fa9247949b530d8ee7d56eafe9a3 commit 6d88c0f94ac07ffc9f08e459cca036f4af08617d commit f685b38455b0c990a0f018a17b238d8ffb5acccc commit 4af8071b654dbd9b8bd003ab8e49eb16b4cb9fcd commit d479158f6502a3698b91829fa03bd3f2ea38efe7 commit b5be054c585110b2c5c1b180136800e8c41c7bb4 commit 76acba7b7f12517990f326fabfecb6f55e334233 commit 478efcb90b074f0fdd18e62b30ce09140bd69022 commit 5b7a59de4845460a313d93d4839258bfb982357c commit d4f1fde734eb73767015272dd2e8af1440b30a9b commit 32aada4d0a35ee613ffed23090bc23e1b40da419 commit f3c958ab857927e1ef2cc6806fcb0eb3f36c923a commit 8962915044364bb7c36b3018f74371a798aee46d commit 9d87dac3f9adbe30d545c577aab483dfce71143d commit 46553db49cf7b7dce95879ee0725f7d95de3c184 commit dc57edda816df4fb43bfc2809675e91d15994195 commit 3a50a51d04d2ca5066949073274e70191104f8e5 commit 439c3b124e9ee704766040d5182ccdaeb4d45499 commit 837cc7f1bf2bbebb05781efb6bc1b10d5c2e9308 commit ef9f3b5fd9d2594766c60b1e12b0e72e4918512c commit 2239aaa204f1c5002018a02903df7e45a0e0e503 commit b910cacb4e70066238feafaf3f2430ef2c8c3b12 commit 0eea81ee2e12900bd5276558434b675b52ab2d5d commit bc62abe1b92db4e027a92a6799f2193bb93970ea commit 1a2103d68547407a098c237d7cade79b4ad2b88f commit 2dc3851ef7d9c5439ea8e9623fc36878f3b40649 commit f49280ffd254e718ee01ef515fe91854fdf005cf commit aec773a1fb0253494b85b073f46a0ba1d798b726 commit ee7a846ea27bcbef5182d15923339a7bf182ec65 commit 96595204195d7e13736a84295e217316610d4cdb commit 19cff16559a4f2d763faf4f8392bf86d3a21b93c commit 0523374e303051c94457df9170f12a752d8b09cf commit 852856e3b6f679c694dd5ec41e5a3c11aa46640b commit f784750c670f7c5ac572590ddad77a89b4c997bf commit 3dc6da76ae55d667fca2c9f9497e8ea1a27497b1 commit 7970cb36966c9b9183255dc097ae0446300eebcf commit 53fdfa19e6a9220a14c0bb21273880774ea70dbd commit 7f0d7bee2079fc899c8280e177b0c0feb8b9debe commit 0d92cd8935a3fffbbfee0fd59cdc89ac5167b14a commit 2750ff97ee385b85195c5579ee911a551fbb0dd9 commit 770bd1d341130ff38feda169177159cd78389cfc commit d16ef1a18e39a5086a419d8b3c71adb30273881a commit 226d92e49a7e7a7f5a3a37a34df7c319b72009fc commit 4099cfda9dd856222d7cab6970a65896375616d5 commit 6b77dab5da721f2fa9d3c3611e1cbaead8030706 commit 7116c35aacedc38be6d15bd21b2fc936eed0008b commit 492be2a070f023c66aaef6ebd664567fda28c2a6 commit cb8f81c1753187995b7a43e79c12959f14eb32d3 commit fe828fbd87786238b30f44cafd698d975d956c97 commit 737ad3776343f6fcffee9d0d849dcd6f6b25f05a commit 11c742bb5a26d4adc873f6e6e2b69a59e1eae285 commit 8a879141dcd15d2db876ce3adf88b9b01650b7fa commit 6841a26e2c6715dc52a1cdd888e958dd2a92a5bc commit decbfaf06db05fa1f9b33149ebb3c145b44e878f commit 23683061805be368c8d1c7e7ff52abc470cac275 commit b9d228a5b2ebcb1f1f63170f5b20bc2f9d276168 commit 00b8a47d8ebe0419e649dc81b96033f6db6a4746 commit a055c91ac6ea493c2508401537e8732dd2a7bbf8 commit 6a60273a0e8274820210abcfe7ec0d5f1f38f458 commit f7c4a15225faeffe1e9f9a752097e7d85603ffef commit 91a759d402b5c17263f82097c647e784f217e2d4 commit 97d1f449c359207b2fb5bc62eaefb7e21ad619ae commit 64ddf5123eff2edf47202e08744c3c14a9d28f59 commit e139c0eb22ce5b2ab6a2056c1ff495f3a38322d7 commit b61c4bc674c6032827f2682a0c72ff577c36143f commit 1453323eac4f13817a07f40e78e76dfc635aab34 commit 7586fc52b14e0b8edd0d1f8a434e0de2078b7b2b commit 3338e4f90c143cf32f77d64f464cb7f2c2d24700 commit df2dbc925fad3274b952b865f85d26d1e056c1cc commit 60db6f540af9f93144d5039140aa2ed17171d168 commit 051c86afc342aed1f84d66ff5d09dc9e1c1685a1 commit 04b5b362bc2a36f1dfe5cad52c83b1ea9d25b87c commit dba1a6cfc311833e10df978f07147ea93b7045fa commit e189be9b2e3820c88164d95090f1fd6343cd77fc commit d361ad5d2fc0e4d59d5d538092c9b37889756642 commit 22ff907d4f0457b2800f4c6d4f40d4d4d31f7de1 commit c2e70d307f4491ff970208a41cce84c95771f340 commit d4c38154951b2bff6bfa4d5eb56df0bd08703cf9 commit 335288315af18c0def7f47a37fe7eaa782c98f6d commit b1f49ff9cbe14264c7eb33462fb700c49c7d91a8 commit 234eebe16138f94de3046f60c52763dc17fe5fed commit afefd6f245024684fff75100052065d6a9e8f75f commit b710dbe55dee946d82bc4815c40373cf8a391581 commit f846250b8a20e6c1225c64ce87a90d4f29cbf351 commit 87758a0ef12cfebb9fab8ef1d0e234dd7b3f4579 commit ccf8ef6b7506cc43e7fd504a85465c1c0786a107 commit 9a16042f02cd08bbd0a5a2d8e9c95347717165a3 commit eb067d65c33eecd4b81771384183ad42eec259bf commit 18ac82c26da45d033df7eb993139da83dd53ee68 commit 9de60462cdba60f575f97ca2655533b35273c715 commit 8783a18409b48455b3a63f0cd930c7c88beee93d commit 7c9cb6d1bf122fdac6a7d51f7dd8cc2d8c94b452 commit 4e9e50b6aeda3e3ce727453c5455cf08c68dac8b commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1 commit f327189389785b26e49904a7d3ba0c96506a4586 commit ec9e2e7acc6dabb8f00c2c60785931310caaa883 commit 2344413205521775d3b1d418e5659e3ae3bc263f commit 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d commit d07722e1fc749fbd78992650b6d00c9a2619be70 commit e389eefe34cebc6219dbe76a923b342b2f31e3ba commit bf2bc61638033d118c9ef4ab1204295ba6694401 commit 186fb12e7a7b038c2710ceb2fb74068f1b5d55a4 commit 88c511dea151b931ba4873119b1b3555aac0ce53 commit a9556637a23311dea96f27fa3c3e5bfba0b38ae4 commit f15e5587448989a55cf8b4feaad0df72ca3aa6a0 commit a8efd8ce280996fe29f2564f705e96e18da3fa62 commit 609d8b1c422cd8d1f93bf526fb236f2e07687e7c commit 255fc1703e42321b5afdedc8259ad03c7cc533ec commit 32a42c93b74c8ca6d0915ea3eba21bceff53042f commit 77cc3f6c58b1b28cee73904946c46a1415187d04 commit 4cce34b3835b6f7dc52ee2da95c96b6364bb72e5 commit 5151fa35ae5979821d091b80096b4c790b187bac commit fca0abb23447c37a6bdbc76798c24623a9b69a11 commit 40520283e0fd11237ed9dfc0991503b3403d5fa4 commit 321d6b4b9cbe3dd0bc99937d5e5b4d730b5b5798 commit f6d9f39f8d9167627bc0f9e3e12ee0100c1c1919 commit 80431c017f745a818ea45ae6a8373b737f73b1a8 commit f89001ea41771fe94005920c363dee43e8078bec commit 0e35457eb4b75f2bc9eca58a46d12e200e15e47f commit 770a961d581c577b579d8d38414b2bfc0b4766c2 commit bbad0090b9f4735e35e9881278b7a353f71b43d0 commit 9e7a74a12101bb07ccc22fb180c5e44051c5a407 commit 44a37ba12857c78389cda176c093967406250cfe commit d20c2f8464280550aeabd2766728590cf0ca8a4d commit 2a2391f857cdc5cf16f8df030944cef8d3d2bc30 commit 5e9c0d1c5ea355679f5b2a57b0c1b5932d78719d commit 11df68c265460d4dff5d19a1313f0fff69470f98 commit 453afb1a439994deeacb8d9ecbb48c1f2348ea0a commit fa509a33e34849cce6c17f969991dc87a864fbde commit 7bb98ca6542e19a9da7cc322114bb4867acd9614 commit 85878978fcd2812eaca309ead436bcd38777f6f7 commit c8fc8346bdd097d624771e606aef93644c072ef2 commit 5a48d67ac336436ed4a79c1c9e036a409b502329 commit 4446387572fb7952a387b8e45e8a96b4f08a2a53 commit dfc88eac97e2177844e5dfa877f2ff60c73bf507 commit e0446e122eae43c173d0c99375e1b2cc8da009a7 commit 168448111279e639e3296ee5c19e0cd96756422e commit 69f0925c67c21c1e3ccda152d2b6ce21c363e563 commit 244fe1666364865154930f34d8df5489df1922b6 commit df99acc7ba1be9f111debdb75e00539fed8ad21a commit 6dbd43dcedf3b58a18eb3518e5c19e38a97aa68a commit 6062ea9398d3ec09c521774f9d81f604d1a85fbd commit 0567f18e0757a260031e59487fe01f402c16c0de commit 8b5ccc9743ab026b12075eb5e3883cc9e42bc683 commit 1144e0dff5e68907cb8d3e2d64d1c00e2a96d1b2 commit 136367290ea5d7b5d05696189e9fd6162b9d9742 commit 15ca09499bc669b600dcdaf01fc0bf8c55e15b35 commit 34e804220f693fe6bb1c4e50f27dd855e9313f0c commit 919bb54e989c1edef87e9797be125c94c450fc65 commit dd6ded6e87a97a32e06c10b7f6639eebb779257d commit 58cfea648ff3b3bd283c03f094f24d379fe6fa82 commit aa451ae76fda24f919174a17df31c290f91a953c commit 852791985af63bcfd66d7f6ec160cc5f9fcb020a commit ab0b0eb5c85c5961913bdb9b8011cc8f5c14978a commit 065ca63e161a1ed7e619ef7dea0c7c6435ee2f8d commit 1c8f80c2aadf76daff01ab133fb11136e7248746 commit 6133cf70725049344a679f85df27d146a2d995ea commit 4b570ac2eb54f66ff64f2864be6303b8d67cc7f9 commit db6341a9168d2a24ded526277eeab29724d76e9d commit e28604d8337eac97fa956d6682b6312741ce85a1 commit 01bfabc2d1d8aaffe5268f8df0843a6d916dcbaa commit 75f0efbc4b3b088cca20864d055b3854a51b5af0 commit 8f4eca6ac52a72181b4f054d4ef6289a5d8cfa5d commit b05d6476ae2dde8eb447f907ab689083499edeaa commit 40318a2406bd426c6f4591269669c04e8eda571d commit 988bfa0bc67d7220ff8d9e2ba3a425727aa98af3 commit 0e405395e0b162075001b9c027443dd10b723a03 commit 570867ef90550b01f0ca0f919dba308c3f2fb605 commit 2845f512232de9e436b9e3b5529e906e62414013 commit 4416377ae1fdc41a90b665943152ccd7ff61d3c5 commit 73dd0ad9e5dad53766ea3e631303430116f834b3 commit 875ff9a7ee8824200885384effa7743892a34ed6 commit 010cc730ace807c6d267481b5fb6ff99acc35c46 commit 6ef29715ac06fad7b3e43086cb4df97952c3a4de commit 3376f922bfe070eff762164b3fc66981e3079417 commit cb5164ac43d0fc37ac6b45cabbc4d244068289ef commit 537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b commit e45b6716de4bf06b628a9f3559f7fc8dd5e94d58 commit 58a261bfc96763a851cb48b203ed57da37e157b8 commit 25ebe10e3f4c897a2d348a9d4b674ee9ea28225c commit 5b993d00d7f0c970a5e5d34c1031069fb13b6986 commit b5de6a5ced074910b8fe57d3b0ab7f8843f85a3a commit a323782567812ee925e9b7926445532c7afe331b commit 6eb2aad402cc94ab4dd3780d8fd94c5c9bb7ed4a commit 501d94389310bb282915e730386d1150b13ae321 commit a64e7e5b05e014dad9ae5858c9644d61400ec6ef commit 122824165471ea492d8b07d15384345940aababb commit 66a0f6b9f5fc205272035b6ffa4830be51e3f787 commit 6628851159c77cf5666160e0272d46acc0772a6c commit 3126d5fff54368288e7fe1c0fd4ecb36b868e5aa commit a4dbe45c4c14edc316ae94b9af86a28f8c5d8123 commit ff9c674d1127e768050fe418470e74586985c87b commit e24b0ef20a20cd26a770c66bf87d911838ea00d4 commit 65112db0c21022cb1caed5a03c6392eaaf984c14 commit 4836c6cc01a16f1ac2b436550299474ad7183c46 commit 6729c73103bd7a0e60b0c980b51b5434010b4502 commit 1b5dfd1881dbe303536d4167500b94549ff2f6a7 commit b330f148017251810fc1f0c297f51b3039b796e0 commit 594cf78dc36f31c0c7e0de4567e644f406d46bae commit 51394119f640423858a2f04076d6f1c3e83fa715 commit 67733d7a71503fd3e32eeada371f8aa2516c5c95 commit cf4d37b8157ca085c17fdc1faad737465ff311b9 commit 22bc22ccf95bfa6eb6288ba4bc33d7fc0078381e commit 5fbca8b48b3050ae7fb611a8b09af60012ed6de1 commit 45c4d994b82b08f0ce5eb50f8da29379c92a391e commit 071d583e01c88272f6ff216d4f867f8f35e94d7d commit 037f93434ce9aea3dc19ba2d97e888a12e538f7b commit 54f90b03335916e21c417a31d0926841f7d97c56 commit 9c57bc08652a7c8e0e355c52c023fddc090fe9bb commit 002353a537a29b9be5bde3c1d9964628f0d20d45 commit 11b7309dbe9fa98d9b8d18cd51db4f385c37ae30 commit 19f01d4bbe9daf71901b200ab5c52591946b022a commit 8a04e342684a75ad1455fc3f23fab8e67c1aa9fc commit f9ae00b1cfb37ccf57017bf9cd82712ee0a5316b commit 3f53d7e442197b7e7d56b470b02dfd37a8bc5c46 commit 4461e9e5c374f8c11fee8e4a0e3290b072cfd538 commit e55ef65510a401862b902dc979441ea10ae25c61 commit 01cc7b2e8a59fcae0c4493720561e5b33a195fe7 commit 014125c64d09e58e90dde49fbb57d802a13e2559 commit 04cf420bbc32a599aa2481725f708435ea19bf3d commit bbb05f8a9cd87f5046d05a0c596fddfb714ee457 commit b932d5ad9257f262a0bfd1bd7146120b0adc11a7 commit b86a6a57b8ad1699ba8b1c270a79678383baf632 commit a08d75927f99e57c793f3a5d11260c22893fc0e9 commit 3d054c40766024d9d8fb051d017ceacf2b795f1c commit 5d666496c24129edeb2bcb500498b87cc64e7f07 commit f0b7dcf25834afd17df316367dfe5d4c890c713c commit 949237a34dba3f0218857f5afa0dde2076dd8c82 commit 6dcc304f85898b099b35c63748c5e11ba56d0c8a commit 87d23164d89c3898a0acb4ec0b431e787c27a91e commit 6692982582a54e7ecc80d7b0dae5db6cd47e2567 commit e565b6b0b5eee112db803bd955fb0387ce952d54 commit 4437936c6b696b98f3fe1d8679a2788c41b4df77 commit 9793a4a6e5eb8764c7410c361984ed01722bab9f commit 6efc0ab3b05de0d7bab8ec0597214e4788251071 commit b4148dc2fa062cdb94b5165d39827bcb1a3daa28 commit 1b0ce903fe747d72e9eab86a06c79fb2c7ba2bab commit 469a486541b6eb0d695a5558e68851fef35c16f7 commit 38d6f7e27d318cf41c2376980a105d02ac6e8b16 commit 3715112c1b35036039e8c4f75868a0b56a71a51d commit ff95eabe57368d641589441e8f638b4d59f79a82 commit e45a3933bb3ebd9a2ac95b6b60da029ee3a9f4e7 commit c50fe289ed7207f71df3b5f1720512a9620e84fb commit 97c6efb3649724e6163774f0e7405c5ca8b1097a commit c66f4711f79c937832b6c0e0b1805061667d99ea commit 727eb1e3f014e66dcdec53afc6f5bfe0d8c0871d commit 7546a8201ba288530ed1bbf2a8bdcce5e034a234 commit 789e51597d33ec0053b029127d797d86c0d857eb commit 379cad69bdfe522e840ed5f5c01ac8769006d53e commit aec8485f226c36eb4eea1d489772cd6f2c40144d commit bad928d2cae5d4d5ec1474ae7428a797fb34c111 commit c72084163cd22ebf59d936669ec25b1fc2b7494c commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335 commit aeb4ae66cb50faddf60be9297d0d5d392aacdd3e commit a7f657097e96d8fa745c74bb1a239ebd5a8c971c commit 87d8ecf015444c51ea9d9154f633f98b7748a724 commit 33929707b808ba7839c40c15d3e68cbc51070b31 commit 4548f10bf4c67b569b7c9fbc6746340a558faab9 commit b71ccff68ef1a5bd1c02d0fca01ddb3d9088329a commit 175d648be98bae22eb22444377dd9a0c497c9d46 commit e0cb0c785250d0565c19ba17fc95bd7ab97670ba commit 076403a69837c1f8454ceced3ed6f0465835f4d1 commit bfbdf72d6c145e008805f0745ff79f9b8e301e0e commit 33eca84db6e31091cef63584158ab64704f78462 commit 84addde447fd9d713e101437db0d4924855eff4f commit 81a1c37c8b52eff636e77a794d0f0620c3a40af0 commit 21bb04152a18ac2314ef4186b6dcd46f1b847354 commit 70a65a5de23337c0c0251c482520224ac80bdeb5 commit eb4556f25fb4cb3a005a93dcc6dcc4b0c024f5f7 commit a69dcaf9310ab09ed97711e0fee08e59218ed8a6 commit 8d5ac8efb6d94efda53f604fd9c072b4754a3d85 commit 2039809783d630c1022bb3debe648abced7861c4 commit 06358ccecd75bfcd988f347f79592e23159aaaa2 commit 51e039542b87cb649d50ea3b5cf90847be32a30b commit 44378f6ef2efee3ccfa87de5860662f2356bdde8 commit 07226d09a200b92797afabd3a5131a0b504344c1 commit b5d4657e192ba7a3f21fc397cf5d169982b4ec0c commit b2fcb48214980adf6687dda84fa33f01e9a47e28 commit a74549dd55d21612171334fb70e45241d0ce0487 commit 2160f6f6e3cf6893a83357c3b82ff8589bdc0f08 commit 7293859c51e1d7f923073aa46e2072333b3e143d commit f7c2ea682d8ba17bfd37abd1e734348e0cf46c99 commit 5ee2d63ca1201ed23c6595cb2fc927222215bce3 commit 7745a1dee0a687044888179e6e7fcd6d704992a9 commit a9b67c036c7f5d187fb88eb74fe04dff1098700f commit 7c1a2d8aba6cadde0cc542b2d805edc0be667e79 commit 6122f5c72e38a88eda13c7168e2ebbd3bd80b681 commit c67db6a6a6be4bb1db1b0fd5b24040d68e461cb1 commit af76ca8e180f38a7d874c18cf810707762766627 commit 30e8f4c2bd532c44af0e0fad9c04e7d2970b91a6 commit 28d43d0895896f84c038d906d244e0a95eb243ec commit 1e487c9173ca12ae372f71a5f5c0eb57ce0ab108 commit 1125f95cd2455b51ad1c16d7f96ae39117083d20 commit 96316211eb5c4b58f34099e9e6f71fdfad7af01a commit 52491d97aadcde543986d596ed55f70bf2142851 commit 6c0a7c3c693ac84f8b50269a9088af8f37446863 commit 02a416afbe127b1c9ce85ffa340c0a32dbc53184 commit 70c33a2710cd08a4be974a1c7f9cdb5601a8806f commit 4f7d8da5e349c1126cdfcdd2ceede00382ad2ceb commit 8bdb468dd7a5d17f8556afdd4c8d046939ff965f commit 6d0ebb3904853d18eeec7af5e8b4ca351b6f9025 commit 641bb4394f405cba498b100b44541ffc0aed5be1 commit 16ba2b28df3a83443fc6b4e5491189d2e5caca64 commit 65fe9617a1256f0a36696d48f7c63a8d3ec290bc commit d69300abc2dec930fd280a013984150ae7c6a386 commit 2bd87f0fc24ae29ead9808d341497f465b339c0a commit c5f728de696caa35481fd84202dfbc9fecc18e0b commit cad08fa7760ace5e01b24c6f9e1f918fe72324bf commit 3034cc8107b8d0c7d1b56584394e215dab57f8a3 commit 20f61c1ead989e5d16f35bd0a546c6233b703b69 commit d7eafed3223af19add14b67a390ec2b983d890e0 commit 2bb3fc536d692d43cd55396ecff73c7691eeae85 commit ddc94d0b17e8ea8179ecbbefacac3fba0fb77265 commit bf758226c7e6927f1c2c34fd6eb2cb580b77f543 commit 590b9d576caec6b4c46bba49ed36223a399c3fc5 commit ccbfd2df3018e2694f750abe5e93b647a4eef5b1 commit 83e5af5997554115e198c2e9e97564702eac04a6 commit 6a2161a155f92985b21e38a9e8b9217f620d606f commit 14ee9fa87d8c96b23d77397b684fb431c5bc2677 commit 3eac4684ecb5ea696bd283bd7f35e4829973f4f8 commit b1aa0491fad27f030c94ed42c873c3f46f5e7364 commit 8906064715c16571e691f67c2746ed1bf1bda6b9 commit 390fa93e6efef330baa2785edc2a484f7ce0b292 commit ad17b124c3a08241da36eb94a6f076446432743b commit 6f4835f9df2df7eee0af74c850d0a06166c199eb commit c66db9e9a025006d729c87143c3f43b5873b4a1f commit 988fe2862635c1b1b40e41c85c24db44ab337c13 commit 0ba3cb8e7cf08223a9246ded3c1bee25a74d1f7f commit b3e9bfd86658b562a33b1ee8563d59a593327aaf commit c24538c4aa352b68bd5c429b7fd3ccf4d4407143 commit 8a060e9c17d0fd7a182e335a52dcb5fe327e3d86 commit 6e8410944767381524544390ce030c86f07399da commit efaf15752d113e81a5e9f25f57dc203f7c3007ab commit fc5da5c00c0a4880220f6f539293e49c766fb93d commit 29d3d6af43135de7bec677f334292ca8dab53d67 commit 9888773753333ee7bed1697abd6fd9c84239cc4a commit f2ea269bd2a55c4a28a9b825424b059a20259793 commit 072b4414784524b6debda1b3b2ffbf10d66095e9 commit 7d8e9e65f23040b2f9e9670bc971d3ec8fa69d47 commit a10c93931b61b22ff6601f74192151d548b0b14b commit 1741281a157fcfacf46dbb6ce39c13bf2699d371 commit 2f3806f781421ce6dfa60471eb2116627c0eb893 commit 097af47d3cfb99ee02afbdd7e0d9596eb012c65a commit d1f214432110748603dd310fbe6099df875e6f04 commit 2480599890296b386839bc53367c10f19d97716d commit 8fe4fde381a103114903f823c6d18457b4b891e4 commit 8b2429a13feaee01d62bc248417343586f6fa489 commit 01b4ae38e5dc6798c6cd477be9c363c5ae45fa7f commit 178ad0e280c088f5abfa61793cb992fa120d1830 commit 4d5ddfa4b1b2bf1e936b8d38735910480f9545ed commit 01163079e136e6d6ce4474b964b8a7ec954cac81 commit 1a1995b1dc948d471854360ec0fd3306f54dfbae commit bcee4c3f89879e15ef57f3217ded97f00b1334d3 commit 01d05521f7e2523045d3ff7b857dd68db276d31d commit f8eee864ba5cbe1447a68949883f69228e53b138 commit 21818f39beda2e843199e5d8d9e3f9e43c8080a3 commit 3f2d35c325534c1b7ac5072173f0dc7ca969dec2 commit ead60e9c4e29c8574cae1be4fe3af1d9a978fb0f commit a1498ab229ca16dfc35331dfb309f8e28b84bb5d commit da6ec743397702e0b551bcacfeaa48829d303a29 commit b3b91369908ac63be6f64905448b8ba5cd151875 commit fcba2ed66b39252210f4e739722ebcc5398c2197 commit 9f6b47907e2d01bfa90c3003e42b6dfeefd8d03a commit 059f6fc89968f4f4527f1b706de8017d368ad9dd commit 1138137c2c48f036b87e80cf3905c1acbff6b0de commit b34b43f9cb45ac15b0e48b5570af9e074959dc68 commit a954e0a26146c465934f4944d49cc03324747917 commit f70e43763e6a550f5b50ba4f6a0d6aef5121ecba commit 402bd11a5394636b2bc9712a58b97bc3cbca69df commit 631ef2e6adb0aec8d639dbea17c5ed08c8364df7 commit 8a37cd4dc50e8f29168dd5bc766ba40a1968724a commit 41a46296214fa07cf5140c9ac9254e095bdcb960 commit 7134cc23fe73f4ddeeaaab9284399cebfd826c51 commit 963ed4efe0c6416f5a2f61e107ee3a27f0bb757d commit bc947d9a8c3ebd207e52c0e35cfc88f3e1abe54f commit 8da19441d0a02b53e362df81843bb20db3a8006a commit 34bb7b813ab398106f700b0a6b218509bb0b904c commit 7a199557643e993d4e7357860624b8aa5d8f4340 commit 596a7f1084e49cc65072c458c348861e9b9ceab9 commit eb7205b7cbff5f9ddafedf82b62590aae0a72dc0 commit 4da5a95bf125fd682249f60e296455c6413b4e10 commit 4453808d9eab0461dea338e89372ffc4a3c50acc commit 4c4e9cb58dd75c87300ca63307ef7d4f9656eda0 commit 7b17e8f3a074ff4558527f6c595f49444a2c6fa0 commit 0126c0ae11e8b52ecfde9d1b174ee2f32d6c3a5d commit 2c7795e245d993bcba2f716a8c93a5891ef910c9 commit 6fbbb660b1d423a777d7567b7475a6a01aa7fd91 commit 760e3c8b3288279841aa8a71e6d65c67a3934d01 commit a3cc326a43bdc48fbdf53443e1027a03e309b643 commit 0607a50c004798a96e62c089a4c34c220179dcb5 commit 4481df364d2038eb4a8f5150367b47955940f027 commit 5359d5bc975466e8791d7f870ea4a96f1b0973bf commit f5a972dfe3e993f09cf12bd36389a942ecd23350 commit 2578487ebe6ca34fe9cd950bf68e8158639ddb1b commit 559a285816af5b72284a6ed65eb82a68ee497d60 commit e146a7ab218626827b7c06e189e69cd2abcd1d37 commit e8397d327e7b0d6132197c9d8fd7977f84f3dbd9 commit 01be2b62c0f3c66832472ed3e48e61d631094606 commit 101025e94b537e8b5426c73a985b26fc95c199cb commit 7eafe7a730bad6f0efb62b2d260f1ae3f2d09b95 commit 663b0f1e141dc60ce6c09ae6afc5f213b22d13ca commit 27f9dcb9cc067d40077e116ac062e185ccd7a0d8 commit 7ccde2e6c0a5e50e11b74353b456bfe602efe6aa commit 0df8ef6e1b5dc7a6edc6242a95f47a257ffecff0 commit af04e65f6b66339080fba0d5f44a759647371652 commit bd7c8ff9fef4b21a97f9b30a7364845ee6eaaf23 commit 2ef8d63da81d9e89cbc1eb4867d638f88bf5dc78 commit 2f7eedca6cecbfad52d5b52c1550066d9252c947 commit 578aab4ecc73476393389440724b7a391cc0cea9 commit aa47fe8d3595365a935921a90d00bc33ee374728 commit 25d48f2eb0af1f0e6f09f54a1a1716f48c0722c9 commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24 commit 88dcad2d07c8d82e6a097c8e74239eb67333bcf7 commit b8faa981a7e62848ca4ba1c77282dfdc71d0edf5 commit b2d4da31a1f40b05a61076efd4c79b88439003b7 commit 6c6ca71bc1653d00623702ae031d0f9bde06a6fc commit a4500b82bc85f7a15cff0729315c96015849e9e8 commit 4c3140fea6277e1478ba206e8f45b9cf7a128cb9 commit 32bd3eb5fbab954e68adba8c0b6a43cf03605c93 commit 741d73f587d5cc86db5e65cc107e031263302616 commit b615b9c36cae0468491547206406a909a9a37f26 commit f7e3885aa80559d5e497eec18e6909d594497c13 commit 0289507609dcb7690e45e79fbcc3680d9298ec77 commit 0c8c5bdd7eaf291b6f727e98506fb68acee3a4cc commit 70a6587dca37a3cf12ab323f7fd73266abfc274f commit 83dcf232cc7919725a331359a300fb3929651b6e commit ad92f52312614b0ef6eee07ee64f1e7661072a49 commit 457ca96d04f599d2f95bd61144851f2181ccacc4 commit 2efba0c095419f93f8913f1cbae8bf3fb030db20 commit 70b4ab5489da0fe5b699a8466aa4f73ea304ae65 commit da9a73b7b25eab574cb9c984fcce0b5e240bdd2c commit f1a4dceeb2bd4b4478e4f0c77dac55569d153fb3 commit bf05aeac230e390a5aee4bd3dc978b0c4d7e745f commit d92b90f9a54d9300a6e883258e79f36dab53bfae commit 9498f2e24ee0133d486667c9fa4c27ecdaadc272 commit fcd33d434d31a210bc9f209b5bfd92f3b91a2dda commit ec2231b8dd2dc515912ff7816c420153b4a95e92 commit 8f72c31f45a575d156cfe964099b4cfcc02e03eb commit 2775df6e5e324be9dc375f7db2c8d3042df72bbf commit 26df39de93bb8763bb3088db6c76eb98d4cd7213 commit ae2c6d8b3b88c176dff92028941a4023f1b4cb91 commit 9ea925c806dbb8fee6797f59148daaf7f648832e commit 21d1d72475809734a5149ecfffdc7551503b042b commit 52755373ea6197dac40b9804ce967611b5e989bf commit 0da531c82a0fcac65407d28ecdb2a1e19c833df5 commit c389a0604cfbcdb1f8f53a76560eb31e0700e206 commit 28b0ef922738b74335c20b8ed4bf8e259353a3a3 commit 2f27fce67173bbb05d5a0ee03dae5c021202c912 commit 7ab9ebc580617831355843f19224f1e31bb8e983 commit ee06c09ded3c2f722be4e240ed06287e23596bda commit 99b1f7493bfa757b03d41ee6d7f7d00f81fcba5d commit 69bbe3adf36de47315498c9384f99a1ff9171694 commit 73d10c7788f6d2b7badf9973afbdea7ca433c15d commit ddc73c465628ab3e60f7eb5b4063b644c18b6336 commit 9460f4bd5970f2e46fe190a0cb9814697bd7f21a commit 6c10ba06bb1b48acce6d4d9c1e33beb9954f1788 commit bfc00a7754c40544c7446d3b664049d6e00ee0bd commit 902b4027216aeaabe1562e1db070550c06f3ec89 commit 0110ac11952f06419d267f51a3989e989b17e67a commit c400ec6990fb04a2ec9929b253dafa7e77c7f555 commit c77a46bebe99e70600e636a3a1f285637c479f46 commit 2ed186df27f078eb75c52d09e04aa7b0f9920f57 commit 3c75518cf27aa5a7e22e1f8f33339ded3779079b commit 03b5038c0ad069380fab7e251d2bf3f1540d20f4 commit 797fb1533315571ff9e55e80154f48cd47f3dbe5 commit c1de938fb7e5edc4c71d33f73e9fc5c77feb02a0 commit 7181faaa4703705939580abffaf9cb5d6b50dbb7 commit 151b1813919d4ab932e69ca4032761ee0789b04c commit 2ae6cd583c4c86c2b7e879b07effb8ffb10756bc commit 2778701b165eda674756537054d460fb4b0cf2e2 commit c03fca619fc687338a3b6511fdbed94096abdf79 commit c2ed7002c0614c5eab6c8f62a7a76be5df5805cf commit f588da30a20cf184f150420e4098b694908a4207 commit d18a56b247f4f3f7dbdd3adeeebd05c23f1e3d3e commit 5a3d3e11349c2e298c0b6b4d37c8241f44d37e3d commit f57b77d667dc6bd2b114d08d04b03869539209f6 commit 0765b2afc1118a6ab5fee624e206c782d70db28a commit 09cb922c4e14e6531979bff4e6bb3babcd9cb188 commit 401c90c4d64f2227fc2f4c02d2ad23296bf5ca6f commit 3766a840e093d30e1a2522f650d8a6ac892a8719 commit ae5100805f98641ea4112241e350485c97936bbe commit cf4cebcec619d963fa7496018f03cb0ff00dc257 commit e79563bf5fb17d1a199c7c0f7d5a7a98c077302a commit 07bfa9cdbf3cd2daadfaaba0601f126f45951ffa commit ce83ae29f93772d604b4ea73459fb17822d6a6b0 commit ff599ef6970ee000fa5bc38d02fa5ff5f3fc7575 commit b6499840cafca25175f43ebd601913bf31d06f16 commit f510dd5c210bf8cc22e4be48cbbda3cb754219f5 commit 4bdc5b504af7de1f649004cfdd37445d36db6703 commit b74571a83fd3e50f804f090aae60c864d458187c commit 327e62f47eb57ae5ff63de82b0815557104e439a commit 199888aa25b3a3315360224bda9134a9b58c9306 commit fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317 commit 06c9aeb57fe894e6e442cd66870cd3e863bbf08c commit ef126c06a98bde1a41303970eb0fc0ac33c3cc02 commit 42ac749d5b8bf78b347ac8a52eb15cc397b157a0 commit 54b86443fd4437c051aefd3f462cfff4defd420c commit f2be7b39e43893ab5361115de2b95e7c5c86f190 commit 375b035f689735fd7a87ff31ccac3a42717252bf commit e7d4e1438533abe448813bdc45691f9c230aa307 commit 042658d17a54c9dc8c028986dfbde49f4aa01871 commit 7b6df1d73290961ff0a00fd0022f28dd19e37181 commit d5a29e6a61028887bb8480e7c4af3547d6f3862d commit 87d749a6aab73d8069d0345afaa98297816cb220 commit 6dcba0975d39b30be65dd038fed69e1aa111c73a commit 856265caa94a3c78feaa23ec1acd799fe1989201 commit 84f76408abe989809de19d02e476b044fd985adc commit de848da12f752170c2ebe114804a985314fd5a6a commit 617a814f14b8914271f7a70366d72c6196d17663 commit 7856a565416e0cf091f825b0e25c7a1b7abb650e commit cac075706f298948898b1f63e81709df42afa75d commit f8ffbc365f703d74ecca8ca787318d05bbee2bf7 commit 3a37872316c2e3288e09a1322221c83e5929768d commit 440d52b370b03b366fd26ace36bab20552116145 commit f0fa69b5011a45394554fb8061d74fee4d7cd72c commit 338aae5478befee9e0e66afb78c2ad1e8d69825c commit d7126c0cfc137a580eba92bd82b6d288bd43961d commit e860513f56d8428fcb2bd0282ac8ab691a53fc6c commit 8b0d2f61545545ab5eef923ed6e59fc3be2385e0 commit 4771d2ecb7b9e4c2c73ede2908d7e7c989460981 commit 126be9b2bef9c7068fdd464790d82e6d70f9d8e6 commit e1d27f7a9cea1e0c06699164e3b177862e7b4096 commit 6ae9e1aba97e4cdaa31a0bfdc07497ad0e915c84 commit e45b011d2c4146442a388113657b70f0c7cad09b commit 8048e5ade8224969023902b0b3f64470f9c250a7 commit d52ac79053a2f3eba04c1e7b56334df84d1d289f commit 4286cc2c953983d44d248c9de1c81d3a9643345c commit cbc8764e29c2318229261a679b2aafd0f9072885 commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5 commit 3cb576bc6dfb8940228b8130638860b631dd428a commit a8387ddc0d15a365dd04baaa325a863d3612e020 commit 34ad56a467c320d07db22146cfb99ee01704a5de commit d7d2688bf4ea58734d73e18edcbf4684b1496d30 commit cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 commit e7268dd9bb9953a9eb0df9948abf5195bf474538 commit 994aeacbb3c039b4f3e02e76e6d39407920e76c6 commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8 commit 43102a2012c2e2f8424d7eef52aede8e73cf2fed commit 394b52462020b6cceff1f7f47fdebd03589574f3 commit 2cd86f02c017bf9733e5cd891381b7d40f6f37ad commit 2b55639a4e25ff02ee496368b03456bd28ebdc0b commit fa998a9eac8809da4f219aad49836fcad2a9bf5c commit 282864cc5d3f144af0cdea1868ee2dc2c5110f0d commit 7a1f30afe97294281a2ba05977688385744f9844 commit f9e7ac6e2e9986c2ee63224992cb5c8276e46b2a commit d51160ab00969ee6758ed2dcbc0f81dd476a181c commit c36df0f5f5e5acec5d78f23c4725cc500df28843 commit 05af800704ee7187d9edd461ec90f3679b1c4aba commit ef785ca7f7c80891580cafd36c8dd86375684310 commit 52d4e3fb3d340447dcdac0e14ff21a764f326907 commit 34f50cc6441b7fee4a86495d5ef43da5d254bad9 commit 9286a191abe2ea01b34be577e8a09a412dcbb644 commit 5f60d5f6bbc12e782fac78110b0ee62698f3b576 commit 156cc376a200aa9890c1f71c5e3d2fec874a7d07 commit 475be5144459b502d8aa987637dd4d9f38422786 commit 240ebf1c9d4ce1576f58e10365fdd3bed8aba7dc commit cffa8e83df9fe525afad1e1099097413f9174f57 commit 790533e44bfc7af929842fccd9674c9f424d4627 commit 2d2be279f1ca9e7288282d4214f16eea8a727cdb commit cb58977016d1b25781743e5fbe6a545493785e37 commit d1ef967126e295d36201e79ec64efdba31710353 commit 0f18ac78aa974660a948dafcc45f4dc6e2c5858d commit 7929ffce0f8b9c76cb5c2a67d1966beaed20ab61 commit 3bf90935aafc750c838c8831e96c3ac36cfd48d5 commit 6ef5a04221aaeb858d1a825b2ecb7e200cac80f8 commit 1b30f87e088b499eb74298db256da5c98e8276e2 commit 9e3c85ddea7a473ed57b6cdfef2dfd468356fc91 commit 74231870cf4976f69e83aa24f48edb16619f652f commit 67801fa67b94ebd0e4da7a77ac2d9f321b75fbe0 commit 8135f1c09dd2eecee7cb637f7ec9a29e57300eb8 commit 7257d9c9a3c6cfe26c428e9b7ae21d61f2f55a79 commit a6f3b2527375c786f2eff77d3ee8b805bcfe026d commit 301d194d01f3074efcf3a10eae116fcddb76788a commit 5b272bf7dcf969eb4f19ef994b6e60458ee6300f commit fe6fceceaecf4c7488832be18a37ddf9213782bc commit 4cc2718f621a6a57a02581125bb6d914ce74d23b commit d7d7b947a4fa6d0a82ff2bf0db413edc63738e3a commit 8e82d1199564ea0baab7be31f6558406bab4fe1d commit d6b9f492e229be1d1bd360c3ac5bee4635bacf99 commit 0a9906cc45d21e21ca8bb2b98b79fd7c05420fda commit 79bc412ef787cf25773d0ece93f8739ce0e6ac1e commit 04e0481526e30ab8c7e7580033d2f88b7ef2da3f commit 835745a377a4519decd1a36d6b926e369b3033e2 commit 32fda5650625065b8ae6dbd9967fb572d3835c35 commit db7f92af626178ba59dbbcdd5dee9ec24a987a88 commit e863781abe4fe430406dd075ca0cab99165b4e63 commit 42465603a31089a89b5fe25966ecedb841eeaa0f commit 3fd76be868ae5c7e9f905f3bcc2ce0e3d8f5aa08 commit 1badf482816417dca71f8120b4c540cdc82aa03c commit fc4d262721705f2a7b860946504e7b8a313f06e1 commit fcddc71ec7ecf15b4df3c41288c9cf0b8e886111 commit 28a5dfd4f615539fb22fb6d5c219c199c14e6eb6 commit 4809a017a2bc42ff239d53ade4b2e70f2fe81348 commit 512a9721cae0d88d34ff441f2f5917cd149af8af commit 26498b8d54373d31a621d7dec95c4bd842563b3b commit fe4a435bd0c20beb6d7caf87b49bc49a2233b18b commit b634acb2a070c072900c56154aa43e2ec2d45b2d commit f07fd958a49264eebc1db9c946eb5d2e91c470fd commit ac44ff7cec33d5c2d4b72d52603552ec64c1a8bf commit fcf38bc321fbc87dfcd829f42e64e541f17599f7 commit d2c72d96dff5ba408bb107193b53e3134a516c4b commit c0ec082f10b7a1fd25e8c1e2a686440da913b7a3 commit 7760d7f93c764625fedca176891238675fd06d62 commit e7457532cb7167516263150ceae86f36d6ef9683 commit 68d26c10ef503175df3142db6fcd75dd94860592 commit 7a1613e47e65ba6967085ad99dee95420346a0ce commit 28127dba64d8ae1a0b737b973d6d029908599611 commit cb07c8338fc2b9d5f949a19d4a07ee4d5ecf8793 commit 69b3d87212676c4c22aa4660435e2066dc7d1311 commit 2f54e71359eb2abc0bdf6619cd356e5e350ff27b commit 4ceead37ca9f5e555fe46e8528bd14dd1d2728e8 commit 03a86c24aea0920a1ca20a0d7771d5e176db538d commit 761f916af44279a99db4e78c5f5ee839b31107ea commit ed931fb40e353586f26c3327813d142f782f5f78 commit 82926f52d7a09c65d916c0ef8d4305fc95d68c0c commit 477d665e9b6a1369968383f50c688d56b692a155 commit e7518276e9388d36f103e8c1c7e99898a30d11f5 commit 4e8b5a165160e2f521cc10bae58ce0b72b2e22b5 commit 816b186ce2e87df7c7ead4ad44f70f3b10a04c91 commit 6df106e93f79fb7dc90546a2d93bb3776b42863e commit ffafd12696d1a4c8eeb7386d798d75e1fafb4e01 commit ec1aab7816b06c32f42935e34ce3a3040c778afb commit e5a3c24bcaf7bc1c3c2647395aae5de4660c1c64 commit 5b3c0209e88a67a8d029ed8b6e30bca383cbdc55 commit c09c4f2a972ca7cd9c8926594aa2099bcbcd3b79 commit 7626b4e96bdbbadca046a775c6b8e02b842c05e7 commit 49ff3e79a7f49e269b0278e75d35d6421f5538a2 commit 83f000784844cb9d4669ef1a3366479db3197b33 commit 338b655a1178900ac05aca7ac66dc28b05100430 commit 85e444a68126a631221ae32c63fce882bb18a262 commit 5c23878252515b8d2b86839bd4cb7dea7088aacd commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 commit 9515e74d756b6825f6119823d41b437832d89355 commit f888e3d34b8641a551eba8e0fa26209c5392eec8 commit f67644b219d458d4b314e78f2304b73985390311 commit 23d16ede33a4db4973468bf6652a09da5efd1468 commit 63feb35cd26557572ad95fc062ede344bb61d9ad commit 108bc59fe817686a59d2008f217bad38a5cf4427 commit ba1959f71117b27f3099ee789e0815360b4081dd commit 7c210ca5a2d72868e5a052fc533d5dcb7e070f89 commit c8fb95e7a54315460b45090f0968167a332e1657 commit 22ef43c78647dd37b0dafe2182b8650b99dbbe59 commit 69418db678567bdf9a4992c83d448da462ffa78c commit 9c1813b3253480b30604c680026c7dc721ce86d1 commit cdc21021f0351226a4845715564afd5dc50ed44b commit 2ba1f81ec7cbb2a9920cd3435c515247863b32a6 commit e3e1cfe33f932860e070eafec8df8780e3b889a8 commit 4d95a12beba146b0ca2de59c7ce905bc0aadfd0c commit 746ae46c11137ba21f0c0c68f082a9d8c1222c78 commit 4aa923a6e6406b43566ef6ac35a3d9a3197fa3e8 commit 935abb86a95def8c20dbb184ce30051db168e541 commit 25f2ff53838ccbd5ce558b5d23fac8a5d7f86655 commit dcb6c1d071712186c213c26b245779f7859b9cec commit 6a9d2e2988fa3ef9b03ddd9ba9aaa54dc23635e6 commit 5d01b56f0518d80211812420a8907ca0b6c6e4e3 commit 412a2a8fdd4eb89b263623c7a59b77dbfcf8f215 commit 4700fd3e050da8302e60ebd4850d008250fa7204 commit caa714f86699bcfb01aa2d698db12d91af7d0d81 commit 926163342a2e7595d950e84c17c693b1272bd491 commit add4163aca0d4a86e9fe4aa513865e4237db8aef commit 993ca0eccec65a2cacc3cefb15d35ffadc6f00fb commit fe05cee4d9533892210e1ee90147175d87e7c053 commit 8594a2d8d72d86b70b8bace607100d88111aedf6 commit f99c7cca2f712d11a67148cfbe463fdefeb82dc5 commit b0ef514bc6bbdeb8cc7492c0f473e14cb06b14d4 commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 commit 7fd3fa006fa56c0ec299c61ecf5c572c723adad5 commit 4b468a92ddb2985da66823910a1643349fe6447d commit 55e8a3f37e54eb1c7b914d6d5565a37282ec1978 commit 7d1e2580ed166f36949b468373b468d188880cd3 commit 1491efb39acee3848b61fcb3e5cc4be8de304352 commit 4f26c95ffc21a91281429ed60180619bae19ae92 commit 694c79769cb384bca8b1ec1d1e84156e726bd106 commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e commit 1356bfc54c8d4c8e7c9fb8553dc8c28e9714b07b commit 74e1006430a5377228e49310f6d915628609929e commit e301aea030d60da760f85f854a82ce788d5cf6e7 commit 3ce3f85787352fa48fc02ef6cbd7a5e5aba93347 commit b46dadf7e3cfe26d0b109c9c3d81b278d6c75361 commit f790a2c494c4ef587eeeb9fca20124de76a1646f commit 4d75b9468021c73108b4439794d69e892b1d24e3 commit af797b831d8975cb4610f396dcb7f03f4b9908e7 commit 64a2b6ed4bfd890a0e91955dd8ef8422a3944ed9 commit a353c78459f4d116216393cc29032ef5fe1472d2 commit 514447a1219021298329ce586536598c3b4b2dc0 commit 052ef642bd6c108a24f375f9ad174b97b425a50b commit 444fa5b100e5c90550d6bccfe4476efb0391b3ca commit f432a1621f049bb207e78363d9d0e3c6fa2da5db commit 9b984a71c240ed9287d6358109f6a0c6ab5bba32 commit 1a6bbc4d9e55d6c9df2dfe7d4f2705a544d8ca13 commit b8d9d5fef4915a383b4ce4d0f418352aa4701a87 commit bd8a9576617439bdc907c9ce0875909aea4221cb commit 6825cb07b79ffeb1d90ffaa7a1227462cdca34ae commit 9fc0cbcb6e45d6fc96ffd3bb7b6d6d28d693ff4d commit 16dd2825c23530f2259fc671960a3a65d2af69bd commit d641a151fcaf0d043075b214b469a14abab25af2 commit df0279e2a1c0735e8ca80c5df8d9f8f9fc120b4a commit 0e5ac88fb918297a7484b67f2b484d43bed3fbbe commit 79365ea70714427b4dff89b43234ad7c3233d7ba commit db0fc586edde83ff7ff65fea56c4f72dae511764 commit 67e023b93d69e5a21b16f9602656a803d314e825 commit 5a67c31669a3aca814a99428328d2be40d82b333 commit 4bb2f52ac01b8d45d64c7c04881207722e5e6fe4 commit 5f77ee21eb44e37e371bcea195ea9403b95d1399 commit 7013a8268d311fded6c7a6528fc1de82668e75f6 commit 3387e043918e154ca08d83954966a8b087fe2835 commit ce0d6970231903f43572a6998020fdc8b3a8f455 commit dd886a63d6e2ce5c16e662c07547c067ad7d91f5 commit 46f1f4b0f3c2a2dff9887de7c66ccc7ef482bd83 commit be7eeaba2a11d7c16a9dc034a25f224f1343f303 commit c0403e4ceecaefbeaf78263dffcd3e3f06a19f6b commit 21ec425eaf2cb7c0371f7683f81ad7d9679b6eb5 commit b6ad7debf5ab3e581b5cb0f5c94e404ec968bd5b commit 9776c0a75a1a86b753b2dc7c1ecc3baa048a8dec commit 93d1f41a82de382845af460bf03bcb17dcbf08c5 commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d commit 99d051c4b33cfb451dca0c30e28da25db2ce4d7f commit 1eb0de899b1eafe2c3aca8763c99e5c5ed791561 commit 21c1c6c7d732c2f6f4c5ffc77e103aa3ae8bff1d commit 44f392fbf628a7ff2d8bb8e83ca1851261f81a6f commit f48ab0a39f12fd83fae13bf81152531565cd5e75 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:41 +00:00
* Implementation of @dma_fence_array_create without allocation. Useful to init
* a preallocated dma fence array in the path of reclaim or dma fence signaling.
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
*/
Merge DRM changes from upstream v6.11..v6.12 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.12 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: Conflict resolution: diff --cc drivers/gpu/drm/amd/amdkfd/kfd_svm.c index a6b5ab89b7ca1,1893c27746a52..db88bfc044b5b --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@@ -2677,15 -2727,13 +2727,16 @@@ svm_range_get_range_boundaries(struct k return -EFAULT; } - *is_heap_stack = vma_is_initial_heap(vma) || vma_is_initial_stack(vma); + *is_heap_stack = (vma->vm_start <= vma->vm_mm->brk && + vma->vm_end >= vma->vm_mm->start_brk) || + (vma->vm_start <= vma->vm_mm->start_stack && + vma->vm_end >= vma->vm_mm->start_stack); start_limit = max(vma->vm_start >> PAGE_SHIFT, - (unsigned long)ALIGN_DOWN(addr, 2UL << 8)); + (unsigned long)ALIGN_DOWN(addr, 1UL << p->svms.default_granularity)); end_limit = min(vma->vm_end >> PAGE_SHIFT, - (unsigned long)ALIGN(addr + 1, 2UL << 8)); + (unsigned long)ALIGN(addr + 1, 1UL << p->svms.default_granularity)); + /* First range that starts after the fault address */ node = interval_tree_iter_first(&p->svms.objects, addr + 1, ULONG_MAX); if (node) { diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index a69e861eb1130,eef03d04e0cd2..56a4041f5ef5c --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -12,8 -13,9 +13,9 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> + #include <linux/spi/spi.h> #include <video/mipi_display.h> Commit list: commit 9fc97277eb2d17492de636b68cf7d2f5c4f15c1b commit 7c0389c615b5c6aef1b0e38e30db759b3cbff885 commit 627c961d672d3304564455ba471f5e4405170eec commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7 commit 67d90d679eb3447f73e2a1fe55f7e6c6a44c9fa1 commit 2e524668c440104633af1effcc85d1d6234c7ccf commit 96e7ebb220f8a873321cfc5a87bc4533d36ec444 commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 commit 282e6f846d8c3fcf36293f68f38d814645c3b852 commit a708f6501c692551e3d4ea618c44021f436730d9 commit 04e9c0ce19ac68afd8be7fd54772db3b0356cf75 commit 9dae9751c7b0086963f5cbb82424b5e4cf58f123 commit 466a6c3855cf00653c14a92a6e9f8ae50077b77d commit 3078d9c8b6a0939bc732fd1c36ef86c0178127dd commit 01570b446939c3538b1aa3d059837f49fa14a3ae commit c55f79f317ab428ae6d005965bc07e37496f209f commit 01e0cfc994be484ddcb9e121e353e51d8bb837c0 commit f3a47a269119ade7ea22d0465c7fbe518ca1bdfc commit 74e3076800067c6dc0dcff5b75344cec064c20eb commit caaf1f44a6a27bae33eee189842c4d8fc21c3b02 commit f592e01664b4a57b109fcf6f6916145517f94bd7 commit 6be74ddd0609959b4005f88b6a4d4af678e4a71f commit 9c62fb62c9f0761eeda8f2a9517e007ff2cdbe9a commit 8e9bf0fb10a79aaed37474600948cd33d14aa606 commit 4c44f89c5daee9540cb7428de5d835bd00951350 commit da966b82bf3d16f89a05732c933a589ec798d3f7 commit 10efe34dae798c652053d4363871914c478f1475 commit 3756310e9fe1e0182adac89cedaa98c0eea66675 commit 1dcfca093be9e013a53e3c9b74b3f60ea9c5160e commit 014e597d35816b56c7aac1348b77c73657c4066e commit c4ce398cf18ae2859cc9930a9486b576ce262de9 commit 533ca79cd9f734aae56814445e3f1e6cc1a50358 commit 56ab6986992ba143aee0bda33e15a764343e271d commit 3d122660dc70029d9cccb4e8670125f0affa959e commit 7b5bdae7740eb6a3d09f9cd4e4b07362a15b86b3 commit b2013783c4458a1fe8b25c0b249d2e878bcf6999 commit ea74bf9ccba9ae80fc0766c07c4abaef927e9e63 commit 7fbad577c82c5dd6db7217855c26f51554e53d85 commit 33891539f9d6f245e93a76e3fb5791338180374f commit 24179ff9a2e4524ce83014b8827a73ad03a25c13 commit 7f58ebaccb67cb22b2936ba79c844f1e446dc73b commit a16b680a2140e6cbda41ac144564696c3ee2815f commit e4bd1db1c1f771983393bf5574854dff26ca7532 commit 0e7f4e6a20d550252c4f355d5a303b1d9c8ff052 commit 76299a557f36d624ca32500173ad7856e1ad93c0 commit 9d8c094ddab05db88d183ba82e23be807848cad8 commit 71733b8d7f50b61403f940c6c9745fb3a9b98dcb commit 993d36ac99efeafeb7b5f12353def6d7d20d6389 commit 0daf44ea9dccfcdb1fe694e9ea85497b6cc3a065 commit a4d5ce61765c08ab364aa4b327f6739b646e6cfa commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588 commit 4613aa66e42ba1b0c896495a207b3b26e94e44d5 commit 61fe488fc78a3024b8d4cafc90a34158f4562dae commit f6ca930d974e473fd608fc9aa1759fbe731fe44d commit bd85e00fa489f5374c2bad0eac15842d2ec68045 commit 57c2b3e684ba3e82e9944bc1975e047bd1630537 commit d6e850acc716d0fad756f09488d198db2077141e commit ff10c99ab1e644fed578dce13e94e372d2c688c3 commit 0237368193e897aadeea9801126c101e33047354 commit e97701a069612ba2fa1d92b56a720b108049df4e commit 3b0974d7b74a908d1caa27f05a97551943e1bffe commit 09af6037128c101c280c95c56d970ce8475506c2 commit bc34d310b578952d37b5200a7fa7475ab2a2bd5e commit fd5a9b950ea8ba2c08ce07418b36b296a04d712b commit 6c9ee258b1f4e7021224c9bf541fe6b17a03ee40 commit a5beee65241d25ad20dd814668c975ba13a42615 commit da9bbdb97469383a2ac97435a3b09543d14139fe commit 4c46e34e67587b268abc3916c9613426018561e6 commit 94900000380300b230dc1bed489b598a2a2c55a1 commit 6a1738b3fdd92d48e61de438d05dedbc00fc598f commit 566ad72ba636b745beb8a440bd4c05e779b95728 commit 4290eaa8424905dcee4daa0666ec841dc3a0bfb3 commit f89d7664c3617836aecd291c56c8ab63fe228fbd commit 4d722029930bca7f53d99dbfc300a40dc297dee6 commit d43caea1faf5c31dc02aa1adb8bb1aa1c33bf86f commit 43a6faa6d9b5e9139758200a79fe9c8f4aaa0c8d commit 6f1cacf4eba7a3203f08954a7e00b744e43f741c commit 4c3fe5eae46b92e2fd961b19f7779608352e5368 commit 86c5b70a9c0c3f05f7002ef8b789460c96b54e27 commit cd3a2e8b0a0367c636cd82efaf7802cf85ae5dad commit 7bb97cf915884956311352eae3f444eaaae48cea commit 3ac9384061b250ee40eda5facff10b85e2d5d3d8 commit 45d30c828c613441bfbe5c97ca766854152b7181 commit a237f217bad50c381773da5b00442710d1449098 commit e1a261ba599eec97e1c5c7760d5c3698fc24e6a6 commit e02cea83d32d3a616c9ef8b6b50a83444a6bbcbf commit 7dbe8af13c189f5937e87e9fb924d5bbc49e6f71 commit 452bca0edbd0764ca0284239d5438b3edd305ab3 commit 108c972a11c5f6e37be58207460d9bcac06698db commit 54f07cfc016226c3959e0b3b7ed306124d986ce4 commit 8d79acd567db183e675cccc6cc737d2959e2a2d9 commit 2b808d6b2919cb2fe92901e5087da7b4ed4b9e07 commit 523f191cc0c728a02a7e5fd0ec26526c41f399ef commit 8a92e2a67f627e69dd52aa9c2d3176be13aef2cc commit 3849c6ff3a1517e4c8a6d004d9cb31241c849713 commit 775d0adc01a55fe0458139330415d86bb3533efe commit 275aa53f59df769802f28a0a623019aadab2e05d commit bc657615e10ddd7637dcc05811194ad7e2baea33 commit 99e0fb8b087120b5a7019f1cff6c5c2b5b925ae5 commit 0fde907da2d5fd4da68845e96c6842497159c858 commit 5e4e1ed6b87b6b3a3531cd8b5cfa9c3b09d841b2 commit 104bcfae57d80c484185c012cc0ee8d8d5889a7e commit e4a0251d36fc6c190c545aa95702eec0efe05a4f commit 7108b4a589cd6d3a2c1276fd610b3500f46de66a commit 0c977ff2b807aa53f655f095b0a306f18d8cf7be commit 3d0c4a62cc553c6ffde4cb11620eba991e770665 commit ce8c161cbad43f4056451e541f7ae3471d0cca12 commit a2387e69493df3de706f14e4573ee123d23d5d34 commit 2149ded63079449b8dddf9da38392632f155e6b5 commit 754c9129b9494b2b058add1d1a627fb3c9466a03 commit b345b3542d66fea49bff53288d347ccb06fa1b3a commit e8f834b559621d634a939381caf99a024e272211 commit d6460bd52c27fde97d6a73e3d9c7a8d747fbaa3e commit 5cd522b5331b348302fe410dab1cd070e4fd6998 commit ad16682db18f4414e53bba1ce0db75b08bdc4dff commit 89c6ea2006e2d39b125848fb0195c08fa0b354be commit d5070c9b29440c270b534bbacd636b8fa558e82b commit 9f774c42a908affba615bbed7463dd4f904dd5f1 commit c2c2a91f3868515969a758042887fdc722216525 commit 3a9b77cee7502f7450c725d4ead2c4a44924d158 commit 7e33fc2ff6754b5ff39b11297f713cd0841d9962 commit a522b285c6b4b611406d59612a8d7241714d2e31 commit 61ac035361ae555ee5a17a7667fe96afdde3d59a commit 0a382f9bc5dc4744a33970a5ed4df8f9c702ee9e commit d930c19fdff3109e97b610fa10943b7602efcabd commit be1dcdffa8fadc22ad272f605a53e2a2fd30e7f8 commit 2885d283cce544cf3619f35f0acb3d073de036e1 commit ec92c47d7d098e85eae7fb25c6bc07158686e675 commit f6f22012e6c73867b959524604984ee5ebfd105f commit bd40536ae33911bc74df5ba3b29b573dcb72f904 commit 8bfab7cd8335b10bad92e44f58c5a038762bcbc3 commit e17eedf56ea7afacd919a3d6cc75a617cddd003a commit 8f3d86f13eb2b37d86fc48df8995dffd9b7d9010 commit 37db1e776285518a7e1269b868d094a4532b2d54 commit 57ecead343e724b6ea38e9c2d8f794b293cf2951 commit cf1e6edbd1c8ba654f97071ccb748d87ef0115aa commit 9790bbe3ba48b659c0152f49552f6abc18f85bc8 commit 25ec7e809cc1fe9f01a71199d29092f6f1b4611c commit bc3ca4d94369838c3b6668a183467d4a69a5a482 commit f00bfaca704ca1a2c4e31501a0a7d4ee434e73a7 commit 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f commit d4b9b6da5777bb03f36f01bb6b05c6cc303ededb commit b26d9dddad7bca6727069f6a26b265d303c65c49 commit bf32a3a1268638442ac43b347e4a4a09044dccea commit d5e79eeba3086a52593b295ac4bf6eddd64d4aad commit 9c27f613d55f8ffeb3f250d9d34e41edca3df3b5 commit 649b93dbb902ae3237fddbe998eb1f4de1a14b71 commit c8a31ff6199f12ca65d73f1235117c1d9e6365a9 commit 8af13c3fc1259c1b8cfc4459d3701fcf41ad74df commit 1fb4dceeedc5f0d1d062ddc44c4a426e1639e387 commit 19cc4b7d75b52df2b4fbb76428a6b0dda3d248bc commit f763c3b543d80ebcb94dd19a69324bf2b72b23ab commit 08bed7e4ff24f90e200defcd2c23e70b0a3cd710 commit 43796955a89572c63f7f96e271a2849c27d18f2d commit 00bb3223bf7cfed3c9c714e994cbd454cc3e6b73 commit 1eba165aa40c79f65f487678c8ea8e77b1c6a5a4 commit ccb54d7d91d256485cfe5403a12abb0175ce4539 commit 0f1a93704a5cf53ce819a7c544125442666d61ce commit e84f798a93881062cd14ce316a68068edd50bfb4 commit b68417613d4134b9e39fff95e72ca726268b47db commit 4ccc8fdcca670edd76d8bfd6389f04c448cff6f6 commit 5f30ee493044e9ea3a46167e5597a96f5c302adb commit 0961367cb5208850a123d235d147f92f586b2491 commit 98579743c4561acc3b1c7d2f3fcd46b2160db5ba commit e8d77cfdd2698039667432b8569bac34d13508c1 commit bc2fe69f16c7122b5dabc294aa2d6065d8da2169 commit 3c9154310af71802de2f40c5689b66009a407f37 commit 5fc77c26970d443f1c020ee8a5d475ad6b81e15f commit c83ecc0bee94995117329fccbfa6e8b43ce56044 commit 218784049f4b90834dd7b854857df0b7e0f76567 commit f5c783868855bbecfc4311050dbaca4cb28ada5e commit b3c9c9affd71f1f9b136534d6f56f392edb78620 commit c18fa08e6fd8952e88fa9ad108371c2bd5b82564 commit d94df7cad26b4c5958fbfa550d65794c89aa90ba commit f60881ca126cf825b89b4118e93dbd82ea9bcf33 commit b995c0a6de6c74656a0c39cd57a0626351b13e3c commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 commit 3718a619a8c0a53152e76bb6769b6c414e1e83f4 commit 5559598742fb4538e4c51c48ef70563c49c2af23 commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 commit 35ff747c86767937ee1e0ca987545b7eed7a0810 commit 892abca6877a96c9123bb1c010cafccdf8ca1b75 commit 906fd46a65383cd639e5eec72a047efc33045d86 commit 5d2c102deff63ff8980dfa848ee41858d255c291 commit 2563391e57b5a9c1d83fd36c05ac4cbafeb5efe6 commit 5ed9481db74740fd33ec4079b29db88e8c9f4a1c commit f91a9af09dea850d83d4b217b8acbafd97b5c61f commit 39d496d4721ba509647a70041f38d82b03c74680 commit 4e8eac98046446d99cbbed740f0767204b839f3f commit a41d58fb91248557438de4e8298d1d2ed5b39564 commit f82200703434522f1b35d38bdef02486d22b2f25 commit 9932ca4c03c8181601f611dd366fceb765329800 commit 0beca868cde8742240cd0038141c30482d2b7eb8 commit be1fb44389ca3038ad2430dac4234669bc177ee3 commit fdd5ecbbff751c3b9061d8ebb08e5c96119915b4 commit 6d64d39486197083497a01b39e23f2f8474b35d3 commit 323b19f424486e61784e8797a8bfb2e24585e162 commit b8d3782da396215615c3d125f0829d1d06ad2c97 commit 08cbe68d4aafcf651a86730a485df53e6ee9f594 commit be7a6a5171649c39f79a6259518218351082bd99 commit acce1eb8eb5de360fd82fd900454ff180912d8b1 commit 748b3c4ca0bf43cec186ace2ecb33457d7a4653d commit f59549c7e705be0087d08bc116ccc767b86d8362 commit 48eba83018c14ba6c102f5801d31c398807535d9 commit 6b0a9bf72c04cd8d2864fccce42817c24b060aec commit 2d67c4b54909982d462bfe227279d1499b329545 commit 60a9472cf0a8568f32be6cbbd32ee7759bffe215 commit 90985660ba488cd3428706e7d53d6c9cdbbf3101 commit 78dd6a8d33a3363fb4196e173be0eb4002962798 commit a6e23bec8ed184ed2a11080b28cdbd7a3024f0c0 commit fb1b5e1dd53fc834e12f69749cbc8484382599c4 commit a9ed2f052c5c14e4be58c5ec8794dffc87588123 commit 27cdf8c3cae2ad1dbfe1a32ff999c98349366862 commit 56631dee2932dbc203f0abd1011aa9d3d621e206 commit a7e8467fbeee654e390aad1736291d273b407a2c commit 7a38efeee6b59d0984ff0470d234a06fe6a7cf3c commit ca82ee4e9fc1443f9ceec615918b299766432eec commit f2ac52634963fc38e4935e11077b6f7854e5d700 commit 4df9e2200fb8ae7199e46eaffeb9430bc0ba3ea7 commit 666f14cab21b17ccc1bdfe1e82458aa429b3b7e0 commit 93381e6b61804b777f60357d96d6254eb10b9b56 commit abf839f5ebd98134f51764f2a2841faa6cbf268a commit 80237bfc031cd74cb8abf0d21094207284d56a48 commit fec5f8e8c6bcf83ed7a392801d7b44c5ecfc1e82 commit 585e3fdb36f59c5cfed0ae06c852dc1df22b1d60 commit 49cfaebe48e97500a68d5322a8194736b0a2c3cf commit caaf576292f8ccef5cdc0ac16e77b87dbf6e17ab commit f9e292cbba21e79abea7315b41a52c36ea2b6980 commit c86ad39140bbcb9dc75a10046c2221f657e8083b commit a11b36ba9c1ac494c6a5cf7f1a5e68c1ce4dbe18 commit db54a725d57985c869f6fe4153a36cd229ab0b73 commit fb91065851cd5f2735348c5f3eddeeca3d7c2973 commit 72dc6bf159467f43667bead6016965821186490b commit 3f7477bfbb906ec1cd9ad681475a04a142345eae commit 6fa4bf3dce0668a96faca0024e382f4489a9cc9b commit 332315885d3ccc6d8fe99700f3c2e4c24aa65ab7 commit 14d6ca0740e6237f4bca2dabee4e240b6f4be508 commit 0cf80506918da0d2cd9d31e3b07831f94a2c5cc6 commit 94beb4ac1b3bc5fbeef977960a90ee4f594b4465 commit aaa21e6a33bae017fc190bd75f76baa29d259346 commit f52ea01925f4eeb967c09cb5dae61608a2330541 commit f7543209ce5dc09e3f5a27a7d4ee53e226283719 commit fa53b23ff7c98930c7e529b8f5228d9f182ae2bc commit a90e1dc25c064bf21353cb342aac938662a148e4 commit ec0d7abbb0d464619d6d1646f03603c6616d966e commit fae1879dc229249c17e5fd4ef81bf33684ee58f0 commit 1a03b0e6c5fdb476203be4f4597205ff8799369b commit d925c04d974c657d10471c0c2dba3bc9c7d994ee commit 3237403b98e173c296ec83cbba5e9def331c5e13 commit 58ed441367b9b0fb48aa8cd471a73073d1143e16 commit 8732594017d32132ca741f4ec4eec91211f5d10c commit 779ea9d32612f8e78a2f362d52cf31c23ba878f0 commit c8a0222dedf90e9a79b88814e32ffb43ac4beef6 commit 0352e39e7e781fe6a408c70a336d0f321dfe108b commit bc50b614d59990747dd5aeced9ec22f9258991ff commit b7e99058eb2e86aabd7a10761e76cae33d22b49f commit bdf606810210e8e07a0cdf1af3c467291363b295 commit d81873f9e715b72d4f8d391c8eb243946f784dfc commit f22f4754aaa47d8c59f166ba3042182859e5dff7 commit ac2140449184a26eac99585b7f69814bd3ba8f2d commit 12fb3e9c88406732749fb2f111911a2438eeb0fc commit 7e60ecc2b70adb41b92752cbcd749040e00b57b8 commit 9c7e69d2e1245fdd5fa5c65cd022530b2a5ef1b7 commit 68e599db7a549f010a329515f3508d8a8c3467a4 commit cba7fec864172dadd953daefdd26e01742b71a6a commit 4b6377f0e96085cbec96eb7f0b282430ccdd3d75 commit eac3b274aaea11ec4ade8e8f684055db80d5f8b7 commit 22a9d5cbf88a92ac6cd473c3ba1c369aee8fec9a commit 834368eab36922595a402b9e76470f8efa2fac7f commit 8284951a6e79c6806c675e5f68a4cd425dd56bc4 commit c395fd47d1565bd67671f45cca281b3acc2c31ef commit 015b8a2fdf39a4c288ff24e7b715b8d9198e56dc commit a2737c404cb2c1c335db30737925a306a2e7cc11 commit f53f526f7050041718af84e33fc24f670e7dccdb commit af4808ac40dbf668183d0b69ef6b31e62e1fc5df commit 4b95cec68937a6302c7085b26258cf721d726684 commit 2662b7d9d8bc1dda1f89f0dd33422e069f2f861c commit 39879321769cc2d9a690725959ef76af92a38ac1 commit 48695573d2feaf42812c1ad54e01caff0d1c2d71 commit acddd5cf70e609e1e1e638ac0422977ea2b4783f commit a7909022371dc8c70bdc4871a97cc49e34d78a6d commit bc6c2a6f6495668e3cf0acbecf820b93ca03aef7 commit 5ebca62eb8ebff67e2c8c4903bdb4f3c07922114 commit 238352b4949bc5c724f6adc1c78d50f1d15e4759 commit bd4bea5ab2bda37ddb092a978218c4d9b46927e6 commit 61eec998c9399d1cce91c7a2f51a4d0cfbab97bb commit c60ca14bfd2d399a66f7164e044b63991c6a5a82 commit 708899133615bdb8087cafa129b8e24397d0c79d commit 2108cdcee58b06460a8ecb106d15ab69f5bd49fc commit 6482253e6e1ad1c3a76645a3899d3cfdb5b918cb commit 76a791fa0926e504f262310cbd0c8f1a60e67ae8 commit a2b4da9501c120d60413065169f140bc3d2e5991 commit 66ac3451fb467ce44fb1d4517f91db7390b9fa6b commit 7214da0ed2220a2b9ad22aa77a5974cdd2a62799 commit b46119578167150810184494b2a097c40e2144b8 commit b049504e211e8f4dbcd40434f2dcab2215ea1039 commit 305cd109b761202d71f2f655ea369fe889ba1d01 commit 3b37e2725ab32c9055bec00ef41caa63839efd37 commit 0b071245ddd98539d4f7493bdd188417fcf2d629 commit 08ae395ea22fb3d9b318c8bde28c0dfd2f5fa4d2 commit 47c0388b0589cb481c294dcb857d25a214c46eb3 commit 517fff221c1e6b8a8db69e7a440116caee120ff5 commit 629568d25fea8ece4f65073f039aeef4e240ab67 commit 1a394b4f504f33eac8c38b6f42ba025105c7e869 commit 31b42af516afa1e184d1a9f9dd4096c54044269a commit d34f4f058edf1235c103ca9c921dc54820d14d40 commit b4224f6bae3801d589f815672ec62800a1501b0d commit 3e307d6c28e7bc7d94b5699d0ed7fe07df6db094 commit 10ba3753665f77314cb475e1a4ad0785f4770c4b commit 83b501c1799a96a41e163973e88826253ffadfb3 commit 773884e39bb5a57f998af48b3948308568027a54 commit 93183c9959d456530ae502865586522acf21adf7 commit 3c8d2d5da3e29f73fec6e04a424e789422f697db commit d969b31afa439f71f810076a5612596dae38fd86 commit e814902866ed22bc07d2af1303f3183357a438e8 commit f4aa02c43969c36213a7fd4e56831693fc83ec4b commit 351a88713b6daae5435d683ddab1913a65d09eb2 commit 8155566a26b8d6c1dd914f06a0c652e4e2f2adf1 commit 17c6baff3d5f65c8da164137a58742541a060b2f commit 75c3f06fd900e01a68b8ade17e6b6be64cfdc9ff commit fdedd77b0eb31209c59107de66880ef0be21a77a commit f3c681f0c3b171db923d6147785064962351e043 commit 60c30ba7ba2064066ec462236666058cbbf619c1 commit e06b71b2313a00579ba64a1cc43ad29d64cb8d4c commit 8f28c465a455563917aa15bf5ef40016b2a665d6 commit 641a118c9d91e53bc920ec0ea2ea350d84eb7a9d commit be8f9f4c866f41b62a3df9a5cfd54e0e88fc3e3e commit 81e0a3d1063e388efcbbb4648e07479575ec85b4 commit 5e9209c3739454a08c4d770c649187b0f51dffc6 commit 9d8e91439fc3890de55eef2bcfde97470b7dc04d commit fd6797ec50c561f085bc94e3ee26f484a52af79e commit 0d5040e406d2c4404d26b841c4aa34cec0bf1088 commit 20d70de5823ee6b9d4e8b3db4c13123cee0358af commit 961ae5f9807bb15af0065485785725768a7269b9 commit 448359c1ce50a8e61842c39ffd52f399409a6860 commit c0bfe34330b5fafdbbc63a7124841711651b96b9 commit 6777264dfabe2a7c75453031bee5bcc2e7882cf7 commit ea94c8e217f9a845bf2c565b77c5eb078e975eae commit 2e408ad7a55273b55b14ce28f62111dc1c4f7fb6 commit ba6b8479c944c50db7e2a81794885896fa6c48a8 commit d075d99ef73bbeca878fe2cbf758f8524bb698d5 commit 8bc1ab4f615b200507b113d31ca614fa17b9772d commit b5bd7cf76b7cf8f2dfe36aec0e4916a2a95c8fbb commit 4a865f6a76ed1295d878029cf7a1797395b1aec0 commit b2d474d4c8fa9cf7d18dae3c0784c4a710e850ca commit ca6eef9b1c3486bedadad6a85d246b26df51c61d commit d6e44a8548b614fa9d6c77e0c12b929c2c791258 commit 455167e8751c7fc50e88496e6d5dfb896e2ab3dc commit ffe9f1bfb3e6709769779bc6c1a5b1d971b7b95d commit 7e0d8de4d35789b57eee8acb0a952b854edb37a1 commit a897f65b3a6175243e4878e2fd2e9b8f494710ec commit def122b64e37daa39774d4afa433ad42b8a5eaf3 commit c45c999cfb6716d40af9048ed0142e42a6235378 commit 246b228eb905c94663af435a1cd6cd31cc205ba0 commit fabc65d16337b6cee1cbbd1470bbb903f6daf3ea commit cced63c3dd23e061f0fca754a3aeb35b62b0a628 commit 216c3c4424bb42bd6e4ea75cfe0c22aa7dceda6a commit 8d7b2d3a7e3aa4fac309f9a496e6b237729d2b01 commit 6901f1d6479b6f81b537672cc16720b06b2ab3a5 commit c6bf82d426d8293d7257b9db368e025b1fd66454 commit 0fa0955acdb342bee3651bacfdce3d8927ab1025 commit 3019023ec9fb2bd7b0d2d82ce847ae2520f24c1b commit 5cca41ac70e5877383ed925bd017884c37edf09b commit 2eb58f22e2761b75e4f35847be03ddd425ae2b5e commit 3543e84e20fbd60e02264f757c77c7dbdfd1ee4a commit 034142a303fed2903957b06a7c91abdff5531bcf commit 0df26c0d69dce1141218e0e5ed0ad378a0c6c058 commit 723388bc0fb68f2487795796f4e616ea39cee99c commit 61671d85def2960bbf52db22e9e45b3bf8a5ceb5 commit f3392e662efdc095f10109f588aa4f3be86f7eb5 commit 50d10d9271f6c6542196c54275091c7b2c6edf97 commit 58d283801d06d4434df6625ed6e6b8d2ba47fe65 commit cd162ae9bc3ba91eb630a1321afd3d1dde5f2000 commit fbfb5f0342253d92c4e446588c428a9d90c3f610 commit 25dd25f86eca77b1ce4a611432f57b006fa91615 commit 8e4ed3cf1642df0c4456443d865cff61a9598aa8 commit 66d71a72539e173a9b00ca0b1852cbaa5f5bf1ad commit 7c5b344537a143d15385992e41a50a9c5125e93c commit f9e6759888866748f31b6b6c2142a481d587f51f commit 7fb363c57522b704e156fc4c5fbcb7ee133fe304 commit 17e68f89132b9ee4b144358b49e5df404b314181 commit 0e4b858285e633ea6bc7335fd66529955d023af9 commit 076362d931d0d5ed01a3d1cd4d066f2e6e7f86f8 commit fcb3a4fb8255149a73afeb3d8f2397eaac3a46b0 commit 680caca6feee720d0a6cb00f892c0d2d46dc4075 commit d5022deb4a526009fdc20e4d62528b25b05112dc commit 3f96f545f877ac59d0c967f52d760b4b2b3b9a47 commit 722e96c99f1d7532fdfbb557f50a399f6cc57d82 commit 58a8ee96f84d2c21abb85ad8c22d2bbdf59bd7a9 commit 739d0f3e1f36738d4cd84166784a8f7a58d69612 commit 9724b8494d3e85cb01c377f201bfaf25fd7d38ff commit 093b79d034c59a3b66f6312863502378a422496d commit 4981bd4749fa769b3d6acbc82fe8059c030d0920 commit df18a4de9e77ad92c472fd1eb0fb1255d52dd4cd commit bd870cfd21489d28195fda157710ebd4cecaa8ca commit cead9ac8b0992ae2659b637e86a0da7cfeb5e267 commit a15268787b79fd183dd526cc16bec9af4f4e49a1 commit 13d8850a3387635c051c5ed1c8a8b6c1e9bd1341 commit 608d886c978cd5f3d8650630568d96c231845227 commit aeb81b62c7fe4782198e9dd79c7d6cdf04d92586 commit c6bb3acf1cdeed5d01ebde70b769a8e25993965d commit b5126ba85beadfa1f3cfdc9e7a8533ad444ca210 commit c3f15273721f2ee60d32fc7d4f2c233a1eff47a8 commit 6eb1fe53ee94cffd7187844d08d46ba8659d667a commit 4067f4fa0423a89fb19a30b57231b384d77d2610 commit 31663521ede2edb622ee1b397ae3ac666d6351c5 commit c9bfc37f085aa180b3c49b9c95756b9ef032243e commit 0c3f3a83c7e8dfaaae4ba8a5b69bd6bc13340d0b commit 0e8655b4e852ef97655648b91ce780384a073ff4 commit a6ed988ecdffb2680a65f142acfe3271e6c04ab4 commit 6f4e43a2f771b737d991142ec4f6d4b7ff31fbb4 commit 7657d7c96657179d002817d5ec2a1d4c84f21cdb commit e525473fd5b7202ae751316799ed759bfaaf02bc commit 20c3a0241b5c15c0d64929cba04653d5556b7d5d commit d93a4fec186c106115d0b3165047dd06f2c1aaab commit 9eab82c38d0184289ffea56477daca8425758442 commit 6da8acfdb6e1aa72787efb733e3af9e9e0c57b9a commit d51a75ac975a6147a4dea2d68cef4566f5c2ecaf commit 1c408c516414fd9760c54f6d42ed1fa44a1dff15 commit dbcbfc72d3b660b6dd9ea7d2c089c228609714ec commit e4ac526c440af8aa94d2bdfe6066339dd93b4db2 commit 250ac9ee60dbb14cdf422ab7f2bc28d671ac9f46 commit eb53e5b933b9ff315087305b3dc931af3067d19c commit c91d75a3c6a2567e8c6b44f7337b6955596ffb86 commit cbacb1b74400299edea7e9bcd58bbc7c40dad8c1 commit 2281475168d2ab3fbd763c2fd762f99a411fa1b6 commit 2000ddac9b5ce5102ab1b194a1cf91e8af3017d5 commit 833cf12846aa19adf9b76bc79c40747726f3c0c1 commit f2881dfdaaa9ec873dbd383ef5512fc31e576cbb commit 7f7a2da3bf8bc0e0f6c239af495b7050056e889c commit 6f20fc09936e786a4ba18f5514fe185e0451ada9 commit 4c288f56030f380acb9572d88396ac15edfd30ed commit a755947e050b8751fc5402609a7d600e9c756fa7 commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 commit dbaeef363ea54f4c18112874b77503c72ba60fec commit 0cf09702a118b1c09b694862061913108565edd0 commit a64d5fe490cd92d74b1cf46da63164cefcc61a58 commit a3f91f405aa7c54d0856c1b8698e4ff05ae7d439 commit a4530e20faddcc4ef4e5939f186a8560c71a5e94 commit 634e1804242b0d5d64031199236fb3f337b5af3d commit 96c468c366dacc0e41e08ac53e20a5025f6ba967 commit aa705f7ec6e2423af87c20b30f0e26eafdfd4513 commit 8f1fe39ded725483a67c15014a1863179c783b38 commit 9d1f218ddce20329a01c46d7a1ea4d88fdb0fe86 commit e40fbf616610e33aba9597f278925b4ae8cc806c commit e44bc451aa4b08845c238028daafb4eaffb573a3 commit 5c7b393452b55ee0cdbced0d3bc798f6875b5c24 commit f1e6f89506e48b42235755fb3c2b73022697d8e5 commit 4da409ba6430e3b5c6da7879dbbdc5f6717d91b1 commit 6c9e14ee9f519ee605a3694fbfa4711284781d22 commit 688c43dd6ca9e0cd0568868aefca5b041695c3f4 commit bb99c51bdaa846bddb85a1e7acca3a3aa5e9f082 commit 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83 commit d97e71e449373efbd2403f1d7a32d416599f32ac commit c0e0bde2c7e6bca2a1f195d82ef7598d521399e5 commit 146458645e505f5eac498759bcd865cf7c0dfd9a commit c3bc97d2f102ddd5a8341eeb2dbae2a3e98bb46a commit 53369581dc0c68a5700ed51e1660f44c4b2bb524 commit 4f04d07c0a94b0b30db839e44f1b8364a1b508ac commit b6b242d019ed23195c81cf00eb8290d386efb83f commit 717b432b6d55e1dcefcb5e2ec315bf66b6ab8c54 commit 21e97d3ca814ea59d5ddb6a734125bd006b66a60 commit 2009e808bc3e0df6d4d83e2271bc25ae63a4ac05 commit a4172af3040cdc207f1b60efffcdd219156093c9 commit da1878b61c8d480c361ba6a39ce8a31c80b65826 commit a99aff2608f422da833cd91fa1eff23daa05c0bd commit be1dec570b6f5a29ce9c99334c52bea94c28914b commit 8d5309b7f67571bc0c95d430f4722a99d38f3b79 commit 843f10ce6539cd5e4989415e18cb809f4cff8b91 commit fceff12e52985e49c464f402e11b2f97bce3cc24 commit 3196763851b5fb9f7c8c488e233e947292cd71a6 commit 8466a14173e5ff7c2a52d8700a13f4b841d0e17c commit ce9b1466f5a9a1b2acc80d29f12d69559fa97174 commit e60244554ca98e87ef731739f608eac54e478e9a commit 2796b7ceec95bd5a7069cd27af7e4cf01a692db4 commit 1de99ff7371bc6ce2187081bf5bfbbb4a7de28d7 commit 34d0472ce1087fbf8e2ba504a4625e4c74286c63 commit 60a2066c50058086510c91f404eb582029650970 commit 97b6784753da06d9d40232328efc5c5367e53417 commit 54bf0af90844fbf18f5be3272eda69198dfdb622 commit 92653f2a572505adaf7f13f695c1907e71a1dc84 commit 7c5537cee9a8dff956e3b9a3f68c22af06a57558 commit 7b6cf6c750da7661a90c12642c3a8f141c7c2819 commit 68914b7c4dae0fd59ccb6b8bd8e2b6f5656cd25d commit 0b8778af8babe55f133b9bfe3a5bf234a36ad7f8 commit 75830999587470b17a30d2ecad25ad13cb272c19 commit d7683c49638c83bcb6a817671bb348dc435da3b5 commit a0ac33cb9a12f1e499c9f009067a3135df626cd5 commit 16c9898ac5ab00fc96efee404a1b8bcfe20ad48b commit 9a72570491b524c9dc4c1caa7323b2297c27b0b7 commit ca0fb243c3bb53dbbd71d16c76f319bf923ee3d4 commit 9330af0af3d54df71b6b752a260dadef05a4fc44 commit 29d0732f8f61ed028d642034e5323b8cdf6a1905 commit 85ecfdda063b6f148335c354c8b7200a49640510 commit 5d6a620875a04e70c51d8366eccae74d9cef0308 commit 6cc213b9aa34bc3213e20f9256345c5cc1495b0b commit c7b3569b3ebc53e997500be09eb612b6c852525a commit ab799c16c9d537fa2f070283f1ca63a4425502e9 commit 675d9ac9d0de765531e94f9fdc536989a997a324 commit 24ffa5bb6d363c8164be6af974e318f5752797e1 commit a00a177055cced5cd2bb057a1ace9a95a286bc49 commit 74bad61c5d83f5af8a855c8b7dc8e20377c74d46 commit d91f93c7a7fb9589e62814c1e229943e1259b48c commit 946e2c5be80b2cf93be34e28b3a6bdadc8ca419b commit 3e048c8846a658098d935df83050170c8a8fb104 commit 1cb62da0802c8f08e26443a5409edba99b8a1f6e commit 8141f21b941710ecebe49220b69822cab3abd23d commit 9710b84e2a6afde2db20cd33435038eb75b91200 commit 17277da26623d4aa8bdda628d0024cf2f2e39ae6 commit 836af5be1b6d8e93d736c252e711a20db7dbde9d commit 4a4c815b08dc774dde67fb90a0286925f98204af commit e89d2fec4cde967445e16e02e406481bac380cc4 commit ee0a469cf9175aeb6131c0476c4a4a8eb5997dfa commit 67c4ca9f794951482c54a7006c8b3c367d6c3efc commit b41a382932263b2951bc9e83a22168d579a94865 commit 847e387e00547b0cc728a5e61f5beb2ff861ed1d commit 62eefd10ac1c7e976bda47ff311bd87cee40ab8d commit 62ed6f0f198da04e884062264df308277628004f commit dd340acd42c24a3f28dd22fae6bf38662334264c commit 28574b08c70e56d34d6f6379326a860b96749051 commit f59902ffcc43ce7e1db5d0c4dfee37ec2a1bae0c commit dfe9d047b162f3a79ab63046608c693ee14c5b7a commit bb670c31e13a402d30afa3d484403196031d0fbd commit dee44a7cb577f2aba39e1713a51e9faee2f65534 commit fd69ef05029f9beb7b031ef96e7a36970806a670 commit 62341f7bc2ccb7c024eb023a05714d798ba6437d commit 0964fbd59e7131c1bad4c8549ec13a27104f0b11 commit 0345c8bc22c92f3d5fc0287957a96fd214297aa4 commit e9180253e22596991db426ab5b01111c2a739db4 commit 4f842ba7cdd83cba1d5c0bbd15ed9d14d882cf89 commit e1dbe625d6ac2821eb29e087db46cb539d8079f0 commit 507293b1b207e419fc7ea4ff1d72c2f1db18e33c commit 64a905203fd0da3e8a3f649593cc48c9fbab25d0 commit 792be2e23ac69821db7860ba4ba94592101f0b07 commit eaf3adb8faab611ba57594fa915893fc93a7788c commit c9875d0a789060facc274dee0d4eb6500d471772 commit 671af06690e7f79db51b475a35c3b2619f345abc commit 434967aadbbbe3ad9103cc29e9a327de20fdba01 commit 65f6e9f7e1319119096a6dc93e62894e4375b578 commit dd3e296289346109d41c6317124f51aee0269c25 commit b3a3c9a6b27b68310f1d4d486f47556808c7c855 commit 5aacf8917fde5bc2a640f3cd49130c0e2e85e726 commit 7b2363e06c0ff4b868e7d768d605a9e656ff61f3 commit 51d334d6a49629ea03a2dde562d46846eb7d07a0 commit b8dc6ca028d9a39196a3a066b9ef2d4a5eca475d commit be64336307a6c3ee71fe1337c1b9f0495aa83c50 commit 78c508a1c162c90c48e12faa62bdab8b90e6f17c commit 41cb5a5e8480fa41ee452ee60e620a4c1de3c323 commit 8151a6c13111b465dbabe07c19f572f7cbd16fef commit 329ee7087bc9862977fb6e431b8b0ea5e7e261b0 commit 00f06855f6e68954f67616cd5560fca25c755eba commit e80f8f491df873ea2e07c941c747831234814612 commit a0fcd3df4591043d447bb08919eed2ce68fbdb5b commit 130376ab8300ef06231ebac4db147f06d601d53c commit 86598c3819fdc70e59d28221bfa7bc36e9f5777e commit 57b09a168ffe88a4c088e8f7ca5de2ffbb8fefa3 commit c0277b9d7c2ee9ee5dbc948548984f0fbb861301 commit 92549780e32718d64a6d08bbbb3c6fffecb541c7 commit ecabb5e6ce54711c28706fc794d77adb3ecd0605 commit 4eb0aab6e4434ada240286d934651dfdb2e08301 commit 9cc033e07d025dee1fac178c20ba96c56f8d9a91 commit dae5d79a3bcc3101e1e02a1c2999ca74d1efde05 commit b62ef7e4021f74bb12445987efd8109ccca289c4 commit e102b5ed6e283a144793cab8fcd95f61d0ddbadb commit a225800f322a3d6cc8b8b6c7dc4d5281f2f5375b commit 1da86618bdce301d23e89ecce92161f9d3b3c5e7 commit 0829b5bcdd3ba077c408e71e22ac2bfa85bf2c95 commit 17419a5c8c75e1f9de01b094f763ec1c6ad02979 commit cecab0bb737fb74813733f2472761fc3a93857b1 commit b7b930d104c38a545d862896759863d649be8252 commit 6600c55ba0d46c6f2f74eaa6ddfe2b66cb8df852 commit b635066c2e0fcf74428b0864c249c1dbcaa4b5bc commit 94a438a7595bb5a7a2efb94de2dc818845254e4f commit 372f244b01784b5ee233cdfd732b4c1929ddd71e commit 91dae758bdb854367bf0811d97acb84e791764d9 commit 636cdf6fbddff4780ff4452a82afb099292b88b1 commit e422c0bfd9e47e399e86bcc483f49d8b54064fc2 commit f5510726608fa035bdd2f1fc167cf4a0f7bee22b commit dc06efbb7934405461d95bba5b702849058424a4 commit 9d09cac47de5358ace64dddd14278fea002e68c3 commit 0f9ff361ad823b887cfb09dd78ecc8f25d32ecfa commit 219b45d023ed0902b05c5902a4f31c2c38bcf68c commit 5bdacb0907c1f531995b6ba47b832ac3a0182ae9 commit 4e996697a443a214887ef81b008c344d183b5659 commit a857add73e61277fb8f688234c9d383130313ea7 commit 89121e5d0857bbf41f1987c3c6019f4f318aec4c commit 2eb20b96d7696dc354e1b38c511418b56291013c commit 549dd786b61cd3db903f5d94d07fc5a89ccdbeb9 commit a86ee96ce819800a399e0260c5ffad793c9c6ac3 commit fc33077765e9104f84b49d9b9e0702a41d5269d6 commit 17d6abcbf6249b4ef22f41b255de2be2691ec32e commit 885c31382509d13fd70f6a9c42637eb72056a6ce commit d79fdaef2b55deea0df3fc6af4d4ac60e81a527c commit 08b5a4798713f4331317272752b27b1c4f6a246d commit 7d113cce5fe92c8bf0a2e2f19f71762a845e9d9e commit cae39e60abb10ba1e8cc095b7d5567edc9005f03 commit 6d470f9b8cd3e88d097b332bab3e7231f2fb3dad commit d27a14060f8501e556a65b346b2644be0d0a2de8 commit 969135862e731620b9e03bb0c21179ff1cccfd0e commit 5d45c01dea6f9e0f2dbed3ffee02ac2e80579ad4 commit 0dc4fb69eb14320ea0fcd9657b7748eec201ccaa commit f7303ab29d08a551975aecb4bc6851ac3445abf4 commit b7f317e62968979343a4677ffd5bd91dd3edc204 commit 769b081c18b916e362a2b623d7c28ce761c3165c commit 9aec6f76a28cd669aa98403883edda3a7981fef0 commit 5c61f59824b5e46516ea5d0543ad7a8871567416 commit b9396b49879b6e3d9069586e39432b2203de0a7a commit acc4e41ec41fa28ae9fbdb1a2750525a7a242743 commit 39fa14e5bdd037f50df0af408da7251e400b41fd commit 21ff3a16e92e2fa4f906a61d148aca1423c58298 commit 1da91ea87aefe2c25b68c9f96947a9271ba6325d commit db639278e6217173c21bf8bd52eff2e9a0d6919e commit b8cdc47adf059f60a39555eeba1db92c503a5061 commit 50680d1698f4d4c9651822398805cb943b7c04aa commit ec0796e6446352e9e4ecb1804bf470d1ca47c5f9 commit d408d6f8cbbb5ad92b383f33d091f027f5740aea commit 844efaef48e846b5310b0e7af5e7578762eb7e8d commit 34e087e8920e635c62e2ed6a758b0cd27f836d13 commit 237193e21b29d4aa0617ffeea3d6f49e72999708 commit c3c5b79b6ed1d7ae7356b51f7c17bd88197bf405 commit 7a26f18119d1daf910cca58f875582d50d0e4974 commit db1aeaf2a1374fb05d82a1f8fef5cbb059ce6a01 commit a0634663d09abcda84eae37e9817490628a034c9 commit 17674d6603eab37a4f7b1cf5ba345d5a1e275fb7 commit 8df39400d0db29f84a72c891d1f526e3b61a332a commit 6c22aadbf6fd0240181eb4897308153c2aabec2a commit b5757a5be2fac24f5c138e8ddb3b2c7be8ba1cb3 commit 446d0f4849b101bfc35c0d00835c3e3a4804616d commit b7ecc44a1b0427d8c71fe2e2d46c4a8dd6e6f64d commit c6c2e8b6a427d4fecc7c36cffccb908185afcab2 commit 0cee47cde41e22712c034ae961076067d4ac13a0 commit 7b3a4e1d559e892ea563f46f45c504a60c82d70f commit 3834ce360067b4ee98fdef14571923500a0499a4 commit 9a12b1c7a0595736d398b24712dc1ce79072662e commit 8641b817392bfb12fb1e71ebb68c31783297bfbd commit 17d30ed33c8a9e7b866dd7c2ceb4a6858cfcaa81 commit 020620424b27bababf7f53d00692ab919c357a3f commit c6dbab46324b1742b50dc2fb5c1fee2c28129439 commit c30fb344a2f7fb5d553e98577185d9f8147598e2 commit 45a2a4514320f9c835eccb661601357cb1fefd82 commit 947c0808693e267185c5471f87f83146e4300561 commit a46a7bef7d41ee7787c246f47a656fbafe02f122 commit 3df34334147e73b05480db6cf8353a405597d04a commit c7d4355648ffa02a1551495b05c71ea6c884d29c commit 2f93ec07ab54cae66155d0a09182843f358da178 commit 434b3554d6435dc4e19083a2214dee40a88e09e1 commit 311f2b587461f86e3c30e7ac28df38be4a862ac7 commit 0fe20258b4989b9112b5e9470df33a0939403fd4 commit 596a4ec72876f1061f0ef4be47076b093f03b4f9 commit 782cef7fc367542ccc851d93edbed166defdfc27 commit c20da89edb69f05ab78fe804899d50be2596b0f0 commit 95d9e0803e51d5a24276b7643b244c7477daf463 commit 4af0d8ebf74ccbb60d33fdd410891283dd6cb109 commit 680458d41aa46a009909482f58358205b5c4b438 commit 8c4f9e466169b3e411947347fef09382c14e5733 commit ce4f9f79ff8cfc78a064c533f0aab563a5613d81 commit 1b686053c06ffb9f4524b288110cf2a831ff7a25 commit 66e2d2d9a59f896def82a1c8684368be45cf4c06 commit 07f4f9c00ec545dfa6251a44a09d2c48a76e7ee5 commit 98df5a7732e3b78bf8824d2938a8865a45cfc113 commit bd15f805cdc503ac229a14f5fe21db12e6e7f84a commit 9b7e697839c2745c10f63fe5fd54c9e328fa2e3b commit 70f83e7706e57200edb8ffa36883b2f43d214142 commit a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 commit 3bb41f2e9134906e0814766c07dfbdd9de0bfaf5 commit 027347d17a16562f3be272833243b835c21aa2a5 commit cd9e9e0852d501f169aa3bb34e4b413d2eb48c37 commit cc2991203c9d4e23051dbe5bcb1fc700fea26992 commit 67ea53a4bd9d03a85eecd99875a2a794c886f788 commit 7a1eb66809390d06b744aa13123b925b64b54c4c commit 24f483ba49c9acc1139a0b4cbfd1b122fbe1ed7f commit 5b7813bc6218100d7bbc6d3a1b582bfd64034bf4 commit d6ed53712f583423db61fbb802606759e023bf7b commit 12dbb3ed212fc7655fce421542a5add637f8af7a commit 5ac2557d75f94777076885b5119d3b6755e6761d commit 17b6527dcfb3249401e037734ed3fd0f4752572f commit be280fddfd645ea0ce4c7a26692c3d1115447e32 commit 1fd2cf090096af8a25bf85564341cfc21cec659d commit 8f9b23abbae5ffcd64856facd26a86b67195bc2f commit 267c5876c977d5f2d5a89f377d74adf42b5c38a5 commit bbec7cea6fa4a0463d4766ed0e6bb347773d3949 commit ef6c2cb349c708676b7820c36a5beb75868ad544 commit 61cffacb3a1c590b15c0e9ff987de02d293e0dd8 commit 42b3a6f12aa56dcf789464d29fdf11f33bf0e793 commit aa02486fb18cecbaca0c4fd393d1a03f1d4c3f9a commit 35c7152202e111968b10140383f49da9159d2704 commit f83cec3b3a7c968bbceb810b7acd1baf3fe8cd87 commit e69c2dd7534f3fcabf7bb801db2a7ac71e7e5da6 commit 9c081c11c62112f1c30ff2426f755279a43fa1a1 commit a85c3db6b3b088f63b5b8c4fd4352f56f0e4ce3d commit 9e823f307074c0f82b5f6044943b0086e3079bed commit b2dee0837a4be63e8d3e00550a9f057644f962c4 commit aa539da8aff07ab08def6490e8c9b441439e70ba commit ea5d6db17a8e3635ad91e8c53faa1fdc9570fbbb commit 98cae695a8ae0e4291b1fa7feef9b54fabefe885 commit f7fb9d677faf0460131bc2af15afd766d48a1f47 commit a7f670d5d8e77b092404ca8a35bb0f8f89ed3117 commit 6a28a072d90e4543b5e07a904e3a6afad0117e26 commit 1091796fb1d9d6888656f2416ad5c99cfc62a4bf commit b232c4a63a176ed837e3c6bb4a3ac79a1ca5ef1d commit 98aded657f506cd5d6d459d68ab4996d9dc0938c commit 1d734a3e5d6bb266f52eaf2b1400c5d3f1875a54 commit 4b498d19610c6acd36a8ddf622afdefe4ab093fe commit 5ddb0a8aa8e4754a8fb77e284e0d6f46c2350f88 commit b080a60731ad909eae4463684acc23d322e93579 commit 52e371914ed37f531a8d8c3b4cf1a1af2753eb6d commit a884dde8d9b6a4a817cc39663db824e5602a8001 commit 1eda95cba9df35f1fb0fb4b89511beb6603c614e commit fde7679a2b374c8c0932f5cc48438a312f3f442c commit 29323882aa48fc9f273db5820babf32c979359a9 commit dfa5543193f303a7270ec7c725e656970faf7d57 commit 202b85da0a2fb6f034f0290af841e0f29352af9f commit ab0d6ef864c5fa820e894ee1a07f861e63851664 commit f0ffa657e9f3913c7921cbd4d876343401f15f52 commit 4551d60299b5ddc2655b6b365a4b92634e14e04f commit a98a1a3c448820dfb3974839e1ccedf80b6fcacd commit dd925902634def895690426bf10e0a8b3e56f56d commit c7085d08c7e53d9aef0cdd4b20798356f6f5d469 commit 23ab1cb6591dba7c97b65eb407cd71147bd878b8 commit b0ee81dac3205db1e01019629c83595e9433d96b commit 8d3a2d3d766a823c7510cdc17e6ff7c042c63b61 commit 3396900aa273903639a1792afa4d23dc09bec291 commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a commit ddda6542c85304eff31fe433cc0fc2c0d03c8f3d commit b3a901841ed1edd65b2f4cb9dd890ea1e2fc7551 commit f366d8804fc58f87b682bb02e8bf970b08e5df7d commit 21d6376865219277ca91bf95f9e54494c1ea7ae1 commit 7f75eb222d5c8c4b166ff99a38c85a3de97e0647 commit 649ae0e0d55f6d432ea73298929560ecdfaabd05 commit 34aa0a87f83b5322bd8541cd9534179c90c580d6 commit cb2f92569a2b7809a0569b380b9a6f2afa368cb2 commit 9aec90f9e545fba64ca47c18c37c588fa0d71b22 commit 1b9e8095fa3ac29e3a00ba1326976b479fd809e0 commit c6cbfc18138a22cfbffb208be92b18a531233528 commit d0fc54a201d673013b031ebce32e5d8a7e3bfb70 commit 6276706f33cc38ec59ebf03b680240ff74740c8a commit 7d085bb17e3cab501218a7a4604aff6c4a8b9585 commit fbc64aafc99baabe4d4e4d5a58d6113aad7909c7 commit f76506358078809461866086c5e224d949002016 commit 2e5d47fe7839298fa096970e184aac9bf82c3bd3 commit 5a891a0e69f134f53cc91b409f38e5ea1cafaf0a commit db3461a7743817ad7c73553902231b096616813a commit ed7171ff9fabc49ae6ed42fbd082a576473836fc commit 437ad4534a15ccf538ddb440cb29d3f445251605 commit 8a0f58ec4728ec04c654645bf8ed4070821ebbf3 commit fc7c7498db3da52efe874029a9c2ccc0ad2646ee commit f9e491c8633277d5398f384cf1fd1a477e04363f commit 37ee1456239cc5680f672f37417e52db2349965b commit 406792dc2a5c82e2f312e10c3c2c887de6ef80a4 commit 57a372f67688dc7aee23a2a00bcaf6188f592934 commit 15789fa0f0e29cf802f30d0e308da9c6b18c116a commit fb0a5834a338329bc665c7ce2b89f3e376557565 commit 5fb4d2a77113d3ebaa5c9dcdbef8b7bdfdeeffb2 commit b5e1a3874fe3cde73a4b02870bf3e8fa43777c5c commit fdbd69486b468e4963b4ef9f76901d3788252dd5 commit 5d0112f77793c0351faee6c723a6fb9191c12be6 commit 6f38589e170f7649bb4b5efbff6b681c31433440 commit 4c953e53cc34f8601b7b7c6286c65322452d35fe commit 186020c16650d6f7a05774ef318ae9056aae4f21 commit 2e9bbdd7b7cb5f364a917e7c6eff2a2c36f11895 commit 4dc4422f11b041a9cb7a86f2f9bc310e48620fa2 commit 31ef969301e58daaaed1728690e16192b77b9028 commit c4f503551fd65e50e657219c9bfc2987c51805ca commit 27ef61f9617478c432bc477d4eed8963deb89f24 commit a48f31fb78265d992c75d45bea215998367d4956 commit d082e5cde489caf7b29e966a9dbbc3fb43fb9164 commit 3ec2ad7c34c412bd9264cd1ff235d0812be90e82 commit 0f2c243dbfa008cec2dad03ea074156b6b176a03 commit 89ec85d16eb8110d88c273d1d34f1fe5a70ba8cc commit 3fbaf475a5b8361ebee7da18964db809e37518b7 commit 20588d5afce3992ff4fc9b61085e3e1affbac620 commit 27a74c125d029d0606b81ef865bb68dd975ca2f7 commit ab10f7748789fa9247949b530d8ee7d56eafe9a3 commit 6d88c0f94ac07ffc9f08e459cca036f4af08617d commit f685b38455b0c990a0f018a17b238d8ffb5acccc commit 4af8071b654dbd9b8bd003ab8e49eb16b4cb9fcd commit d479158f6502a3698b91829fa03bd3f2ea38efe7 commit b5be054c585110b2c5c1b180136800e8c41c7bb4 commit 76acba7b7f12517990f326fabfecb6f55e334233 commit 478efcb90b074f0fdd18e62b30ce09140bd69022 commit 5b7a59de4845460a313d93d4839258bfb982357c commit d4f1fde734eb73767015272dd2e8af1440b30a9b commit 32aada4d0a35ee613ffed23090bc23e1b40da419 commit f3c958ab857927e1ef2cc6806fcb0eb3f36c923a commit 8962915044364bb7c36b3018f74371a798aee46d commit 9d87dac3f9adbe30d545c577aab483dfce71143d commit 46553db49cf7b7dce95879ee0725f7d95de3c184 commit dc57edda816df4fb43bfc2809675e91d15994195 commit 3a50a51d04d2ca5066949073274e70191104f8e5 commit 439c3b124e9ee704766040d5182ccdaeb4d45499 commit 837cc7f1bf2bbebb05781efb6bc1b10d5c2e9308 commit ef9f3b5fd9d2594766c60b1e12b0e72e4918512c commit 2239aaa204f1c5002018a02903df7e45a0e0e503 commit b910cacb4e70066238feafaf3f2430ef2c8c3b12 commit 0eea81ee2e12900bd5276558434b675b52ab2d5d commit bc62abe1b92db4e027a92a6799f2193bb93970ea commit 1a2103d68547407a098c237d7cade79b4ad2b88f commit 2dc3851ef7d9c5439ea8e9623fc36878f3b40649 commit f49280ffd254e718ee01ef515fe91854fdf005cf commit aec773a1fb0253494b85b073f46a0ba1d798b726 commit ee7a846ea27bcbef5182d15923339a7bf182ec65 commit 96595204195d7e13736a84295e217316610d4cdb commit 19cff16559a4f2d763faf4f8392bf86d3a21b93c commit 0523374e303051c94457df9170f12a752d8b09cf commit 852856e3b6f679c694dd5ec41e5a3c11aa46640b commit f784750c670f7c5ac572590ddad77a89b4c997bf commit 3dc6da76ae55d667fca2c9f9497e8ea1a27497b1 commit 7970cb36966c9b9183255dc097ae0446300eebcf commit 53fdfa19e6a9220a14c0bb21273880774ea70dbd commit 7f0d7bee2079fc899c8280e177b0c0feb8b9debe commit 0d92cd8935a3fffbbfee0fd59cdc89ac5167b14a commit 2750ff97ee385b85195c5579ee911a551fbb0dd9 commit 770bd1d341130ff38feda169177159cd78389cfc commit d16ef1a18e39a5086a419d8b3c71adb30273881a commit 226d92e49a7e7a7f5a3a37a34df7c319b72009fc commit 4099cfda9dd856222d7cab6970a65896375616d5 commit 6b77dab5da721f2fa9d3c3611e1cbaead8030706 commit 7116c35aacedc38be6d15bd21b2fc936eed0008b commit 492be2a070f023c66aaef6ebd664567fda28c2a6 commit cb8f81c1753187995b7a43e79c12959f14eb32d3 commit fe828fbd87786238b30f44cafd698d975d956c97 commit 737ad3776343f6fcffee9d0d849dcd6f6b25f05a commit 11c742bb5a26d4adc873f6e6e2b69a59e1eae285 commit 8a879141dcd15d2db876ce3adf88b9b01650b7fa commit 6841a26e2c6715dc52a1cdd888e958dd2a92a5bc commit decbfaf06db05fa1f9b33149ebb3c145b44e878f commit 23683061805be368c8d1c7e7ff52abc470cac275 commit b9d228a5b2ebcb1f1f63170f5b20bc2f9d276168 commit 00b8a47d8ebe0419e649dc81b96033f6db6a4746 commit a055c91ac6ea493c2508401537e8732dd2a7bbf8 commit 6a60273a0e8274820210abcfe7ec0d5f1f38f458 commit f7c4a15225faeffe1e9f9a752097e7d85603ffef commit 91a759d402b5c17263f82097c647e784f217e2d4 commit 97d1f449c359207b2fb5bc62eaefb7e21ad619ae commit 64ddf5123eff2edf47202e08744c3c14a9d28f59 commit e139c0eb22ce5b2ab6a2056c1ff495f3a38322d7 commit b61c4bc674c6032827f2682a0c72ff577c36143f commit 1453323eac4f13817a07f40e78e76dfc635aab34 commit 7586fc52b14e0b8edd0d1f8a434e0de2078b7b2b commit 3338e4f90c143cf32f77d64f464cb7f2c2d24700 commit df2dbc925fad3274b952b865f85d26d1e056c1cc commit 60db6f540af9f93144d5039140aa2ed17171d168 commit 051c86afc342aed1f84d66ff5d09dc9e1c1685a1 commit 04b5b362bc2a36f1dfe5cad52c83b1ea9d25b87c commit dba1a6cfc311833e10df978f07147ea93b7045fa commit e189be9b2e3820c88164d95090f1fd6343cd77fc commit d361ad5d2fc0e4d59d5d538092c9b37889756642 commit 22ff907d4f0457b2800f4c6d4f40d4d4d31f7de1 commit c2e70d307f4491ff970208a41cce84c95771f340 commit d4c38154951b2bff6bfa4d5eb56df0bd08703cf9 commit 335288315af18c0def7f47a37fe7eaa782c98f6d commit b1f49ff9cbe14264c7eb33462fb700c49c7d91a8 commit 234eebe16138f94de3046f60c52763dc17fe5fed commit afefd6f245024684fff75100052065d6a9e8f75f commit b710dbe55dee946d82bc4815c40373cf8a391581 commit f846250b8a20e6c1225c64ce87a90d4f29cbf351 commit 87758a0ef12cfebb9fab8ef1d0e234dd7b3f4579 commit ccf8ef6b7506cc43e7fd504a85465c1c0786a107 commit 9a16042f02cd08bbd0a5a2d8e9c95347717165a3 commit eb067d65c33eecd4b81771384183ad42eec259bf commit 18ac82c26da45d033df7eb993139da83dd53ee68 commit 9de60462cdba60f575f97ca2655533b35273c715 commit 8783a18409b48455b3a63f0cd930c7c88beee93d commit 7c9cb6d1bf122fdac6a7d51f7dd8cc2d8c94b452 commit 4e9e50b6aeda3e3ce727453c5455cf08c68dac8b commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1 commit f327189389785b26e49904a7d3ba0c96506a4586 commit ec9e2e7acc6dabb8f00c2c60785931310caaa883 commit 2344413205521775d3b1d418e5659e3ae3bc263f commit 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d commit d07722e1fc749fbd78992650b6d00c9a2619be70 commit e389eefe34cebc6219dbe76a923b342b2f31e3ba commit bf2bc61638033d118c9ef4ab1204295ba6694401 commit 186fb12e7a7b038c2710ceb2fb74068f1b5d55a4 commit 88c511dea151b931ba4873119b1b3555aac0ce53 commit a9556637a23311dea96f27fa3c3e5bfba0b38ae4 commit f15e5587448989a55cf8b4feaad0df72ca3aa6a0 commit a8efd8ce280996fe29f2564f705e96e18da3fa62 commit 609d8b1c422cd8d1f93bf526fb236f2e07687e7c commit 255fc1703e42321b5afdedc8259ad03c7cc533ec commit 32a42c93b74c8ca6d0915ea3eba21bceff53042f commit 77cc3f6c58b1b28cee73904946c46a1415187d04 commit 4cce34b3835b6f7dc52ee2da95c96b6364bb72e5 commit 5151fa35ae5979821d091b80096b4c790b187bac commit fca0abb23447c37a6bdbc76798c24623a9b69a11 commit 40520283e0fd11237ed9dfc0991503b3403d5fa4 commit 321d6b4b9cbe3dd0bc99937d5e5b4d730b5b5798 commit f6d9f39f8d9167627bc0f9e3e12ee0100c1c1919 commit 80431c017f745a818ea45ae6a8373b737f73b1a8 commit f89001ea41771fe94005920c363dee43e8078bec commit 0e35457eb4b75f2bc9eca58a46d12e200e15e47f commit 770a961d581c577b579d8d38414b2bfc0b4766c2 commit bbad0090b9f4735e35e9881278b7a353f71b43d0 commit 9e7a74a12101bb07ccc22fb180c5e44051c5a407 commit 44a37ba12857c78389cda176c093967406250cfe commit d20c2f8464280550aeabd2766728590cf0ca8a4d commit 2a2391f857cdc5cf16f8df030944cef8d3d2bc30 commit 5e9c0d1c5ea355679f5b2a57b0c1b5932d78719d commit 11df68c265460d4dff5d19a1313f0fff69470f98 commit 453afb1a439994deeacb8d9ecbb48c1f2348ea0a commit fa509a33e34849cce6c17f969991dc87a864fbde commit 7bb98ca6542e19a9da7cc322114bb4867acd9614 commit 85878978fcd2812eaca309ead436bcd38777f6f7 commit c8fc8346bdd097d624771e606aef93644c072ef2 commit 5a48d67ac336436ed4a79c1c9e036a409b502329 commit 4446387572fb7952a387b8e45e8a96b4f08a2a53 commit dfc88eac97e2177844e5dfa877f2ff60c73bf507 commit e0446e122eae43c173d0c99375e1b2cc8da009a7 commit 168448111279e639e3296ee5c19e0cd96756422e commit 69f0925c67c21c1e3ccda152d2b6ce21c363e563 commit 244fe1666364865154930f34d8df5489df1922b6 commit df99acc7ba1be9f111debdb75e00539fed8ad21a commit 6dbd43dcedf3b58a18eb3518e5c19e38a97aa68a commit 6062ea9398d3ec09c521774f9d81f604d1a85fbd commit 0567f18e0757a260031e59487fe01f402c16c0de commit 8b5ccc9743ab026b12075eb5e3883cc9e42bc683 commit 1144e0dff5e68907cb8d3e2d64d1c00e2a96d1b2 commit 136367290ea5d7b5d05696189e9fd6162b9d9742 commit 15ca09499bc669b600dcdaf01fc0bf8c55e15b35 commit 34e804220f693fe6bb1c4e50f27dd855e9313f0c commit 919bb54e989c1edef87e9797be125c94c450fc65 commit dd6ded6e87a97a32e06c10b7f6639eebb779257d commit 58cfea648ff3b3bd283c03f094f24d379fe6fa82 commit aa451ae76fda24f919174a17df31c290f91a953c commit 852791985af63bcfd66d7f6ec160cc5f9fcb020a commit ab0b0eb5c85c5961913bdb9b8011cc8f5c14978a commit 065ca63e161a1ed7e619ef7dea0c7c6435ee2f8d commit 1c8f80c2aadf76daff01ab133fb11136e7248746 commit 6133cf70725049344a679f85df27d146a2d995ea commit 4b570ac2eb54f66ff64f2864be6303b8d67cc7f9 commit db6341a9168d2a24ded526277eeab29724d76e9d commit e28604d8337eac97fa956d6682b6312741ce85a1 commit 01bfabc2d1d8aaffe5268f8df0843a6d916dcbaa commit 75f0efbc4b3b088cca20864d055b3854a51b5af0 commit 8f4eca6ac52a72181b4f054d4ef6289a5d8cfa5d commit b05d6476ae2dde8eb447f907ab689083499edeaa commit 40318a2406bd426c6f4591269669c04e8eda571d commit 988bfa0bc67d7220ff8d9e2ba3a425727aa98af3 commit 0e405395e0b162075001b9c027443dd10b723a03 commit 570867ef90550b01f0ca0f919dba308c3f2fb605 commit 2845f512232de9e436b9e3b5529e906e62414013 commit 4416377ae1fdc41a90b665943152ccd7ff61d3c5 commit 73dd0ad9e5dad53766ea3e631303430116f834b3 commit 875ff9a7ee8824200885384effa7743892a34ed6 commit 010cc730ace807c6d267481b5fb6ff99acc35c46 commit 6ef29715ac06fad7b3e43086cb4df97952c3a4de commit 3376f922bfe070eff762164b3fc66981e3079417 commit cb5164ac43d0fc37ac6b45cabbc4d244068289ef commit 537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b commit e45b6716de4bf06b628a9f3559f7fc8dd5e94d58 commit 58a261bfc96763a851cb48b203ed57da37e157b8 commit 25ebe10e3f4c897a2d348a9d4b674ee9ea28225c commit 5b993d00d7f0c970a5e5d34c1031069fb13b6986 commit b5de6a5ced074910b8fe57d3b0ab7f8843f85a3a commit a323782567812ee925e9b7926445532c7afe331b commit 6eb2aad402cc94ab4dd3780d8fd94c5c9bb7ed4a commit 501d94389310bb282915e730386d1150b13ae321 commit a64e7e5b05e014dad9ae5858c9644d61400ec6ef commit 122824165471ea492d8b07d15384345940aababb commit 66a0f6b9f5fc205272035b6ffa4830be51e3f787 commit 6628851159c77cf5666160e0272d46acc0772a6c commit 3126d5fff54368288e7fe1c0fd4ecb36b868e5aa commit a4dbe45c4c14edc316ae94b9af86a28f8c5d8123 commit ff9c674d1127e768050fe418470e74586985c87b commit e24b0ef20a20cd26a770c66bf87d911838ea00d4 commit 65112db0c21022cb1caed5a03c6392eaaf984c14 commit 4836c6cc01a16f1ac2b436550299474ad7183c46 commit 6729c73103bd7a0e60b0c980b51b5434010b4502 commit 1b5dfd1881dbe303536d4167500b94549ff2f6a7 commit b330f148017251810fc1f0c297f51b3039b796e0 commit 594cf78dc36f31c0c7e0de4567e644f406d46bae commit 51394119f640423858a2f04076d6f1c3e83fa715 commit 67733d7a71503fd3e32eeada371f8aa2516c5c95 commit cf4d37b8157ca085c17fdc1faad737465ff311b9 commit 22bc22ccf95bfa6eb6288ba4bc33d7fc0078381e commit 5fbca8b48b3050ae7fb611a8b09af60012ed6de1 commit 45c4d994b82b08f0ce5eb50f8da29379c92a391e commit 071d583e01c88272f6ff216d4f867f8f35e94d7d commit 037f93434ce9aea3dc19ba2d97e888a12e538f7b commit 54f90b03335916e21c417a31d0926841f7d97c56 commit 9c57bc08652a7c8e0e355c52c023fddc090fe9bb commit 002353a537a29b9be5bde3c1d9964628f0d20d45 commit 11b7309dbe9fa98d9b8d18cd51db4f385c37ae30 commit 19f01d4bbe9daf71901b200ab5c52591946b022a commit 8a04e342684a75ad1455fc3f23fab8e67c1aa9fc commit f9ae00b1cfb37ccf57017bf9cd82712ee0a5316b commit 3f53d7e442197b7e7d56b470b02dfd37a8bc5c46 commit 4461e9e5c374f8c11fee8e4a0e3290b072cfd538 commit e55ef65510a401862b902dc979441ea10ae25c61 commit 01cc7b2e8a59fcae0c4493720561e5b33a195fe7 commit 014125c64d09e58e90dde49fbb57d802a13e2559 commit 04cf420bbc32a599aa2481725f708435ea19bf3d commit bbb05f8a9cd87f5046d05a0c596fddfb714ee457 commit b932d5ad9257f262a0bfd1bd7146120b0adc11a7 commit b86a6a57b8ad1699ba8b1c270a79678383baf632 commit a08d75927f99e57c793f3a5d11260c22893fc0e9 commit 3d054c40766024d9d8fb051d017ceacf2b795f1c commit 5d666496c24129edeb2bcb500498b87cc64e7f07 commit f0b7dcf25834afd17df316367dfe5d4c890c713c commit 949237a34dba3f0218857f5afa0dde2076dd8c82 commit 6dcc304f85898b099b35c63748c5e11ba56d0c8a commit 87d23164d89c3898a0acb4ec0b431e787c27a91e commit 6692982582a54e7ecc80d7b0dae5db6cd47e2567 commit e565b6b0b5eee112db803bd955fb0387ce952d54 commit 4437936c6b696b98f3fe1d8679a2788c41b4df77 commit 9793a4a6e5eb8764c7410c361984ed01722bab9f commit 6efc0ab3b05de0d7bab8ec0597214e4788251071 commit b4148dc2fa062cdb94b5165d39827bcb1a3daa28 commit 1b0ce903fe747d72e9eab86a06c79fb2c7ba2bab commit 469a486541b6eb0d695a5558e68851fef35c16f7 commit 38d6f7e27d318cf41c2376980a105d02ac6e8b16 commit 3715112c1b35036039e8c4f75868a0b56a71a51d commit ff95eabe57368d641589441e8f638b4d59f79a82 commit e45a3933bb3ebd9a2ac95b6b60da029ee3a9f4e7 commit c50fe289ed7207f71df3b5f1720512a9620e84fb commit 97c6efb3649724e6163774f0e7405c5ca8b1097a commit c66f4711f79c937832b6c0e0b1805061667d99ea commit 727eb1e3f014e66dcdec53afc6f5bfe0d8c0871d commit 7546a8201ba288530ed1bbf2a8bdcce5e034a234 commit 789e51597d33ec0053b029127d797d86c0d857eb commit 379cad69bdfe522e840ed5f5c01ac8769006d53e commit aec8485f226c36eb4eea1d489772cd6f2c40144d commit bad928d2cae5d4d5ec1474ae7428a797fb34c111 commit c72084163cd22ebf59d936669ec25b1fc2b7494c commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335 commit aeb4ae66cb50faddf60be9297d0d5d392aacdd3e commit a7f657097e96d8fa745c74bb1a239ebd5a8c971c commit 87d8ecf015444c51ea9d9154f633f98b7748a724 commit 33929707b808ba7839c40c15d3e68cbc51070b31 commit 4548f10bf4c67b569b7c9fbc6746340a558faab9 commit b71ccff68ef1a5bd1c02d0fca01ddb3d9088329a commit 175d648be98bae22eb22444377dd9a0c497c9d46 commit e0cb0c785250d0565c19ba17fc95bd7ab97670ba commit 076403a69837c1f8454ceced3ed6f0465835f4d1 commit bfbdf72d6c145e008805f0745ff79f9b8e301e0e commit 33eca84db6e31091cef63584158ab64704f78462 commit 84addde447fd9d713e101437db0d4924855eff4f commit 81a1c37c8b52eff636e77a794d0f0620c3a40af0 commit 21bb04152a18ac2314ef4186b6dcd46f1b847354 commit 70a65a5de23337c0c0251c482520224ac80bdeb5 commit eb4556f25fb4cb3a005a93dcc6dcc4b0c024f5f7 commit a69dcaf9310ab09ed97711e0fee08e59218ed8a6 commit 8d5ac8efb6d94efda53f604fd9c072b4754a3d85 commit 2039809783d630c1022bb3debe648abced7861c4 commit 06358ccecd75bfcd988f347f79592e23159aaaa2 commit 51e039542b87cb649d50ea3b5cf90847be32a30b commit 44378f6ef2efee3ccfa87de5860662f2356bdde8 commit 07226d09a200b92797afabd3a5131a0b504344c1 commit b5d4657e192ba7a3f21fc397cf5d169982b4ec0c commit b2fcb48214980adf6687dda84fa33f01e9a47e28 commit a74549dd55d21612171334fb70e45241d0ce0487 commit 2160f6f6e3cf6893a83357c3b82ff8589bdc0f08 commit 7293859c51e1d7f923073aa46e2072333b3e143d commit f7c2ea682d8ba17bfd37abd1e734348e0cf46c99 commit 5ee2d63ca1201ed23c6595cb2fc927222215bce3 commit 7745a1dee0a687044888179e6e7fcd6d704992a9 commit a9b67c036c7f5d187fb88eb74fe04dff1098700f commit 7c1a2d8aba6cadde0cc542b2d805edc0be667e79 commit 6122f5c72e38a88eda13c7168e2ebbd3bd80b681 commit c67db6a6a6be4bb1db1b0fd5b24040d68e461cb1 commit af76ca8e180f38a7d874c18cf810707762766627 commit 30e8f4c2bd532c44af0e0fad9c04e7d2970b91a6 commit 28d43d0895896f84c038d906d244e0a95eb243ec commit 1e487c9173ca12ae372f71a5f5c0eb57ce0ab108 commit 1125f95cd2455b51ad1c16d7f96ae39117083d20 commit 96316211eb5c4b58f34099e9e6f71fdfad7af01a commit 52491d97aadcde543986d596ed55f70bf2142851 commit 6c0a7c3c693ac84f8b50269a9088af8f37446863 commit 02a416afbe127b1c9ce85ffa340c0a32dbc53184 commit 70c33a2710cd08a4be974a1c7f9cdb5601a8806f commit 4f7d8da5e349c1126cdfcdd2ceede00382ad2ceb commit 8bdb468dd7a5d17f8556afdd4c8d046939ff965f commit 6d0ebb3904853d18eeec7af5e8b4ca351b6f9025 commit 641bb4394f405cba498b100b44541ffc0aed5be1 commit 16ba2b28df3a83443fc6b4e5491189d2e5caca64 commit 65fe9617a1256f0a36696d48f7c63a8d3ec290bc commit d69300abc2dec930fd280a013984150ae7c6a386 commit 2bd87f0fc24ae29ead9808d341497f465b339c0a commit c5f728de696caa35481fd84202dfbc9fecc18e0b commit cad08fa7760ace5e01b24c6f9e1f918fe72324bf commit 3034cc8107b8d0c7d1b56584394e215dab57f8a3 commit 20f61c1ead989e5d16f35bd0a546c6233b703b69 commit d7eafed3223af19add14b67a390ec2b983d890e0 commit 2bb3fc536d692d43cd55396ecff73c7691eeae85 commit ddc94d0b17e8ea8179ecbbefacac3fba0fb77265 commit bf758226c7e6927f1c2c34fd6eb2cb580b77f543 commit 590b9d576caec6b4c46bba49ed36223a399c3fc5 commit ccbfd2df3018e2694f750abe5e93b647a4eef5b1 commit 83e5af5997554115e198c2e9e97564702eac04a6 commit 6a2161a155f92985b21e38a9e8b9217f620d606f commit 14ee9fa87d8c96b23d77397b684fb431c5bc2677 commit 3eac4684ecb5ea696bd283bd7f35e4829973f4f8 commit b1aa0491fad27f030c94ed42c873c3f46f5e7364 commit 8906064715c16571e691f67c2746ed1bf1bda6b9 commit 390fa93e6efef330baa2785edc2a484f7ce0b292 commit ad17b124c3a08241da36eb94a6f076446432743b commit 6f4835f9df2df7eee0af74c850d0a06166c199eb commit c66db9e9a025006d729c87143c3f43b5873b4a1f commit 988fe2862635c1b1b40e41c85c24db44ab337c13 commit 0ba3cb8e7cf08223a9246ded3c1bee25a74d1f7f commit b3e9bfd86658b562a33b1ee8563d59a593327aaf commit c24538c4aa352b68bd5c429b7fd3ccf4d4407143 commit 8a060e9c17d0fd7a182e335a52dcb5fe327e3d86 commit 6e8410944767381524544390ce030c86f07399da commit efaf15752d113e81a5e9f25f57dc203f7c3007ab commit fc5da5c00c0a4880220f6f539293e49c766fb93d commit 29d3d6af43135de7bec677f334292ca8dab53d67 commit 9888773753333ee7bed1697abd6fd9c84239cc4a commit f2ea269bd2a55c4a28a9b825424b059a20259793 commit 072b4414784524b6debda1b3b2ffbf10d66095e9 commit 7d8e9e65f23040b2f9e9670bc971d3ec8fa69d47 commit a10c93931b61b22ff6601f74192151d548b0b14b commit 1741281a157fcfacf46dbb6ce39c13bf2699d371 commit 2f3806f781421ce6dfa60471eb2116627c0eb893 commit 097af47d3cfb99ee02afbdd7e0d9596eb012c65a commit d1f214432110748603dd310fbe6099df875e6f04 commit 2480599890296b386839bc53367c10f19d97716d commit 8fe4fde381a103114903f823c6d18457b4b891e4 commit 8b2429a13feaee01d62bc248417343586f6fa489 commit 01b4ae38e5dc6798c6cd477be9c363c5ae45fa7f commit 178ad0e280c088f5abfa61793cb992fa120d1830 commit 4d5ddfa4b1b2bf1e936b8d38735910480f9545ed commit 01163079e136e6d6ce4474b964b8a7ec954cac81 commit 1a1995b1dc948d471854360ec0fd3306f54dfbae commit bcee4c3f89879e15ef57f3217ded97f00b1334d3 commit 01d05521f7e2523045d3ff7b857dd68db276d31d commit f8eee864ba5cbe1447a68949883f69228e53b138 commit 21818f39beda2e843199e5d8d9e3f9e43c8080a3 commit 3f2d35c325534c1b7ac5072173f0dc7ca969dec2 commit ead60e9c4e29c8574cae1be4fe3af1d9a978fb0f commit a1498ab229ca16dfc35331dfb309f8e28b84bb5d commit da6ec743397702e0b551bcacfeaa48829d303a29 commit b3b91369908ac63be6f64905448b8ba5cd151875 commit fcba2ed66b39252210f4e739722ebcc5398c2197 commit 9f6b47907e2d01bfa90c3003e42b6dfeefd8d03a commit 059f6fc89968f4f4527f1b706de8017d368ad9dd commit 1138137c2c48f036b87e80cf3905c1acbff6b0de commit b34b43f9cb45ac15b0e48b5570af9e074959dc68 commit a954e0a26146c465934f4944d49cc03324747917 commit f70e43763e6a550f5b50ba4f6a0d6aef5121ecba commit 402bd11a5394636b2bc9712a58b97bc3cbca69df commit 631ef2e6adb0aec8d639dbea17c5ed08c8364df7 commit 8a37cd4dc50e8f29168dd5bc766ba40a1968724a commit 41a46296214fa07cf5140c9ac9254e095bdcb960 commit 7134cc23fe73f4ddeeaaab9284399cebfd826c51 commit 963ed4efe0c6416f5a2f61e107ee3a27f0bb757d commit bc947d9a8c3ebd207e52c0e35cfc88f3e1abe54f commit 8da19441d0a02b53e362df81843bb20db3a8006a commit 34bb7b813ab398106f700b0a6b218509bb0b904c commit 7a199557643e993d4e7357860624b8aa5d8f4340 commit 596a7f1084e49cc65072c458c348861e9b9ceab9 commit eb7205b7cbff5f9ddafedf82b62590aae0a72dc0 commit 4da5a95bf125fd682249f60e296455c6413b4e10 commit 4453808d9eab0461dea338e89372ffc4a3c50acc commit 4c4e9cb58dd75c87300ca63307ef7d4f9656eda0 commit 7b17e8f3a074ff4558527f6c595f49444a2c6fa0 commit 0126c0ae11e8b52ecfde9d1b174ee2f32d6c3a5d commit 2c7795e245d993bcba2f716a8c93a5891ef910c9 commit 6fbbb660b1d423a777d7567b7475a6a01aa7fd91 commit 760e3c8b3288279841aa8a71e6d65c67a3934d01 commit a3cc326a43bdc48fbdf53443e1027a03e309b643 commit 0607a50c004798a96e62c089a4c34c220179dcb5 commit 4481df364d2038eb4a8f5150367b47955940f027 commit 5359d5bc975466e8791d7f870ea4a96f1b0973bf commit f5a972dfe3e993f09cf12bd36389a942ecd23350 commit 2578487ebe6ca34fe9cd950bf68e8158639ddb1b commit 559a285816af5b72284a6ed65eb82a68ee497d60 commit e146a7ab218626827b7c06e189e69cd2abcd1d37 commit e8397d327e7b0d6132197c9d8fd7977f84f3dbd9 commit 01be2b62c0f3c66832472ed3e48e61d631094606 commit 101025e94b537e8b5426c73a985b26fc95c199cb commit 7eafe7a730bad6f0efb62b2d260f1ae3f2d09b95 commit 663b0f1e141dc60ce6c09ae6afc5f213b22d13ca commit 27f9dcb9cc067d40077e116ac062e185ccd7a0d8 commit 7ccde2e6c0a5e50e11b74353b456bfe602efe6aa commit 0df8ef6e1b5dc7a6edc6242a95f47a257ffecff0 commit af04e65f6b66339080fba0d5f44a759647371652 commit bd7c8ff9fef4b21a97f9b30a7364845ee6eaaf23 commit 2ef8d63da81d9e89cbc1eb4867d638f88bf5dc78 commit 2f7eedca6cecbfad52d5b52c1550066d9252c947 commit 578aab4ecc73476393389440724b7a391cc0cea9 commit aa47fe8d3595365a935921a90d00bc33ee374728 commit 25d48f2eb0af1f0e6f09f54a1a1716f48c0722c9 commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24 commit 88dcad2d07c8d82e6a097c8e74239eb67333bcf7 commit b8faa981a7e62848ca4ba1c77282dfdc71d0edf5 commit b2d4da31a1f40b05a61076efd4c79b88439003b7 commit 6c6ca71bc1653d00623702ae031d0f9bde06a6fc commit a4500b82bc85f7a15cff0729315c96015849e9e8 commit 4c3140fea6277e1478ba206e8f45b9cf7a128cb9 commit 32bd3eb5fbab954e68adba8c0b6a43cf03605c93 commit 741d73f587d5cc86db5e65cc107e031263302616 commit b615b9c36cae0468491547206406a909a9a37f26 commit f7e3885aa80559d5e497eec18e6909d594497c13 commit 0289507609dcb7690e45e79fbcc3680d9298ec77 commit 0c8c5bdd7eaf291b6f727e98506fb68acee3a4cc commit 70a6587dca37a3cf12ab323f7fd73266abfc274f commit 83dcf232cc7919725a331359a300fb3929651b6e commit ad92f52312614b0ef6eee07ee64f1e7661072a49 commit 457ca96d04f599d2f95bd61144851f2181ccacc4 commit 2efba0c095419f93f8913f1cbae8bf3fb030db20 commit 70b4ab5489da0fe5b699a8466aa4f73ea304ae65 commit da9a73b7b25eab574cb9c984fcce0b5e240bdd2c commit f1a4dceeb2bd4b4478e4f0c77dac55569d153fb3 commit bf05aeac230e390a5aee4bd3dc978b0c4d7e745f commit d92b90f9a54d9300a6e883258e79f36dab53bfae commit 9498f2e24ee0133d486667c9fa4c27ecdaadc272 commit fcd33d434d31a210bc9f209b5bfd92f3b91a2dda commit ec2231b8dd2dc515912ff7816c420153b4a95e92 commit 8f72c31f45a575d156cfe964099b4cfcc02e03eb commit 2775df6e5e324be9dc375f7db2c8d3042df72bbf commit 26df39de93bb8763bb3088db6c76eb98d4cd7213 commit ae2c6d8b3b88c176dff92028941a4023f1b4cb91 commit 9ea925c806dbb8fee6797f59148daaf7f648832e commit 21d1d72475809734a5149ecfffdc7551503b042b commit 52755373ea6197dac40b9804ce967611b5e989bf commit 0da531c82a0fcac65407d28ecdb2a1e19c833df5 commit c389a0604cfbcdb1f8f53a76560eb31e0700e206 commit 28b0ef922738b74335c20b8ed4bf8e259353a3a3 commit 2f27fce67173bbb05d5a0ee03dae5c021202c912 commit 7ab9ebc580617831355843f19224f1e31bb8e983 commit ee06c09ded3c2f722be4e240ed06287e23596bda commit 99b1f7493bfa757b03d41ee6d7f7d00f81fcba5d commit 69bbe3adf36de47315498c9384f99a1ff9171694 commit 73d10c7788f6d2b7badf9973afbdea7ca433c15d commit ddc73c465628ab3e60f7eb5b4063b644c18b6336 commit 9460f4bd5970f2e46fe190a0cb9814697bd7f21a commit 6c10ba06bb1b48acce6d4d9c1e33beb9954f1788 commit bfc00a7754c40544c7446d3b664049d6e00ee0bd commit 902b4027216aeaabe1562e1db070550c06f3ec89 commit 0110ac11952f06419d267f51a3989e989b17e67a commit c400ec6990fb04a2ec9929b253dafa7e77c7f555 commit c77a46bebe99e70600e636a3a1f285637c479f46 commit 2ed186df27f078eb75c52d09e04aa7b0f9920f57 commit 3c75518cf27aa5a7e22e1f8f33339ded3779079b commit 03b5038c0ad069380fab7e251d2bf3f1540d20f4 commit 797fb1533315571ff9e55e80154f48cd47f3dbe5 commit c1de938fb7e5edc4c71d33f73e9fc5c77feb02a0 commit 7181faaa4703705939580abffaf9cb5d6b50dbb7 commit 151b1813919d4ab932e69ca4032761ee0789b04c commit 2ae6cd583c4c86c2b7e879b07effb8ffb10756bc commit 2778701b165eda674756537054d460fb4b0cf2e2 commit c03fca619fc687338a3b6511fdbed94096abdf79 commit c2ed7002c0614c5eab6c8f62a7a76be5df5805cf commit f588da30a20cf184f150420e4098b694908a4207 commit d18a56b247f4f3f7dbdd3adeeebd05c23f1e3d3e commit 5a3d3e11349c2e298c0b6b4d37c8241f44d37e3d commit f57b77d667dc6bd2b114d08d04b03869539209f6 commit 0765b2afc1118a6ab5fee624e206c782d70db28a commit 09cb922c4e14e6531979bff4e6bb3babcd9cb188 commit 401c90c4d64f2227fc2f4c02d2ad23296bf5ca6f commit 3766a840e093d30e1a2522f650d8a6ac892a8719 commit ae5100805f98641ea4112241e350485c97936bbe commit cf4cebcec619d963fa7496018f03cb0ff00dc257 commit e79563bf5fb17d1a199c7c0f7d5a7a98c077302a commit 07bfa9cdbf3cd2daadfaaba0601f126f45951ffa commit ce83ae29f93772d604b4ea73459fb17822d6a6b0 commit ff599ef6970ee000fa5bc38d02fa5ff5f3fc7575 commit b6499840cafca25175f43ebd601913bf31d06f16 commit f510dd5c210bf8cc22e4be48cbbda3cb754219f5 commit 4bdc5b504af7de1f649004cfdd37445d36db6703 commit b74571a83fd3e50f804f090aae60c864d458187c commit 327e62f47eb57ae5ff63de82b0815557104e439a commit 199888aa25b3a3315360224bda9134a9b58c9306 commit fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317 commit 06c9aeb57fe894e6e442cd66870cd3e863bbf08c commit ef126c06a98bde1a41303970eb0fc0ac33c3cc02 commit 42ac749d5b8bf78b347ac8a52eb15cc397b157a0 commit 54b86443fd4437c051aefd3f462cfff4defd420c commit f2be7b39e43893ab5361115de2b95e7c5c86f190 commit 375b035f689735fd7a87ff31ccac3a42717252bf commit e7d4e1438533abe448813bdc45691f9c230aa307 commit 042658d17a54c9dc8c028986dfbde49f4aa01871 commit 7b6df1d73290961ff0a00fd0022f28dd19e37181 commit d5a29e6a61028887bb8480e7c4af3547d6f3862d commit 87d749a6aab73d8069d0345afaa98297816cb220 commit 6dcba0975d39b30be65dd038fed69e1aa111c73a commit 856265caa94a3c78feaa23ec1acd799fe1989201 commit 84f76408abe989809de19d02e476b044fd985adc commit de848da12f752170c2ebe114804a985314fd5a6a commit 617a814f14b8914271f7a70366d72c6196d17663 commit 7856a565416e0cf091f825b0e25c7a1b7abb650e commit cac075706f298948898b1f63e81709df42afa75d commit f8ffbc365f703d74ecca8ca787318d05bbee2bf7 commit 3a37872316c2e3288e09a1322221c83e5929768d commit 440d52b370b03b366fd26ace36bab20552116145 commit f0fa69b5011a45394554fb8061d74fee4d7cd72c commit 338aae5478befee9e0e66afb78c2ad1e8d69825c commit d7126c0cfc137a580eba92bd82b6d288bd43961d commit e860513f56d8428fcb2bd0282ac8ab691a53fc6c commit 8b0d2f61545545ab5eef923ed6e59fc3be2385e0 commit 4771d2ecb7b9e4c2c73ede2908d7e7c989460981 commit 126be9b2bef9c7068fdd464790d82e6d70f9d8e6 commit e1d27f7a9cea1e0c06699164e3b177862e7b4096 commit 6ae9e1aba97e4cdaa31a0bfdc07497ad0e915c84 commit e45b011d2c4146442a388113657b70f0c7cad09b commit 8048e5ade8224969023902b0b3f64470f9c250a7 commit d52ac79053a2f3eba04c1e7b56334df84d1d289f commit 4286cc2c953983d44d248c9de1c81d3a9643345c commit cbc8764e29c2318229261a679b2aafd0f9072885 commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5 commit 3cb576bc6dfb8940228b8130638860b631dd428a commit a8387ddc0d15a365dd04baaa325a863d3612e020 commit 34ad56a467c320d07db22146cfb99ee01704a5de commit d7d2688bf4ea58734d73e18edcbf4684b1496d30 commit cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 commit e7268dd9bb9953a9eb0df9948abf5195bf474538 commit 994aeacbb3c039b4f3e02e76e6d39407920e76c6 commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8 commit 43102a2012c2e2f8424d7eef52aede8e73cf2fed commit 394b52462020b6cceff1f7f47fdebd03589574f3 commit 2cd86f02c017bf9733e5cd891381b7d40f6f37ad commit 2b55639a4e25ff02ee496368b03456bd28ebdc0b commit fa998a9eac8809da4f219aad49836fcad2a9bf5c commit 282864cc5d3f144af0cdea1868ee2dc2c5110f0d commit 7a1f30afe97294281a2ba05977688385744f9844 commit f9e7ac6e2e9986c2ee63224992cb5c8276e46b2a commit d51160ab00969ee6758ed2dcbc0f81dd476a181c commit c36df0f5f5e5acec5d78f23c4725cc500df28843 commit 05af800704ee7187d9edd461ec90f3679b1c4aba commit ef785ca7f7c80891580cafd36c8dd86375684310 commit 52d4e3fb3d340447dcdac0e14ff21a764f326907 commit 34f50cc6441b7fee4a86495d5ef43da5d254bad9 commit 9286a191abe2ea01b34be577e8a09a412dcbb644 commit 5f60d5f6bbc12e782fac78110b0ee62698f3b576 commit 156cc376a200aa9890c1f71c5e3d2fec874a7d07 commit 475be5144459b502d8aa987637dd4d9f38422786 commit 240ebf1c9d4ce1576f58e10365fdd3bed8aba7dc commit cffa8e83df9fe525afad1e1099097413f9174f57 commit 790533e44bfc7af929842fccd9674c9f424d4627 commit 2d2be279f1ca9e7288282d4214f16eea8a727cdb commit cb58977016d1b25781743e5fbe6a545493785e37 commit d1ef967126e295d36201e79ec64efdba31710353 commit 0f18ac78aa974660a948dafcc45f4dc6e2c5858d commit 7929ffce0f8b9c76cb5c2a67d1966beaed20ab61 commit 3bf90935aafc750c838c8831e96c3ac36cfd48d5 commit 6ef5a04221aaeb858d1a825b2ecb7e200cac80f8 commit 1b30f87e088b499eb74298db256da5c98e8276e2 commit 9e3c85ddea7a473ed57b6cdfef2dfd468356fc91 commit 74231870cf4976f69e83aa24f48edb16619f652f commit 67801fa67b94ebd0e4da7a77ac2d9f321b75fbe0 commit 8135f1c09dd2eecee7cb637f7ec9a29e57300eb8 commit 7257d9c9a3c6cfe26c428e9b7ae21d61f2f55a79 commit a6f3b2527375c786f2eff77d3ee8b805bcfe026d commit 301d194d01f3074efcf3a10eae116fcddb76788a commit 5b272bf7dcf969eb4f19ef994b6e60458ee6300f commit fe6fceceaecf4c7488832be18a37ddf9213782bc commit 4cc2718f621a6a57a02581125bb6d914ce74d23b commit d7d7b947a4fa6d0a82ff2bf0db413edc63738e3a commit 8e82d1199564ea0baab7be31f6558406bab4fe1d commit d6b9f492e229be1d1bd360c3ac5bee4635bacf99 commit 0a9906cc45d21e21ca8bb2b98b79fd7c05420fda commit 79bc412ef787cf25773d0ece93f8739ce0e6ac1e commit 04e0481526e30ab8c7e7580033d2f88b7ef2da3f commit 835745a377a4519decd1a36d6b926e369b3033e2 commit 32fda5650625065b8ae6dbd9967fb572d3835c35 commit db7f92af626178ba59dbbcdd5dee9ec24a987a88 commit e863781abe4fe430406dd075ca0cab99165b4e63 commit 42465603a31089a89b5fe25966ecedb841eeaa0f commit 3fd76be868ae5c7e9f905f3bcc2ce0e3d8f5aa08 commit 1badf482816417dca71f8120b4c540cdc82aa03c commit fc4d262721705f2a7b860946504e7b8a313f06e1 commit fcddc71ec7ecf15b4df3c41288c9cf0b8e886111 commit 28a5dfd4f615539fb22fb6d5c219c199c14e6eb6 commit 4809a017a2bc42ff239d53ade4b2e70f2fe81348 commit 512a9721cae0d88d34ff441f2f5917cd149af8af commit 26498b8d54373d31a621d7dec95c4bd842563b3b commit fe4a435bd0c20beb6d7caf87b49bc49a2233b18b commit b634acb2a070c072900c56154aa43e2ec2d45b2d commit f07fd958a49264eebc1db9c946eb5d2e91c470fd commit ac44ff7cec33d5c2d4b72d52603552ec64c1a8bf commit fcf38bc321fbc87dfcd829f42e64e541f17599f7 commit d2c72d96dff5ba408bb107193b53e3134a516c4b commit c0ec082f10b7a1fd25e8c1e2a686440da913b7a3 commit 7760d7f93c764625fedca176891238675fd06d62 commit e7457532cb7167516263150ceae86f36d6ef9683 commit 68d26c10ef503175df3142db6fcd75dd94860592 commit 7a1613e47e65ba6967085ad99dee95420346a0ce commit 28127dba64d8ae1a0b737b973d6d029908599611 commit cb07c8338fc2b9d5f949a19d4a07ee4d5ecf8793 commit 69b3d87212676c4c22aa4660435e2066dc7d1311 commit 2f54e71359eb2abc0bdf6619cd356e5e350ff27b commit 4ceead37ca9f5e555fe46e8528bd14dd1d2728e8 commit 03a86c24aea0920a1ca20a0d7771d5e176db538d commit 761f916af44279a99db4e78c5f5ee839b31107ea commit ed931fb40e353586f26c3327813d142f782f5f78 commit 82926f52d7a09c65d916c0ef8d4305fc95d68c0c commit 477d665e9b6a1369968383f50c688d56b692a155 commit e7518276e9388d36f103e8c1c7e99898a30d11f5 commit 4e8b5a165160e2f521cc10bae58ce0b72b2e22b5 commit 816b186ce2e87df7c7ead4ad44f70f3b10a04c91 commit 6df106e93f79fb7dc90546a2d93bb3776b42863e commit ffafd12696d1a4c8eeb7386d798d75e1fafb4e01 commit ec1aab7816b06c32f42935e34ce3a3040c778afb commit e5a3c24bcaf7bc1c3c2647395aae5de4660c1c64 commit 5b3c0209e88a67a8d029ed8b6e30bca383cbdc55 commit c09c4f2a972ca7cd9c8926594aa2099bcbcd3b79 commit 7626b4e96bdbbadca046a775c6b8e02b842c05e7 commit 49ff3e79a7f49e269b0278e75d35d6421f5538a2 commit 83f000784844cb9d4669ef1a3366479db3197b33 commit 338b655a1178900ac05aca7ac66dc28b05100430 commit 85e444a68126a631221ae32c63fce882bb18a262 commit 5c23878252515b8d2b86839bd4cb7dea7088aacd commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 commit 9515e74d756b6825f6119823d41b437832d89355 commit f888e3d34b8641a551eba8e0fa26209c5392eec8 commit f67644b219d458d4b314e78f2304b73985390311 commit 23d16ede33a4db4973468bf6652a09da5efd1468 commit 63feb35cd26557572ad95fc062ede344bb61d9ad commit 108bc59fe817686a59d2008f217bad38a5cf4427 commit ba1959f71117b27f3099ee789e0815360b4081dd commit 7c210ca5a2d72868e5a052fc533d5dcb7e070f89 commit c8fb95e7a54315460b45090f0968167a332e1657 commit 22ef43c78647dd37b0dafe2182b8650b99dbbe59 commit 69418db678567bdf9a4992c83d448da462ffa78c commit 9c1813b3253480b30604c680026c7dc721ce86d1 commit cdc21021f0351226a4845715564afd5dc50ed44b commit 2ba1f81ec7cbb2a9920cd3435c515247863b32a6 commit e3e1cfe33f932860e070eafec8df8780e3b889a8 commit 4d95a12beba146b0ca2de59c7ce905bc0aadfd0c commit 746ae46c11137ba21f0c0c68f082a9d8c1222c78 commit 4aa923a6e6406b43566ef6ac35a3d9a3197fa3e8 commit 935abb86a95def8c20dbb184ce30051db168e541 commit 25f2ff53838ccbd5ce558b5d23fac8a5d7f86655 commit dcb6c1d071712186c213c26b245779f7859b9cec commit 6a9d2e2988fa3ef9b03ddd9ba9aaa54dc23635e6 commit 5d01b56f0518d80211812420a8907ca0b6c6e4e3 commit 412a2a8fdd4eb89b263623c7a59b77dbfcf8f215 commit 4700fd3e050da8302e60ebd4850d008250fa7204 commit caa714f86699bcfb01aa2d698db12d91af7d0d81 commit 926163342a2e7595d950e84c17c693b1272bd491 commit add4163aca0d4a86e9fe4aa513865e4237db8aef commit 993ca0eccec65a2cacc3cefb15d35ffadc6f00fb commit fe05cee4d9533892210e1ee90147175d87e7c053 commit 8594a2d8d72d86b70b8bace607100d88111aedf6 commit f99c7cca2f712d11a67148cfbe463fdefeb82dc5 commit b0ef514bc6bbdeb8cc7492c0f473e14cb06b14d4 commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 commit 7fd3fa006fa56c0ec299c61ecf5c572c723adad5 commit 4b468a92ddb2985da66823910a1643349fe6447d commit 55e8a3f37e54eb1c7b914d6d5565a37282ec1978 commit 7d1e2580ed166f36949b468373b468d188880cd3 commit 1491efb39acee3848b61fcb3e5cc4be8de304352 commit 4f26c95ffc21a91281429ed60180619bae19ae92 commit 694c79769cb384bca8b1ec1d1e84156e726bd106 commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e commit 1356bfc54c8d4c8e7c9fb8553dc8c28e9714b07b commit 74e1006430a5377228e49310f6d915628609929e commit e301aea030d60da760f85f854a82ce788d5cf6e7 commit 3ce3f85787352fa48fc02ef6cbd7a5e5aba93347 commit b46dadf7e3cfe26d0b109c9c3d81b278d6c75361 commit f790a2c494c4ef587eeeb9fca20124de76a1646f commit 4d75b9468021c73108b4439794d69e892b1d24e3 commit af797b831d8975cb4610f396dcb7f03f4b9908e7 commit 64a2b6ed4bfd890a0e91955dd8ef8422a3944ed9 commit a353c78459f4d116216393cc29032ef5fe1472d2 commit 514447a1219021298329ce586536598c3b4b2dc0 commit 052ef642bd6c108a24f375f9ad174b97b425a50b commit 444fa5b100e5c90550d6bccfe4476efb0391b3ca commit f432a1621f049bb207e78363d9d0e3c6fa2da5db commit 9b984a71c240ed9287d6358109f6a0c6ab5bba32 commit 1a6bbc4d9e55d6c9df2dfe7d4f2705a544d8ca13 commit b8d9d5fef4915a383b4ce4d0f418352aa4701a87 commit bd8a9576617439bdc907c9ce0875909aea4221cb commit 6825cb07b79ffeb1d90ffaa7a1227462cdca34ae commit 9fc0cbcb6e45d6fc96ffd3bb7b6d6d28d693ff4d commit 16dd2825c23530f2259fc671960a3a65d2af69bd commit d641a151fcaf0d043075b214b469a14abab25af2 commit df0279e2a1c0735e8ca80c5df8d9f8f9fc120b4a commit 0e5ac88fb918297a7484b67f2b484d43bed3fbbe commit 79365ea70714427b4dff89b43234ad7c3233d7ba commit db0fc586edde83ff7ff65fea56c4f72dae511764 commit 67e023b93d69e5a21b16f9602656a803d314e825 commit 5a67c31669a3aca814a99428328d2be40d82b333 commit 4bb2f52ac01b8d45d64c7c04881207722e5e6fe4 commit 5f77ee21eb44e37e371bcea195ea9403b95d1399 commit 7013a8268d311fded6c7a6528fc1de82668e75f6 commit 3387e043918e154ca08d83954966a8b087fe2835 commit ce0d6970231903f43572a6998020fdc8b3a8f455 commit dd886a63d6e2ce5c16e662c07547c067ad7d91f5 commit 46f1f4b0f3c2a2dff9887de7c66ccc7ef482bd83 commit be7eeaba2a11d7c16a9dc034a25f224f1343f303 commit c0403e4ceecaefbeaf78263dffcd3e3f06a19f6b commit 21ec425eaf2cb7c0371f7683f81ad7d9679b6eb5 commit b6ad7debf5ab3e581b5cb0f5c94e404ec968bd5b commit 9776c0a75a1a86b753b2dc7c1ecc3baa048a8dec commit 93d1f41a82de382845af460bf03bcb17dcbf08c5 commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d commit 99d051c4b33cfb451dca0c30e28da25db2ce4d7f commit 1eb0de899b1eafe2c3aca8763c99e5c5ed791561 commit 21c1c6c7d732c2f6f4c5ffc77e103aa3ae8bff1d commit 44f392fbf628a7ff2d8bb8e83ca1851261f81a6f commit f48ab0a39f12fd83fae13bf81152531565cd5e75 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:41 +00:00
void dma_fence_array_init(struct dma_fence_array *array,
int num_fences, struct dma_fence **fences,
u64 context, unsigned seqno,
bool signal_on_any)
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
{
Merge DRM changes from upstream v5.17..v5.18 This commit was generated using: rhdrm-merge-drm v5.18 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/drm_cache.c drivers/gpu/drm/drm_gem.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 301a44dc18e3,308c302c58e9..c2ef5f9fce54 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -134,4 -132,9 +132,5 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-y += solomon/ obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit cce936f4fff736927ffd53a61d7b2c6a1064e0c5 commit a908db6d98782e8d9a8d545dcc74937db5bfac04 commit ae361eb07e9b498bc224db81113118fd28e35f6e commit c2a9682d2214e834b493c454e38809e571bb3045 commit b8ca477e51318d28f7514abfb5a369e11848a8cf commit e74c6aa955caedd06b5ade58e31e33338e4efde6 commit 637088a21e204b129a03dbd59bc0cd80d0292651 commit d0c0cf22d7071e9ba8d30be91723e1d997a07970 commit 49d535d64d52945e2c874f380705675e20a02b6a commit 11343099d5ae6c7411da1425b6b162c89fb5bf10 commit 60c9ecd705be3a28f79d70ea21c3939db668bf46 commit a36e7dc0af1cc7e5eaa89136c35a5305fd693731 commit 007354597d5c12a8d44a34c66a2e1a089bc7d3d8 commit be5b6985fbbe6ba9580351b3c9168c84e51bee5c commit b96a1d8c5189452d80551f2c38ef50c533c19669 commit 3edcd504077c02c9e6e7b687a43849eacbb8088d commit 9543e3c0511da64a77b1af3ab1f7199c39226e1b commit f21e5fa191be05616e3250723c5c4cadc9baf84a commit 405d5382ba083e6e54df354909b1583f1e3cb0db commit 70704fbf67ddc07ffc81073a3af1f7b2171697eb commit 943e6a8beeac1b676265f2dd81a69d7bede5e41d commit 7e28d0b26759846485978ada860ef4a427e06c8f commit 5995aef006698bb639547a439f47492de5c37f05 commit 5664e3c907e20523cda622268716867e77648d0c commit 6844a28885183a5a2af92a8d315a59f7a0e668b9 commit 825ca9ed1c9f5516b30292bb1c7ab648c2a01b92 commit 980f42e7d57464af190d05b9cc0bc21846734f48 commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d commit 249af7242af72a826dbe93f7058237eee4fac1d6 commit a88afcfa258672601eda5966439d2fc310a34cb7 commit c3c2ac4c77ee2191ae2f1e8d140a59e852104e3b commit cbffbac9c14220b8716b0a9c29d72243f6b14ef3 commit 62eeb9ae1364cd96991ccc6e3c5c69d66b8c64df commit f7747be1410321de8a92e340c5ca6c18a59770e9 commit e35d8762b04f89f9f5a188d0c440d3a2c1d010ed commit 0b464ca3e0dd3cec65f28bc6d396d82f19080f69 commit 6edf615618b8259f16eeb1df98f0ba0d2312c22e commit 5f4f958a0d9dfd7a569c56e76840e39b0c434378 commit 3b26a2916844cf2680de10206e193e1d13f0eb88 commit 50d76e3d3ec0c18dbe2c801af676f7e7cbedbff0 commit 7c442e76c06cb1bef16a6c523487438175584eea commit 7020449b8f5ac0f7444a584645edec02f7168f1a commit f5f05ddc37e0445567e4a2369b73ecf9ee2e187d commit 816e3be74f16f3064e74acb3e6ed69e27f14231b commit 80dfdeb75028084f42a81a4151a986c56aeec1c1 commit 9294914dd5507eca56566c470c56327f46dfd4fa commit 96211b7c56b109a52768e6cc5e23a1f79316eca0 commit b146e343a9e05605b491b1bf4a2b62a39d5638d8 commit 848915c35e22d36614f2b0aeca6ebf7361e8e204 commit 204129a211fc486164c25e6082941e4fe3ba889d commit 5c24c9d227e9bbcba509752a32b3da5faa149aec commit 59dc4632e35becca1186dbab83ac7cf8603afaa9 commit 17190a3492bb20ce1cc695fdadc7e4f7ad5b44ff commit cdeea858d8df9891ed75415f377b3564f899a659 commit d14f0c205302648df29c494a1a81ec3d897a2552 commit 91d8531393be96b4a088290cc67233b2e6ab072f commit 506d9d7414cfbdce02b7126fc8644f04ef234680 commit 59a39fcc21c56845e74bf60c1177925bb0255de4 commit 5313fb2c779f74bc5083e9d3738d9b2c2ebe0aa4 commit 814d5c51f8966895bb20b51c886bd3961f76f3f4 commit 5edaa2b9748979b08fcdb2f65781aac39e6ae011 commit df2d385cb4132e945d5bc17d387d0fb6f5d4d66e commit 9354417750e51c3d120cb6040b1b69f70d9ef43f commit ffa3fe080c77630f87436a9410475fed1e684612 commit 191be00229ef61f9ca0cfa39a09dc71eaf90e78d commit cd1637c7e48043503f8ca6d441568e3889998965 commit 607a264ea7016b0f811f82c33094a3c2eda5968c commit 3dbc84a595d17f64f14fcea00120d31e33e98880 commit 658a0c632625e1db51837ff754fe18a6a7f2ccf8 commit f3cb4a2de5410147b53e53416a3af0ffe26b5f4e commit 903e0387270eef14a711c0feb23b7bf62d2480df commit ab4911b7d411ab2ef3b38322178b9138e156c393 commit 30598d925d466c53c4c218a58f80e043cfe9b085 commit 0af2e827b6acfd22b7794c148943a3ddfe5fbb65 commit 2564c35df5b81a88efce965bbfdcf32c1a1bc834 commit 23d639d7b6df487d59ed23b0c9c04dfd3f909fc3 commit 2ef97818d3aae3c89a6cb1e6b8cd204156434aae commit db583eea5a820ab4afce6420aae61be9be55d05c commit 386e75a41478d8d70889f0d1856e782d610353c0 commit 7e470f103d7579836a536c15862b70118379f7f4 commit b4435717f53b776b770e7a025fd84688e53dcd5f commit a9e4fb51425f680f191bb65c2778cea31bf058c7 commit e1a4bbb6e837d4f4605dffa9eccce722fc59b9cc commit e8c1f36157ce0bf8c150059c3f9f573c13a186df commit 583998c5e8cb3e7a151dca22303b68cbe65c64b5 commit 39a2bd34c933b00f7c7ada923c212b3ff826fb5d commit ebf3c361f43b1c1fd254be5a6d12bd37b922e6b7 commit 2f6b90da919208621725d1703c0391f63724fa62 commit 950505cabe517ad40759cae6f88f33f0bdfbb7c8 commit 60dc43d1190db1bf80c696ab4561ed53f8f42f33 commit 55a9c00021e2393393a26e0833fd66e73d630117 commit f199f71f20916ddaf2bfc4dceea33c776d414428 commit 53c8283ba9b46559c12fb9fd679cbaf72424649e commit 77b6f79df66ed2919dedb834edea630f40079f12 commit afd088ac05f120d22e06f8404b2672f5841d0da0 commit e9f9bcd598e2b6f3cfa617f8e38f83a59738d19c commit cd5d2fdb045fb31a152cbb257e10da78fa4f06ac commit e0d47fcff1f4df458b9c8824a5204adcbf624ae7 commit 3e5cbecb9aa88f00016b61200d4126f727fc71e6 commit ab076d8d79e1e5eb3960e0a489f7a11d729c03bd commit 2b25a93bf07c6b68dd9e2ee427e228cb961f7961 commit 202b1f4c1234b34c15e51acc9c43e613f509f587 commit aa1d6068a460dcb21e69f6d65fa7d3ab483d547a commit d0864ee4f81fd8c782fbb382f80d6c9c531f2967 commit 24ce4d6d2ca626a733f70b578c4a298b200a69de commit 43571e15c057f69734d0ee3be45fdf9e4adee614 commit 919606f5e7d8cfbdef47ab7e24bf37cf86dd1512 commit 3e1f4c491559998615cc8ee287c673f0f7e66534 commit c41aadd26496db9c21deb612445801f3e44ee8b2 commit 5512445c9b64a2fd78f37c41796745d72c02e9a3 commit 1b277c892940af1d06c2433f3f3a39d4bd146c89 commit 4642077775a65566c0d25e63bf918fb5e5235163 commit ca1777797ad84cba3a72b73f74bd80092a7aa220 commit 0b782e669298e30853e235b963fdebfdedf45383 commit b17639c7f7fc1fbb23b761c38ba3233cd5d082d9 commit 38bd13a0b151093f5f26c95ee106659008896995 commit 3f8bd465a6f083a4112d82c18f4a85c9052d2132 commit e592dc320559ebc8166c1dce609faa7e4f3d6da1 commit 9d31993451f6bb4059a9b9eec4856b2225e36df0 commit 0f5d32617246810d00dae08c51069873a77b60d1 commit 7b1534188c25948f4ce56dc4af9d8e9234e97592 commit cd6e4c2fbb004f06d9c552761c171fed82ab5225 commit 2616be2eac4b1c361ece55dfd8f942dcecb25de2 commit 6650ebcbea1314bf91bf161802ecaddbb72651b5 commit 5ec7baef52c367cdbda964aa662f7135c25bab1f commit 5ff59dddacd4738edcbd01847d9df7682348cf86 commit 93e97b05d5816ec96bf209a50023cdf9fa750a55 commit 1500296576464dd4f8f7ba409069591648f4e98c commit 3a5d604f90f90a09e35ccfdeeedbadfd06b606db commit 6a8cf6349c7cae12f072889991a2aa0a1ba0bd32 commit de05abe6b9d0fe08f65d744f7f75a4cba4df27ad commit 8c2d34eb53b96755b33a125c65c3e807dbe430a1 commit bc143d8b8387ff0a22e4ef8e2375e63aa24bc311 commit 79c65f3fcbb1288b84473d45e6d001820a971d54 commit 13f5dbd6e3d9a4ea0a8d061bb2a2f19bb21cdacc commit d448157665870bfbf9b6baa5991cd9d6bc98c7e6 commit a79110f2dc0194326d2e8c2cf83db6c784c37e97 commit 28a31774b050261371953401e8072ae15200c91e commit 84176663e70d93836d30d2a480a4201c7f790b42 commit d698a2c4859de2d4d42d2f3c3806d6dce821d663 commit 6ddbd37f10749830e0a6ddf839ca4313a007d3f5 commit a627967e803e58c5525ac92a4af0d15379189a32 commit 7689dab48259073ea13d64d32365b77860b84e7f commit ebfc253335af81db2e40e6e8ed17cd76edf9080f commit 837d542a09cd533055423dfca7e621a9c1d13c5b commit 3bce90bfbaa8de63bc500bc5a4dd262ed8e548ca commit 61d7d0d5adc705f833d8a5dbb596253842486220 commit 3712e7a494596b26861f4dc9b81676d1d0272eaf commit 1a408c710d9e273a22050b0b7b0c131f92847918 commit bcf19fdd507fb679bb6e1b8a119961f32b6cbb95 commit 54c73b51df2958f564b144ce86f15a85e227db90 commit 685fae24d94fd615b7058832fcb437eb588f4860 commit 6492e1b07c03397f85bd6dc0e230ea6cd9394635 commit 7cab2124058d2f5f048f435a4631e176dcd1430d commit 8b0fb0e967c1700bd729ae54b6f229501b8587ec commit 6c2453861f48e4e779cafa01c09e78ddc2c23c6b commit 6d76e9049ad92be32704106668c34493c3e4c0d4 commit 5e67bba301156c85251f49df19f5c695875814d1 commit 2e54fe5d056e7dc82988ef64ded3dca0ef954f0a commit efe17d5a217e6b7dfd16c80dab522abcf2edf1bc commit bdc4292bd3b4337985f716be789b08eef921f7a6 commit b0e2062dc8978869c1dd96d92027f74b361d5eb7 commit 22d4ba53b1c10de6832e588f01d916e24306f6a1 commit 7389a5b837cde5e5cd771619e9f006ae102f5d7d commit cb5cc4f573e18deb7d9143de0ccb62c08181bc85 commit 400ef298f400854544e062023671e927965bc9b0 commit 20c5e425d36a59529f2e6a77ba21d009cdfa8ffa commit c4381d0ee81930097e94e55d1c23f85798ffd093 commit df01fe73ee98daf00c94189967550bd2d2098912 commit df4f0041c6ef497e598a67e367db835489162754 commit 69f91d32c6632e09f0954e690d61ac4921dacbd3 commit ab3b9de65bfeded1d4646c9f66897c163e89abd8 commit 954ea6aa1545a13036851327b4ed251fa7ab2f22 commit e3d833f41c46b8c59c4af53897a6619bf667ebe5 commit 1613f346f86b25121aceb941d03ca927e57af20c commit a85d70a8b4813a955d45b062440fedb9be701421 commit fb825b651de98cafef13e07673eb72d5e2ceb4a9 commit 31425abeda7130e66e61dbd8468502061413631f commit b3523c457380c23cf28d4ee1ef60da337a0a45c0 commit 06cf9bd61a7452df375f212881d9bb6b3c52c3ec commit 5f0754ab2751d1935818459e8e71a8fe26f6403c commit a8e6398ffe171c84b1c03a17eb6d432dc5f703a4 commit e8521d0cd984897b4fa58e7837afebd04e44f0b3 commit b0641cb8a1deae38990cea783d2a1117255f59f5 commit 803abfd8dda540b94ea3c754a70cba69d3825995 commit f4319f72a9bc37c948832c0ef121460ad7c1573f commit dfacce59553b2a65f4357ba6019827eb4b9a0eed commit 3681eb24a9f14e001d05f8d15d2e07a96abef8b3 commit adb9d5a2cc77e8aefe98fe4c11656c5b7025c248 commit 5b529e8d9c387a34ca2b8008dc65f55d539b3ef6 commit 032a125904995985334766911de9e26ee2bbd646 commit 269332997a160b3785690a32d2c5496bce7dae51 commit 71b59439aa03e8de022c31ccbf9aa9bea4578971 commit 12d7d858e63d0769a91aab218828e0526c0ab49d commit 2f609faf5bda9d828ce0229689227ba2edb1918b commit f6bb74e07705579f83252f9c3cbd462d8084bb4d commit 348abd4cf353abb3aca8dc6ebb80ee84acc4f64e commit 366714b0883f0411a4b142b1f7cefc6b184183eb commit 4682a6d99638bb8ae62f00b9466849065c91fd1f commit fee076019d0a3634aeea8df55c1f7ae35ca31d18 commit 2b6dd600dd72573c23ea180b5b0b2f1813405882 commit 6b79f96f4a23846516e5e6e4dd37fc06f43a60dd commit 647bfd26bf054313305ea9c2c4a1c71f3bbfee63 commit e849f7e708600a9d7567ae22f945b5b01d7f7401 commit 6945c53bc712cf4a28a46fe46c2bd8526ea261d1 commit 7e00897be8bf13ef9c68c95a8e386b714c29ad95 commit 0f341974cbc2a4efe074dd24c153e439b8430afe commit 294996a98a641254b72732f3cb36d51f12a6f3d9 commit b5cfe6f7a6e17c6bc7c802d382cf22c4dc405477 commit 83f2726cd9c3b92589f850cd4935ebbc35eee840 commit c34242eea16f7d973501267142dd340cad3caeec commit 3ddd0c90bafd9f2ae1ac9f1e67581537273dfed6 commit 79c0462159a1fa3810ae1869a5fc9fd7782b6b70 commit e475986f182156496fa2991012ca51956fe90bf7 commit 03f6fb84bd0e98a7b929aef5f308b8e3f2f24a0d commit b6efdb02d23ef615464cd0077c211b40a1faca26 commit 4f64ccf4f27c89089f3206446e2158833bda4795 commit d622c094f8fe7a77fda613964ffdd9a248d2550a commit 8697a19ee955e32fe298b00feb0c61fc75cb5261 commit 71b6c4a277dbb2594c260ccedcafaef5154b0da0 commit 22c16d251a79c3156d17627810557878e600dc6a commit f3527a6483fbccbf569f91d9ee9c561b14d86a9f commit 47f29ac1cbae6e18329f0066f7c8d5d2346a5bce commit 7aba117ac9e01dc58afe29490f50025add9d388b commit fd9048dd4425a9dc252153c8b72369f1969a35b3 commit b4c55e525461a9a091421e952d1e052127d558a8 commit 82dcd8eb357caf4b16e6a201f6578b6e8795e541 commit f369e4eba89a6fc1cac619db86c00a964d1fc0a2 commit c1a20f707ac33b1fec1d78bab74e07656c237801 commit 6421c49567d55b1ba8d9389e5832297398a51a1c commit 58c69b53aee24f47741b150e309567d9b38ecd6c commit 9338cb719f0f0b43ee1ab39d17214f9b388c7fbf commit 047db281c026de5971cedb5bb486aa29bd16a39d commit 56ca49cf6004ff328458954dd3d0fcf0189a96a4 commit ce0bdc62e80d40caa346ac4840a20769d5bd1ae6 commit 552b7cb0eed12c184b3bdfcc262e96a954a2bc86 commit 4bd8dd0d61f961e6c13cc118d4ebbdba57f8561f commit dfd6879b98999867ac860a51348b00b5c0c2cafd commit a5e7ffa11974d90d36f818ee34fc170722ec3098 commit 4e68354667716e62089ce3032a3c7e1b6c07e669 commit 41f8aa5d6a8aace5d33e2d908bf5fdc833456a5f commit 6387a3c4b0c45a3932cc06daaf15727e7f83be43 commit acde6234f65bad89a2e27d3e8dd2daf680862545 commit 75ab2b3633ccddd8f7bdf6c76f9ab3f9b2fc5d9d commit d7e3ea83bba81d6d9c8f80c62a99b018165f5808 commit d39bc5c5e10a648c7de9558592816474f45a374d commit cc37b88b02fb590d08dd922ef1c0f7ef3125bba8 commit 028a73e10705af1ffd51f2537460f616dc58680e commit bcc77411e8a65929655cef7b63a36000724cdc4b commit ba3a5ddcf1e5df31f2291006d5297ca62035584f commit 8172375ea95ab8b7f7ea0dda617ad87c439a14ee commit 52506b099e1baa204b56b170f40f680ffcabb4c1 commit 8638b4d8ddc944ef3c1899cb774cb07de0b416f6 commit 54e67e5a2326b99c1461e29eb022e9d07a419abd commit a32762d1db4c13db53ab9005a24fe5465ab511f1 commit 2075a734ed990c50b6c544c6256b0dc0b74b82ea commit 09f137c320633d08b263c54c0782e91d55a6c09f commit b90b6e41379789ed595236113779e0793a63bf18 commit eb9fcf63857556d5eacd67f5c96078e643a8d15a commit 594c504d33343657ad3b24ff8e4ef032cd4de25e commit a868a1e57e3afca98509345d5a8f747a4d745cb1 commit 044cbc7a74c136f12a80c855cadd1b085084aef1 commit c26962803d044a7668e9ea4d5313117ac5b878c8 commit 479e3b02b73a2de2b19df2950863149c59d57bfe commit 86700a402694db56030a74481d09f35520332736 commit 8eb53bb2aa8afa170ba40f9460f2de4d4d138764 commit 33cd016e600ac3417aff7c85f59b9a4b70a947e9 commit 5904e4135f3b3e6cc7bed46bda71118d55a56681 commit 1b08dfb889b2c584b444538c9500af24ba0a6dc7 commit 590e86fe3462da81f1cbc4fc8d4cbf8b16b4f968 commit f61c40c0757a79bcf744314df606c2bc8ae6a729 commit f548f4291e89e6144d3c5b8a9ada66c7dbaa1639 commit 6d1d72fb4fcf85ff0a96de1c16c46162b3baf9a6 commit 6f043b5969a4d6d385ca429388ded37e30e0d179 commit 27535f1d94318f34fd6d41fd01bfa4a970e73bd9 commit 5de6a3de999d0cfeea94f1d3932b78892f3d69e8 commit 198bca93403d04f43c07c5c87c7b75a54f4bcb54 commit 26950f2968e873301c8c536ba0615ba04c17a0de commit 603801d0f2f418941d2524ffc43fa6d8c95873b3 commit 34ed3e83475eab0c8fe6bbb126165a3ff2f2ff90 commit 1358139bdefdb07bb402efb3164c1c51db99e8a5 commit 1d50942dc9304db488d1b3978274b851e890a33b commit b4a1c675d256bfa1d399490847d086b8b463b5d4 commit 784a2ec00904999fccfca12eaf7c63ac3fde5f48 commit 37ff945f804c2d40d030713fc8692e793a81eff8 commit a357dca964e0c77c479075dd65ef86199078d82f commit 4f72fc3c7f3d9f29a438bb0e17c7773f2fc8242a commit 1f73a367420c954f5cae2f899ebb9515be093645 commit 5fe0fdd23e3379833f4346b49fa791733c22ed29 commit cb935c4618bd2ff9058feee4af7088446da6a763 commit 428cb15d5b003102bc33d49f2ab31a6e4e785157 commit b4d775775877453b44834a621eb410aed7891875 commit fe6959a680a4c50f12dbb362c90f9d7157fea334 commit 7305f5b3a5d62d1ce1405e91fa367e6a9126090c commit b3bddb7a3806f26ba3eacb4f77834102ed344b9d commit 70b42b5845c84f33ed2b79a0fa96134710c652f2 commit 17dd7b896abd2c81bbc76ed55899314b1c285677 commit c5274e86da5fe7297fc28a4e12bd29defed1f435 commit 51f2d00909c6153d23edf2344f6b57d45e391945 commit 0bd6c4a1310336af511519a8a853ecff2120d11d commit 9d0bfa7ac97c629542caa860bca903af62b86326 commit 5acbdcd1b12ecba04f1481004b6ce5b40c64b211 commit eb8d73aa63cde11e43ab0619308a5356a691850b commit 15d641c41796fa1e8c8965ea457aac737a28a88e commit 140f70aeef07e4516a338b275e36eb5f8cfb463a commit c9b06cc26f1daace605238adb4720560078b0eb6 commit 2869f599c0d8c9c6492bec40d062951be8caae04 commit 50dc95d561a2552b0d76a9f91b38005195bf2974 commit ce99534e978d4a36787dbe5e5c57749d12e6bf4a commit 8b250cd3b5da18bd90f34ecb04c01661213b65ba commit ff3aeb34deb24f40626c171ce1cfd447a2edafc8 commit cf5b64f7f10b28bebb9b7c9d25e7aee5cbe43918 commit 4fd5e720b709b87f67809a871fde9fb6cb910f28 commit 4a46e5d251a39e7c10493743ac89a31f6f3ce5b5 commit 75478b3b393bcbdca4e6da76fe3a9f1a4133ec5d commit 4adc33f36d80489339f1b43dfeee96bb9ea8e459 commit c03d0b52ff71d580ee235463c7ca9eac31351dcd commit 80ecb5d7c0f224218fdf956faec0ebe73d79f53d commit 85e97b1dd5d29b66a249406624734843b71c0a0c commit 2343bcdb4747d4f418a4daf2e898b94f86c24a59 commit 901abf367d3eecd54f21829ced48c20f53c74c57 commit 828904660a2e0a31d5c8a2ce75711f7123896bd5 commit 6a6c2ab687c8eabaec4a55a4f13eb5ee68181403 commit 239d6de307b0dd1d48ec9b935b57531f07f6db11 commit e0638c7abc4d3d3c46e8f2fc07e02c3877c3c402 commit 974d5ef0dd9d251dd4571e30d5e79e7e4940d424 commit da11407f066c28c49bb7a4ff6a6b742b7a18d7ca commit 56383e8f4d296a33cc5b2a11864025d8205e9438 commit 1c4dba5e14c0085d412429d50cbcf8e9e2a18924 commit 1f2cf08aa010594036ccfb19d207e5b80b5bb7a0 commit a746c77e5ee86829c03dfaf718e18b589f849be3 commit 83a3766b147053e542f3c91c121cb9594239e644 commit f9130b81aea2de3fb6d356e9495a384b2d35b1d1 commit a685572c91b08e2e5143e52f4c5bbdd3d22271b3 commit 25c6aefceee60850bf78e16ae9d7fcc4a9d20884 commit 5e0c8ddf029e0a8533bfb04e4542b46356cbcade commit 0fc2549d55a238da5e4c1b1ae20ebc3856922334 commit dfced44f122c500004a48ecc8db516bb6a295a1b commit 1418b9c38270f4c7843627cb0e9047b19eb3365a commit 5d5c6dba2b43e28845d7d7ed32a36802329a5f52 commit 5bb1465fbdc291593a7c385cede0416ff6873280 commit 29dbcac82f96d06608f3658aacd3e14efb7ac0cd commit 97d1a3b967a3cbeb0dd29a8b5bcd4ac1fd9ccd9b commit 7bbe43f8a4e7775daf6ca62807e0023b0642a20b commit b12252b0538183d8b88bd4a8d8d05a808c46472c commit 4819732f5986ed8b3d88bf4272d2d5bf1ccff9da commit f8f96b17f0fa302b246e35773074f39e43add023 commit 5d447e296701484f3df5b31a7a078cbf1e3a9cc9 commit 1b2dc99e2dc6f35f55f0487e12fc9166fbd023ed commit 381519dff88845bbe522e7446ec1e32e351c670d commit 04022982fc5ddac6cc783d66846f2464fe4985fb commit d6dac2bc12bd968acfcec7a0c92c59d2e19dacc9 commit 1f33bd18d703ecdf7b664168d640439e867d1605 commit e9287ef8d46cee538c9a71bb8978b2f7e975c452 commit d435c1ed56b9f9347189924395588cfdf7489af5 commit 5b680dbfbf6899afaf8bbe59b859509149d59129 commit c282d9512cdd167384fe0d233d13deea538658f2 commit 31d64b8219e057705d7a9debffcf6abbccb7781e commit d9eb8fea6862e63421f7b9c93e32bef348488c41 commit 5279e091616b74ff0e4a24e220e0552b10d88d46 commit ccba4e5bc856471ed009d92747376ee506fcc6ad commit 3ea07c89fbb777669c668452e94275a98dc8afbe commit 1f6c40d5c0095959a260c014a6251a0ac124c721 commit 09ece5ac397f8e3539ea9ffb776e1cc6702acb9a commit d715c9a2cbd4b5dbf72bec82b033698db3c6eca5 commit 9506b8d9626f4fbc230dad30cea1b3b095f1e4d4 commit 2eee829ed48747181b17f3f8d458b23981f2bb7b commit e2d8ea4320c6fcf9f042e432232240f858ae9ed8 commit 1210b17dd4ece454d68a9283f391e3b036aeb010 commit 87e298d6e3a2169831a2f4a29e35575ee5747036 commit b80ddeb29d9df449f875f0b6f5de08d7537c02b8 commit 4a3ad932b2c538c62e4a60dd4b7411f802e018ec commit 2ca97adccdc90247c907541089e85101b2d87574 commit 09db246ceef70bc6bd9c3e0d02b3c855f8fc25fb commit 9cc370435cde6b672b6e2221115c2f535e8bd4ec commit 5f2c1192eba42f6926253a1f2c9b18da05b3c31f commit 72b90723b3760c69721b04f59436f38cd215e2df commit 0c5a0bbb7379625eb2a5b6a931415c008b7a1a16 commit 5cef7e8e2fcc6f9e8d2134668848a31b15c523b8 commit d52e77a3ffcf2da2be1a7892bc8fa67b0e907058 commit 53a35edfd0a767dbd04537596d95f56e94582f50 commit d063e70c6acad14987242f266e9448669db4624e commit f6a3795d35c69bd34a556e1d93000057aed78599 commit 0015cce5cf04d3bd7b2ae4f62d5cea5d35383e8c commit 05d6aea36a69e65b071e6ba897bf83a4aebaeab2 commit 85b8f62b564120943cc0db1e754d6649037e6c7a commit b5d9a483685c37a480420cfe2d41a03d529bc0a5 commit f2bde8349c35d01d7c50456ea06a5c7d5e0e5ed0 commit b9610edcfec216d7a2a5ea2c942734b3e5e26ffc commit 212021297eafe23b79ac117db9b5159d1df2ff30 commit 901e2be20dc55079997ea1885ea77fc72e6826e7 commit d0d66b8c66d04363eff3a5b09da4074fc1dfc758 commit 243c719e872a1322b22efccff80776353357b296 commit 82c3a7a5edbf5f6feae9602d19567d2b5b55121f commit 153a9529d7f372ce7ceb5eae7e2c312c0cd64d41 commit 588a70177df3b1777484267584ef38ab2ca899a2 commit 94ca070cd3737dd5c3b98f615bd4cc950f82a597 commit 5e6d72c643e1262ff02e057620b9f87d7d81141a commit 430e6a0212b2a0eb1de5e9d47a016fa79edf3978 commit ee2016b4b5bb70483e1c06218e7b6288704284cb commit e6f62afe9b2731b7a94b31fe59ef2c5134ad426b commit d726d43c20e744bab1e346c1f77b7a71eff0c40c commit 37d6b1506b80a5cf76238b6b00926070ab544058 commit 3b36f50d3a69ed720e4c464bc9c5fa2c3fadc750 commit 29c52ab2711f0e8ce506c120fbecb30e83f83339 commit 721fd84ea1fe957453587efad5fdc44dfba58e04 commit d8f7f8831bce9ef6a1f562037e137f57b5951501 commit 41e096da18b357ff1d2108c514b9634d67364c41 commit 20f6ac2d5e00d8ff154d9617a5c0b52ff12f3320 commit c3639f3be480529ac82b592e627fa7dd712de83e commit 6a4d8cc6bbbfea4469a063bff0ff0114507df524 commit cec49bce6e0cdf916433a248402bfdecbf6589b0 commit 9f807822abf5e210d8656fb5304f662bee64ca80 commit df216b37333cf2ddb0db86b966e86a53d239a013 commit c20b5d41e9de40a51b7e5516198c08a906fb7770 commit 1d894ce88eca35ef8627901c47c3881cb1f3e74a commit bc1ce503769c51c1c06f5ed126b07a545996d697 commit 8f4f9a3b3a0b733f8fd102f9e0843cad8d055c83 commit de3688e469b08be958914674e8b01cb0cea42388 commit 3f268ef06f8cf3c481dbd5843d564f5170c6df54 commit fda8d552c9c7783d4b29aeb6350d7404b31cdbff commit b889d89ad45f9957ea3eac8f61cb8884c2010940 commit 4be990af2f7ed8bf209cce3b86e1abac33742763 commit d05824796d9cf6c0e59a0aa86333584bde8b51c6 commit bf172a01ea485e630f28b6ad525fb277d73d3e3d commit 96e4c3c0ed4eb85e02bfa438c6b4ef7cea78bd8a commit 8295524a2d5550b56e800ac779a183b7f4d8c33c commit d083c232fe2dc4720d8f0e337613f88909ff9d2a commit 7e31ce581bf034cdcb1a94f84ffcf3cc983988e9 commit 6a6d914de30f15472b2dc36e8ac6bf016cfbaed5 commit e93a590c79faa4aaa4d7eadacdef9240e1e823a1 commit 62236df23d018fc977d2871744440efe6a08a6cc commit db3b3f3e62279b914e1958e93e057fc4d8dee263 commit b229712b26b58d043cd7386827f41ab022a4d109 commit 8ec6a72da65bbc4d341253e5a641a51bb1c0d967 commit a5d092d37eb5d25520d283985082e977bda68eb7 commit 516b33460c5bee78b2055637b0547bdb0e6af754 commit a0f25a6bb319aa05e04dcf51707c97c2881b4f47 commit a7b23fd90c804e79d1edb478b42935848bcd7e36 commit 66755b4871782cb95e3584c9e88b6ed6c52c9022 commit 10dcc8317f6063806ce1d34235af23da5e2fdd7a commit ccecfd013a39d8b8ea837e90f7f907e4ed5abe17 commit df8d1d0abd9439479ae1a0d8812ed57debe48a86 commit 94afe983b5aa56a841f208a6b455691a44eafc7e commit d5410d6974acd0aaea6742ecd8e3f7bdedbddf4b commit fdb5713c7d6f6d60bf23596eafb1ada154869ae9 commit 1439e3bea7b1201a9461ffbff2a9d59f3e65dc1e commit 8acd15a0c8c647ed4cb07c53c3ea4a8768c974ce commit ba4a28bb168aefa98ee422be8e04a0c964256f95 commit 5f825973b491a457c7233e808ecf64726abbeb86 commit 5e66e818e0358fe42704404580b70e1ffc7afb6a commit 9d6bf794084d9258dadf2754d911fcfeb13ea8fc commit 039cacd2393971fe11f855118eea6c83c8f506fa commit 1790b649b01ba7e44af7c08ffcfc0eaa9d4f5ac6 commit b6dca949b88ee69561fc4ed853ab7a2ae13d842f commit ac7c48c0cce00d03b3c95fddcccb0a45257e33e3 commit 367c9b0f1b8750a704070e7ae85234d591290434 commit 6225bb3a88d22594aacea2485dc28ca12d596721 commit a154bf6eda9881aa3dd74cea83dcff6de3ce9680 commit f4e2a66dae996b4fa2cc21b1904798ad1dc83049 commit 75513bf5d72cd1a81401866642f4a8052b2d4420 commit 7270e8957eb9aacf5914605d04865f3829a14bce commit fc6ea4bee130710a77ec16a86d2013e964602503 commit 9a17696049889550ce76a987562e679535943c96 commit 400013b268cb666a44c0827b136bfd4bb741b13d commit 498d46fe7aa7eda5807352d62af133a2f432b814 commit e63fa4dcea2f7afcbf8f2d013dfae23a61a273d8 commit bee7f8d09268dc80da0e841ca99d79f500d03b84 commit 7367540b26214ba5f7236e0f212fd60ec6d07c3f commit 4e13b063d2e510b54e3ffc2e975315d08d14c5af commit f06d9e4eec7320f5a560e49ed652e785c8ab5c45 commit 2f60dd50769efcd6eedd0dc6b3f419cdd1f1f1fa commit 3ed893396b0132fa5a4d3fe3f9ba358678c6dba3 commit e281d5940ae7f2ceff99d5e001a69b5f0884d2f0 commit 8cda7a4f96e435be2fd074009d69521d973d7d31 commit ded81d5b2b67e6e6fce0a1e8b73e4565a28dbfd8 commit 1ec5a44331af283b1cd3b0f0981cf65f0903ec8f commit c57f5ba2c8febe944ddebae53730667d5af179e5 commit c36846f3917962a1f7586a3d39a423e6679df3d7 commit 512712a824de9b856a4e61343e3e4390eba2c391 commit bc1922e5d349db4be14c55513102c024c2ae8a50 commit d29c9930279df7c10348772f812154d3c41562f5 commit c65b3affc6737c99c09925b910c7471d3db26b54 commit 5f721a5d1bb2e3ada83f04a119908b66d909300a commit 14683babf8ee356a232ee76b0acd332aef51fdc4 commit 7a05c5a0c883ed6353f82699dff8d789dae6b673 commit a594525c82e0b8d677a7e5fd13c7c115d41e9722 commit 270677026261ad8d1ea8ed60c3327d37aeb5f372 commit 46f47807738441e354873546dde0b000106c068a commit 9987151a90567785beebcbd5c8ac58d05f254137 commit ef6e871af3126850b429f68e8bd5b657042139f0 commit 063565aca3734de4e73639a0e460a58d9418b3cd commit 2af104290da5e4858e8caefa068827d7392c6a09 commit 8be576837b6e62b2ad0de2f9ba31cef618fa2891 commit 3d082157a24216ca084082ce421a37d14ecfcfad commit d80976d9ffd9d7f89a26134a299b236910477f3b commit f588a1bbfce781042196e68f8e200f08b3d9e8c4 commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc commit 751a9d69b19702af35b0fedfb8ff362027c1cf0c commit c50df701d49e78bea6410b4b111c7be71e2a7c2b commit 8023d3bef18bafe54708faca0c4206e1a36ca155 commit 6149cb68a5be127909ee39f4d40b8f5ba0d047cf commit cc954cfa6fe47579aa8eceaed00677feda0a95b6 commit be0c94ee215043c0a5cdbffc5c45b5073054e125 commit 5cd0664483c1be4a71bcf4ec643f5d3c782e0319 commit 0adc41de818c1a051c18732db57b9ee95b30898e commit a68819cc557cf0a37b7fce50d412abdb73bd69d8 commit 8de5df3b07efd1a04c549e59e0d72e2b3e2c517f commit a35eca01c372dc0f1a3ad663c6a93604c603a782 commit f0d4ce59f4d48622044933054a0e0cefa91ba15e commit c3e27f4307fed7b963d8e99c18dc51682b3431e7 commit 6d6c932daef5c5b3cd5e3692e79507d2a3306031 commit 1d06c820b2b7ceb38bdf0775fac495db4ad4d10e commit 23015f6f900b8b158f6811b85de1f96769be4dc7 commit 00dd7f953b9b1d85e97da8065cc2887a5477008f commit 2efb4adf489dd29526c412c4593d12e08076c68a commit 19d36cfafad0395d1b8a9db7a85d64282c42ae94 commit b5c84a9edcd418cd055becad6a22439e7c5e3bf8 commit 657b15d672f4d89cf0750793473b8963429f8ae3 commit 29b9702ffe70d83b9970abbccaeb287dfda4409f commit 363c4c3811db330dee9ce27dd3cee6f590d44e4c commit 2bf68bbdb6f5a445b26a0e8fe14af229ffcc7f9e commit 86df4141869350edaa53fb994b3db2c2cca5065d commit cd9f7f7ac5932129fe81b4c7559cfcb226ec7c5c commit 70c0b80d0bbb97c072c4a9c3e8b0f68a9e22d7d2 commit f0bb41fad02e0310fa7b222c7254a3603ecaca1b commit 72be4584ae7e23f64c292171cde6c8fd887aefa1 commit 3f1a31ff8e3f6654d2b03a34095ca1658e4cfd77 commit 2ef6d3bf426218440b156d392cf95e830990e0e4 commit 66a19a3a0e2d200121f30a48d13b80532582f1a5 commit 7d296f369d38e12b1f9c552d8635eb0caef71095 commit e71a74122863fd8acd23ab772ab4f7c3a378aa66 commit 0d6419e9c855dea476300e2bb81d29105fe76d38 commit ce2fce2513c5c1076f2a2d6e977c0ac523aad5e3 commit 22ba60f617bd1cfbfae72f73c93ef9507a305c59 commit 18b66ace6b3acb01b645d2fbbd571f66b2705c71 commit d2a197a45daacd4ab3221161405768a6d1d11086 commit d2895ec4ca6c67c5a9c8ce74bd5deba76ea77f6c commit 6a77bce58c6b29167bce2f548559c75326bbaf03 commit f89154b6525c7ca394ca68adc90e6a0d5b3872fa commit 1ca489fc60e2713a9acba4294c6fad66d85961b2 commit 90c44207cdd18091ac9aa7cab8a3e7b0ef00e847 commit a2170b4af62fd347c699ae3cd9ec0a8096466f9d commit 889f84798c5b975125f5f7de910ed222ca8b2677 commit 274b924c3ed18f7d46d237810dd59d3bc89cb4b4 commit 241a074fc1342b8f6a88af4b7bdc014692ebcde7 commit d389eafa3f50944ca272e0ec865143a9fb948e78 commit 219fa961e12497fe6beef478cc0de0da47b3a3e6 commit 88839870c3060a04a2e085ef1efccde4b0d1d440 commit 702f8dd8319fa6e3fe9d90115426202e6ee5d06e commit 9d8033d6beca43e9d8eb952adfa8bf08642a357f commit 2426d71c52876a5558b40af06143688b3978ddb2 commit e8702d0b97dc9fa825715fb28f116c199bbebc87 commit b9d3d50adbc79c3131ff3c5ac35bb9a57442f08f commit 8788e0668f4fd8815f82c982879252aebfa708db commit dfabe59797799bb500897ab4064f8a76aae4026a commit 2750caffa7a9ae82824d7ac3ab0fee65181c4126 commit fd24926676801dd68afa1f39647a858cf4f6ae50 commit 2412d339b30e66f86d9430aec26f5c6a44908b15 commit 05f8c2a87aa01d1000cf148213560117e39a48f6 commit bd682a788c1f4fbefe17b3ee9e0e3debdefeec6d commit dd4dabe4b3c2425878a49ae8d5817d5c5958c6db commit 33413ef964b8cdbb25a23aaf0b4aa8f0a330c4cf commit fcd6b0e270a9dd849981df34051ee6dcbdbb1c0d commit e0a4459d45425fabd5f020a2117d350c5a07477b commit 6927913d700749a4b9550f87f294778df2a7faa4 commit 22f7cc7524081bb2bfb2720e43ab9889e2ed5b00 commit 9308a49d8ee2f0f372fb7f18b8f4a97d9ec676c7 commit 4f860edecdafeb2e5fb29fecc6428090997936fe commit 5d64f9bbb6281a5a89a2266b9d39daa1fca1d6b4 commit 7e2ec174945fa98048b39baf2a87973eddca3241 commit 876f7a438e4247a948268ad77b67c494f709cc30 commit d30b9ae93bf57414160503d3cc62735adeb61557 commit 377c675f3c17ffaefd023ee283bb366bbd6bbcea commit d946bc44aa0bf03ff5c2888e8c3be8646e14467a commit dca384a3bf5af1c781cfa6aec63904bdb5018c36 commit 9277b75675113d64a74ec01a1219973f3720d9a7 commit eea89dff4c39a106f98d1cb5e4d626f8c63908b9 commit a3574119826d9a4ef807fb973cf5150c3b90da43 commit cf1c7fee7ef37cfc09b5e704eb52d9466ca49012 commit eef173954432fe0612acb63421a95deb41155cdc commit b3dcc6dc0f32612d04839c2fb32e94d0ebf92c98 commit 15512021eb3975a8c2366e3883337e252bb0eee5 commit ccbeca4ca04302d129602093c8d611065e3f7958 commit 542898c5aa5c6a3179dffb1d1606884a63f75fed commit 722b717d8e2759d943dc1f55a2f6fe19c55080aa commit 972aa1a161d8eb61bc588c31bf568bd69c7c231b commit 7994369fd3e758ea1fde269ff7c3984a8ab52b59 commit b8c75bd9746e3f1bdb5a1b6288b50dc2fdfec0ef commit 2d022081b333a7f15ba27607696d4a41a7a2b5f9 commit e56694f718f0f6694c18d7595e61533a2663335e commit afa37315917bbc9e71a4359f921eb887470c008c commit 3698807094ecae945436921325f5c309d1123f11 commit f185381b64814bb483416e4dd83d85891018a7c5 commit 5ccbb057c0a1282b39192a346f963fa989ddbc92 commit 73fa13b6a5112b59d09e58b8075973769a15814c commit 011bbb03024f5a22dc04eba370f9296f0cb83502 commit cd9f79103003599e58f9f394c07cb4045883a51e commit 626f7b3190b4c07917f0262162cb7fef7272c34d commit 8668dfc30d3eee695233ce83944abaf5546a5017 commit 2485c12c980a36bb9e23ababb07d73c4ac6a45af commit 5bb6a8fa75fcfda93592bee0a4910420ceab15f3 commit 42c6c48214b726c30918e8dc80e2168607d13ae4 commit 3a9822d7bd623be9000cef8101ecf8479fa53f2c commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 commit bef153b70c6e3594b849d44a23f806328b9c68d4 commit be072b06c7397004e6464b4225e13c31ed0b9ca3 commit 4717fe3d8dec42bc951a44f41efc95d635d26325 commit d1289b41ec4db347794abfed7525e33dd2d9503b commit d763d8030f440441177d9638ffb0be39cba32a03 commit 08a987a8a02b073c620b5f3f363714ccd98c0bc0 commit 9d5dabfeff3ca63925cfc9c427f2d1fe8929402b commit c2db32ce77adf82dd2a4193abc709ec51474f84e commit 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba commit 692996f2bef7aa1737e07554255ba0d9a73fb750 commit 3f1e2e9d9993a3b1e33661fee26566f091e01b2b commit 3f3a24a0a3a58677d2b4f3c442d7a1be05afb123 commit 00b14ce075732edb2935d738de990e9aa96f1e08 commit 447c7997b62a5115ba4da846dcdee4fc12298a6a commit 00d6936dbd5486bd5c0a07870d5747eed6f799ec commit d5e8ff5f7b2a41d503914d4896ed3c6b3befe933 commit a50b048276c4e1bc6f7e869c99b6bdc91b4e237f commit 4e781873fa1359c9a85559b6da6548ac5b07ceb5 commit 29ba7b16b907a1f915aab8b83ef901e209146938 commit de95753cce66582b0c710dc31592cf15d317118b commit bd42571168ed54d309480856fadea3eb99821253 commit 5af779adc3ab0245b94187a3fad6d10f60013c1b commit 2d282665d2613fc7be9dde557811a7783ac01735 commit 7ade3ca9cdb547eac2cdb661c91a481235e21ae8 commit 3c6591e947f5c23c13dec67da3dbff12ccd6e209 commit a89ef0448c9b59c524499663eeb92a43c8bc67fd commit f69c15e15e74fb0250049c5532d8322c75f423ad commit a423746305d41c1e2767b832742cb572ab173af3 commit 6d33f0e820bfbc4f0b9b2f23d0d30df4bd6c3001 commit 3084488a49d6d58005d6ac1b5457b3f13bad1ed3 commit 77a35bb579827216d911ece7a6b909e4ac8e1626 commit b65007590911ad558999073dbffa413cf4861df3 commit ca7f9d0aba9940f4d3e759f44c414c3707a94b21 commit 98ea24e6c563241814abcb1d22ec207a7ec2fd9b commit 559e2655220d56f939a9fbc6212992345025392c commit 39da460fd4c0f8e7290dcc9cbfc9375de9d0eeca commit e8dd130bfdc627d935d4eda4654059a24864a493 commit ed3a56f9c638a4ee42031eac748664c834fe245d commit 66d58bf73ba17ac45fca79f2e5e26870cc224ee3 commit d7d7ddc15672940be0dbbe03e016c5bb617256b8 commit b6fba4ecf3554c515aa5354c54dfdf70d7526ff1 commit 6cbdf12b87356827d35975dfb3030d116782737c commit f54b6bdf4248b1e26ff66932231e1d6a2f16adc0 commit 3786a9bc0455ca58d953319f62daf96b6eb95490 commit bcfab8e35ce81e2fd3230c1575024bfde0d28c8b commit 120cc6e67a5e34069693cf1711ea222b8c414685 commit 68550cbc6129159b7a6434796b721e8b66ee12f6 commit 4a5dc6c73dbec54648fe01af2f1818dc3ae90d5d commit 7938f4218168ae9fc4bdddb15976f9ebbae41999 commit 976b6d97c62347df3e686f60a5f455bb8ed6ea23 commit 0fd9803b985e5d94e2b9f1848a12756b7848b62d commit 270b48bb8da7452b4357d8726933beba72652310 commit 68129f431faab376c1dd1c701f2fb999eea53383 commit 18f5fad275efef015226ee4f90eae34d8f44aa5e commit e09b9aef6807474d6964a2513321e174f5162e8e commit 9285f09e8f96496604cf0755a3d7e91478120609 commit 6abbad2c00bd26531c203f29190d14ad9eebfc0e commit 042ddf6663a86be98b306e6cc9e7048ea4c835c0 commit 84d826c8fb84a57716b44b721591a0fffe4ea1ca commit b20384d9196788dfed70aa7cfb2b3dc458217918 commit a59b026419f33040d7d28b8e3b1cea681b9ce7a7 commit f665147cda30928ce79045a13953eb709fa3dcbc commit 3ab26eddc67a67579a2b52f908b69cbc253f5ff3 commit 5e78d59a1ead969669f64dde4245cfa65b7cc4a9 commit a28fde308c3c1c174249ff9559b57f24e6850086 commit 053f2b85631316a9226f6340c1c0fd95634f7a5b commit 2a3950c43e2ead47ed7456b04da5d4afde58c4b2 commit 6b0076540faffd47f5a899bf12f3528c4f0e726b commit b21a142fd2055d8276169efcc95b624ff908a341 commit f4044ca1967098b44bd2d569ddb99352b599551e commit bf8900406e9e5c928ba578c8fd932b4bc72556be commit 2ecf64a0d26699f5f7458e87bfc873a47a2945bf commit 6e007c3bc97024853e3397cbbf37377fe8cf2b5b commit 7e97596c743c978e81ac67a59940071aa292b2a9 commit 91cb1e11786c4d5cfd8bf32e891232fa42b03cc6 commit 11a1d09c974fd58b8de0474081d6e97bebf4b619 commit a3de31d55b2a9fb672007aaf2b070cf90ac7dac6 commit edbb9242478d3aed8b4d3cb197032e9ded26b3e7 commit a0386bba70934d42f586eaf68b21d5eeaffa7bd0 commit a4c63cafa58b4bd9e15511bab77a4752b93d3aa0 commit 5fd8518d187ed03403a4d4f7f56f52c00b11c148 commit 54f329cc7a7a7ea265c45b206d45e3d09192aba7 commit 02599bc7f7047f2b316ab499f41d72ca14e3b3d3 commit 681260df4dad45337b14ba762f94b402204e9ac3 commit f287a3c5b03f51efa8d8f3e141a79177f91047e0 commit cfbb6b0047448e2d986160d9f30d60f604d9ad0f commit d0fb18b535679a28b1f55a312b7454563b9bb36e commit 89a7a87093d67e2c633e1ed400ba00ffd15bdae5 commit e923be9934a9c54a94e443f9e77bda5b9fbd1ce5 commit 3675c2f26f33ab4928859fb8950a4697a16be5c9 commit 03e5b167bd2020053f3d10b61a361de8b17c5936 commit b1c87b0874a4a2045dc78a8d3d3a77ef61536711 commit 803ec96319eec2897d3828e87bd38180295d0dcc commit efbb7c98f5fa5a547c4bc0369f825c930aed8918 commit 2feb6b0f06b1221b2841ca61b721b1d608bafa79 commit f3b603de2ff41eb915d75163f7212bbf177950d1 commit 28f5f8884e7cb9cff5375db487a8ca7cd3fd599f commit 98476876b837069e4582565fee63e70810c880b2 commit 40f1dc5223ae9b98458124bbeabbabc74c2bccf6 commit de7fbd020d959708282ac0916be3e5498086d9aa commit 6c1a7867734bc6f54e8442f47790c90d3afa07a2 commit 5bdd3eb253544b1e80f904e1205699d0a126d2d6 commit a439b890dbd17457f071e41777aa1d17916258d6 commit 1cbbc8d4f788af4c260ef3cae05902ef7b191197 commit db7b81545f5abdfd1f13b7f0a3f995994701cf92 commit 3b99e8e37d0ffaa0ef95598b9b83c49c89bc0ea2 commit 63b5fa9dbb711e245e59cc14eaae0106eb716447 commit df62ae6fc9b49a9a401afa2efd3f36c0f82ad663 commit f5666d482305900b9622a2c9dd73a864a3b0d281 commit 24524e3f43cf77dfdff7187f76d967b3175f68bf commit ba2c5d15022a565da187d90e2fe44768e33e5034 commit a3c286dcef7f8bc576a20f5d1e80624f6b4b93ee commit aa15c677cc34e626789cb65b8e7375180851c03b commit 67b723f5b74254d27962b1b59bddfee1584575ff commit fe23b56f56532dcc5e49e83e20333b97919dec53 commit ded74cafeea9311c1eaf6fccce963de2516145f7 commit 1528038385c0a706aac9ac165eeb24044fef6825 commit e7a09cea6483b44ea0c82f07145fcbd8a918bf96 commit 24a644ebbfd3b13cda702f98907f9dd123e34bf9 commit 73144c0ce4e9d69c8d0de4078b6bcdbc55f79db8 commit 66b09ddd8b323547e24871ec05fc63c44a557877 commit 69898171829d6fb92e366a989f2f14d8b5b15e21 commit a391e06958b2fe3f53171ba04f60dadf17b09d5b commit f7bc440bc79ae5dcf648b90209910ea8dba6ef0c commit 0f4b58423f3500ee3e3159fbbd6c41a6e6f920d4 commit 0192c25c03cd2feaeaadae375fe6aadff788939a commit 427153ef63a82a4d51c6046e2457787127f4d6d7 commit 92e438619d1603995ecb9f1fb2c322cc304b759d commit a421d8a99216d46926609611cdcf260fdf900645 commit 3ee7fab0f3d2c1f9c2bfe6d4fb8c58106a52e840 commit 420f63cb6d2a691b94662f50e07dc3c9a851bc69 commit 721255b52700b320c4ae2e23d57f7d9ad1db50b9 commit b508d01fa577e21a8f574dec09a16e5f2f6c7d3d commit f3392b85130fdc9e17bf6abe362d5e9e4bc9b8b1 commit 985a0256df3290d318bf937db7ef0633f7654490 commit 88d23eda3c7f8bb560ae93b00d03688ff7920cdd commit 165bbfba34cb4c8f31d1e643abd2d5cb6eba1b90 commit 2528b396d5304a711d28f08047a8fe60daebc3ae commit 154cfae6158141b18d65abb0db679bb51a8294e7 commit c8eb426d47abfffb0713dfba8d25d99ff091f3ab commit be137d791b5067fd5f290a593336f93019ed25c4 commit d21b3be8e14445fbd06109b4831c4fa8f9adad2d commit 8a84e7a176c0a02a97f64ace508c1f2546c30bf6 commit 759d4fff3d2d70d6b689a9f1f7eb4488df337fbd commit 63b81e6063200d01592cc2cf9b3a87dbade2e149 commit 04d4e167522fa9b60c83e04c4a74041b36b2327f commit cad3fab413efbfdb1c64a08808aa3a59fa288457 commit 5d488786a3a18d48bcbd1d215ba9dc6811b7d639 commit 0c63fd3d962525d3eb1001ebc31537206f66720e commit 1a7a8d93db9b8c7ee9cba983fc6aa8576da237ea commit 6148f3653bba417488e0d289bbe60c6fc7c4e711 commit 2b1466ea19182551ceffcd6deed2b22377cb2a53 commit aeb47df35742376f2fa13ee39039f1873daee626 commit 02cae05ec4b6d6f1a1a07c98a34e69ebc1b8f7d7 commit c7703ce38c1ecdeeea6791b54fbee29a08816ea9 commit cc188a73addc8188d73ad11901b697acdc7fd0b0 commit e5af61ffaaef0e952e248de895454cd339080035 commit 5aa71bd773c390891974b1bcbdb3b12aa17c781d commit 574ff46f10102f65c40d24729197033a80458238 commit fd22013a098baca78679656d55f8fd0becb99a8d commit d8a25e48585773afc573e835a52f9cbf409215bc commit f9ed188d5a08cfacb945b21976764f57c0ea9ebd commit 69f915cc97c4bb82b34105a47abf613f7c87215d commit b06b48d7ddae440f3393e5c1ddda4d2537b3a7cc commit c8cb19c7b26d78434ec563088d5d377ec2caf616 commit 60aac460ed97852f620529f43fd58dd05e41644b commit 816d61d51a31bd16d0fec75526462dc987f09114 commit 8bbd4d83a68beaf54ae01b2e2aa2024ff1dfc0ba commit 461fa7b0ac565ef25c1da0ced31005dd437883a7 commit f3986e86b2d861a2ed2d336bafe53b5c404cb995 commit 1915a433954262ac7466469d1a4684ac54218af4 commit b010a46bd3abb161409afe147a73fe58c115858d commit 24992ab0b8b0d2521caa9c3dcbed0e2a56cbe3d0 commit 7f161df1a513e2961f4e3c96a8355c8ce93ad175 commit 123db17ddff007080d464e785689fb14f94cbc7a commit b9c7babe2c2e37a50aa42401b38d597ea78f506e commit d315bdbfebd517cf5efabf666c8099e027ef666f commit c6fc836488c2ca45c06d21213f5281d668b42b95 commit 9a8e720fd064193ef5112dcb221192fd4d0f7809 commit 74fc595465a0f8e54a71a9b2fc8552a1ccaaf5e2 commit d83d5298ba188a829558ebcc395469e39ffdc2b3 commit f9bf77df111a16d00cffc4ed6b7e374956290dc1 commit 5472b3f2d9ae65d809d0443dd8f5cc7e1b20b1af commit 5f2ec9095ce8439614ac289819a44e02f52a5415 commit 82508de228bafb2ea8f048f7bf11bb5547354d62 commit 01b94a9361680d6582dcc2a73a9eb464e0e40888 commit 14da21cc4671dbedfbe3854e495f24adac7866c7 commit 4feb2e9eb95f785ea39d5a7e69b845354c2691b3 commit 548b512e144f890a7ba4aad71985cf4a81611f5b commit 57bfb34a51c7c655335010b3168c1061b5eba354 commit adca62ec370c131ca676ea4fb2e4e450f999fb9e commit 90d4aa20c8cc76f5baecd423b5dc289b899ebc42 commit 0e05fc49c358cb49e59ce8d6ecda652951335e1e commit cecece2ca505dcd47359ae21e3b37ca1f57c08e4 commit 8668658aebb0a19d877d5a81c004baf716c4aaa6 commit 73792e6e66be1225837cc1a40f1e39b1d077751c commit dfa714b88eb0a9d763eba9e5720b089a58dc9496 commit 3fc2b087df2ce87dc11abe4a5e7a02b75b5bb82e commit 7db47b838896ec2bb57e3d0b329804b84f32626c commit d5c6f647aec9ed524aedd04a3aec5ebc21d39007 commit 77608faa77196cb0f7af3fd0e3e26051f3de1db9 commit a6c40b178092f41b9d6cc8615697c14b1e5a1c3a commit d87f36a0635edc58430e322f9e04fdf9aae6641f commit 2243f4937ace91437fb39f9b67d309c3d0d7aed4 commit 71579346991927687c76ff76084bcb1f9da410a2 commit 22b1df28c009aaf78e77b20a9cc8d8bf98e698c8 commit bdb3489cfca16815e9a737359e9e90a4af5d0ff3 commit 311065086ee15b4d5d544fba44b66349fa7cd246 commit 634b56b0f88bda4a20f88af2f3d8bb212ed53027 commit 88bc3cd8450b73ad37c9de4b48c315e6c8002f03 commit cb9561d0e3f4393a31fab2034c33c6cf2162513a commit 80ed77f971c3911d6a6f7c537540b4ee62859455 commit 683bac6b00e1158bf3c56dfd9f55ea34acebcf90 commit a3ace75cdb6979e18ec9ad00862445ff71bb8a71 commit 892a57a975c3bd51834ddb0afa5f27baa19a785b commit 9252d33df597a60416f3718b9b41457657c8540c commit 563285c85ecaa1fcecf304dabf87cbeee1ddbc3f commit 2fbdbe958a15e735a24ce33751671e9bf221e70d commit 1ec1944eb50c8de2d96de1188eec9f8b22d03366 commit 7258fa31eabd882f6c8ed4d6d281f6657a33ef94 commit d2cb0b21b8f809ae04a5c30468d3ccff2b23eec6 commit 009e9a1585059ed517b8e02d0afe11128af5ddca commit 3b853c316c9321e195414a6fb121d1c2d45b1e87 commit b60668cb4c57a7cc451de781ae49f5e9cc375eaf commit df529053590d59ca3e06d5b3232586987b61525e commit f461ea5d8dc425325f4c478dfcddc4de8e24fea2 commit 7e2aa820ac24f9d5c1fc39ef5a2ba7baf3384596 commit 208f6265d519643f380c504ee1c1ef925f2c7d5f commit a6e7a006f5d551ee0827059300148e1c9cf4f9a3 commit a32ba6bdca21fd82cacfca2aa4708cbfdac6bc49 commit e283820cbf8092c87a8d6461260d5bc525da72c9 commit 2509969a9862b522d2208e8663057fb227556687 commit 6ed19359d6bd62e993b09a7a565d7a5ce5e114c3 commit b3d9f59f69289569133730e1be019adcd9e06611 commit 4a564e59bfb7732ec168f66ee77bf1eb81ff9319 commit bcf8b616deb8794179e3e9c6233a53f42664afb2 commit a61732e808672cfa8c8c6028bcf9feacb953ef40 commit d12dd1db809a3f298b4ef6cc02ca64fe3038391d commit c17897428e1d25975da5d45d40f53bfb19d8fdcc commit 3358e2ca0ebd6454307bfb8affab35d26cedb9db commit f12dc0d8431e1fa36a3496f6a0a34edba1fea2f9 commit be78311eaa92f71d2f4c0861defaf185d799e19c commit a19c1d00b0d350fb7b75c6c4da91887f66114a7d commit 4895b90dd510b217852b3d118910f57f3f333b2e commit a874aba8bbc529517ed154d88b08e3c437564c88 commit 93cc7aa0b037f34d9a55c58fb4ab6bbd802fa47c commit ab9e00a3509ab7868cc3d4641f45ff926467b38c commit 680a5cd10b9cf4922e182f768d3a534b1a4427dd commit bd3de31950aecc29abc6e554e3b3f6883080c5be commit 0d53879faada6278209883a9eebf39b9e3a8ba10 commit 573ca6fb97c617eef263b15d982dac2f85fd2854 commit e30e6c7b82a18256a1e4ca2f067ce2b05bbc8871 commit 5f1d00420f46774fea45244effc6dbcd53cb6bdf commit 783782a52340e850840c11d823b649e6ba83a700 commit eed1a5c74216907f79f7b1af725e570e95bab0ea commit 92ede25eceb251ec31e1599065b98d681a419046 commit b874c6671b911ffab69f70b298d074a1897b8aff commit e610941c45bad75aa839af015c27d236ab6749e5 commit 7e2a4cfc62d35a7c567e7d85b0af2651cc6b05c2 commit c85bf88ba5100249451151fb1b76d2ed9e40b634 commit e506db5905d18b014aead347e37b7311858e2750 commit 951be8be7d66fc7c69fc2e2f42664bdbedb48c32 commit ed7208706448953c6f15009cf139135776c15713 commit c5365554514178840400b801787bedb567811064 commit 8639bd70497ac96a83ff26b8118afcdc45f1cfaf commit 4d7ba312dd1f94cce23f1f93f33bdf92db090688 commit d9f2303004581f767f3f4acfa3faba205c9991d9 commit 128f8ed5902a287a6bb4afe0ffdae8a80b2a64ec commit c25badd59cb4978bb702e52ee4c5b5ed1cd03910 commit 43d15db1d067e4cdceb0aebd10b9210b97899789 commit fa39f936dbb96626d3345fd8d66af6be6f47ff9e commit aa79d3808e8cf1f5fd0f1c20c2e6a6865b5b940c commit 17ce8a6907f77b7ac97ddaa071d8a1f6e06ce85b commit d5c831566d34924f62082f8b675d35c078f9b45c commit 29b440d20456033091a0376cecdc23c6875d51c3 commit fdda8f3406f98fd087784f9516b3825bb4b5f6ad commit dfcc3e8c24cc1fcdf9e14ef98803e295b5e4f721 commit 01cbf049e10f2cc4cda5570ca8ad3d0334cebae1 commit d9f8a22aaf84be5640e0fd8e2adf0ace61ee3703 commit 2019bf7cd2135bf4633dcde8357c63fdf1ae87d7 commit 2fbc5086975679a5c2ba1bac3ecc5942cf7726c5 commit b67f00e06f36192da513ac80148b000fbc5b2717 commit 35c27d9578356762e7421f16d61b91ab46dfabee commit 97437f475c5be7804592bc258e3936aa318895a8 commit f99a7eb2d11b00a20c9fd6e724c60151b74b6ce9 commit db090ff8f98d8314fab0442a16e7b1e6a33e16be commit 967af863f23344aed4353ddbcaa8d6d6727b34fa commit 79aa0367385ceaf5351ea77ea1fb66136739ea9d commit a65dbf7cded724a5ed4a5e1a718616b048ca0c34 commit a4c260de9b6bb3c54a509d24baf871c497bca7ca commit baf682144ecacae4b98597daa636ce7b2b3143f6 commit c1c04560ac038da28694a04d71958ced32964647 commit d8b746eafc2ccedfc0d6008df7fbcd96e149ae82 commit f2ed8ef31366467930c98494535a044e33a1b3d4 commit 5224f79096170bf7b92cc8fe42a12f44b91e5f62 commit dd4821baa8b6f0abceac43840673b4556bf73175 commit 2bb116c7fd1fcd80c7727be44876070d1b3ce923 commit 64b14a184e83eb62ea0615e31a409956049d40e7 commit f3f6eff85f94e742ed9f34330993cdf91f83d579 commit de7cc1b48fde1abf13324e800cecc0aad5078ade commit 868f4357ed0d1e2f96bbd67d4ac862aa6335effe commit c477eaa6a79da6af7e59f74e69af7d6b3af52a23 commit f83e14011e042adc196f1dac7cb235c70798c231 commit 4e9b1fa5a2757d11a5c40eed2b2b4837dcb2f12e commit 72b3588e27feef96be6993d493c8c76a13bf8eba commit 068001b711e820184553e90f9bf2ae18fb4c2c06 commit 20c43547add3a60c553c90b730e6cbd39c4d5c16 commit caae42f00924498e78da8a960561936aa7eba503 commit 867e24ca4945249baf34ea07ae6b27ca927210a1 commit 418abce203fc2e936bf8c7632a9a429e861f6283 commit cba07cce39ace4c719e63b0410a53480aee6aaee commit f0d540989597d04905253b54d4d0ee53cfe70a42 commit 0ab5d711ec74d9e60673900974806b7688857947 commit d01899d3db2a553268dd4bc03641d9e80e41d67a commit 8f74f68d907d2a41be211e61aaa7c9268f5532e1 commit 6b5033831febbe1c009b6713338cc9e417b45ceb commit 779596ce6a79e187995f04f143fc5ea44a565ea9 commit 91aa9c8f5282922b2890227724467de2f32fbf84 commit 1957f27de290cde5a0d6e1df46a2c8b3e9c77046 commit 50e14a62ac3a56c62c5676bbb8b39245212e0567 commit a142606d5433c9bfc68c0f40ba32c2e05ad75d09 commit 874bfdfa4735cbb1b0d6e0c6157c712a312371a1 commit b63c54d978236dd6014cf2ffba96d626e97c915c commit edf176f48d87fa25ca93f09362707cf5314bf7ee commit 84073e568eec7b586b2f6fd5fb2fb08f59edec54 commit b71a4a2542e1b092b4f11ce6318eaf82619312e4 commit 9b43698af7c36361c340b95c9601c54523da4f2a commit 7f088bef6b0cd976b5d39eee5a4046ddc920ff29 commit 77f4ec2a4111f1dce0c5903d6db7887413a0a750 commit ed0ccf349ffd9c80e7376d4d8c608643de990e86 commit b70ad01a22176b6d903e9cb2f2184c2aa67ecee0 commit ab597bb3760ce2e7a5c48755cacf7df8abfcda6b commit 79af2404e537e0f74798faa0a26bbd374ece27f8 commit f470b218b0bb7c9bae8aa2b4859d9a6bf97d98d1 commit 61b3b2da10dba0ac1633c699c9d305c702b43720 commit c94d13e9d99bc0432cbcc2371060acf5e10cd7ca commit 48bb92d91ae9331138656f369e66b5cab8f0fa7e commit 89bfcd82b3452b6e47ddd9d573add43dd7de54be commit 93afe1583758105ec390ed130681bc7b70371b7b commit afc2f276057ea1eb165c4249d15cfbc1954411f0 commit 87b5e77f02da9444c630b1860b9f384e805eeba7 commit 935ad3a74c7d231b82e7fca15899a5cab4195b95 commit ec3ca078850a3310c9a393866418c85b7e6d40f8 commit d7fd297cb0f19a87c1eab63fdb90f8ce8f03a533 commit e8c487a6b70f060cfeabf3e155c9daafd627617b commit cec24112e125a228d5077eb05ca793398de619e3 commit 068ea8bdc0aacb3bba3d1392ed41cc1116a671b8 commit 62640f251f4777cbed654e59827fccd3b4c94bce commit 5b723b12301272ed3c6c99c4ad8b43a520f880ea commit 574dce2d2414f7d782536fbbef7d20d1cf027e69 commit f9490399614050a47472ff127c67830cb4e311f4 commit b9d7eb6a31be296ca0af95641a23c4c758703c0a commit 92d0c2ebe564f492ea71bf2ca81de5d95d58d6de commit 5559c7ba93fa6adcfe6a39ed80081466d8165e5d commit 9cc57625a6f374174f716f87af3bb5df87118ca8 commit f9806a172070c2d6094b0a9e488c8c172a6f35ab commit 0b208d60adffb6b3dde41841ee423fb5be0d01e4 commit 501867d0d2a6bee3ec18a6471ad99a7a1af47e08 commit b5b8ed444a7fcbf5229f0469f85c752b5192a9b1 commit 181ebed7dcfce21dc152c3b473e3d44e7e94bf27 commit 8dd8ffb824ca7b897ce9f2082ffa7e64831c22dc commit 6b728595ffa51c087343c716bccbfc260f120e72 commit f257879182867979e64ea8940cccd52e9a01759f commit 1d82ef6552b5b3e8450c49fda90a82621fdb8142 commit d1af7b6f91a56081165bf1c1220bf1e0d9699d29 commit 9b693453a4eba392bbb62169243f9513366a253e commit 2f8a6699c90df7616e5dd03cc0c6ea22d589eba2 commit 8c26491f58538ffc647b813070ba493e35a48984 commit cccd73d607fee52f35b4b030408fa5f6c21ef503 commit e62f25e8b3cdd29224c27938addba817aedd4b54 commit 132aaaf01788d5603a1358cd53a95e5367fd612b commit 87bd701ee268a13babdfddea53894a416209123b commit 5189e3126eb136a2cffacc708f08ca4fe86ebcf4 commit a413c99fc1e49db4db27f4bf0f7791011b4e2132 commit 2cff4b9ed6171c61cc50c38b25534f7c3d30db3c commit 6f84aa1cd47cc0feb38da76999626051491316d7 commit 00e27ad85bc9842e2a775765597e6fe4b6beb584 commit caa574ffc4aaf4f29b890223878c63e2e7772f62 commit 5e3094cfd9fb313be3b8fbf9f91e92a30483bc28 commit 4b31b8e34460af9b2eff0d389a6caefcb694a1bc commit 994ea402c767e54af60f1d01f0c16520480466ed commit e78089da45093e0f421b933849c56b7bc21108c0 commit de45f0a3bef63a754839f008bb0cae86d8f501c1 commit 8f0991cccec93665dd6ecd88dbefd7db2b28c85e commit 72935696f516e3d587838a9f0e1f82d251925840 commit 2b72a38c6f9b9809cb09df4fa5aa886aab6bf05a commit 3c0deb1485c49fb282010d1add65514906ed8928 commit 602e604a899a0d06afcd69c693f15c5fd91742d8 commit 55223c3bedcffcb81400db7f1ed1f207d523eaba commit afea229fe10282da14595870b44f82792451dfb2 commit 476e4063022787b5720758239ee4c22fa2495e82 commit 95ee2a8b4b3cd1fb25f7e14e2202da4045030173 commit 64b2a6a054c40c04a4e48fd70002570654381f9c commit 9648f1c3739505557d94ff749a4f32192ea81fe3 commit 0591ee6a5c428c2309f5fefcdbe40d9eb669634a commit 757f9e4dd51644729d27c9b5e56f75681e8f17d0 commit 22804e03f7a5ed35d86721d037bbf52fbfd0369f commit d4a7eac27ec2e6b5fdb64066e967fc7767cd4574 commit 7342bf6530a78ae80b27d9a13bb10a409fdc20ad commit f141e251474d673f75e8c16dbdabeb4da3939d7e commit e1dd4bbf86d5e1e6ca2eedf9ef9ac680dbdb3132 commit cec2cc7b1c4a31c0facfdd0ee7c2ffb7d6a76556 commit 9dff13f9edf755a15f6507874185a3290c1ae8bb commit 091cd9c3abeb68981552557676985eec761d6fe5 commit 9bc34b4d0f3cb368241684cc5e0445d435dded44 commit 02ed904261481460e6084769416e7ca31bbb92eb commit 390a1f8beb879359359ef38d30a0b0ccf392148e commit 8ab62eda177bc350f34fea4fcea23603b8184bfd commit 3d515ba9ead046a0c06a461697a8d5211298aadc commit cb8f00f27ae7a1e8d047f1e2c96acc257f09d51b commit 92937f170d3f49f41d7acb86243ee691a98eb2be commit 4010ce9fb634c6368ebb9dead9ef83d49c4dde96 commit fe93feb5ab0f6eb1a08295dee51b814bf7227799 commit e6ff5ef81170e11dc0f196b0391f708f04fa8c87 commit f915686bd97a9c234602426e6d132b74a112a8d6 commit 94eb6b244c7cb0fd955f712d38a8ad9bfc7740a3 commit 03a62c40544c057a4b0df86b7c4f17da7f7bb2ac commit 7d7007686b0f999f90690d27eb013aba2eb8dc30 commit d95c25668f2379c807e1fa6328954f494c4e2454 commit d5b8da37c017b182e121e6143979bb969833f482 commit 6d8ebef53c2ccea482ed77769b7b5cbb453b7715 commit 94fa115f7b28a3f02611499175e134f0a823b686 commit b9ef89392c2ac694a3e5624cde8f848fbf393818 commit bbd57d16d5ddeb9d8995a6ded81a6879be6af928 commit e460f244fbe847904abd767e4ae093bad699f218 commit b887d5f9b9232b556fa324e77edb92039e626f66 commit f113cc32e35b5503b268f0bd891fa2b7d6d12137 commit 8f7519b2f3a93f6eae76912be66188366cc47aed commit a0c5fd46b2510cb054bd4e1fa6c2f207424c97e5 commit e7c4723103dc58c3d86fc7bc4e03c2ab500ef8b5 commit 0b1a63487b0fe45750528f89ea688eda2862dfa6 commit b784f42cf78b08932b837b5aa15d620520cd4d95 commit fd546bc5ad909f7ee67f90d91d4882f0fabc7edd commit a7f520bfd0551f9fd672b45b9b3cc56ab4275128 commit 5a82b018230b3947a736f45afa95cab434455248 commit 4683af148fe8f94383ed867ac986fe793381e362 commit d41ff22a4eefe2b933a82c0d3ce8ff47fa86e212 commit 78be946dad6d9f888726fbbb5de81b521f156c01 commit 23da6e0f7d5ebdba2b18ffcc228130a33d5411cc commit cf51c8bc5c0085e77ed956306ec7adbdb7bf5ab0 commit 3679b8518cd213c25d555553ef212e233faf698c commit 3a4bfa509eb0f73daa2e30e409ed907f2a7db82b commit f3067604b8de052c6a1c65eed3305cb6f3f9eb18 commit 2bdcb12ff69df5e42eeebb297ddfc110ee8af203 commit f11d9373b61598f6a231dbcc74829c2f11dd567b commit e0adbe73d75e46e3665cf0fb30f2cfc00dd78c04 commit 2e6e14c9e47dac61e341d4b8128184e3e0eb3568 commit 3e6084aee08b108f5cc489be46c68ba56b13e52e commit 10a9accd4842e6098cc27d79d43d7542254003bc commit 9ff28ab43af4cd9f1771779b502cac1bd0aa4264 commit dfd9be42344d9d3c1ff23778923210301ec5f372 commit c595fb05e392a5cd17c70c4fd996b8cc9735f20e commit aa34ca52a325d9a547158cdc8644f4c21d68562a commit 301306a90ed3b2311f7f2eee6fad239d3a65fac6 commit 5ac34ff1a41b05c3b22f8b4ce4bf7181246c8bc2 commit 0c41b9b561dbd81dd3955c4c8b59d55244a80100 commit 29c9b6cd581de79ef848a50d1c9f06cf567bfd78 commit 504390602444a209a52bfdcc59f539e9832079e3 commit a1235a01e0b208d424c5e72ff2e794dd356f74e4 commit 9e148e8ce29dba471d4812c6a60a3e843f3b6270 commit db749b769ff61a42480c377c30df70b8b722041e commit b74e2476efc40b1a4d895befc31fa05bced5f3b8 commit 5ce5a584cb826f1c1f0625a336134feb4e1142cd commit 15fd09a05a66216a9ad772728e51290f6dea1eb0 commit e2573d5f2a5cebe789bbf415e484b589d8eebad7 commit 5b45b1c8b89f84d01fea8939b672631b51cdf95b commit b51178d6edddbfc8cb4da5b5e9c924f2d24bbcac commit 203bcac9bf2c5676bfb0b33c7f2403ea5d6ed332 commit e776a755abf0dbe14001e4db22aa1ee70290c1dc commit 30424ebae8df0f786835e7a31ad790fa00764f35 commit 24c6bedefbe71de94455032f82cdff2694c002b3 commit 7f44571b53fd07e36ae4d2537a6fb40d79b39462 commit 54f43c17d681f6d9523fcfaeefc9df77993802e1 commit d814833f9e0e1fec2286e7d65c386583139c6a74 commit 4f0f1b58fbacc3d4f60e0cf17b01a6273df1d415 commit 45f0ff404cc92cc97569333314b47e1654a0491a commit 0bb319e7a1146e15f1919cfbffe44831c29e8f82 commit 158a05a0b885f456a86720b9b6b4571943d2e307 commit 2656fd230d21ab765eaea24f6b264a744919f13a commit ce075e75e5e3b1274735118f0a417e79d68f426a commit 8054e2f01c2cd287a3872baa02e30ea836ec8070 commit b3e8239882d9f5870bcd78baa342b0cc42c1fbb3 commit b83e1ba9395dd39f6336358dd0cbc8ca6ced21e7 commit f728eb3a5028aa87ec85f0de5c03daee78fdc544 commit d4da1f27396fb1dde079447a3612f4f512caed07 commit a2151490cc6c57b368d7974ffd447a8b36ade639 commit 0904b83e0cbb3dc1b8d5c0b1a5daeca725600eee commit 11ef5c77abc29d78ccedc26d01deb0bf0b2130f4 commit ab011ab6b007378132b242e6a70813aab3afc2c8 commit b8986c889e7ac26c57cb548f8f344456fa925a2f commit db927686e43ffebfc5d1693c1cb4fd74f462d99b commit 8fbf28934acfdac08073a2d5697c7cacae8d3997 commit 80253168dbfd256bca97cf7f13312863c5a7f2e5 commit cefbe724960bb6b40c019569bc42e02327a09ff9 commit 111aeed25ec6bf4d5b4a7b4cb5654f002ba9f795 commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 commit ef0a04a010e2a521c927b071d6025c12a415747a commit 9a48ab11714c955456fefdd4ab532d324fbef563 commit 1be6b46f731392267eeebef9d59600ff9999a987 commit 9659dd2b308bde4143855f5b57b0412be466eb8a commit 1c0b1175e6f3729c91835f179eb9c97b5067bb3a commit 91a33f7e20700d58941b38bcf8eca0d0b281ddb0 commit 219aada263f909d61443a8d1196592797c6e0281 commit 2dce68fa325ecf5be7007b9e8b13174262a185cf commit 4801b99588a2e022da50e43ec5f768707de3f862 commit 98529e950d4cd25c05643f9811e2387df58bc6be commit d9a5696e7d52edf68776599f2a38b9aee1382be9 commit 58fb284c52b6262b9bd43420aa39124c39e2342a commit c723b8ee3864bdf41cc560da958b7ef7f6138f0b commit f3d45c9d556bf6174258507e0e10519ab7f5679f commit 5fc83950572a65d33ccd661cd9d8be7ab885d446 commit 691ebb1109c97da2943e2d753add9ad5fc63200c commit 0df0c76cc3fd99d72bc1b18eae25ee3e8fb9d1f7 commit d2cc01e1794bd13199f7568298614f1bdcea1683 commit 6c64ae228f0826859c56711ce133aff037d6205f commit 4a248f85b3dd8e010ff8335755c927130e9b0764 commit 235582ca96214b50fa03ea77a5e85e59d94cf358 commit 3312a4ac8a464daa66b97452ec148b69c5959bec commit 30b9d1b3ef374403652fc10fa36b9a5f32cc274d commit 26ffcbbef712f6fb52f16e6f7d5cde736b80d8c4 commit f9eb742988e20fb86926de8ad18d7e93b53d1a62 commit f199bf55104d480370515bc736418808e5cfa6b9 commit 2d45f66887055e169173345a7e6249ecf3ee7e21 commit 5558d6c23d18f2143f60d7bb387e43a5d8216fa5 commit 95ae342dc939a220b7afbd3a65f7106258f67cad commit 1e7e8e18db0fdd4da4e91597cf4d59265b8f351f commit 0e65e2e6abb09d84a75c51999e3a6cf80f30c929 commit ffb5c099aaa13ab7f73c29ea6ae26bce8d7575ae commit f85b3f806e4d43a0e3e5c042f40b7fe5faf2f6cf commit 7eef7f670086f06b3a461f1b4d1e84f793ed4861 commit c03d982670335d732e5d623af31c126387ae126a commit e22dfdb63df36427067fad6b9bfdc8c08371ab38 commit 38a15ad9488e21cad8f42d3befca20f91e5b2874 commit 9373505967ffc1b7b8331a21ba86ea436c09b981 commit 503725c2d9865533b2894f7363be16c762260b7e commit 6e0c5bf0cc1369df0057bccb3fc1af3b38d07e32 commit fb87550d2517878ebcd112f080865a2dc38e9bae commit beac7709e40ba85e0827ffe0c6f3d6840588db31 commit c803ae6d826e441b65b96133ac573c0062740bc2 commit eee5215bd784eee5f8520f2deebf437c3fa95abb commit e068ef3fd5a3574359b80ff823089ca59057f9c8 commit e2a1e7abaee128020fde54d386ec8959b1e9eb61 commit a8b2b8b06e10224c547d90ea97c483b4de511b22 commit c0bbed9051b6eb293be6128d060bb49e999ef7d4 commit 150430366b2dcb170d309952143e32eb814fe7f8 commit 944823c9463916dd53f365e9aa07f23360968080 commit 4b88ad503d6d2ea11891a355e656bf428ec815e6 commit 505c4857fb13fb0ea88a42b843c91d0b9f8231fe commit 803efd297e315859ac7830445699f01eeb1f7822 commit c674c5b9342e5cb0f3d9e9bcaf37dbe2087845e5 commit f4c1fdb93992ffc55899f38ddebcc0e1c390226e commit adfadb5638bf32e97326ec05ae379be561e13677 commit 87cb6d80f2d196427e64d2e6179ee9b1a3609dce commit ea4ca894a160002f4488324ec39083d992cc7163 commit e393e2aa0ad7ae0d187de93f4cbcfc480d28b5f6 commit 88ed07cb2737e15b7ea412dd8ab37de2397cccdf commit ff6b19d3a0f939465b1e40040c4c4869154bf516 commit b2006061ae28fe7e84af6c9757ee89c4e505e92b commit 5e2421ce79703b969eeb9684cedaa76be5305ddd commit e41d27eaf5485df99f366bf7c5382375bb2c19ca commit 52e8da704d8d3ca8b951fbc39cf8d6bce5c33db8 commit b8cb6ab68674d7889c0dcfac2d542a63b9e36d82 commit e433d6843310a259f0be18c80de26d75b9f7fd35 commit 38abd56bed580c98e4284a578380f5f70634a0fd commit d58b8a99cbb84c1eb3b3613d23c1a328695a9455 commit 1e242bf8bc1b37c74619403d0dd59d0f862af943 commit 6dc0fded62806373855350ec8c3ccb1567ddd465 commit 4affb123033851381dcff4887982f6c7bad938af commit ca6fcfa8d4461c889636ef5dd51bdec96c6122bd commit 91dcfe5fd9d3a59aec4a40031c1eef00b41b8f74 commit b51759661e2987993fb49eadcc262d6a2ab2a698 commit 01d468d9a420152e4a1270992e69a37ea0c98e04 commit 667c7091a39e8b360d34f37aed5f8dd85bdc45f7 commit 1f211a827cbda87bd0ec145a1f44f2615c3f56d3 commit 35366481d0941e9b470ccf09d85407381b5d6135 commit 9dad47c50f9bf19153c092a73eb4721344f4a78d commit f578a37d19c65361e141735cdcb691d3930b8647 commit 0dca257d6dc5526c4c293f306b7b47765987de22 commit f148c143ef3f6e897f4a1012d1bcae3aa240bd8a commit aa8e65dfc75f684cd46d49f71453ea3512a1e770 commit 149d7ba1f8fe515a2a36ff95fa659720e72fe4ed commit 30e58102d5164ce5df10bbff4c9d05acbd12a5fe commit 80e0c2cb37b6e00ec0b41c7670e24f72b2d54ceb commit 957b0787ee5d5c0848e2dde625c09850e1ada22e commit 7d4108e4ceb30a89c63ae62bea284cf42985cf31 commit 57230f0ce6eda6d47a2029b7b3a39cc5bb63fe32 commit 5aa061474b1e0cc9605877190e23a880cf1551e4 commit e6fac6a9c9eb42a9362f9f093dcb8862f2b38383 commit b6901d93cc126bbfbdc6caf5f0c03b82945e43f2 commit 00bfab4457c2b57897ea710a423684979c5b0239 commit 9a1358bb2ce3738826bce0799d47d6963ccb51bf commit fabe1753851c62d0292a39d89a4a8d7f15c96794 commit d7709eb6a197171715f370227173e817a3da85c8 commit 7952fa0d3e187504d509aa32f46d4d430e4eb634 commit fe5e8f07fc25c850e4f46967699a9b29b0ef647d commit 45a3e06be4d351af8f81b43407b3eafa5c75827d commit 1b537e64105dd8f04c8e7d5fbd8e97f9dda2dadd commit 31f5f46043c7e7fa453b0b64ea12073d524e2150 commit 825e0af0d453f18bb84feb40bff447cf59d61979 commit 3192f1d9b61a59d7c82fef187bffa7281fbdc9f5 commit 701920ca9822eb63b420b3bcb627f2c1ec759903 commit 730ff52194cdb324b7680e5054c546f7b52de8a2 commit dc90f0846df4870b6cc8528c31e5c60f18fb68be commit 27674ef6c73f0c9096a9827dc5d6ba9fc7808422 commit c9e9ce0b6f85ac330adee912745048a0af5f315d commit 2ab82efeeed885c0210a0029df93bb95a316e8c7 commit 863fa85e6a01c8b239009825dd9de1f64d7d020a commit f70b88b994a35755f1a065ba4b43d2ad4b401e15 commit 7a1bae874b5ec07ac97f02018dfad73fb9bae567 commit 5f5d08b7eb0ab09700b22bec2adcecb8a1de1120 commit 575d0df6dae46f1b5d26a35ce0ccbc5aafd40e1d commit 36b362f5af1ee23ef502b519c2a8e2d273b2f156 commit 493a7508d737a03b620bb0806e222bd39a9ebca0 commit 90d282582aa709eeadaf33db71e92718c9471e31 commit 9e08564727fc7770b30715fb81348aee54fa50c3 commit 24bf9fd19740df5aedb3bc801206f81dcb4acc4f commit 811c04dbb3dc43304b35688d4009117e28c1e9ce commit b6065ebf55ff2fe3dae98e7cedb6ec4aa3c33f91 commit 11eb648d014eb9e80bf553004551dd6694dfb5a0 commit c8b0507f40deea3d5014b5b4989b6a06ffedde70 commit b664a56e8626264276ee27edf949e748f6be52de commit d18b8eadd83e3d8d63a45f9479478640dbcfca02 commit 8c7442f026d2e36e1185b9dd79db51601d875b7b commit a190f8dc4aaf6064527bb81c07f7cff1904dc927 commit cdc7893fc93f1969038ed333b33eac1452c8d255 commit 6103b2f24e4a9716ca3f5de654964f2a083086be commit 48e9fbd1a28480caf2ac5ec6fcb79ac221735c5d commit f7ddbf5581b474fe4a0a29244acaa1bf72234675 commit 90f45c42d7d7b0ec0fd797485c07fc421c474e12 commit 17154addc5c1a175bcf3441ff0d9598efa1f05cd commit 43d26c4fc6c446d766253d546f0083d78023d34a commit 53b97af4a44abd21344cc9f13986ba53051287bb commit 4fe4ed07c815044755075eaad5fe1815436a060f commit 117f5bb31c8cdb1e8f0b443f2a0ac761bf54694c commit 176c0b55d9bfe6e2a7c8ccf3edaec7c92d856b2e commit 5c8107dc9a9f33a88a380aea79be564597d00663 commit 4546281e8ab215b2beaba8e79975c99859a84a56 commit e17c6debd4b2d2d474074f83946f8c6522587566 commit 5e7f44b5c2c035fe2e5458193c2bbee56db6a090 commit d55957fb299b74829c438f77fe29896e3aed39fc commit 96a2f0f2c8006d338a9647e068a15c6eb299f864 commit 482d7b582d7f9688a5f64ed2424157a76a17f2a7 commit 955ad0c8ba93256c9eeeefde5644b3480c1ddedd commit 1d38fe6ee6a874675ca3bba6b48e69a0e6176ffc commit c1593ddd894d0518fc96fe7f531f3a5c919b8463 commit 60a9bac8ab48ddbf68dc280cd26879583e9d72ba commit dfe3da812d99b40f99ce018152db4b3a87bd86c4 commit f8d81df285a2fa2e739a9e4774e413ac778d282c commit e96902eb8c69fdcc55fa6beee796c6b34613e0fc commit 37114e4d1547ed230706d07edaee2d2b4b3215a4 commit dc593fd48abbea1e840c847c464eabc9c6bca180 commit 4e6c91847a7fa94a6a0caeeb388718b8ae005d56 commit d5109fe4d1ecba04d3f6903ab0421188d1420d22 commit f321c35feaee8dbde551775210ae3d41534b7a20 commit f6d790e5a7fe42706756c7fa1686d08d230610fc commit 1344794a59db2bd44b4919d2d75300fd3b1c2cd7 commit 3886a86e7e6cc6ce2ce93c440fecd8f42aed0ce7 commit bb7c3e9ce2d43a37b699ca379876089e03a756e3 commit 7c916f95f58df401fef4f8c7549aa80a5739b0dd commit 3b8b44a431b76be2645806cfa0494399c3dbbd85 commit df5a07c45c68fd85cd4d1a4ad7892d3a717a4ccf commit 4984e3aae6fa4f42fc24f2745b74509bf2cb0b03 commit 4189f2938d49d4d6b2e2191c86000c2e04ca7305 commit dbede77ce38df760bcdcbc53287e8673fa65982a commit 3741584519dcb780c38df502dd5e4cf7cea4d9f2 commit d8ff38d8fcd0a7bb66d17ec689135239aca78532 commit 53923e62afad6f52b2b931a74d2ee10274051b28 commit 5fed53c7983654b1658c49a030ac86bba7965fde commit 305f098020920f9ea6ff9162ee46392f4d67e67f commit 76a52f36b636cdff6b5b18f13daf05005e4b0b57 commit 4a897de1d607c15ebb9aa11a424ec3f3243304a3 commit 4185f99094d50a2f402153ff8922bc694f5f6d96 commit e7145aaedd55b19ae4e8bd25cbd4ef8f415b6b89 commit 6e899860f557fc60135506242cc3fb705e64b718 commit 9c1e260e97606330518a78422ae28d9d56ac87d6 commit 84ce38c7bf7a19fb1f9cc61181e830b7e04dd51d commit 32685b32d825ca08c5dec826477332df886c4743 commit 44ca49f046f89a97ad319372b4fdbde67da1b6b3 commit cf689e869cf0339c387397c7a6805e387594656d commit 22f87d99832650d9389b0b3d08f3c970afc53f10 commit 6e6faf7a8364c77f4021f44043a5a5cee91f7025 commit d510eccfa51e09f5e65621a2e8d41f58a8dbd3ba commit 69691c823531c36c7283ecaa040e99e9c12ece07 commit 8718ca1dbf497c302df989afaeb82f05f5a3d961 commit 2e9fda82c98b1e417b90ff5a2f8b8b96cac06fc5 commit 67a359d85ec2679cc8e11b16844df960e3b27c24 commit b38c074b2b07349097d824e3c6c49b5ac8d98910 commit 65722ff6181aa52c3d5b0929004af22a3a63e148 commit e7031d8258f1b4d6d50e5e5b5d92ba16f66eb8b4 commit 0fe382fb82dc6cc6eaba6534d038dc381e2b17b9 commit 6f172ae59a7577dbb73e2a8da18697ba8dc56341 commit a03b288650abf2a92d5ecdaa737e3d04a2a77984 commit a29d44aea1aef0bc58d4951f2ddbe5b22d9a2e94 commit 85ac2021fe3ace59cc0afd6edf005abad35625b0 commit 72a98763b473890e6605604bfcaf71fc212b4720 commit 436afdfa35dc8aaf43959593f6c433d0ad29abc3 commit a0248d543bbf2a977e7e6d9966ce8d96f6e5c358 commit 10499e4055949e4682d2e7c428365175e99e0800 commit a18112ae72d693bd4eb79f2ec09b536eeacb902b commit d853419f5fcce39553ce0f6837fa122f113b15b6 commit c791d75a64f5c628a9c9a7d9b9ec01ef0357e6a3 commit 906fbba2c9d48678fd182d0de4dd193d9dd0cc9c commit 3a0625813bacf12bf188f8242b42b508af28baa0 commit 2716bc822e2325efed0731d6a6a7dff755dc34d7 commit dd15640bcee5a5fa74fc52557dd6220f48b01116 commit a91b402d50072e4801b231925f33574f90e562ce commit cfe7c679412f14811cb3c4119c8025cb97564c48 commit fdf0ece6309d90dc0f9388001239cb2d12671af3 commit 8476269f758221863c01a0a6cccb0d75ec5d60c3 commit 8c0f11ff3895ec96c9523ac607dd51f812ab69a8 commit 4e2f50e2306fdd0e5fc7db3d9a452ba1327b787e commit 9527b9caf82b040e794fba2667f6d8a85a793bb7 commit 3f543552846b9ae47c8442af1c506207bdcc00d2 commit faad5ccac1eaae584f9ac2ea66278bd137edcbe3 commit bd4b9bb77956639e6d9618ed306cb2264c69ba49 commit 58398727e6f4955f2781e93517b8f0a3e8f22e75 commit 28b7382621f0a83f1db795f36ee0fee6f66c10e9 commit 508a47d434bffde45ca3cdb8ece186f28f9d84bf commit 1cbd78879b5f889355b2a6343ea5db7e633438b0 commit 07d01469325c87aef4ab02ad4ec31d73321665ee commit 606d5877592b0a6f945a68399c870ba9d2a9ff7f commit 426c89aa203bcec9d9cf6eea36735eafa1b1f099 commit c94b731da21f10086a9e52d63c21c730e3f6c939 commit 3a84fd1ed53582b31e843a152ee3219e9e4ccb8c commit 278da06c03655c2bb9bc36ebdf45b90a079b3bfd commit f11de8611fd6bb15bd979bbe5de0c4d59452f8d4 commit d14eb80e27795b7b20060f7b151cdfe39722a813 commit c6e90a1c660874736bd09c1fec6312b4b4c2ff7b commit 1d204ee10817aed6666e020ef1b4c643d68bef11 commit a860f266a0e19f271b839451d291a6acf6ddcfe8 commit 9cddf03b2af07443bebdc73cba21acb360c079e8 commit 1937f3feb0e84089ae4065e09c871b8ab4676f01 commit 3ef8b5e19ead5a79600ea55f9549658281415893 commit 00f4150d27d2c01eaeffe1091fc311a7c0872c69 commit ad9c6ee642a61adae93dfa35582b5af16dc5173a commit c5c948aa894a831f96fccd025e47186b1ee41615 commit 9030fb0bb9d607908d51f9ee02efdbe01da355ee commit 5662abf6e21338be6d085d6375d3732ac6147fd2 commit 7344bad7fb6daa4877a1c064b52c7d5f9182c41b commit 3ce62cf4dc3b01d1cbee1293049ca5d4c7d6d749 commit b14ffae378aa1db993e62b01392e70d1e585fb23 commit 21050a39a3b676fbaed4ad6c5871b917a91abe9d commit c73c3576a2227492b448f9be41428ce6a0b5855a commit 34af78c4e616c359ed428d79fe4758a35d2c5473 commit caaf2ae712b7cc3c7717898fe267dbf882a502ef commit 64a8f92fd783e750cdb81af75942dcd53bbf61bd commit 519f490db07e1a539490612f376487f61e48e39c commit 32f90e65251981f061eec883b0fe9e75d74e9665 commit 2d505453f38e18d42ba7d5428aaa17aaa7752c65 commit 60d61f4ed6ead43ad2de31ebb8d1d27c57290529 commit 1647b54ed55d4d48c7199d439f8834626576cbe9 commit b818a5d374542ccec73dcfe578a081574029820e commit 0d8e4eb337644cab528ff3844675d58496ec22db commit 93dde6ccd66d29502506e95f568fd0f49d575d27 commit 3107e1a7ae088ee94323fe9ab05dbefd65b3077f commit 5e8a71cf13bc9184fee915b2220be71b4c6cac74 commit 6bf528ec91fb96e186461215c8f76265c5a35250 commit 7d56a154e22ffb3613fdebf83ec34d5225a22993 commit bd219322dbb41cc7c753da3a6936ce09d502f113 commit c9fbf6435162ed5fb7201d1d4adf6585c6a8c327 commit 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 commit e5fc78252ccd8dfc260f87d83905e9dffff6d975 commit a572f7055067d95455850fd242d8b54ff5786cac commit b7dfbd2e601f3fee545bc158feceba4f340fe7cf commit c5650327aba02d15cbd6a1846dcde9231493d549 commit 6ea239adc2a712eb318f04f5c29b018ba65ea38a commit ebbb7bb9e80305820dc2328a371c1b35679f2667 commit 5f3854f1f4e211f494018160b348a1c16e58013f commit 7057c81773ac32fd0dba00e2bb869928f008d3e2 commit 609910db56e72e87755d9745442bfdfa009dc61b commit 0dc386add50b07e1cf9341b4e6e4fea77295c98a commit 15f9cd4334c83716fa32647652a609e3ba6c998d commit 50560ce6a0bdab2fc37384c52aa02c7043909d2c commit 148a650476955705482dd57e7ffcf105d8b65440 commit cb7cbaae7fd9cee64f19cdfd89d097d807b884f5 commit 266d17a8c0d857a579813ad185cd1640b0d6ccac commit a701f370b521b2ed0654a9da7cf424b3ff8fa73d commit 21d139d73f776aed1e86f3175a1e9fb8a10930c7 commit c42ee39c1e78224d3a81bdbe0600abe4581226ed commit 67bae5f28c895f8737a1974c3f31cf12b9170b14 commit f444b2d15f7a025416ace9ec298f0b93ef68be68 commit 38d4e5cf5b08798f093374e53c2f4609d5382dd5 commit cf5c5763eb531ff5120111ad300126e926fb5a56 commit 13043d1a12c54d8b6605bbead5e177e9fb98a287 commit 945da79e6dd058be70bc47442dce319844e14daa commit dda81d9761d07541c404dd5fa93e773a8eda5ddc commit 862a876c3a6372f2fa9d0c6510f1976ac94fc857 commit 95707203407c4cf0b7e520a99d6f46d8aed4b57f commit 58e16c752e9540b28a873c44c3bee83e022007c1 commit 83e9faac9a387894e945e7f33c2bb7a9c348257c commit 2944dbedc7e167221fdb99531f7b0cdbac9ac696 commit b2075fce104b88b789c15ef1ed2b91dc94198e26 commit f4346fb3edf7720db3f7f5e1cab1f667cd024280 commit 4052287a75eb3fc0f487fcc5f768a38bede455c8 commit 96f2b7a3571618a1c8aed694c9e668014c70898b commit ef1a0808a2e20c58d166c5707864fba515832bd7 commit e79a2398e1b2d47060474dca291542368183bc0f commit ca1198849ab0e7af5efb392ef6baf1138f6fc086 commit ebc002e3ee78409c42156e62e4e27ad1d09c5a75 commit 7e8906dc2689cbf562ce520cf4a8ba5b495db0f6 commit 6e93d5b0333279d8968a2972065f47a899fb58b9 commit 879791ad8bf3dc5453061cad74776a617b6e3319 commit 28c25238898a242c58bfaff3f46a006585c2dd94 commit 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb commit 72cfb835e56f0eec18f934095fc1a52df1815f0c commit 691b592abb9a5f2b331969393bc06fcc8b564d3c commit dc7d19d27d019d223e74f2f47ef47e778781cb52 commit 995f74807329c97e0aa7449c7a8345fce978a2c4 commit 88711fa9a14f6f473f4a7645155ca51386e36c21 commit 1acb34e7dd7720a1fff00cbd4d000ec3219dc9d6 commit 022074918042465668db9b0f768e2260b1e39c59 commit f8e6b7babfeb40987e946bc1427609a9976017fa commit e4f1541caf60fcbe5a59e9d25805c0b5865e546a commit e3cf2e05441a2c5107fbffadb5b7943113ee11dd commit 887f75cfd0da44c19dda93b2ff9e70ca8792cdc1 commit 4593c1b6d159f1e5c35c07a7f125e79e5a864302 commit aadaeca46ce54af9f8f494792a1ba47a6fbda7ba commit 8e401ff5380a921c309d4c73cacf27b0bdb5f168 commit 9df1e3ff60241ce3fb26db75933970dd1b871213 commit bb02330408a7bde33b5f46aa14fd5d7bfe6093b7 commit f92055ae0acb035891e988ce345d6b81a0316423 commit 5f18c0782b99e26121efa93d20b76c19e17aa1dd commit 298799a28264ce400d9ff95c51b7adcb123d866e commit 169466d4e59ca204683998b7f45673ebf0eb2de6 commit b089c0a9b14c354a0c3a421e09af3208cb7c232c commit 94f4c4965e5513ba624488f4b601d6b385635aec commit c18a2a280c073f70569a91ef0d7434d12e66e200 commit ed911c9f9dcb26849fa688225f002ef2f2c50cf4 commit c05d8332f5d23fa3b521911cbe55a2b67fb21248 commit 4ae4dd2e26fdfebf0b8c6af6c325383eadfefdb4 commit f7e1089f43761ca221914aea9a755b23dc7cbc33 commit 7c6b6e18c890f30965b0589b0a57645e1dbccfde commit f567656f8ab82e43815d8d071d9864941b613a82 commit f95af4a9236695caed24fe6401256bb974e8f2a7 commit 65e54987508b6f0771f56bdfa3ee1926d52785ae commit a71849cdeaec4579696e5e1c45d9279f7b7484bd commit fb8cc3318e47e1a0ced4025ef614317b541147e7 commit 9d9f720733b7e8d11e4cc53b53f461b117dab839 commit 841e512ffb64898db6322c0619f6bbc41266d86f commit 19965d8259fdabc6806da92adda49684f5bcbec5 commit 3dfe85fa87b2a26bdbd292b66653bba065cf9941 commit ca5e2f4d6b677efa3f43a6790777e46dcf806e4d commit aa482ddca85a3485be0e7b83a0789dc4d987670b commit 9b9bd3f640640f94272a461b2dfe558f91b322c5 commit 87fd2b091fb33871a7f812658a0971e8e26f903f commit ab244be47a8f111bc82496a8a20c907236e37f95 commit 3220c3b2115102bb35f8f07d90d2989a3f5eb452 commit ef3a6b70507a2add2cd2e01f5eb9b54d561bacb9 commit a56f445f807b0276fc0660c330bf93a9ea78e8ea commit c65b364c52ba352177dde6944f5efaa29bd40b52 commit b7c15a3ce6fea5da3aa836c897a78ac628467d54 commit 5005e9814698f47c5a3698fcc56c9f5e6f1d4644 commit 370704e707a5f2d3c9a1d4ed8bd8cd67507d7bb5 commit 1d6595b4cd47acfd824550f48f10b54a6f0e93ee commit 3059d9b9f6aa433a55b9d0d21b566396d5497c33 commit 21d1d192890ced87f2f04f8f4dea92406e0b162a commit eb7bac3973d209e5227d1783676362ee5a8a7127 commit 54395a33718af1c04b5098203335b25382291a16 commit 89e96d822bd51f7afe2d3e95a34099480b5c3d55 commit 6e03b13cc7d9427c2c77feed1549191015615202 commit 7123d39dc24dcd21ff23d75f46f926b15269b9da commit 7b1d6924f27ba24b9e47abb9bd53d0bbc430a835 commit 6e4a61cd39685476f7ea74e75fb66666d541050b commit 64eea6805ecf7092a113bdb4cb73860430d39de6 Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:17:03 +00:00
WARN_ON(!num_fences || !fences);
Merge DRM changes from upstream v6.10..v6.11 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.11 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: drivers/gpu/drm/vmwgfx/vmwgfx_msg_x86.h Conflict resolution: diff --cc drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c index 323c33c9c37aa,c6b669866fed1..349a0ef6fd1fc --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c @@@ -16,14 -16,10 +16,10 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> - #define JD9365DA_INIT_CMD_LEN 2 - - struct jadard_init_cmd { - u8 data[JD9365DA_INIT_CMD_LEN]; - }; + struct jadard; struct jadard_panel_desc { const struct drm_display_mode mode; Commit list: commit 869e54d4d54b1b0ee16c98c2149f5785eea08c02 commit 06e7139a034f26804904368fe4af2ceb70724756 commit 8f21f82d8b7652e11e6800612e34547bffdc7fd2 commit 1cb4db30cf685709584743d8bf8a0db2eac620c9 commit dec793860d5137c58c633712554abfed71642a88 commit 98e62805921cebcd2fcac3692037ca2ebef63b4a commit 11294bf38fa2f71619ebb5c7baa3bbe380cbcf0c commit e42a51fb9c0f386d3ebb115d081896d41eb844af commit b00240b6a28a36986c4021daabaecc81c708c01c commit 2cab6319b41023e4ad7b1c4604b9aa994fa2d4d0 commit 5a8c292f74c2b0dc84653c7b59323368a849a3ad commit 49f853c78e688780cacb9712be4136869f3e34fe commit f332625733b967afca3ccbc32553e3003d847b44 commit 082a634f608200d569412114fc0ee4d8c9f0f2aa commit c8d4524ecc79f8b5a3bf58c6bd4438127c54a4cd commit fb74b205cdd26357469cab8957f5935f10b810e2 commit 692818678e80e5999ee1975953f7c6f82cb4a2be commit 8ed9aaae39f39130b7a3eb2726be05d7f64b344c commit 6b8ef44cc0a952549a6773a0233cee853f807a79 commit ad4ca914de384681ce8984785f4ee2078945a759 commit b5ef80879dfec1c8e2a992dc186196687293e1fe commit cbf7579304c234208569d767355cc39c0665bd5b commit 4befb17e83ed8747049c91f5009e786bb858e446 commit 7547a23cae4145836dbb94522453af4e7d0ccc92 commit 3cd1585e57908b6efcd967465ef7685f40b2a294 commit 6e78e0719d0ed5ec230e8e28bd59e47acb3dbc04 commit 3d44d67c441a9fe6f81a1d705f7de009a32a5b35 commit 3f371a98deada9aee53d908c9aa53f6cdcb1300b commit f85ada84f60cdcccb0ce897d7e54bac8c6f0722e commit 03b3517630ce2ad079d1863c408d5d4df7d80388 commit 1a1563e3245d96a30b62c30c4e6861ec9518699f commit 3713a383f5402c57007d341703ce447fb6df1083 commit edc9f11af3adab20ede4a0289a1335f0d8125998 commit a1adb3d250925ddccd5270106d39aa09493d6edf commit c79828e0c7795cccc92abcd24107aa478168628c commit c832541ca8d5b04cbf957ffce5f4a2a4ee6b396e commit d6c5bac8e3638de85190ff381f75b8120feafb9c commit e77dff51baf565c2a6b8c77b979c42e814ed0c73 commit 445237d67a818c18a748602f8eaa4b52f8c6b39c commit 6898837d43355c182ab5613bf2d2981d345d30db commit 3ab28b7d8d99c574fd35c0b4618f5d6575f9d7c3 commit 9745097ca730478e242e7c46538b3e37cc62f38e commit 5284e4202aa0dc68bc9e903dd666a36e14704791 commit 6a2a90cba12b42eb96c2af3426b77ceb4be31df2 commit b58a0bc904ffa091fc020f7fd00e91808fec820e commit 77f2ef3f16f511c8a8444061d59c8eadc634d33b commit 75192758d640227b68e4e21de811891219f3d0e2 commit 0a34c12449de4b09f74808c6f6c39205ee5071f0 commit 701109f2e3a45b9748f0f98849fde9a35d391efb commit 5f677a9b6537dbfe061ec9ab1c5b34b21e4855a3 commit 4dbbe4579490b4dbc89bf9c79ef3b9f1d94366c3 commit bf69918b7199ffa5bb6213f2b0a2c0b1be8f87dd commit 22cfdd286572decf5225cc219205ca3348cfc4af commit 61e3270ef9610ab40b1b56aa62e2b8471c32f1f7 commit fda75ef80bddf2f08b0e597d59da69a3d8eb5be2 commit 5aa5eea09af08ad446f78f3de10388c98f52f19c commit c4f18703629dd0112641d6974eb295a53c4a4615 commit 98ad158e543426561fa5df5c4387d4368601866f commit 7ceb94e87bffff7c12b61eb29749e1d8ac976896 commit 7d09d80b93ab15c1ff969facb8f6111fb9c084ce commit 96557f785a7701c7e0c327bd25b701d0eb5dcee0 commit 59a0c03a50e7f058e599c313e6a129562147016d commit 70839da6360500a82e4d5f78499284474cbed7c1 commit 5bdf199db700706cdbd61a0bb8204a900ce9b5cb commit a64a521231a4643e2e2db3ea5d40253bf887e615 commit 08502cebee7c54d58fee0a54a98064dade4cc4de commit da87132f641ed33fb65e2638d0545f55c863c5b3 commit 00c391102abc13763e2bfc90e05503109b19f074 commit 0c28ba60f4c2abfa9424251ab4ace273f1d0b15a commit 9f4c6256d0cf887ef64fe87a48a34d50b4bde493 commit aa463cc850c464091cb749317372b70415d3e7d9 commit 75b68f22e39aafb22f3d8e3071e1aba73560788c commit bb442bfb9b3d1bc6ebd9fc64fa566e12d64627ce commit 4caf410766add8cf376a3afc910b17dd0961dd75 commit 4cfca03f76413db115c3cc18f4370debb1b81b2b commit e29a7a34c3cf140ceb2f994a8eae0b68d21e357e commit c0d6bd3cd209419cc46ac49562bef1db65d90e70 commit 155ce502e9adf9001d6fa35ca85843b7f0e538c7 commit 4754cbc77e2a8e4a2681c1911147456b8efa0bdb commit 2b6c4a4b7ae5a4dc80138a2e7c0419417088e164 commit c1d35284e68482fc74beb92e57813e8eb0701813 commit a4a755c422242c27cb0f7900ac00cf33ac17b1ce commit cbc7d7d4469faa490ff535fbcc6fa9f5a97788fe commit 899d92fd26fe780aad711322aa671f68058207a6 commit c83ad4c3f943f1e3354cd52e69bfafae6bc660e1 commit d0f2181d6529d94b7df15c3afb266ac3fb51188e commit 239b31bd5c3fef3698440bf6436b2068c6bb08a3 commit 10839ee6a977ed1f7d0f4deb29f2d7e5d1f2a9dd commit 8acb83689258a606a43940191156ed1b24733a94 commit b01d98caba5dabf94721ff1c807ce2470bd1354c commit db4f0d544edf941941a96a2dd92ef65a418b6b73 commit ec426766a45201f14f8ac974855a9a47a39286ab commit dc2be9c68ffb2d2b960e6b1835327438b929b814 commit ef4af63e1009a5215f970203fd87bd16122f1462 commit 98b912c50e449b921d71456312289229c4a5661c commit 81f3d3c9a03705328f5368d19e23796ed077610a commit dacb68ca947921e8ce533231d21cb50a3c878179 commit 0c9c0674f81add3edb2bb992b3e89be8a44f03db commit f63f86b5affcc2abd1162f11824b9386fc06ac94 commit e7f5f9d6222ec9264b160b622544cd7e1091e4b4 commit 2862b1637ea2bdaaf13d9b5e3635c096297a0f1d commit a8ac994cf0693a1ce59410995594e56124a1c79f commit 4d4d3ff16db2642ade8b2fd64cb1abd65bddcf49 commit ffda7081489b2c14650798b3b46fb76292f163a3 commit 337b0a3d494151dc32dde1e0cbbf6fb216009ecc commit 486eb6b5a86cf2d935d27937b3da840e17a2f8b1 commit ff518e13eb5b7efd4740bcb4a25ea1fdfb76be90 commit e76207bfa072f66e72cb483f4ceeba0f45dbe229 commit d22c0756768f30025061803ecb64597c4b9847f3 commit b0ce597bbf223cfe07524b86eba4f9a057aa1ac6 commit 84d3c6b05c8cf4e015ba7b79201783ea6f3e39e2 commit 3a99045c56d0b98f91d092044b04a2321b5e2f8f commit 66eba12a5482b79ed8cc45ae6f370b117b8e0507 commit 7e0357bef402875425de0296800c34c41842ba82 commit e582c097d3d1baf5d721ea9c4bad77713c300d43 commit dff0360a49b3dd4d9de4d7719137712b15d33690 commit 6b042da49c45aab31638e22672ac2af91eb6a08d commit f1bf3bc6cb932b2094c71d5b45cf4e56b8450852 commit 9e9ad05631b6cf7957a981bef324794b4e6fdd44 commit b9f5fcef7280b76a959291a19dc2bce4085ad5ad commit 033656afabaceaec31c99248a2aca88b5ada606f commit c5a45ee19cc610e0af7e1affc58b91e4c39a590d commit a82a632c1b6cef2cf54fdbde92ea0907873de552 commit 90a7f0ddfece79d360fc7a5334dea250372a61d5 commit 97da9c7d8f3516cbc633b6a017ca616997f16edb commit 02fb803db110dbdac9f0d446180f0f7b545e15ff commit 69925c00368887676c64eaf7f80e0d268a163cc1 commit ae308e93db35e8e7652d3ff1696adfc240bc1749 commit 202dc359addab29451d3d18243c3d957da5392c8 commit 6aa96aa8ffbed1efab4c6f3b0d6106e6bbadfc68 commit 3d1967ec9b990219c960b6da107231bf101e2255 commit 9ba971b25316b7e3a11b63b770a3a48bf3b69904 commit 47745acc5e8dd9b92dc877d3436801106c5e6864 commit f2303026a5b6327247ba61152d00199b2d1be294 commit 532a0d2ad2920bc18e73566a112feccfd55ff4de commit 3351c608f373bc76dcfa773723c2d1f7c5b5c55e commit f9c7818c9d653e40dbd3c7e9c857e5b00dfca622 commit 984debc133efa05e62f5aa1a7a1dd8ca0ef041f4 commit 05c5ffaac770bbf815def6a18f93d54fcf47cc5b commit 523ee6f4419bbeccbe43399d999f37381b5958c7 commit a8baec4623aedf36d50767627f6eae5ebf07c6fb commit e6a901a00822659181c93c86d8bbc2a17779fddc commit d2c5cb0c3561d7aaa5d1cbe30ec4dd50c09291be commit 5419a2076de1dd9b0b4a191d0dd07de7c4fa7040 commit afca033f10d346b6be794e468ed614a6fdc68a14 commit 2d696cc837eaf5394d79bfd2b0b0483c4778aa83 commit 35df442d813d9a6c766b116d3799eff4757eb59c commit cb696a88fa582e0c236dffefd2fe6b5840f4e742 commit fbbbf6fb3f7c29c0d18cdb8e6217570cdc97961f commit b2dba064c9bdd18c7dd39066d25453af28451dbf commit 7005b169da89eeb3ecbd00347e601e63977c0f3c commit 8e9f1575d188f8d8c36b55164a672ad6a7b0ec04 commit 8fb20d9551368f0b1ef5b31fa0b4634f4be37157 commit 76ad30f51aa0d1bd99f12658d4775a86df6e4282 commit 5eccab32c15f1e5cf9651d865fb20012d3563c96 commit 22a5daaec0660dd19740c4c6608b78f38760d1e6 commit ebbc2ada5c636a6a63d8316a3408753768f5aa9f commit 2c0410fbee4e119ea250032d97239fbac752627e commit 3ca73073f46a74dd53c3c1222c2486a593052e72 commit 579f0c21baec9e7506b6bb3f60f0a9b6d07693b4 commit 7c836905520703dbc8b938993b6d4d718bc739f3 commit cfec96c16890db08fa5c62b548c652cb37fee93e commit 86df36b934640866eb249a4488abb148b985a0d9 commit 01d6606beca0b7e84ce9d7a8d5cd4a9a850a00d0 commit d53ce02352058639cacccc88cdbdbf48f1ee3b5a commit f9d8c5c7855d8f3e4c3e678777d02a49046eafb0 commit 17e3bea65cdc453695b2fe4ff26d25d17f5339e9 commit a89a05e3ca3e6426b92cd0719410ad255693fac6 commit 27694eace58fcd9c35c4b458cd6e693b88a95b7a commit 47677629f64a41490881472c5ea8316be5633017 commit 2d1d8756565f0dedf6abf2446d0e63ba20f8c80b commit 075b44aa210bd8be1c2c23ba742218fc4fc2bfa8 commit 52666d8cc7f9c7810d25d5ef41f1a0b62153f368 commit f3c3dd120723907787e59e0bd610e0ef5b6d1fca commit 980a0a9452e1a74cb1384378989d0c5237ad8cd2 commit 04790139c59ab9dc02337c5ee0d878b213fe45c2 commit 1b838189edea95ad65a4fc7061894e0d0a355f4b commit d34420f20303f9715e6f2a3ee791af87e27ca821 commit e8a31b4e811a04e5d83dc036fa9542210867b7ca commit 6769a23697f17f9bf9365ca8ed62fe37e361a05a commit 9d0532c86fde034ef8b04172cbcd93451af8ca14 commit 9989a924aa89e54ca8e1ab34175798559b986714 commit b96033424d4c6a97dc01bc80c506baa035b9e50c commit 7c0ac603383a03b8725fb6e254b8a883129af188 commit b412351e91bde3a6ec546b598087bdc3fcc458ee commit 5251b56e3850cd9187f019b785fc4d9bf1dedec3 commit 807d90b5ef1dafd484330b3e1a3c3c43abfbd8e9 commit 4badb9999bd1dd3fb018c2ce497698407113d18d commit f45ed399d7ef464b25c21b7a76c83d3ee11e8d79 commit c8c19ebf7c0b202a6a2d37a52ca112432723db5f commit 6e46b89f40e39e2054f2e179e8e8c3132e7a9d57 commit 12c6967428a099bbba9dfd247bb4322a984fcc0b commit 0fa4c25db8b791f79bc0d5a0cd58aff9ad85186b commit 5fa7d540d95d97ddc021a74583f6b3da4df9c93a commit 4a9a567ab101e659a4fafb7a691ff6b84531a10a commit 13d56abef172e8ef793fbab58268b60687698f15 commit 235e60653f8dbe4441d9ddca9fbeeb3e8083faa9 commit d457519c942d4885d92f6367e42ca67f4c7471ad commit a1ea30b69e02eb02043b0d6d7c42abcfafe99bd0 commit e91a36b472862a1d199ea8d1b1ca192a347bf33e commit ae22b2f1c8ccd9a3e5f19e3ebb4ef6ec1e8655e0 commit b0a835db17434473dfb84f7646de1cedc4ecdb94 commit 73ef0aecba78aa9ebd309b10b6cd17d94e632892 commit 150f431a08317e0e0363a7f9147b6246d3b40ba6 commit fcb3694af57128cef06970ed979d01a6298303cb commit 994c6277e68dc889bf73baf72987848f8fd96b98 commit b3e328dcedc11f1a17dfbc9baedebf6938b5c878 commit b1fd6da2438d65ff05bce1b1e62a4a218845fe4b commit 92e7a368917be73a83d83b7197e4495158e8295a commit eb9479a98c61982720f81bf20f4674bc27217321 commit 5bd79b70a29304eb8935957170b79e2346b1ebf9 commit 049f75bd0b0d6464a41ddaf482f0055a45ac055e commit 5134fa750e7110cca3076b0f0f2ad835bf3fc16e commit 0f8c7314772fb28e481d49ce4e0d96ff4dec2bb2 commit 8b1bb818b234c69f32853d1ba8a4c9ecef570a2e commit d2b42634fd41be2abc5ca82fb941e22c573cc426 commit 808a40b6946804ec04dad84ff17797ee1b92f0bb commit f3796250799c74db9b8c76c4d7d874ca925b2a44 commit 70c82ee1acac5c8ccf09466f6e36c659bd23c551 commit b3fdbd60d35ce340062b5232076df2d3613b44cd commit ff5cea0f03a607e6988169a50678c4d995a266d5 commit 90d0799af3c25d36f89e60cdb785bea00cea5b6d commit a9a0f08df54a41c0c1621fd73e640070d621c43c commit 6447acb8b3530e3d32452ca3fe524efa44ceaec5 commit 5ab91447aa13b8b98bc11f5326f33500b0ee2c48 commit 18c6e51f16f0512750b9aabf5d0a5509f445537e commit 4f229b50b2de73e8867250226125c35620e2be33 commit 6a09ecfe2867031bd50324e9fc1bb37bda64e5bb commit 9317ff69170d334545603b689585d5b54e41bdef commit 01849b42e7a7a2b7394511881238b0995a02da39 commit 85c8e3ec806b043b449d5646bae4eb8f40acb45d commit c32705b5915fbc737710e95a6f4e8eddf3f2ab4f commit aae4682e5d66c1e1dc181fa341652e037237f144 commit 18bc074c226bfecd205bf031678f5e35ee55c3da commit 8e056b50d92ae7f4d6895d1c97a69a2a953cf97b commit 8ad0e1810bf23f22cedb8a2664548b15646570c7 commit d17846a096b3127e6b3d4164874385cbc39367c4 commit 2fde4fdddc1f1a7dbdbf4faa27a3fb05e1b2cc85 commit bc19b490c00f17aaf4de2e56480506fdaac929fd commit 45ebfaa44c2b5471e5c2bcb2d80350469808b12b commit 3bcc0ee14768d886cedff65da72d83d375a31a56 commit f5007c67fc77ec555cf824fb8c2038a834201b38 commit f4322b9f8ad5f9f62add288c785d2e10bb6a5efe commit 25c01191c2555351922e5515b6b6d31357975031 commit a5b843269a8f664df85948ec41db1dbcbc2a2d8b commit 6e4aa08fa9c6c0c027fc86f242517c925d159393 commit ff75caceb93d8793bd81f69863c7644423ed09dd commit c6f79832b8bf6a0ff40d36d3cb22e27419ec8aef commit 3f19cffde93585b25a007b108cc4b5bd149226c1 commit 97d814fe4f697791abfbe27e035f0b943c483243 commit 4752cac300fec50530aab69788f48b62c35aa627 commit 2d6f49ee849b58f115e36c4c5615d22a830f8030 commit c45211adfa3d82c3862f7aa8d6b1c6cfa09ffdd4 commit 3d1bb1a2e0f5f3fbbd1a4051e4e771095259fb15 commit 1dbd59f3f4d3fd75287aa16ff0976f25213e4c03 commit a6bcffa596770b0c54b3ddccbc115bdab4df08e9 commit 5f571c61b90f905e881c3bd591de65d9d0e1722c commit e56b042118ecacf5787cae6881e82fca8dd05fe3 commit 226e4ca5d4f683b3013947e495c6b433b35718b7 commit 5638b1cfa72a79f7d76394a7cb6127dab294716e commit d8fd91f9055222a5b49dd385477edad2712852c8 commit e3a911bb3823f010087048af2c933525391627ee commit 00c903563314669af40eddfd68c23e21e40fe8c8 commit 415fcb8c50882d78f6de9fff730e94a286bf1605 commit 69d4c44e5184f2dd0808f669e6e3ef1bee9b8d97 commit 785f0f9fe74202e64a7af94a8efc92d4bed742b0 commit 6628f7762b8e23e7524d61c7ed126662348fd6b4 commit 745f46b6a99fa4a9da1b9aa8cbdce0b9e7ed09e5 commit d817c470cb2207539ef3e34ce70f755489de088e commit 46c47666106942389b022d05ea370bbf24c4494b commit 4632bec9fa682a231e4548dc793da2f1e209c798 commit 52cb80c12e8a647aa9c903903d58916e6c1c4d38 commit af204b76a7cab18a54c6fcf78b57c1dff7bbc0b5 commit 32d1637689893971b65658a359d03ef4fa30e049 commit 29d36a9cfdb648fb15017e6f104fd1b4a1296b90 commit 36b2ce477528964dd0fd7b8ae735d4dc185a1bb2 commit 2502af906b75a2e73735c3f4350c56c41d0363a4 commit f5b4c3236f491889c86f557e21438fbe6ec160af commit 1e740df77f5d4dfa75e1ca21b7ca3ebc1a907421 commit 53efeba35d71db3ef5fd4c483748945c1e765adc commit 60917ce8f88980ed26ddeb7577ae3bcc0e30311c commit 043869be5a1e312383473c09172123402c1cd565 commit 56159fffaab5c42a8897eac0824c58af3b369914 commit 044feb8e2aff101362d7afffa3444c771140728d commit b32edc2340c6ed9164093aaf43f8fe8eb04e20e7 commit e781af666341ccbc099bd3154f920eca6f74fb16 commit a2211e475cc0641cd49d019f9c70b1f69fd30e1c commit 19e69a5d2872ac185333c3a314fb3aa0c6032182 commit 2f983d3ca5bf2e917662634c6b9e325f87ceeb8b commit 592a5d7de454049455157e2f347908cb2fb5c45d commit 8aa89b69d6b3d4d847535fac1b6f81e29f193b3a commit 48f0bdf4e38e42b8285622cfcfc7e6e490b1a719 commit 47fa09b7889c53a8a9bbdf9092ee03596fd7de65 commit 90e4fc8369e9ae10f5cf5bbd2e5f26e9359a50b7 commit 385093fde8a1d874d1ad22e7fe2577293f18c35e commit f2810033360503989dee81c5a04cd4c4904ad231 commit 450abfe4330a4131a02bd0682b1f742c424c30f3 commit cf338b5dfe9d3a00f3c9d56fda05d70f78719af4 commit 782b93436afff4105c725163b26fd7dd99198baa commit fda3f378c4c4607b942f2e3c1a18c1156174b440 commit 984b265ff604aa608aefc571a2db173b38fe88ce commit 9243240bed3859fba2d15c016902a4c73a186249 commit a921c35ae5f81089ce98442694d5b11d0bd0d715 commit c5faf18bbe00862429a73afdcd4b95e78285395d commit a8a4615ba0fa3ee1248ae2184e7e848d7b644e70 commit 628e1ace23796d74a34d85833a60dd0d20ecbdb7 commit 15ddc4e6931b747b5d241a4e61dbd4d4b95c8360 commit d2e2c9be78d089a95464ee01d7210c636773cd81 commit 6ce03bd3a4a80268a6c5eecea4498d0db0a09b86 commit 4c2439f908e70efe4ec9f4ba4c5780c97bd0996e commit 663bbfaf68971fa09d69a6ef8a6c4ef8bff9274d commit fcc5df722dbc47c3a84386a1c70647cfe153e65d commit ad5c0a79dfca06ee7f1d5a9cf4f6b4a2113f5d04 commit 3dc434ad2635f067b67f2d167f78a31e6124fe2e commit 03f4b8c3ca7ad34d812d5760f0712e5c126c64c6 commit 5e676d7180c0cc01184d9860fd9004092c0a7efc commit 0a75dc9831af72f1b85f80f0b8e8a711e5ebfe75 commit da43e93d1becce2d757ae217baa09a9b9bae3171 commit f8f8e95c5f1b115f117977ff837c1440407cf7b5 commit f19cfce87d9416d050399ae56a00f2060eab85f4 commit 117f85139382c5a9699eae96edc781c9d9c6e86f commit 856d1ed4b2c3583afe5daebc5bf4b3c94ca26e8d commit 81b09cedb37bc7aa80712361a60f1396c8c3d0a0 commit af472f68c731baffd12f5a44bc1afcd7332b444e commit 0b6662eb2a039b76777850bf718b6c5944b50e17 commit 6f6bb3909cf7c45a7d36963368d718d1d2f31a97 commit 598a3b753af1947adbc542d1ebcc1863877589b0 commit b9f5d0f9788968739fad3404dc0dad45716d67f7 commit dd8707295d55bfe044b5c145f7060cc1a91b7157 commit 174fdc07c05e33353040b5a5d05f219ecd4550b5 commit b1d852920b316181cc3e622a0fe0483d2db6a5d1 commit 94b51a3d01ed498c753fe474157ca62f0b8a4bc2 commit ade887c63394f81de7f363c1fe72fc7e631f1afa commit 3474e02ed5b30c625c1739f10375ef940bb23382 commit 01a0bae9fbdcf1489b1a2df3f085008b8e6c8483 commit ee7c6979f17e79ec675398b9d465810ab94c899a commit 8172fa66332c442c381d642cb543da4915fbd629 commit f5d75327d30af49acf2e4b55f35ce2e6c45d1287 commit 0a8d25285feb68608acdf778983ee5f4d72707e8 commit 9419da172221eb1dd672bcbaa2e27bb5f8ca807a commit 687fe329f18ab0ab0496b20ed2cb003d4879d931 commit 2a5626eeb3b5eec7a36886f9556113dd93ec8ed6 commit 6e41709eb1d9207d88e46026baf9cc850206b374 commit 84723eb6068c50610c5c0893980d230d7afa2105 commit cf8b16857db702ceb8d52f9219a4613363e2b1cf commit 3941a3aa4b653b69876d894d08f3fff1cc965267 commit 9ba2ea6337b4f159aecb177555a6a81da92d302e commit 5524fa301ba649f8cf00848f91468e0ba7e4f24c commit 4e70c0f5251c25885c31ee84a31f99a01f7cf50e commit b38a4815f79b87efb196cd5121579fc51e29a7fb commit efabdce3db9f3d306084c8946983f3d895810a6b commit fa71face755e27dc44bc296416ebdf2c67163316 commit 52cbcf980509e6190740dd1e2a1a437e8fb8101b commit 8aa2864044b9d13e95fe224f32e808afbf79ecdf commit 871cd9d881fa791d3f82885000713de07041c0ae commit 176abbcc71952e23009a6ed194fd203b99646884 commit c6077aa66fa230d12f37fef01161ef080d13b726 commit 3d49b60030bf888a6244aaf3e98965cf8e78a965 commit ca46da75cab99381b8c9f181de50a8022c2862c8 commit 674704a5dabe4a434645fdd11e35437f4e06dfc4 commit 1cbb91cb29a71f0a22f6909bf9c0ad43bd315bae commit ae13c8a5cff92015b9a3eb7cee65ebc75859487f commit 55ec7679e6a5f67d2831b87a24fe2d5066311fdd commit 83c0c8361347cf43937348e8ca0a487679c003ae commit 9d25ac51f5bc952a4454bad9c0d0ca09c3827003 commit ecda00059b14b95a5b84f3efc1c1f341e1fd7dbc commit 8e2734bf444767fed787305ccdcb36a2be5301a2 commit a54f7e866cc73a4cb71b8b24bb568ba35c8969df commit 922c2877827dcc474f3079e464773ab31ac13b79 commit 188fd1616ec43033cedbe343b6579e9921e2d898 commit 6cd2b872643bb29bba01a8ac739138db7bd79007 commit 0fe113ad47589b2c6ea59e8c5ff346e57432b28f commit 75521e8b56e8f9dc673b782df7bc3660f51f329a commit 87ea92a19216a454a6eb5710501a470dcdb8577d commit 9f79e24485494f35740fd85ffb2c67fefb8c67b2 commit 233e8d1de827b58ec92c60b86a3b0f5bdf7c3892 commit c8bafa0d9898f37cb3618f5883656cc382831533 commit 4df0f2ed25735e7da5a9015befda5199fe6fec73 commit 7c800d957173298a5c80576db7384ebfe6efc10c commit b24d361420c46c3b1a0594f63f88b52e1afc6792 commit 2081c6aec0a4f34e1414a6172b88ef3aaebb6120 commit 4b31961a1c6388ec67c05ce4033088d9bdf00f95 commit 786754124189e3f67fc52e8fe08703e3f50b1894 commit b3f4ee8e4a168b78a3ca8341e18a50c620ed7344 commit 9243e0e206bbf8799add08cc66f807cbe085c9d2 commit b0923d5d80facb205cc2b7f82994ab5c3eef3181 commit aa66c93d5f69d48809468c4e2124e408e31fa931 commit 7f071dde0bc97d40d8e80a374e155b6c0cd72174 commit 37153b0ad3d3c26fd4b6091b124245a4401da6fd commit 080b76d8111711a726f368361e0bc9ae339fed7d commit 68cd73716216f04ef12433a6486821a291736ce3 commit 32e73fef7ea2b4728d2580d043613cfeabd90b6c commit 96b0ffecc0b3cca0437166668c6ab6bee606ae82 commit 75b87e9f3dab7304982e90627c7ceec108ea83c7 commit 59c27724b24aa54f0dc2600f71b50e620874a050 commit 2de02cb17f90df9115ae46a5d7915d8c436c9878 commit 0dffea1e2d762178b76c7840edd4edfa763048f0 commit 772933b3ab3a8157bb718154883c248c5693d81e commit 0f6a95582de3065d27b52bb75195d666a40ab575 commit a8c026d0e67119af490b8c284a4a4b4d180fb688 commit c528aaa36db031591bfa9d4cb86f23dda4f413b9 commit 98b1c87a5e51b86d1fad390ad4756cc2bc03cd05 commit 1372708168e50c08bbbe092e00036701c7adf547 commit c01c6066e6fa6f13888f06a210f9a1d600590f42 commit 4071ada7ae313da2e6bb2c1ebc097bd12f9da761 commit ca5d5ecbb90df41b125876796e1bc85db9514da4 commit e9c190b9b8e7e07bc0ef0ba9b87321fa37b456c5 commit 1d231cd89841d1538d984a872041e5579b403bca commit 676a6a1c99182a193b7515faebbe3cafc653e706 commit f9f8f8471785e1f312db59d1d14304fa333754f6 commit 7a7a4c4eeba4a546f3be6d33b6d9f37a0c3e4a3d commit cf3d5f89a669dc29d2145d5e75d5ee5efc97ddea commit 4c3cbdb12d4d9b5581e3e6d8497747bc71c64bed commit 218f3d28d113d5143f938052f77c5c1458794c56 commit 5aa0cb6b1e74830c0e354ae9fdadd7d674c3ba6b commit 83f4ccb3f3f941b23c064f3ae898d7a34d2bbb5d commit 9b0dddd50e6810ec9c3c6792c084fdff4c76fd41 commit ccd5bc537b0842a089d158253911cff2c77608c0 commit d82d1a6be60de19486c96777d3322550976bed7d commit a0d1cfa86cc9e4421e459d471bdd7faa61ee15d9 commit dd17285e94c2462848aa6e60f0e8edc880e9c19f commit db92d423dc360ba957314e3c87ae67108216a6da commit 13b77ac5dc91a8aaac23d8be3a9a9d4c9a2dd4cf commit 94e760584a277d4fe683937a737ca2bec6e42f17 commit 7f4eae0a9439225837c1a5d96439abfcaf1db54f commit accd3e041e8fe510e957513b419bac1cada04e21 commit a6cd27d92a96e13473006d43ad03edac609ec493 commit c462f81b695a7cfde5ba3b0ea1a52c6abaa52a0b commit e7192f0162a069bc80a519c087bd2a2f18597d52 commit 06e69a424930154bf030a56f8ddf781aee71f0e3 commit a4b725767d93e3564019906ad43908b8bf3d4d9e commit a0862cf2febcc37188ab47441b69960c8c8f3fa3 commit 72c7163f27483c333a1f27916505459efa1a373a commit 9fbd0adbcbe81e207eb030d9ad59953905625dd1 commit 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de commit 5b882c1e5a355d034c0e08fba2402b4451765ab2 commit c286f6a973c66c0d993ecab9f7162c790e7064c8 commit ef283674a17e000bb6b2ff05dd2ac5cbf2e3ae0d commit a4cb575d910a5c65c5f8b764e2b5f56b66019522 commit 749670a58d935303ad1ce529acc73f12de25832e commit c18a5e3e61650110b5d8523292abaf6ae19ebdd2 commit 7348a9a1122884ccfc414166daaf3977100d1c30 commit 93dd6ad89c7d436da988cb5917daf406a3941893 commit b7f6318a9c3d9c79b724b20ff5382775a9c58346 commit ee7284230644e21fef0e38fc5bf8f907b6bb7f7c commit 6dd2bd94d2ef82a356c6580e3f59d93208ac4755 commit 19e74ba7f894f5e95c1c56ebcdbe1fdfcf20b9c4 commit c06387ab4472fc5af857d02323fc1073ff7923e0 commit 8b69ac66d68907deb473b310b4f2c2a6b26ef191 commit d082c05a635e59764c5337a5da7f4287b8a80476 commit 3797783b1c966885e8bae4a7e6b99ca2f0fae4f0 commit 7fb8af6798e8d013017e4607505f58d9942fd671 commit 7043141fbbbecfa1d26c538d502649079fe6e095 commit d9981f36e4f372bbf03af7a9c1f3bfdd79440589 commit 7234f948b58b04b11ec7d32c1d358887f9e700e6 commit 6ac67ccf4c898ff29ffba4cb4b6213deae05c8fb commit 8e26690851f9b49551dc6c48c720700f44c8986a commit 10632fcbf057af326e8b7d9b18120f939f4f1aa0 commit e760a7dade4ba88d417e355ca7a109571abe2ac3 commit a17b317c11fa1d66e2a0bfcf680e3eb6a14a5c57 commit c58f254be3bd6276133735c8b7762c51589b4d03 commit 22794e6cee284c154a464ef6c58219e35739a3fe commit 2e8b8073178a898f56e6d1512de016f644306fb5 commit 2318da471a8af705083836967ad3acd13ee59d3c commit 98fe6aed8ae8590065eca04b6f0be98ae64c066a commit 2f1aa210fefa08dc998ccffbf5a67d5be11edf3e commit f7d5b5ff088fc85baa563182f5ff2cd501ed56d5 commit 55c6b98676ed667f8900d46257b96eff47abef55 commit 8e94221f78018338e1a5791cec0394b13dd0b13d commit 95f4cbc8fb323b5174dcdde87da0b04161796a63 commit e547b97e9d79c1b8a8f935a398a41bb3d9bf4c48 commit e225161e2aff5dffd1ff754d86c17c7f9b6457f5 commit afa1bf2d5df261e3e0dbecce1204106f11a8d351 commit 9bc6b35635318f36adf5b526ae85302605646a57 commit fdbebda16c29e0d5c456e8012801ebbcb4f78b30 commit 76f1cf76ef4197663593b85b8b911ac6cf809489 commit 9bda347a7d5c669be2184a6b6d35bbf1144e04d3 commit ad3323a6ccb7d43bbeeaa46d5311c43d5d361fc7 commit 9f15bc83822b988b61be1179ae43d5d765071962 commit bc2dcfb6b68c91a658c5fd5e0d78392846980da4 commit cb094188f5ca64f5fcc6e1bbcb0f3950766e5027 commit 4baedbe2c38f05d2e7121e0f78fc3469011b0dfd commit a7566ba47ba6c97df369fe7acf820d07ff3a9191 commit 2b22b1b88c739348b79284ad3a216b7f3cb141c7 commit d9a6dfdbe7d4daa8db017ad690144d3116db1d1d commit 62b695b8c92ecfd26f486615f4075fe0862dbf7a commit c23e1dc1d508f8a5209f11f54b5d6ec8e8ae4ace commit cd6891f8e3714172cb2ff374d07cb6884b44b530 commit 0097ecd06d9dcf671da4bc643d215a4696f1c130 commit d26238c6806d56d04488ec28e2c94468ddcc33cf commit 23554c3ec85a7d7300f896e5a75bbb1e6a06f5c6 commit 504a336a57df8e5c7e136b1a594ffc4a1875dae8 commit 4482b4f6c2cce51a3e28eb814ea61ac5a1690412 commit 0127f0445f7c1f3338186d8c59ddcadf46a7036f commit 4a7fe0576e936b7ef8220698132c183410fb1ede commit e34a7238bd530941ea96da74343541db7b1568d8 commit 6d46a50934c84f9db9502a8265617ffc621c407b commit 8c59c8709e3039e31174ee4941d5ac69d81ffbb0 commit 1cfce526351f8aa959dcfa3f0d743b070f623d93 commit f0edd66e3428a4e1bb98923ec1bfdedf4f418d55 commit b9b5a82c532109a09f4340ef5cabdfdbb0691a9d commit d1ae412d74a63615f89f195afb950223174e6e43 commit 0cfdfebedc5b48aeee63bc808bcac85d5ab63176 commit 5b600c1f49962c1dbc62719916bf47c791ac0777 commit 5922deae69beabae98644f3cd902df45da932297 commit b33f1d128cffa99f08631b22c8fb982db465985b commit 3706bf2eba8d90887bdb7e05f9227686848e1342 commit 176278d8bff2c2be000b9c9509a7fc8120b5278d commit 36d1861725b2139b2d2e1b63fbe56222bc6a256e commit ede045c091b19f8ac702f717f1fc1279b62bdd97 commit b911505e6ba45be6ad161793d7f272d52054c69f commit b4e394e843a1fcbbc040928dcc73254fdc855080 commit 3b3c9e865e1d7c1c926ea768a03d01997c991ede commit 89773b85599affe89dfc030aa1cb70d6ca7de4d3 commit 56fd1f8868d8042aeb801a27a33c1ea3e05af33a commit b2871de6961d24d421839fbfa4aa3008ec9170d5 commit 336c8f558d596699d3d9814a45600139b2f23f27 commit df4409d8a04dd39d7f2aa0c5f528a56b99eaaa13 commit 7e39d7ec35883a168343ea02f40e260e176c6c63 commit 421226e5c9982573016aa4cdc02883c3d43a21af commit a641c25fa45c95b4eaa036beba4624956a8fd461 commit be1684930f5262a622d40ce7a6f1423530d87f89 commit 547033b593063eb85bfdf9b25a5f1b8fd1911be2 commit 3aa6b72045b1edaba44ea5d5a77d8e0150d1c9ff commit 8f184f8e7a07fddc33ee4e6a38b717c770c3aedd commit 85a24a3ea09e93c05ff59609fde6c3d825a014c2 commit 329cec8f18fc8bed7570b68b18936724af2f5593 commit 9e5da942594034ec377ba8c0caa9c15e1d26ba08 commit a735b4a4ad9b61f87944b77527f626cae8b4e3c8 commit 29292b0c82e8177cdc7a27af665da62d98c95104 commit 2b3b9d2150c02c340f2ad50bae1a20f6913587ce commit 24e82654e98e96cece5d8b919c522054456eeec6 commit 0617cdde84621ba3309a985492136fb0c36e9303 commit cab62e4839d50bba1f0b15e6c4358e962985fb02 commit b2648640b924c575ce72b87576df7d91c887914c commit 9d0e2915c4c6815b222545a526fa599f58f498c7 commit f9a2274b33cfbc34c00b91a8de8b4369118a1f76 commit 42ad8ac6bd3722a04abd1feb630f69ead6b24433 commit cacbbfbd24422c0b7bdb2a689dce4b822001bc84 commit 454847c9f41f5b3c9a26498d92ef8917b9a5174d commit ffd3d6e780a525a74b61b6932f440ca5a8fcb4bf commit 3345f7ec0d852880b176b07abe8e8c4201a346ca commit 30f45a8ea46beba74710a75b3e1c4c54c22932b9 commit c866201cdc2a05a7fe94009eda2644ceb54e8303 commit 1dd8b24acc0f951d9fea1b03d0c9ac4630a82e44 commit cdca89bce4984f1bb6e53cd4084820d4ff54f977 commit d768394fa99467bcf2703bde74ddc96eeb0b71fa commit 0991e49d2b73bb4189f83a49eb41cdf16976bbf6 commit f683f24093dd94a831085fe0ea8e9dc4c6c1a2d1 commit 8944acd0f9db33e17f387fdc75d33bb473d7936f commit 51dfc0a4d609fe700750a62f41447f01b8c9ea50 commit ffd574459df43bbb31a0ee67ce9c5b2f4d88eddb commit e35ba81bb308aabf7194fe49e2533d9c4732afcd commit 598dc939edf8d7bb1d69e84513c31451812128fc commit 85cfc412579c041f1aaebba71427acec75ceca39 commit d6219e1cd5e321351954e317b362db2c1d34402a commit 7578c2f811fffd7178de3075a19bddcbb7e0b2e7 commit fe0154cf8222d9e38c60ccc124adb2f9b5272371 commit c4dcb47d46144d8f5b1ace1d8d2fcddeb5dacd8e commit 10f624ef239bd136cdcc5bbc626157a57b938a31 commit 205e5c4b20c3c2e2033338a935f6a59843dc69de commit 515f08972355e160f896f612347121fbb685e740 commit 62010b3cd6030ff743930c9ae898d8e4e943100d commit c3203ca3b8a6aab7c5a5dc3f5e165a53410461f6 commit 6907d4fa5ecac7b08fb5ee5536e48b0a3895be31 commit 6a3691ca4799997b90da50883c170edb67bd6c49 commit 975a0f68f0d532d98ed3a8e385f82a46eea3d91a commit eadb8f40e1ed3c5cc36169d4ad9b7c49af98d950 commit d9d2f4419554b0ff1478d35c97740f00af0b05b0 commit 3043b74f2ebd5809e0cc8aae3621f1e2c37711d3 commit 8ae4afceed9e582bba0a27e4a2e69c2daf5b466b commit 2e6cb8775f5cf4867917d00d4293bc5537afbd46 commit e050e2acedcfd82b472cb40e9a2e7b762f7997ed commit 48d47a40835376b9a8365d089ed626b7d79f3795 commit 0f5b235f87604ab745d918aaeca678fac42bfd7a commit deac76110108a362cf791780258a0c1474e5cb0e commit 7050ef3554190769843009661b48abca2d1e33b9 commit 1301ce346aae3236e9956a2f4b618bf559335819 commit c22a814bc2176f73fdf563e2cc2c4044c5d4a044 commit e5f827c5796f1da029fdc36bb64df0f01c49d2d7 commit 56ac367dbf8d72274b0a77b817e583b6d6171191 commit 11cdc8f2bde4bc548da6f995556c4b7183431088 commit 79c520bc0fbb4e763316659d03d54196fbbb5f4a commit dabe0f9f2b17088c51a9c50b990fba19e9a7e1d4 commit 7d24900c8460e6eef1bbfa5db1d5bbed7bfa45ef commit 7ac0331344168414cea48ea377b93d78fea8644f commit f60ce4bd058cdc54bd7a2eb6067cbbf054cda1a2 commit b0944c983d274ac485f44f1b0d3a31a52fc3f6e2 commit 84ceb14076592abd08d06d403ebe18aa60d5d505 commit 5aed213c7c6c4f5dcb1a3ef146f493f18fe703dc commit bf1754789386e2f3ffc06aa77818ff80fe27475f commit 9f2b334bd280dd18965f57f93108e71bc57e4992 commit 90e0fd1e6c85469a6ff4ebd4352d2187be30c559 commit 2262e917b3da5c129086b035677291b2e3e4bab9 commit 56c12ec72ae8bd90cce1ea59dba2b93f986606be commit a3598d7d9ae9b4c9ded0f052d96ca5800758d949 commit 67f5728a895454108383d46e14ccecf8db117ea3 commit 6eca4dbe499890ce4340f49d309029e131e1e3e7 commit 9e9402b64a9bb217be5a713758082808425b64ae commit c7df997b260919e4d18b2dee21cae6bcf765babc commit f0a83a2cf9eb99be74b81ff655b01b5a9710525d commit 482ade3ec1c5528811c878bd4329e0e1cbc6c59c commit 0f4bca4e1be3d1a725ac12a632950d7bb3d51e59 commit a8f856bf054aeba9bb9c1a8b296c61711e9d76fb commit 8761a39e3f9d9f41a593af2fce1ba41537c35b83 commit 41e6ed85e4575bba9d62fd03e9b555f9eaa2c241 commit b24fd6e9eb66ff8695526c9e5d4409c1def13c0a commit 0a59deb2fedb8b6d9299327c4a9a5f4e77002e3b commit 80221a89ff95ede55be4bdf2c272eb35b6d410c0 commit 91942a37ebba1b810fa2e0ac20926f0c45f38023 commit ec74951a75070ab969943e438ead202beeec5134 commit 591255853a37b1c02afb046588b64e2a4cda484e commit 37f3821c7cc86dfce7836f6018d2ea365c560946 commit 8aa8781ba3c1de4da2775a16049d0a216222cf26 commit 7c585f9a71aa036eb36532a1c29a0304c429441b commit 78e90e003b96efaa822a6c29d7caabf2481f8c83 commit 5c465601d4232e5d7b71454c13445bab5a5fdaa2 commit ac15c653fb0926f18fef080bbb653a52b3562fcb commit 304aa805ee8e82adc30159ff43038cd96eb69eb9 commit c5d9c6690ed4cefe9390f8d73ad690332dbc7142 commit 38830bfe287f9ad97be87a844237beb8e7e64f4a commit 664de50cbfae048d08e9f3c1c0da377d1269e6d1 commit bd7247e6df124dc9dfe048e319f364e0613d54c3 commit 8a5fc5f0031edcc9fef547866547b748c2bdb039 commit 9095e5544061b16d1b331aca3f32c76cbd656d72 commit 745e0a90be2eebe6aae9735b80de05c060d6cb9a commit d2d3a44008fea01ec7d5a9d9ca527286be2e0257 commit 949658cb9b69ab9d22a42a662b2fdc7085689ed8 commit e22e0e483b2c76728ccd119fdcfea81eb176b3a5 commit df0a9bd92fbbd3fcafcb2bce6463c9228a3e6868 commit adb9de4dd207fb1264ea70b9eacab9f70ee4707a commit 10fe1a79cd1bff3048e13120e93c02f8ecd05e9d commit a166ec28dbc0d13cd6f3d84818cdce778055f2e4 commit 4b0497d25dc0f01ead2d38b54900063620f0a97c commit 98a2e3a0d155f25b15f523a794a75e9f4818c612 commit 78d18b6655fea3d9d8b30fd2b78b11749b4b981f commit 7662bc61c030edae9346dc56daa6109ce353f5b4 commit 9bf115ac6613279730cae3b60f63db47cce8083f commit 9ab1278123d85b43a1cde56fd19f1a698c99fdfa commit 9de99fa8c1eab5d7d1f363dcba0786a9b9cc51f4 commit 30c646afea03d848a38366e998351fa879e9acae commit 6690d949df04dac7997080e51ce4759919957fab commit d5192c15fa6a8bb594e9ea23561019f77565a227 commit f9d48a88eba547d87d8ea7bfd25abd1836cdf06a commit 4655b4d953067c176ecdbee4167cc85fc0058be1 commit c49e44ede5cdfe650c2f769d8bd58cbe289e87cd commit 4eaf110f97ae55d18a3b0cb727eb6d8c0e8ce7db commit 1dd50e634cb46880f3364ce629b09a37a5b3f888 commit 6ac05ae5fff84866a56358740681869c3bc62af3 commit 61f880039eea17a181fb3286881704c2c4287335 commit 2eb7d4b98700fe7612521e5226437fb9e7a65af5 commit bd051aa2fcfb803b94708429970f71596a4748e4 commit fa73ec95c969c7af292caf622ef499e7af7cb062 commit f45957432351b58a77fab63989ca842c314847b4 commit 85cf43c554e438e2e12b0fe109688c9533e4d93f commit 56116dc7a9fdd2ce2b0e01d16f772a766a0219e0 commit 1a00f2ac82d6bc6689388c7edcd2a4bd82664f3c commit 7fc7db824cd4785c91ed5ca14711ae55d12e9610 commit 948e209475a7b447ddde3b11a9b40b69265f02e7 commit 7cda0a90426e0d6448789d97760555ee9ed1750b commit d1dd0802b3fc975c2277558d686d3519e3ccf952 commit b1f7810b05d1950350ac2e06992982974343e441 commit 1940708ccf5aff76de4e0b399f99267c93a89193 commit b55bf19eb95e0ee3f97281d67dcaea9c8f5271d9 commit f0574a56fb1ea9afdfbe1b9563a9feaa12241001 commit 0ce8ef2639c112ae203c985b758389e378630aac commit 7f684a67f80adaf98fa9b0b1363f518e65c02289 commit ff284ecac32a98f8b052e271e173e80df456793e commit a3ac9d1c9751f00026c2d98b802ec8a98626c3ed commit 9f436a0075cbcc6bf7cbc6e4b60cb8babc889eb8 commit e2bff63ba6f875cb879c90758662f193f040d033 commit 1b016f87a8f5387b9b66b05e3e2cfde8b8876bd4 commit 269435aef45da369a345d23c28bf1b34134ec7da commit 67024471616e090c994a46630bd23c42d6962a34 commit 1a296827feef4dbad1e2863b0e2d7d7d8afc781a commit 68de5d31b15b4c923da4c8b7df7d4046139f9f80 commit 3b7d552ea1a03ae007783ef934cfa32a45c28258 commit d190b459b2a4304307c3468ed97477b808381011 commit e6ae021adb79e5f4c4bc4362dd651d7b8b646340 commit 76cb763e6ea62e838ccc8f7a1ea4246d690fccc9 commit f76059fe14395b37ba8d997eb0381b1b9e80a939 commit ef168e6de96531a2aa1b0ba77f07c7c56791d418 commit b61467778e69c8e7e43dff9d1e2e8940c5df42fa commit 8e8c68f4c90d80ba9a3b52fe832917f6878a15fa commit 61549a2ee5940af4d49ba227d7e7798ccf6f04a5 commit 402c014cbcc7c9ada6d62ee646b2b359d4793ce2 commit 65c4de2a9148385114b3ff1121143ef1af805a1a commit 45b9066ec351518657cd09599872f737ceb25f09 commit d1855d284e9f6580c0eaba66bfa04722f4d4dc9b commit 3dbfbd101a5844f851da9ae6e90f59753c10ff42 commit c81858eb52266b3d6ba28ca4f62a198231a10cdc commit 4c0be90e6874b8af30541c37689780fc7c8276c9 commit 04f4a70a183a688a60fe3882d6e4236ea02cfc67 commit 3df01f5c72b0b4ecdca2b3da88a4b6fac809986b commit 4071e0872fcad846381f86f5164236827f7e91c8 commit 1564d411e17f51e2f64655b4e4da015be1ba7eaa commit abdea2847acfe41313620a5359940522990018e3 commit b31cfb47b27ae02ea7fb3f956b99c79356730e2a commit cdfad4db7756563db7d458216d9e3c2651dddc7d commit 1e52db8a439b147f314681129f9ee33f16900767 commit d07a578703dbf839ea39bffc425fba2321f45543 commit 56e65164b832d777c1f0a8af47af8cc26e6506d5 commit ba7cf33f233efcd7e0a20ae8a73ffe75bf7337dc commit 4b526132cce81cd2430d6548ea031b364538c5c0 commit 3a745dfc715c50d57e52be744c05c66d65853e94 commit d210d8c0df2f05a081758f3b0b9dc2f4f247b661 commit 29fb595d48758a6804f6f5ad29df9508eeba242b commit 54599011b7569f6bb027b17248015c622705d741 commit 328add8892c261f28dbf2ef060e8a0707f795c43 commit c66c670ded611ba4528898a2520996e5f55cb03e commit 3425b2205d30c9d639217a32368422e4ab95e999 commit af52e168fd5a7b579c349cb67b5d253433b12212 commit 8c8667682e8414fd766c376219487a085f03e823 commit 8cecf4aec31397f2cd7f9a1d277bef374dfea5c6 commit 88b2f5fbcc4c42e0cc5349577d750dc2a66cb58a commit b86f87af3460747a829508d26a0fdf42daf807bd commit 9d7d1e8b1c13322982da169176cbdd94f66f371d commit 72d2031070e26f1de192cbcbbb45ba774183ab30 commit 94b110106b48bd84be6c7fca3bc36a77f974a9a1 commit 86a30fb1224d407cb03e178d4cbebc94e1c38463 commit 14947416b1e412123ecb6cb7e819ebb4c74b1f81 commit 7deb50baf87a026a20c6e89f19f9e31dae329bc3 commit b7d4e9074ac06ea507f1927192ddf6c9cae8e085 commit 6f320c6a00ce4c7d917021b64bab1571b860915c commit 1b455361d57016e820803b9c61eb68cd1db48a88 commit 09fc93141d4c6ba3f6e78ce3c995c9dedac4a37c commit 19be15dcc0f6bcb4be9109faf2d50771fc9a80e1 commit d831e62aa276977f05af6a6730bb6e1172e9d2c3 commit 216afc2c11b7e920c81e356c7bc1221d81b8436b commit c8ff26b82c5b0f589516edcf7628704e3a6bc426 commit 432ed92bfb5576865cd1fcc4cfed8a84d731b54a commit 41c0f8a36f15fab58cbbcf64f641250230725da8 commit 7b43a37348b7a3f07d2d7996539eb85f89e8acac commit 5c8c22adc802b2abe6fc7933087d5a029545fdff commit aa3d586e16242ada8e865f79249e4b6ac0c7704c commit bfbda472276704d7b7f065a646a67b30b7a89730 commit 7858cc0b55e3d44cb0a5a033207c78fc2d5f4df9 commit d2c4b1db1c4f9e59ccb2d65aa1840420a059bf46 commit 75fe5f347167aceb8b78b9f6ad0ba01a38a34e16 commit 0b03829fdece47beba9ecb7dbcbde4585ee3663e commit 24acbcce5cc673886c2f4f9b3f6f89a9c6a53b7e commit 7d3f6acaf87c7db6dcd868694a2f65e7040478dc commit 3b724909a380fddb44dfa0072fc459c698a52658 commit 966e397e4f6032b73438f8d775756541513e7daf commit d6fcbec281a2ed16794fabea49d4ac93db2d2944 commit d6ddb6624a7fc4fc3d7750bccaf43c66b55beab9 commit 95951654ca57786c658942a7c6f4471ef3f0d47e commit 6f6fd690de1aef476e631ac03779e7d1de3fe451 commit ac9b8b7fee6578015483c5f130bad78d368c00cd commit f558d676cfbc388f2c3175c3c1f99c57902ea3c1 commit 2c3d1bd284c5141a85188f48e7f42112e81ffcd8 commit 9aa8586063a465da986a39ef55e3e5c12140cde5 commit 60a2f25de7b8b785baee2932db932ae9a5b8c86d commit e1eb97c211859ed4a86f63be24c6723316450bcf commit 0f1bb41bf39695c84c83ce6f69e125b562d1d7ab commit 93160b2d1747500b5610569b549c8d7b7e9d0f21 commit 0edd2d251b7bdbf33f45924bb3c3cace38a00c42 commit 99ab1a29dafe1a091ed57e82b74581b4bbad0c96 commit 224689e14a2223320aeeabea273fe5207b2e196a commit 2f757b4c401fbeffcd6d92e4a8b4b9b25f0070c7 commit 3de9076e9f823ec8418c053c734d6e0fff30a635 commit 79a0bcadb4ca1bd9af126faecf22999bef859b2d commit 11abdbc22b1ad8fd0d41ca0742c79a153b2ade97 commit e6946ea8fcb5625c46754435fef5523f12659c11 commit b1ce52fbf6ebfc3815773045856c695ce86ca679 commit 7aefee83fcdfe5a6a443b87650f3b6cb5721d3ad commit 629df234bfe73dacb4bb0daa4bc2c14824dba159 commit c4f5ded082bb9433b180dbfbb8352f92e319149b commit d5e12fffcc01b3a22157a9cd4a7474ee6355182e commit 335d62ade5feaa46082f8da755ffdc569ae51768 commit 1c99d3d3edab25617afbb1592564d3ecc233bc5d commit 364e039827ef628c650c21c1afe1c54d9c3296d9 commit e158cf936114661044dface6da794437a91b53c4 commit 769551c45c2b66b4d0bbe5a78aab4156f85c6331 commit c454f1a6b994e44e338ac837981441a298c941b8 commit f2345ed5374ef964ff97e13e82f53b07c827b373 commit 25275c8a4f1be38494caae25cfbac116280a5351 commit 63d8cb8fe3ddf74627003f99ad085887baf91e60 commit 0ef94554dc40fbdb7e57ff90cd1e7fa71e1e89fd commit 1173db117634b42383cf5d397ddfd4d4860ae20b commit 3179338750d83877bbc491493032bdf192266ad9 commit ecde5db1598aecab54cc392282c15114f526f05f commit eb1ae34e48a09b7a1179c579aed042b032e408f4 commit 23368d7b9c1a7d7f0b1435f69a3bee12d836b2ec commit f2e9952449c07ed324b39c7b86a6369c16eb3d18 commit 21cd078519ed10ad32d603982e80a3830e5d9236 commit 814ebf50bb284c72ae10bedf36b81ceb680030eb commit ddadc87f14986886d0d9934219644a07409ac313 commit b7e04af37edc5b6fd9a5aa206ca4dc73346c688b commit 66d58ec0bc659fafcda962a5678dbb3f061d7359 commit 46c131986030d48c64a1df43b8512db168a8d8b0 commit 844f3228d225d25af8a21a7e1554d78c20823a37 commit 51f9183e4af8c7f00e81180cbb9ee4a98a0f0aa1 commit f79d6d28d8fe77b14beeaebe5393d9f294f8d09d commit 91329f921283b995ac125a0c6e61be0c1399f66f commit 510ba36e86eeb3ca89326dd51da32806e1ede693 commit 0f43988fb9c1c0a0c2f5ccf2d1bdb914f6e4e79b commit 67ba7a82d99a8a8b4bcc1b8124b5640c63dd51bf commit 85cb9d603953d77de5cb311d229a79c439ff6bfb commit 4488cd671c77d155bed3341925e16c5f1cbc2b22 commit ff422eb7a91ae2ce313e207015c10284eca8e107 commit d1a6bfff94010ecdda469bd9d6580982491aedca commit 01b32973367bbcd12ef38f7a9fbed3a0f1603b6e commit c02c1960c93eede587576625a1221205a68a904f commit 00dedab07b52ca16107e82ce5ca7caaaedf6a417 commit 74ab6253dc077263a61bebfbdd3766b5c11e94be commit ef5715846283e9ea6031d773e3c772034f4879f4 commit 2531e5dced848e60dbe9597f8a87dabf5a947687 commit 75125e6b4c204129ab73e95d7fbfcd5a26c5b92c commit 73fbc3e00003fb8d84eb41f708f4b74ca9930237 commit b6420021e17e262c57bb289d0556ee181b014f9c commit ce798376ef6764de51d8f4684ae525b55df295fa commit 0cdb3f9740844b9d95ca413e3fcff11f81223ecf commit 8ce97959ecc23a49c8a24975f5566287e5b15944 commit b194d21b9bcc15b50df1bc3ff7428e51c2918a6f commit f326d7cc745683f53052b84382bd10567b45cd5d commit 599142f948cf65ec054c84fb4bc170fe2838411a commit 4c11d30c95576937c6c35e6f29884761f2dddb43 commit 2ac72cbc7e61ef24e8ee2f39d02b3b8b59c14a41 commit b2aa3d4b3048598e665230e2da46a62ad1f48d52 commit d19fb10085a49b77578314f69fff21562f7cd054 commit 7be73af53b57c98cf48e37b66da4dc00c63bd6e2 commit d8cd2d617a264734e94c29bcee5e5b5d6b7f3e92 commit c14d5b5095cc805b0f3f04182b5e18e618258b86 commit 2581f22fd849d7c8a5fedb8b1531d20d2dcd59aa commit b80160a53a4aad05987ead30125cdca3991bac09 commit 9a55c77978308695cded564d6b17390f7bb879f4 commit d430e856ed009f9a98f12b6d6812d7ee1d7f3e1c commit b712d7c20133b67f13aa134e7534369f19e1214f commit 3ed181b8ff43fc03c85d43a726e578bd131d39e4 commit b72fa761fc6be316bbf3ef9af4b7f145a208b1f3 commit 0cce5f285d9ae81c33993f3270fe77f5e74a69ab commit 736f911204ec30707c24817781de5f990a5f545d commit 5d32b7e77b892c1eada532f37841f504175e4b64 commit d3620eeae82cccf8316e6754f8ddb52473e2e5ea commit 512b322b9a16c2465b9926b98ab067421e5669f9 commit 347eccc4053f0a34e564dd98b029808f365ee479 commit 48fdcadb2c404c4156a45dcff8d5760aa0e8ae44 commit 72e6ea95c41d4b61b509037cdaec09194f577d81 commit 985f7758529083f35941d49f38a6f23a4430f59c commit a1a9143c96ba185cda6ed193e7b13c77fc90dafc commit 1446226d32a45bb7c4f63195a59be8c08defe658 commit e060c7ba7e335e2e0b76972a1efa0715915bcb7a commit 26e20235ce00219a1ca2fb617d82fa24607190ae commit 8fb0efb10184c8121719247e5d59e68e7f5617de commit 50bff04d0250d6606eb5fa3907bee43b4a6c5742 commit f6bce954f432c556659a57be9e18fecdc575affb commit 4d154b1ca580fd724f384a7042a5f24611809476 commit ec41bdd82e9b043a53e8cd80746e406cb1ed72b9 commit e07c5a35d178d5f86f7c3ee7125d7b22b7e6d166 commit 83b90b138bc291769d212008d7b6952225a1eba0 commit 20897c6e711595b4bbd8da45fe9fec3905e19fea commit 7794e99848de19e37b45a17a23115e973021b7ae commit 258ed689bc3163f86204f75df6c23f92b59b3fad commit 5d6f66b542a6a6f8b0c5b4698fefe0f7fd5e065a commit 546e6309d14cfdc584b92eb6f2274618e629b3f5 commit 062a7ce676e092faf03daa6c579224bb3d904ae1 commit 45430e7b7c8de9ed910d99cc8906db3db5a1334d commit 30dee753ca0a1b565da5eec8d0686315f595d171 commit d370a9dba5c4a9bc1b6bc0643037700a03fceae1 commit 36b75080e68b4a27ae1c40beffb3d6131f8eeeff commit f33fe58298e686e7cc2d24f747c980457812b566 commit 673087d8b023faf34b84e8faf63bbeea3da87bab commit 964cf2c28da7d525c40e126006511629575fe3e9 commit 9eb5c2a29afafc39505216e577292f0faa255295 commit 872c0de315d2ebad16d0ff574f8c9ce26dd5c6f2 commit 290c0462e0bb68b0878e25c15e7096626dd5bc15 commit 7f46daca139985cbfb79f1c3a41f4df065d45b1e commit 70bb97d95fe149607f8e148087ee7e48cc3e94d6 commit 7a1dd866c5ac7d25bd1795e1cd507cabe29958ea commit bea00fab2b0e5359ee88a2b127f15a35cd48872b commit 7991585b7743fb9b88e8cd2317ce7a87c4f86450 commit c801cf3d25a622b96057f5cb9110785c56c43510 commit 67a4888dc38c1d90d22b051cdb68c9144a6bc317 commit c6bce984b8917b4a2fba17b5f19f1b44cf69d736 commit ccb167104a8fea3cca08d1d1d451858436a4b9c8 commit afa91e2d1e58a1896067c55873a962704d5840e9 commit a329598e9eab8cb0f33ec0ede1f7a4e290b1be1c commit ecfd1bc18a5b8c5b679513f75c75ad2b8deafa13 commit 3aec7a5af4d6248b7462b7d1eb597f06d35f5ee0 commit 5745cb2da6fe08899420d695ce436df0166e7807 commit 6b7fd8306efbd406fca9e8d27b2c103f951760c8 commit 44b9a7cfc035166f23b9fddecac3219133a8a15f commit 9716bae1eaaf35e308cdb97b631211495cbb44d9 commit 79d92dbaf60c30fe4da7a047c523ec752828678d commit fa3c5a8edc0447ddcca8e3ab4647d05ddaff38fa commit 5f56be33f33dd1d50b9433f842c879a20dc00f5b commit 6e3726419bfc8ab52e7a54b376b4c73282203807 commit 3a19a8af64eaff8a8b230796741a1a8277205344 commit 5434bc03f52de2ec57d6ce684b1853928f508cbc commit 28e782b2c7137f68569730ec4205e729cc21152d commit 2aadb520bfacec12527effce3566f8df55e5d08e commit 9488d7affe01641eb3639fd8eeddd22451f1eaf8 commit 04806c1a21d7669b0d05130cf62f5b983b165801 commit f88e570d4b1fb97dc4d1b27235757cedec7707d3 commit 64af3d3d66c741c5cf6a62606ae37834973a2428 commit e7d1f1162bb1de369be3a51ca6346bd862b6cc1c commit 90bc75b08f30ac2ed98bdff60ced0e6d97eb813d commit 191ef65b4ecb27a7e1fefd71c78e8d0aba9fc3aa commit 1cd04b5c44a2c2e3e0751d543c9097d218182673 commit fb63d6fdcd3cbca829ddfba5f35b8b5e5674cfe5 commit 9c1a429217d294ade1a88eddde987a183d4d3ae4 commit e7f67d0388e77e3863f2f2e9ae4a5f8bce2a718a commit b593ea9406237739d2da42e6f245c390d8a69f43 commit cc2db2ef8d9eebc0df03808ac0dadbdb96733499 commit 587c48f622374e5d47b1d515c6006a4df4dee882 commit 6320b9199dd99622668649c234d4e8a99e44a9c8 commit 554c00181968d43426bfe68c86541b89265075de commit 6a7bd6cde73f0fb7e5faa964dbdeb45b55c64698 commit 509eaa8aeee64bd7a41ca53d8728e497a9991074 commit 676a079fb3be66aed12cf40f236c77b8e7c189c3 commit a2ab7cb169da38757323929f7b3b4cf396ec53b5 commit d9ca4b760ef6d93766b9d87df8cf5a33c807ea51 commit ab689514b6ac518ef6e88afa245b834b0dae15a5 commit bd49e50d81b543e678965118a86958d87c045c73 commit 9b090d57746d965684f53a1aefcb363bab653ad3 commit f2f6b667c67daee6fe2c51b5cec3bb0f1b4c1ce0 commit 6109f24f87d75122cf6de50901115cbee4285ce2 commit baa14865529bf1f3c12dc6145bd9109ef289e038 commit 6aa18d7436b0c11f7e62fd6cdb707eaeab1dc473 commit 188ced1e0ff892f0948f20480e2e0122380ae46d commit 995f7dafd110eecbeef1e02846d897d64839d838 commit 8a0a7b98d4b6eeeab337ec25daa4bc0a5e710a15 commit a856a53de93ef25e44b315fc1aedce609ba2d453 commit 735940f99966a5d510c43d05c932da536b33715a commit 01d71dff61c7e1efae1d7f11b71dfa4549c172bb commit cfa7772880f845f5d6dbee69c441c6efbffa425b commit 3c7bbd4c9dc42e05218d489bd487580336d42fc7 commit 484436ec5c2bffe8f346a09ae1cbc4cbf5e50005 commit 1155de965e6a4987e2897f78ea56f07c7140764e commit 76e220d4d88266a1b9f44b409959079292e409ad commit bdc9abed51b52965557f9c46d541b5ca3fc66da3 commit 2291c091107d0635f10269098152900c0a12fd00 commit de1429a99fd37f706e6bdbf5e9ad318e1523442c commit a6bc7cda37d1ad52cdc59a8d4c4d654836f8c238 commit 31a278b5a11e6785db7f4976419d2b284591720e commit 26a22952c8551763f3ecc3251e3d8d213dc08aa4 commit f7e20cfb59c9f6dad45539286a1c804b24fd86c7 commit 7065b19bd542e5dfdcfc421aed4ab9e4fefa19cc commit d8a417c4bd510e7ed8ccd30045bf2bf307c00c57 commit bb3c3e79d9a1331eb03696e9a4274293767af594 commit 4465b8c6d3539811ce576f163cb3bf3890e5c883 commit c60f91bbc4bcd91f9c7f3de36c541951b12d165a commit 3a1c27cd0122409a9fc425106fff79655ceeaa20 commit 241f5d25ff198f86bbd812a655ddc86834dedb94 commit 19fa7aa4d235cd21b1c62977b2e8d6331976286f commit c9f422de07b1c62ab6da0a240802ac24efe26dc4 commit 6d95155ae71963ebf43a8df60f39704294f09dae commit bbc9651fe9f4c081e9931e2b3f6a6c5b2d05a942 commit bc54f42c0efaa81b42b53ce5f2423f7778d82516 commit cee70645a7499e3a2731953db80124c9d5405d5f commit cf13ae6b81d5402ba93c46635dd46eb19ab49c4c commit 1bd985ff9fc463a72e4ceb65ae6bcb735ce93c25 commit cd506a33b0d9759e0a58556799b1b38650fa3698 commit a0b834c8957a7d2848face008a12382a0ad11ffc commit c7117419784f612d59ee565145f722e8b5541fe6 commit 5b6937b65e45e31af56a5bba47f69acc550acf26 commit 48d74a0a45201de4efa016fb2f556889db37ed28 commit dc51c682ddb0104851c8ccbe1d644163ae38262b commit 2689390b4ecc27d6f0a97f24544d75bd168a21b8 commit df798d43b35521f004c2f209dbb264c47488218f commit 9cad70a9401f4d962e1baa9d607a291bfdc8f010 commit 199bc8c175d712be1610dcad7f7240ad5c864281 commit 04c09e4b879b225f3747606bcfc97d00d82d800f commit 0ff7639bb1a6299930b7d66214bc6b0a293d8833 commit 9871927034d177aacc7054e30c74e11fcddf8ee1 commit 561608610bca0353b567298ce0e683b517fa872f commit 514ca6dffb2b76c1593b558527e2c84bd7faa249 commit c0086b71441d8af3f65a065f582b5e73891c9910 commit 48dd4a5e81005d26fdd88fbff439cc91f9992830 commit ddb904d6d08730bd54bc842a2d85fcfcfa27aff5 commit a9940ce97d1dc5fe8e6b2f607e9da62073d5bca2 commit 7acacca1b157fcb258cfd781603425f73bc7370b commit 3ec3b42752a29af22369e72d2935f36cf4c77713 commit 40672b792a36894aff3a337b695f6136ee6ac5d4 commit 444f396c62420a010270de9a7963c72473928dc3 commit 242136edda0f405ebdd93ea788f2ed9a907ce897 commit 8032e67f79497e4cad26d3d229905b349a2a1c76 commit 42505ab1201918585b2627b171b064193a815c0d commit adcea136b4e865b11cf414321e397d872558e767 commit 3d9d313d518c5bc9e5ab6aeab86c9fa4bece095c commit 4bfa8a140db33599e666400fe4007d27fbacc96f commit ee6af5de1cf438cbf4f82d6d7c453daa47dcaff9 commit 46edb0a3eb16cebc2db6f9b6f7c19813d52bfcc9 commit 967c5d7c64e207c9cb1b99ff3d2aec95e3316af7 commit ad1e331fc451a2cffc72ae193b843682ce237e24 commit 73ba282e7faf625faf26a09861e91a9fd20ea9a8 commit e7b180b22022f52e3f5fca695cc75d63bddc5a1c commit 8d490e019b3b8da9cd9986d75b493ac3aa8d3269 commit f91806033fb7ed1eb7e110849dd48f41c4fe4d4a commit e8ac8048a759ab59042019fd84e6db98c7dc32f8 commit b10d0c5e9df7059be5bbfe2c6b293d8e4883f975 commit 83ee002df0ccdd7429d6355f65af3845af016ffe commit fcc8f80517ff71fab24f63dcb4bdb43e63b52fbd commit b0ac1b42dbdcc990ad32d6f8107a1d5214c33e67 commit 9262f411dc2e765d8a1d52d33c84d2ebb0580cec commit 29c03edecd090de105b9353d8eb4e430132218a8 commit 030ffd4d43b433bc6671d9ec34fc12c59220b95d commit 64da71ea76418550aafd85740dfde074c99a3a6c commit fa1040811678afc0fad043d7be1de252de74a035 commit 806e8c5579405a1920902ae58bd7907341a37f7d commit 0ea55445554209913a72eab86b60f5788776c4d6 commit 19f0edd897f73c4eebb3b5825d8910f0edfa894e commit 8d7b1496754dcbc7a7155c85d919ad435979a887 commit cf85764e2bf1acbefb45e09919a8e9fafc58e119 commit 0b6dc64b4e2254a8aa6318116f684ffb440a6e4c commit f889f9c68bcc2da0286ee22a566ed07d16b509d9 commit e21e0b782430c7731b0f12ebb7a5e2ff7c20d86b commit 6b18376ef37c3dd2bbf34ed4b42fefaa1f348a3d commit 621a4e9efb18078d5426b3628d52a629eafe4bc2 commit 74feef5667ef326122054d11257b2a2e1098dac0 commit 0f83227bc8f09da9a11cbbdfdaa9d724f83086f4 commit 8444453dced3e5d81a1ca0368fc6227834b9eb8f commit 29b1fc665cc9290335dab7014fd8c9e7386dc7ad commit 836bc350a59bf151e99919ba10bca95dc2b1bd70 commit eb14b8f50516b543b3483a14b1f30001940e6305 commit b5812822d9c9829187efe1ef99141b5edcfc8c7c commit 015a04a59e3f9ff4a8f8a8e70c2da645a2e4b82f commit 400c49e27d28ebe4651e19d29b3009698e309a67 commit 368c33ac8ab984616b862a3f20e57cef5f8417e0 commit 498906d3761070f8c0e54d3a486e01a0c26b4ff4 commit fa4c500ce93f4f933c38e6d6388970e121e27b21 commit cfe34d6a4c0f2754ab9b0fb0cd23d4c9f50a3859 commit 2468c0dd01d1b911b9d8ae6c13b8ba28d1e01bb6 commit be30c827e16e5527644f3126ceb050cb60301a0f commit c09b5ddb6e21e839f27daac6ca45f27bb5f2f45d commit 26d0ecc758accce04baa844723be8935f9d516ee commit cd962cdb33a799a37d4ade1af023a9edf2a44a94 commit 3ebfafa75c1e1250bd1f735e4f48f3b20ece5b99 commit a99b1e7f6395ec17266d790a5e9d6cab6cb33ba2 commit 9e93147f121e9c333316c87ee6be29507c817186 commit d434ac6252768a5aecf7004fddb939a1d945085f commit 495d6f77dfa79b26bfa95eca3215179659c2cf8e commit 89b85751b4fda1918cf314318d61a184218d3df3 commit 17c99a03b7768f6ae8fa128e72c6a5d95b184eda commit 90fa6a4210b78b39091627f4bd10f28835c4c5c2 commit 491097568a55238017356dba341cf6726a35b6bc commit 1572fc3162de89f484d544beac6ae1204440f3c7 commit eff70dac16d1f87c262049783b3281b706448593 commit 4edadc41a3a444566cbf1f5204867a9c8f44b255 commit e70aa1016e5b54762e922318d0e20bc646993c13 commit 2948b24233cfe3c8f2c071b6c83efc3e05881023 commit fcc6b719ae8576a00ddd3e261b18443594250189 commit 9081f8ca2713356650c6db7e1e989ce7c68267dd commit 5cef84939723f96352d7087b0ea596a65fb972c6 commit fdd0b80172758ce284f19fa8a26d90c61e4371d2 commit 983095eaf6c161ef73d96152bfc1a99ca051cd57 commit eef3811433a53b7db2ea7d2be809e23a70ff42bc commit bf9ca9f36975efc8306622d29e521cb5459bd168 commit 375c4d1583948cf2439833e4a85d5a0aee853895 commit fabdb275e5ed13271d8fa218a22616ba7ae5aeea commit 5f128aa1052e7d28074ac9b5279d0a09232b699a commit 325257f2e9cb753a1581f8ca50e84012010d2718 commit 454772c7f7ecf6c51fadb7f35bc3ee430bd86885 commit 3c5426740ee84f2d03c5bdc831c52c89334bbf69 commit ff2a391349afcf62e99897de9bfd854ecf9d21b8 commit 56056ef643fcda3343a2318091d27ea3addd4be5 commit 9a7f6aeac2948e4212e100b3f939a0cc8d0126be commit ea797cf4b7f8470f1b23cd084096cb93fb93e6c3 commit d79e8cab32371b0f08ae0ed6f1b2b9bd8b7a2873 commit 08f7200899ca72dec550af092ae424b7db099abd commit e183910ae4015214475b3248ce0b4c70f104f254 commit 0ac7a2c745e8a42803378b944fa0f4455b7240f6 commit 577b83b0f45f7b36d734708f5cad8b35e21ffb7d commit 50e52592fbe791d96ec2cb431d158cc6bc495be5 commit 45bb564de0a6f87e9f502ceb4ff4d9f936365c85 commit ce62827bc294ba5f8b3909bfa5d7dbf9de8aab6b commit 92cd5d046a96870abb0e9ad9922891066b5e5fb9 commit fdc97fdc0469583e7960a5b6acc4de9ed1f595e6 commit de49b912d2adfe5447c978036aeed1ccb6fe1db0 commit dc368a87457abf53178af774852b5a839efabf4a commit 07776fb3c8b37a45a106cc501423ff9e8521ace5 commit b758cd8057e9f982498efd73b3176987e996e5de commit 582d79f34330db4ccee85620cf95ee7ccb9a0d01 commit 68aaa74da5b44dbc742742057964cf25b2b6add0 commit 54cb39e2293b1e221708d3ac157ecc59086e1b46 commit aadb3e16b8f30cc1c1efdfe162f400e026385bfb commit c6d219fb0335e6a37a4a2a29fb4a537329823c83 commit cc13f2937725cf0c5fb67008959125d42da3fb80 commit 093acd131600ebf3d581a55ec0f20269abc8f588 commit 7e6e5519bb998acdf8bc755718ff4980a8e3be6d commit 0f1fe26137f12f9208bf2e0bed6b84def1f9c82a commit 16645d59b9074bed42cd9d2eef5e17e687258762 commit 5c99db622a12ad915a0e4ce201de8aaac06ac3eb commit 5159e72a930ee647d5addd709d4a1592b74cf535 commit cf8361def4f6c09063061da945ddf560c54ac693 commit a154f9ae877751f4ba2c81a5fd0fa1dea500ba31 commit b31a97af9f6c37fda9aceebeaf2ddb486479c6bb commit c34474b48cf12ee806132c269ccba1395b10f724 commit eb66d34d793ed48494820ce908c8c821b8e6cae5 commit 948f01d5e5595023c2e7cfc0184a322be00ef214 commit 08eeaa134e1d801e2d935c16b9200535bd580b8a commit 40167bcbd19c241fc30a912fa8a8276b9ed1a12e commit abb6f74973e20956d42e8227dde6fb4e92502c14 commit f035f4097f1e0a35a457b72427bb0c06ca0c81c4 commit 62eea520755e867aac35e087634ac40ad54d3201 commit e5030a74f976b4e808e28e78805c87203ac1a48d commit a6cb58a2c13b931743d83404b6ad798c32280586 commit 26ff1c38fc29ec5eb51c84cfeda1bc3e27de3c13 commit 945f516ed3468bef72f0da7c84a64a95c0ad28eb commit ab52af4ba7c7dc2e226ede5935a0587743b747d3 commit 73af58c1b441701a740b9157123b2ffd14aa3e0d commit 027d435906490812d4568ff371a8b63c24a36bcd commit 4af70f19e55904147c0515ff874204a5306ac807 commit f378b77227bc4732922c57f92be89438bb1018a1 commit 4fa04f4cccc4d81fd6272ca94b879b4d7630ed53 commit c602e4959a0c356b3dfa9e0b8b4ad4c501df3eb4 commit 38007fa96419a9db9719f170b9e8a7877821cdd1 commit 82e0b1299a3ef81a672398c547d8e7f553be793e commit 6ca728975654a7247b2e4aa2e9eb61043c833570 commit 0aa256252dbe74f48300824b9e65d5e93fe631ff commit 5c9464e2c7a74ce7b0288a7d3c8b96b1321fce55 commit c7ce956bb6d0f32ab921b6ffba1a6a834df96f21 commit 9276bcc22f52ab52ae77b7b19133943d88b9a3f8 commit 38e8c4184ea0eebe478a9e6fc8d1062561223429 commit 598dc42f25cc3060fd350db0f52af1075af3f500 commit 3c24e31c908eb12e99420ff33b74c01f045253fe commit 1985e3512b5a3777f6a18c36e40f3926037120bb commit 3904f317fd977533f6d7d3c4bfd75e0ac6169bb7 commit ec7629859331fb67dbfb6bcd47f887a402e390ff commit f9055051292442d52092f17e191cf0a58d23d4ed commit eeb133ff78476eb1e6e88154dfb75a741e8a034a commit 157c1381780a453e06430f8b35bb8c5d439eb8c6 commit 68c205ef3c39edce4a3346b8a53fd2b700394a0c commit f124478dd18c519544489caddce78e7c5796a758 commit b7ca446ecb53205944968617b158f073bcacaedc commit 2b8c19b9d7bc9d03e8c44bd391d21e95c07a2c83 commit 3357f6f465e62c0bc5e906365063734740c9f6d4 commit b605f257f386b7f4b6fc9c0f82b86b75d0579287 commit 2a9487b5aa55753993fde80e4841128c8da4df71 commit 5a847750aac8454a1604070ab99d689c0a6e4290 commit 49869668ff0e3f380858b4c20b8d0cb02b933f48 commit 2a1c99d7159b798288bfb20a76c1e665e2344126 commit bc62654df3c888dec735343f5db9907ac93aea60 commit 4e5e6fa77a9d40cdf85ade7f86d07dc8929941c9 commit ac9e1786271f771ff1f774742602330be2d57a12 commit 3004d2e9cca5d59d25dff670a03a005d40601ded commit 718bd8a1a5ee873778a72523c06da054a89108b4 commit e28df86aeeff0b84c13e676f641ea879abbdb809 commit 6afebd850d1ab5518c273b32532f0b2086cc633a commit e4f9fd9edbc22faceb4c9c57242440bb9e17924b commit 336dca397dcefc5d7436be1fee3c814ed6512996 commit fa171d49e49af89dfece89ade803a5d471d919a8 commit 73baf72eb193c6a30d883a380f2f8d26fd6d5ff9 commit 2f602531db4c5b522073aff1b09d2d5408352a1c commit 1566b50a439cb8f5b50c7f1e6543e38d1e1848f6 commit f0faeb2e701ca51115ff4f025152dfc685f9ca07 commit fec7efe7bf2d7fd7824a5d0420e13d4a03bbfb47 commit f008baf08d3eb778c19890bff81869d6d3481bd1 commit a17aceb34e2f0ef36ffab0a96c51240e88a1c5fa commit dac81a9adbf0d57a77d566fea65e8153003e5bc2 commit 0c02cebc7fe943f92dae0e61628a7723fe1739b7 commit e90f7a58e659a30656b3a83173d4bdee1e2b853d commit 7e4333567db8f7d82929cb95458ceb6eb43bb4e4 commit 37ea1aee18e7418ad5a3aa5f14c87c8e0736fad1 commit 87dfeb47a5f48e0831071f5b69eb4ec3147fd56b commit ca0bfaad4fb1c70c494953791780d52c513ee324 commit 04c1ea9d6482a012c050720e13fcb858884af75d commit f2a1fbdd1f193f3d9b5b28349d924ca45046f541 commit ab47fa8358f73c25543e6bcfe98fa952c151666e commit 511a623fb46a6cf578c61d4f2755783c48807c77 commit 3c603b1fa8b44de94c97dd0baf9b40a74586b55d commit c2edec1676ca40abf40d1d895765a6cf801decba commit 2998bccfa4197ff49bf70cbe14563d1417fe3ccf commit ddef2cfbb8927f7236f1e0d12ffd35b5d576e300 commit 91b586cc05fdcddf3c63109dee5c7960cfb2e852 commit a00e85713c372f19a81432e44f0bd5cb5102c644 commit b7a08552e11fb5f1b9544e251f56660fcfee3dc2 commit e7595e3740e64b824cb8adda1dd5c3b7e1057f5c commit 7da55c27e76749b98401fe307d3e243fe6ceb53d commit 00ee2e58c144f425345be65ce71f3b37119a673b commit d0a6d85072b02c02697bc60f2115756aa1bf89d8 commit 7920af262ad1ffa60de091794aeac9531a9d4226 commit c75bfd1567fec225b53574f5b7f392c4951de729 commit 234e94555800d644ae970ff8da50f1f03dbc6ff9 commit d4ab6c409b16954d977959e1b9848910f58f32bc commit 7978c4d41496becda1c1cbd5b783c60e9b64d618 commit e864180ee49b4d30e640fd1e1d852b86411420c9 commit eab57bf22f07a9242171bcc6909b30f4c737ee5f commit 2e216b1e6ba218afc873f4cdaf383e8d18403d74 commit ef5c0f897ec91e43b1d719dec170279e4c68382c commit 6670142d25f3cc3166f2a6c8454acd310bf2776a commit ff4e49f446ed24772182c724e0ef1a5be23c622a commit dec4f2d224ed7cae488189013a238432b383bfeb commit c5e358913d92bf32ce0d199c133b2c5ffd1e980d commit 3027ce13e04eee76539ca65c2cb1028a01c8c508 commit 88c61827cedc14cd305d4266dc18ff0fdb3f8d4c commit 6d438caaeaa1a7fae7b523e7bc4cee262b9f101a commit 669d6b078ed8991266da4c68c46ce7d2e942c474 commit f8718c482572181ca364ffca3c27365cc83cfe9e commit 0568a4086a6c7386885eb2ac2dae3f7186eb503f commit 264eecdba211bbeb8c0ed313ffe03e9dd1e20262 commit 5575d7b661887760f385e8c68913da5cf202a8cf commit 45fe957ae769b9122f4a40f2528c516132fe7e3d commit b2c2f2df6f01174eefc1ea2aa9aef8b1a6c69575 commit ed43c40e1f10e0ee1d49b841ee35b23a3a7113ee commit aa71584b323acf62f42844e4f1b4d472b7958a0b commit 73fc975318e0ab3385c5b3372c7b296ae58c8d6b commit f5a5f04b6019b9b61a1d744ea80376c1365218af commit d498771b0b830140a70cb8118ee0ee522be94f39 commit 0af86604e34188e1a7263dac739f2b8faa6e892c commit 391acbc6899791a963716e7be4ffe5e682bd7acf commit d0e78f535cbcda9a4574e8d329d099cebda64df4 commit 86266829ea755f737762ebda614c59b136c8feac commit 9bbfab1c7cf7801e50b131ccf04af8d32b01dcec commit 1c4324793e9bfb5a29c02844023c8ad412fa0467 commit 2adfc4e022f397913a23756a08fbfca3c4ee9c8b commit 2d8865b27724117022a67984e4a6ef94c9555ec7 commit 8c52ca22b15b5b3ce62b3e2a9ec9f3fbb6302783 commit 638d1c79cbf15c14f1bcf98fd8135ea83a04dc50 commit 9d85821a58f4ff2839d7d3290e0256c1b42dd9da commit 2d3789e325e6aa91d228aa461c152d8e8f107bc4 commit c4e3267868e1debb3d87d21a36efc8a2255298e2 commit dd73925e3b84bcf2b29c20d6276843e7ed7cd771 commit 8bdbde7c4c84286aff55c0af37bcf0a72828d98f commit b09469817812ed30c2fda685831a1779437c9c11 commit 15438b32598744cf207398dc3e02bf88db42cf9a commit 5a9b255fdb2b235502bcfc0951d71c0c3f6d030e commit 42493f7cb2c96ef96cce5809878ee2fa0ce63b1f commit 54698865addac97faa8dea4e07be838219128186 commit ae6daede02d2a31171fd20887363e59f4aec3768 commit cb9d05b9c2696431db1501160dab9f81a23ab0e3 commit fdf531b80345aa0ffb15dd6b3c3db52f1f194abe commit 785778ce21cf50cbd3ce6cad0bf4e6c0ba3a3b41 commit f498d28977ab76ede14d4a78047e54a215c0a9d9 commit 54836ee194f9be651d5efde0037d51b700e6b3e9 commit b27259626a4f7f83ef0addf84e068e298ef7a231 commit 16b79b3397a314bfc7f08d8e5d52e9b09c6a0481 commit 53d916d9a425fb10e974318991b9748a05efaaea commit c9402efe492bb46ccbf94fedc4783eb8f8747567 commit 4fab6b8b3033c02f11837a26d24297cce9a5b6ae commit 5010375afab51fe80867ac15900f49bdb2908b9e commit b84641c0a1742b79084ddc4124e2010f3f09888a commit edd27f8ee89d66a42dbd691567ca01909f33138d commit 1fea297844413e3e775332faa61229be8ff3679e commit 9677dd01ca1ada359f22cd129ccaeab9cd383567 commit 5316dd0d617bb98956f75cb33982efe1b26d8f19 commit 5b7f65acf1b083868e0fa9bf0617168794c201ff commit d3e80f2dcf8c2aae09eca6b394eb253505e37dda commit 68cc33f6137071cf634bfb3869f69accfa13eaef commit eccd1dbc49946e7621ec6545c4b31dd557375ee6 commit dd7d72c9a45c8d0a6544970846378aecbec4d35e commit 4adb24f7341a972ac013fc523d33482e34dcbe71 commit f8e1c8f5b05fd2f11e8c611bede20cb738bc34cf commit c063cce7df3a765539e2a2d75ab943f334446cce commit b156a3e9bf4fdb6bc3bf4152f70b56573ff1350d commit b95702e275a78d0b65b4877fa83ab817a18df855 commit 05255ccbf172cb3e4c18200e077b46cc109698f5 commit 0706d57100fd0b2b34d50855726f648b8bfa7d2b commit 1bb01bdab03f43e324dcc3a4f0cfc15c5a2e215e commit a1ed6865df70d0b022f510691059219d0b715d84 commit 03c7918d0d52378d215712ff66c06a980a2119ab commit cce3819a5f5a55e08e5a3c9dcd1f46a3c5276ea8 commit aef8dc4398c6c6fde0d4c746e8343a33c683cc33 commit e051d64b0a8f5fba923ffbe2003d691ef03f0607 commit 3acbde3e9ef941fe6c847a007f72aefee0746226 commit f2bf9e95989c0163650dbeaede658d0fcf929063 commit 877517f2dcba58867b64e3e0c616f26c62d4a8db commit 0e3771f459ad84a286802ee22896f7a64a744f21 commit 13d1359d67485c220832594fa044436992597823 commit 0a8c581ce01c84214b8221fcc5d52b45c09d0007 commit 16b65af8b746ca6af74fd45156e755f2c8fa2379 commit 04d0aed08206a235470ca82c08f46aa7b73e97fc commit b330568f0c51b0b80e463841b0062206011a4746 commit 62ea2eeba7bf11f4b04e080475de93c2f8ee0f92 commit e82290a2e0e8ec5e836ecad1ca025021b3855c2d commit 3747c9818954368020c6de7602e7a8869213f053 commit 35e7a72a67190a3846cfe2f87add4ed1229b2248 commit 30ca6365bb4200f55e59bf1ab2a24e65406e9eac commit 131328aa5699c35ad0db0a4da75b38fae2379d23 commit c393538e01a1b92a63899023857b8140100ca7f3 commit 8b01f970ee890574b3607c85781354a765c849bd commit 310ec03841a36e3f45fb528f0dfdfe5b9e84b037 commit 7f57f21510de2c76596af7a51804e6f1abc0be00 commit 738f3d86182ed5f6d09205db6f0ba3c498c20d69 commit 81d604f44b1880a278197a4d076bddc83e763af5 commit 8b329d74fb6dbc920c17185a36089b3b7f4f64e1 commit ccb6ba9eba6f267e4ca3689152ddedb6351f673b commit 1c1bfd8b0b7ccf1d82b531875f13e35d7f96e086 commit 1ec6defe71ee8ecab72399a29f258c12f826c8df commit 7bd7cfa83359d7204b5c479f91f03bc153d69832 commit 31951bbe3e9f9399bf903cc68a2c0c7eedbb26b7 commit fddb9fa961a1ba5ddf0e076df3374137906ca48a commit 17419f5c6d409bcce5d094279a6fed5d5dbdba12 commit dd3cac0ac7ec4921dc93af884997a44c4e59b4e8 commit f6c823f9b9d40f6811a6da4bcf6005a52f28c6d6 commit eba791dc17547c78727778426962f855b52b266b commit 813e7d4cd05e16fa578563e4c4e62f3de4ee34fc commit fda812ebe3d95ed9c7c894b9a2d4bfc2926d46ec commit 76bec2a031630124002260c0ddc613b761819e2b commit 473af28d3e63b9b679c7878df33616c7ca6ea947 commit 730ac573868b03ea668d368d5d279c5434ae205c commit 7d3b9668e668506bfee97806756b5945bbc45d78 commit 2bac084468847cfe5bbc7166082b2a208514bb1c commit a474161e84fc0b15534a80f8dfcbaf5e48fd8249 commit c09d2eff81a997c169e0cacacd6b60c5e3aa33f2 commit 745f7170db4ffd2f2e9751a2c719a97c9a5fc438 commit 514dc965b26affc5f6c56d2fe367438932a286ae commit 173ef9182ae7242c3d2a8e3c59d6d51b88c70a0d commit 34b8d94b6ce478528467ece25191c69ba97c8180 commit 33837d62a4cb5ef316dec4fada5c1012ddbc0239 commit a1a049bd59b3a4b91619383a41b64a5b4e5a444d commit 34a6aa4e12dfa7a9cac031193bfc586bc015adf3 commit b7e2170b87938f8a4664018111de3ba8c1ed2db3 commit 301dfbfc84e81f2ee80a84574432df52125d2b4a commit 392829010238319689ee7aab5f9acffc23a53899 commit dfe190aff8814227314744d8ca5e946d0ca72e24 commit 73e1d104ef7f5c9843abf4686513b3706538572a commit b592d01df6efa2a4a93e360358b1f45057c80dda commit a9ebd10482d302831af3790da22954801ebdd525 commit 975507d73c44e9382478d6fd2d49c5e660cca4f4 commit 7069484dbebc293f3696553ba1e38c67dba438f6 commit 57c4982169dfca65ed35081228857312dfa04c4c commit e86e8798d3655d17ff6adf63191613d4b96bd294 commit 1349db1581545a9e7253f74ccd9eabbcdf99b294 commit e902dd7f3e3b93a401e1d3c0322cce933e75e809 commit 4002a6c55e99046b4a09ae255d38d3620b31fb1d commit c5afb313e7e623a06cd3428f0a651b2235211430 commit cc4d6ea0f21e782d8f1c8feeb6bb3133579570dd commit 2770b91588c2786809fdbdba589d9742dfc7af4f commit 4621e10e0158941d44223fd5f7451312473f73da commit e69d43356ffdfb968c0c515bd42a8ad9a7399fcb commit 46eb63ec8a98f9ec88f0a34d5a209968b8fc1ac9 commit 8178cfb0b48b122dd72ba6ffc2251926f62a0002 commit b5b561621d5d6bc0ddd6cc442893f6768d151c27 commit 45bd39fb3bf677b2bde8d7b36d85b3524dde0014 commit 50151b7f1c79a09117837eb95b76c2de76841dab commit 8332f1aaf571bec1c023a3b13ba35c86aaa2524d commit 5e211d2cf2d3b1a65b64dde4f4a9387510390692 commit 3e538e43222c37de60cefa6e662beb8b30297300 commit 2656e1ce783a90fa1aa0e11f2915d7c0442bf06f commit 239612c3762d280338169880aa180c4d43249fa0 commit 978f5428c938f2837ac9442c3e1bfb4910e5b0bc commit 3c7758beb269667373421fe7c7c44adcc7129d02 commit dbe2c4c8ab92211a57ca4d23bf8eaf6f23e31a54 commit 5d74be8c3a941993299c78f7d3d70c27f826af0b commit 2874129903600907bb29b5df15258b95630548f3 commit c8ad1bbbc2751063c7a5825911e58996ef849628 commit 7f7f43f28eb325c4ed8ed3f0534cdb00c9831e0d commit 1ff6631baeb1f5d69be192732d0157a06b43f20a commit 17035a45f1ae40b974920a4d097aeca5e9f92fda commit 15c2990e0f0108b9c3752d7072a97d45d4283aea commit b95fa494d6b74c30eeb4a50481aa1041c631754e commit b3181f433206a1432bc7093d1896fe36026f7fff commit 3494f5f5f675d84385b0f6bfcca1e10c739bf9bb commit 3ad7d18c5dad75ed38098c7cc3bc9594b4701399 commit 6d3581edffea0b3a64b0d3094d3f09222e0024f7 commit c5d86c19086fa752f0ef7ff8bca5df2dfc2fb00f commit ca1a453361cd1cc73752998d1acd8616582c2a64 commit 27e3b4ee6320b466dec3f6f342ca4b372893b36b commit 03f8db65ad8616ed8be67efc4379fdd60903235b commit 8411aa0c5541a1f2f03938c83445e2a1e7ce84a5 commit 37310936c36bd3e4d2a6415f3ca0dc5e1eae899a commit 61e22c77ded6dec109d1bfadaf0c4afd27095970 commit 208f53102a0b66d5735868c717de32ef49a20050 commit b67be58fafb21b6b75f792674ce8f9f5635694d1 commit d242f39dd10164d3d82e1922277c16c1f3704687 commit 3ddb4f80990407c3262bde7867d288967b8da6b8 commit 8e712bd7966c0f9024b1b30ac4bd6b8988a592dc commit 92959898fdd6f398a799faf0bdcb1f7afc35d055 commit 05e49e0c7cb839a7c4d1ae82ceb1fd940c561370 commit d9cf98e79ebfdeea8844c282b627d07c3512650c commit 5bfae679d39966fb12c8e390a80e7ecf05693dfe commit df433a3fac078c79dc4efab81015dec012322668 commit 3ed96977a3c5b0a9b017d626600402be3089d4fc commit cc806b74466672a9bbd4e9a04265d44eb506b686 commit 9c5219349b5bc588071529985eacd779a0dacfb7 commit 0493be3ba118ecb928afd9fe807ef77aa42755ae commit 225d3de749d0c76564a59aaa3e5b772fce6f0cf7 commit 460a336398e084ae061a661338123863239eb45c commit e2ef28ea15b461a394377c41b20f50ca59f98059 commit 5d30de4311d2d4165e78dc021c5cacb7496b3491 commit 8d1330d24788e1e28f6939779391ce835f19fbd2 commit 9ab4a7e181823793cdd8ba7c7aceebaf52e3824e commit 0d11307022978f1f395da587285c06c9cea47288 commit 0d5edcc60abe9a02501f01e032bfa2432c1364de commit 178c0a33c421d9716e734645a5d0da271bf4695f commit c2ef66e9ad882ab4b055a86657c20c61d203f003 commit ce79b73336d51288129f510569f389b93affe56c commit 21b708554648177a0078962c31629bce31ef5d83 commit 6800e63cf97bae62bca56d8e691544540d945f53 commit 6ef078383a50dded4bb9e71250ea6f7b533a6109 commit d6b933912df0daf23d88daa7f96f6a3a65a67894 commit 349f4f1e6aaa313ee9e334b61bbeec83b847125c commit 9a875f958062950d5b7a862c9403a99adc1ff41b commit 6ba1e81433e1a5b63394bfa38af9b5ede6aaae13 commit e5799743ee06f1733420ff87f96e800e6acf4f39 commit 7d8ee788659968790786f69baeff3edce27bbfe7 commit 9b2db3bbc7b5d1033f5e4d108fa87814c1f633e0 commit b3e773f6d5b131ca5a3a0ead2ec2a80fa9d4e05b commit 45f1039335861705bdbf71aff4d890a692662980 commit 9cacbd237f51a9646da04c0cba08d542069b73b0 commit d96fdbf04cece60b8c88d94b08095acafb0a2b27 commit 8925350cd3514fdad88de6d94c79f4aa6b713564 commit 454a498978b113af11585a843b2f7920ac8e4449 commit 5734c976717d4d7027c387d167c19ba52d3498ed commit 8232a3bfba3ea3ee41d49ee0353ae7db30ee798c commit 201008c44fd745e44f1fc6d7bbc235012a8995af commit 62148804b6e2ff49d19f58b34f247d2974061dc8 commit 23501e567a71cd8fa2eba4ef0572c2e938abeb01 commit 6d3a843b0efb4ddfc71b4c67053714e37b98b337 commit 984b61c35866fc0729801b74c3ce03812a121368 commit 840e748285cbd5cdde32f9a4d1a075cdcafdc6a3 commit 849a7f0ea571c5b9e0c9a30832a6247262fa09ac commit eb3750ea338471b6e59b515d498fe2e3a5fbfd51 commit 30d41e3fe153160714b01065320fde64639c3fd0 commit 03de2e10cf948101eee7e9cb73d911341c7d3dee commit 58d18ae5655f7c2d122ccb23f35de83872fbb48b commit f0fea981483220a9152e69bd0adfda8b1b2db907 commit 42879a65203f9a563c82114b916bb7e9a1f79dc2 commit 51946d0c75fd4c047694d8e06b5d5b13f0d3c12b commit 446db74bd372bc0baaace57c01897d9ad71c8abc commit 8edbb0ee171796cc96bb65fd85a8bc8e6d6ca2a3 commit 2501a0b68e8e5989eb782c8ac42eb4bd26713b10 commit 65313768a4e2da9e0abc104afa6d82ee193b01ed commit c8f1392f4849b4e92ea344da29c86834fd54b2cf commit 3b24925e54daf6e2afbbdc7ec9c301da47f0504e commit eefd93d8f632acb376eb06af67dddd515e6eb63a commit b9089184ba9f26dce6482d6afa200500b8c6bbb6 commit 5702d5d4125a03afcb1cf3c5746eb7704fe815ed commit 12967c4f21707269de2bd9cd525acf32d3e0a8ee commit ddbdeb6c591ed52f104d1cfd862bae6e581df004 commit 9ffd21103d064c382110bd0c4bdec0c2a4db9960 commit 3c461986e8ab2bc126a2bb7868b4f9f3b125e965 commit 0b406cc993297a0cd718e041a8456ffb7ee5445b commit 04f657cf6677d7606c2ebcb6d8643cec0ec683c7 commit 2d557d3abafb92b813f8dff613c9fd54161cbbc8 commit b092d6ad277363eb5e8fe89b0b34070f3dc8f66b commit 76f1b2b1a4481e31a6c9d10a933ebac5073e1e19 commit 3cd5a36df1a9dd8c92fb5b15e2c2ec99e1031120 commit b11bf614f9ce4540593c4cf287a50ee2918c3163 commit 0623993cad61186856a83ef25312708c5079098e commit e4a4142bf31673faf153f39c666a01da6f0c42df commit d9abe5f9e575e7df0e245694c13a0aa4e787f009 commit 37e017311c650ba0502aec6ec531ed9bc84d70da commit 09b286950f2911615694f4a1ff491efe9ed5eeba commit 106fb076aa5ce24bfac3037aa655dbeb26cc8ff8 commit 78247e48a118948cbb7126fa3ebe0e2cb4215bfd commit 80c414772d93f2f21af2483497f424c6cc7b1132 commit 3e8daf14c47d79a35a4ad69d12f5a9b6450e9ecd commit f34f014c84122d38c70455911e7343016fc8eb14 commit df3fb27a74a4eeb1436129024a7e957c2e83a95e commit 4aebb79021f3e6c2b6fbb92a7d9c5d1e6ad0324a commit aa61186951cc1fd302e7d2d180061a8d568dff90 commit ba9bbbe1499a8f14858e89cd4a21bf2990cfb0de commit 3d420e9fa84866cb3b98b6baa05d682850ef2952 commit 7ecea18e8cdf9efbe2a1f96573a185b83a5d9e85 commit 4468d0488ecb91639f12659f8a025139120a431b commit 76dbc41608167d531f9c45d60054fd1f76498785 commit bd7246a19ed85451befc3c8fc6038a7d955e7d5f commit ecc24fc3718c573c105766f2589228500a8ae04a commit 22cb31088eff3170cd36847c44e7055db3575b22 commit b321cb83a375bcc18cd0a4b62bdeaf6905cca769 commit 3a3fc10cce3b6cc6ac252f3b6f5d750f0b1d735e commit 7eea2580994b4eb266fd9aa60b1c913be4151925 commit 3438558284c8a219c1a72c2094a05bc12e9fcb8f commit 2c232f9b3875c1471c7b478d87da3daad5b13a3b commit 27039de42b575a92df5464d45ae35bbf3fc93a1b commit 665415092ecabf24eae5dfedeadd49f4c742d5b3 commit eef5a55af31792fc7a2082dbebac68a7df4d7643 commit 24d07f114e4ec7608659a4ef18307f76739c72a8 commit 54034bebb22fd4bef45a0404ed5f2d0c7d7ac126 commit 1f020495458396766496ee067130f507a4d718e4 commit 004370a82ae1f5a0fd5abc1077733f9b1a42e7c0 commit 162e48cb1d84c2c966b649b8ac5c9d4f75f6d44f commit 78c4c0011bb577a29906d8ca135795af2293c49e commit 9a8ac1ec9efddce525c94822028fb6140c523be0 commit 8814444e62b8a8b573fba2cbbb327d5817b74eb0 commit 3541e19d0d3b30ad099c0c26ba87561aedfbd652 commit 35feb8dbbca627d118ccc1f2111841788c142703 commit 7957066ca614b63aa6687e825ccbc215fa4584ea commit 1ddaaa244021aba8496536a6627b4ad2bc0f936a commit fc8fc81cb8302831146f806f96a50d6debf5aaf3 commit 6eb82761887a6e031b6cb85d4491f434b9c7e73c commit 06173340336c8f21ed5151a93a5398a8725c4704 commit de065ceeaa2f78c770d5dc586fbd4fa4f915c606 commit a20c6d954d75b2e188618e36de43d13d413d4e06 commit eba88f28121507b14b328c6e61818c794f313b17 commit 0612514db728a28982759e62da3c76444ae15281 commit 5922f45329cd67e1c37c2c01513a59da82a65b96 commit 1676ecd303acca213852156fed0873c265d88512 commit 12866fdcfb9ebbe1b175804390195b99a234d5e7 commit 2ccc698c68333256621abc1146de0d3fb0cc6ebd commit 2469cb5c41b4774a6fb5ed799ae53ad16b407a9a commit 6ac427c0cd21c7260d6b5133a70084aa35267a72 commit db45a6991d9e33e852419f8bb0bb8d70b8d633ac commit 16661a0dd54168826edb2fe5a7b9a183cff0c69b commit 9a3f7eb7811a4c5f36eee93b83bbd72bf6adeac8 commit c99e387afed197c3f22d73d8649c54f7c8da30ec commit 7c9526e58f74e9d725a9607b1ec24ba675f5b00b commit 2098604605adf35c9a0936355252d676f4cbc38b commit 698acd40aee3ab2dfff4472ec3c16ce42e70e4f3 commit c8f67cd1d931f2e61a3456d0122ffdeb90b699f7 commit e9864996b44e8add09fd612cb7d00d9b54cd9ef1 commit f10b4577da3e8c8e457016c77ce2c2fb8d2d5023 commit 155739579969d9653f9c2e69141129a824cbd6b8 commit 728290006afba80108b3ce9dd33018f05e454cf0 commit 316bb1473c78f415a99a10d3c903ed70e0014ae3 commit d7d473d8464e7b9931c0b19f68ea0df807e01b4c commit 804c4d0a20437bca3f017aaf96416f3cec7951c9 commit b3494ccb04124ab3ae08fcd01f9571d209ce97f2 commit b7c906d68078f235c1d017a5a820fbeac5a53904 commit 78f15847bdb8fe04b1753b1fed4984c183661ef5 commit 21925ee8e68fdb9e7b7d1898f34b5ad0b7c3f5c9 commit 1fceeb85de3b76cfafa3c3649b56c864f04f49cd commit f36b4810f082d1d8c11362cde82b86390616a179 commit 955446ed6e822b86751993bd69022d347b43a99e commit 91930fc0394b3b54c6a8a3333b2b52c923cf6c52 commit 32f0045f905c3cc17e8c6ae81959b3db95bb0091 commit 92d03bdee41adaf5221b201fc7e67e8761888a71 commit 672670b5dc6143601ca9cb457d82c8c98322d0f4 commit 51ee1f29a9aceb8a52037ba4759d44c70e966fe5 commit 2e8938a1c56e60fcd6e52de254808615d0eccea4 commit aeafa46ee30c95dbad77db19b1400fb6fd78245f commit 99fcf463903d5236e6e693230c142284a1e19164 commit ca8a170f73d93cca2be791162fcbf12941c47558 commit 91524b3a09b4eaa87bd9e073c289d502d6a7c8d0 commit 4ca1a12a1b3520681cc274a38333d4294ac8050f commit 79655e867ad6dfde2734c67c7704c0dd5bf1e777 commit c677f31c857632ca678a4a145b74855bacb72d17 commit 24d0d98af1c32ac6452fe04e0b5464a59303b5c9 commit 000d1940c90984a9a2af9c02bc17e3ca0d87f71d commit c12907be57b16eed5a73f75a44ebea8f30629c85 commit 6b4468b0c6ba37a16795da567b58dc80bc7fb439 commit afe12a055d2de6b8c5ef1d4d8d5ca81220f3c31d commit d960c58010293cc9bddd81a6a2effde02d6a8fa7 commit f80437eb25f711a71f3143d3f0ebc597431aebc8 commit ec8727568299255798da50ffa97c9b479da56543 commit 513ea833c20109d475b4ace9e6a18f6c0c25de4c commit 05da7d9f717bcb03c457379fa8a61c1689dab86c commit 66055636a146c435cd226fb5a334176304652f3c commit a13aaf157467e694a3824d81304106b58d4c20d6 commit ec3ac2c8d941dad959dcdc760aa43bc45785d346 commit 89aa02edaa30e4327ebc8fca9b80795bbfd4ce9b commit e46d3f813abd2383881c66d21ba04cee9fbdf3a9 commit 6a04e1fc36ff762312088c2ca819ada3b9f7ab33 commit 3432f26efa45bed7bc61f534ca9d2c0afdaf5632 commit 3cba2f1d3f18939362e082ea8b9bd8abfa735b84 commit 501c4255c40935280a10844cf7550bf1e4f8939b commit e81568a0cbb288770f8d2e4b7d41752a9f367bd1 commit e54700f7d6aa2ae0d0a0aeeebedcecd7ce1123fe commit fb4943574f927b3140d9ce5aaabfb8730639096f commit da8c3cdb016cca4e2c72c12bff4d6eeb0237e686 commit 8b9544e07d802bf5376921500c4d19c3405d3ad6 commit 9f46ecbb3f1d5111c28e8205ad1526663c28aa9d commit 65921374c48f7fd8305d3b3b500857967a563c4f commit 1bf1ca4e326c7d0bdf4aa1946d4ba0ccdae8d09e commit 49cc215aad7f5b953d4fc85c75b044f0abdc10cd commit 41e1fa93a2fb3cf5a50e556cff7bb51231781806 commit 7f4f492c7058fb82d2892078b556bde8a41d0b60 commit 716ce587a81e6165a4133ea32f63f3d69f80e1e7 commit fc592a81ff9f0e5a46d7fb652a74db97fed5ef1b commit b47b83ef1657f8030d8e4485b5948a190c554cc5 commit 7ddb9403dd7497f7cd922243ee4b3c9cee4a30a4 commit 5a5bdc17a2fc8dabfcf630bed84d4fbca0985c3a commit 579d47838b56de97899bd0d5affdc14899b98a0f commit 202fe72cce421fa5d5afb30b57d7246d906b7c15 commit 2bae076f3e35234e42bd7c90acd8caae8368ba90 commit 2755d1f46aa25f65179964bf315d8a16b3540eab commit efde66b9654830170f46667a8f0ddf16fae6dbef commit 520dbf5423e112da1c62748cb4349a4f25c63cc4 commit 96fddae126327a87bf67edfa8a1c94ce21c18dfe commit 9324410846e13595d453b7f34508b1f6b15fb1a7 commit 1bcbe192e0dc758873003a0059bce9cc27d4bad1 commit 6a03100200ddaf38ca6719c80c0ce454e990e1a0 commit dd1eae474e4e93c4076997a749d744fa01396a01 commit 9eb4aab86a87e4bd65530dd90a97f45ba13a368a commit e5bf189a0f2508ec6e72926728aec35f806dca76 commit 4ce7cff538cda112891d9baab703529bfed15d7d commit 3b3be899fc81d5957c5dba8907263b52d92993ed commit 5bd3e7ea8854601866bac507b3cdda5fd3a29c15 commit 182c6be08b81b367b98634c40870fc06cd4eca42 commit c9a5f6019c6ce9245b8fd11a66d405f26e6cfa34 commit b22b4dd96e5250c84d58de94513b4c6cd0825ce7 commit ff68f68c0ec5e4ad6ee3216ee53d12dd48d06b93 commit 34aca703d4fdb1ec289a514d0eed1a53d46f5ffd commit 81c9642b2a03c375e46442147234016578f12181 commit e3e70d08409086ada2c864373d9d8b8ef9a55936 commit 73afc1e2fd1d3b3f086a4ba1714c8d1ecc40d4f9 commit c3c90de3a7dec171c671ffcc99eb5cdfe5e88c23 commit fe089d5b9ace6f31e27c1bfa1245d592443aefb7 commit 0e0af7e052ddd3e5a237977d681ab244459fa828 commit 09f08c6ccc04ff7530e0c4166c3ec4bf3565bcee commit d6bbb6e581743fa9f6a31346b3a6d147e8cd2560 commit 6aaf3fd08d08e1bb9dc72bc2bd189464972d27c4 commit 084a55b264a4918227d4eb52c792350791f2d26c commit 51715cdc98596d92f4c6cde89946991ef0e5021e commit 200f178d7ca0b5dac1080a0e9e9bc02a8b65d17d commit b1e6ae07c72ed93f1017e1821155212f33f465fe commit d6bbc4da2149f9dbf78c9f0fb742dea67cfa8057 commit f8324128fdf8aeb174b4bda689121a3d6c48c860 commit 8c57c4dc2a9172e543025673c0c6c98953af2b13 commit faeebafe1d273ed6271dfb6555cd90ee730343c1 commit 51e1fb144f17c277309ed5a1c6f0d921df0064d7 commit 7997a9e4f89f124c700986baf220b5421fe1158b commit 35859d448a2097d9197aecc61b55f158cba0a17d commit 0c0543ff0a8d8f5312d66d2b863032acdf6d77d0 commit 8de66736bcd87b89fff489a6fa2ad2312fc0de0d commit cf235914f0e75eaa791ecfede2010fb701184bba commit b47e62b1ed1306a5fd7ad5d2419ef865fd322851 commit 574884438c3827a842926bbff4a0a2d96597a388 commit d999aa2785daf830b908e43087d6ede648d69d74 commit 0db66572747a789922e8137904e8b4c39d9b94f6 commit f1934de46f2b259a87565407a5f2163d66e41092 commit 4aa1f202519f6a837376efc87fae4a0ecc97f40b commit 6b83b94a949f61f07e16485466f67e8f904d9f98 commit 7c85e970839ec57107a621f457e9e4f9220ffeb7 commit faa64f633c3762cedd4c539ccb210dc9cc3f8849 commit afe9555e79fcd0d758e3796ad00fd6292d99361b commit 91efe6de7029b206e29bb97143f9156e88f54027 commit a878304276b8326442bdd1a192e33c1b8bc99778 commit 028383b64da2c8c59d0f049c68c816b634d98641 commit ba73d69a2c03d4cc10b09b2d5579f997eb26f61d commit 6172d39be2545ef3d71c4007065832a5219d2885 commit abb3f19cad93a8f85dc1d595be456396843ef73e commit 06a498d9f589be0fadb95274a53308dcf0cf6d89 commit ce66ffd9813c8bd73e21b96d6476e5fb32b727c7 commit 38e6f715b02b572f74677eb2f29d3b4bc6f1ddff commit 57a0d65bd1d0bb22c9a73ddf61e91b3478706522 commit 27b500b77b82bd18c9357111fb639dcbdda31c26 commit 839eb4bbbd9617e60ef2091cb7bad2bae7c519d5 commit cf58fdca000f6c95b881290405f0beb711d5d921 commit 06cd6d8f808164513e453af842720fe258abbbf0 commit 470679ef332e7ebceb05d11e602d101a627e5200 commit 82b7cde3f2658c0e6b3a46be594a76c3b2c9d89b commit df86486d905107e079afd82b45f8cd955d1c7d7b commit 6218bd6b22d777ba02cde098f2f2f61a23262d96 commit 7bed1df814cd61029f56eecd322e23190d50d93b commit bac640ddb51e8066d1f35ed810e7a4c6dd341d39 commit b3948ad1ac582f560e1f3aeaecf384619921c48d commit 5c0a1cdd17ce9eb315102c65084af899622ed268 commit 1802b042a343c1705e5ef45b93d1fd088344d3c2 commit 4b0e76e4c181a722d5a01eba56d5150db7cc9cd8 commit c1f9d82b92917a298dcc9196c4b05e1fdb20c0d8 commit ba531117a87d55f607f865b89eb83665e8e99b83 commit 9c33e5fd4fb63b793d9a92bf35d190630d9bada4 commit 18f2525d31401e5142db95ff3a6ec0f4147be818 commit 37f432481d6ba2077eff1b988b58a18fa87831b7 commit 1bfe5e77468d2a73de7411024912ee2a422c6d4c commit 02593249fa11ef8d2ca780ef91962f81b04eeea0 commit a777c9d70adce61b662f3b4649fda2476a61a261 commit 1e006baf5b9b96635aeb1842ce95871b06c3d457 commit 778e3979c5dc9cbdb5d1b92afed427de6bc483b4 commit ee3942d9ab1f79637b260cefafe6a1ddfdd6ed00 commit 2fe87f54abdc5c29bd2ebc301964926ea27b3d89 commit 3612702852acbded39233b1600c8d9f47e40139f commit bf349b036d57950e9822b1d11ba12b8e28fa42d1 commit d225960c2330e102370815367b877baaf8bb8b5d commit 8cae4b578ea0c21c2dcba988a0fdd751955e4836 commit 3618fa26c81156a87fdcb6d1c88988a1f12bedc3 commit 3a86fdc422c926eab7d42a8194eaacf05e1d699e commit 199d69d5f9fbfbeafbf231fd9f49d00b8e7be2c0 commit be6a69b21a3517122ba6cf7ab8f62f4803637dbe commit 9817f06173cfa74b78e9e701a064864d62e88cd2 commit b441e9ac9df4a1569c48548729a13c2e17b1154b commit 8d7ff60f36b0a9c1767141f0315d6df190a8312f commit cd093c24ee433161eaa00bdc64907393536038a4 commit 3e92af6bf5f3a821608ae698a606b63d214bc6a6 commit c37b8f7868a9f435c62907c37463867066edca11 commit 59257fd1e08eea6a539ab3799b413eb8066feb25 commit 030631e97b209481edbac38000d2a60fd340f6b1 commit b5236da757adc75d7e52c69bdc233d29249a0d0c commit 3601a35a2e9d640233f4bc3496f7603b93f9c143 commit 68b02a58f698fb20a8b6a6f3970851fb4bb76392 commit a3324a672b9fd41f29f27082f5ce3dcdc198d3b7 commit a63e1c0459b4034a6be23ba4a795bc9b725c1a71 commit 0a4b06074cc4d61b624225bcee8b487743751d23 commit b59cb5a67198c20e203f33ae8ca5e35de89e6ccd commit 0caba87a406e47d1b2d642587fa75981687cd29e commit dea54d186caf004da44c9b61d6ad0cb51c818cfa commit 223ac8b6f57a60f3262453a4bd3d3366842ced0f commit 3c6ad7320b32fc5de1cd9a5b092dc1d5a3cd0348 commit 5d1608a81e01740e8b51ceb5079a5fb3ffbffe3a commit f7e56091a46e794e0509a8de369117da1fd66e74 commit e15fc7001425599bab6c802650208a15c72fbc34 commit 42697ae79e5547cf02c3861504dc51608385abac commit d9d42ebd186a3e1468ac99b327ff236acf7ba3c4 commit 827416d45476fe5957c714409452d20dd80f282d commit 9a29c4adb0997be6ba3dd92dfba14ea75a8c6ce4 commit 396477d9508e3c3cb95c9b6eb76346769efd961a commit 82c421ba46ecd11b67e15a86ad382ab8a6ed1d5d commit 6210e866eb1be94b8b2e94e3d07e2ed5da43ae86 commit 1a90ec2e2663f0ee2e8ed895f0445e2a031fdc82 commit 020ceface29f7280dcccc866b106ba4e9ecd6c8c commit ec14eab37dbb07b92e2079c9b7ef4730d9418f89 commit 26c56049cc4f1705b498df013949427692a4b0d5 commit 9d26e0cfc218c8c3942feaa42d04d15ee20bf83e commit e8eff33f287274e731c5a655d8b111006aed3e98 commit 1b51220dc28cd34f80467acaff60294348cf6675 commit 0eea12b9bdd5f917c3fb00c5ef710398f7c7bfac commit 3df528be2af34946b1ccce84c1fd38a5c7e42e61 commit ed79ab5a07c1cb4bb05422ac6e794e40c4c1484c commit 8362061eed6761a36866876ba2dd00ec638a13b4 commit f2034ebb27c5222511b2225b10348ccf6f541a7f commit d3d996ec8905a0098f160d7a4dcca2b54d48d697 commit e32e15dbf06d65d70c763a44cc8e32ab409b1d5f commit 9a573481887e330b808e88005ffa142092c9fdbb commit ad28d7c3d989fc5689581664653879d664da76f0 commit fcf6a49d79923a234844b8efe830a61f3f0584e4 commit fa57924c76d995e87ca3533ec60d1d5e55769a27 commit fd279d8f45c96886786d7fb5452489efad97093b commit 1b04dcca4fb10dd3834893a60de74edd99f2bfaf commit 38e0c3df6dbd36e69d38f67853cdd1bb6110d05f commit 466423c6dd8af23ebb3a69d43434d01aed0db356 commit 3ddd9c83ff7ac0ead38188425b14d03dc2f2c133 commit c006d1a15a9cf9df6a68a2f6b870fc55eacd9054 commit abf34ca465f5cd182b07701d3f3d369c0fc04723 commit 7c70e60fbf4bff1123f0e8d5cb1ae71df6164d7f commit 9d8152cd1be1c1049dc7d70e2f0a01989d1d9a17 commit dd9d8c61ccff0e3409b0bff702444f3d31684e9e commit d281b7742662e199fbba57fbd86c6c2bdd73104a commit 97dc6a480c8189d1f130fcd026391cef5f7d8b34 commit 82c94233e5c8f7609e244267797e1e2183c2c4c0 commit a2919b25778b7479e477cf49af8c680017eafc24 commit 4316107bd083feeaa3b7af71d32be9dc4b2e0fc9 commit e27ffc2fe8f41ef37c256a145292bc52ed304d9d commit 989947e90563eee58f37fbbad8a5bb94a3d8af8c commit fe6f61d4729780269b2a454fdd5b5e038f0db0e4 commit 2037646406ad0be7a89687a0333b7b40f50f9b33 commit 1608e201df49127376d9fff1284b8b3c5e018440 commit 7e8af88cbd169e18edbdcfbf07ba62ea607664a5 commit a144eb40ef88ff05a3e718887112955ac4889b61 commit ee4deffda66a0f62791c5456d83a95855b2b140e commit cc2b7387c132ebd51c7c5252cfcb494ac75ebf18 commit d6b54900c564e35989cf6813e4071504fa0a90e0 commit ea9b3dbc71d91e135181274487d6fcba1ba4d9e7 commit 02c316e696104c50534b8844a1dd9eb281f307bf commit be5de1c4ee9ac0dbe3e096e86502521874b40932 commit 5afbbcfe3b6cd00fa52e0375e1e276748929bc50 commit 5f7697bbc1a41d4799797204137be85121063f65 commit 7e4371676e5e58739ffc884b1b5d6bbf1cce3d17 commit 09a3d8202df1e9fa1eb5f5f63524c8948275ff4c commit b8a01690438c949855fe0277f39794bba187b186 commit 4280f60e8e7caa5160135223e486545893bc9013 commit 9d308e32a98f79a3d914d2baa6de628640600781 commit 3a3be8bb97e14339af7a11b3ee822e268960ead6 commit 52971387a05aa012eb73db78f39ae6c6dd47e080 commit 6184bd5750a80d3d8f2ce2227465d889d9c0708b commit 8867ae8cfab44189bbbbbaaff0465ec6e0f616aa commit 6b6d38c5086f9c401f4444485a72a931356314e5 commit 9061707976c68899cf2f3b9117c5bbcee8e6872c commit 2094401053dfbf7e8f74430c6c6ce666bce1d805 commit 3a69c1702fdff79f631525ac6dc4487de050865a commit 3838c6736524c903a95cd1d46fcbbcb6cae8e42f commit 2d62bb450ed1846ffdaff7072347e40fb4908cb2 commit 37256027b45fe48d1cd23954db90d1c53401e29a commit a157dcc521dcb8eb0acb50d66d1b0fc5efcea789 commit 0057b36ac2be0f573048acda52e641e0502a9ff3 commit 143818fae047fdda55d06651e4d7ab9dc7afe669 commit 8092aa3ab8f7b737a34b71f91492c676a843043a commit 8b0ddf19cca2a352b2a7e01d99d3ba949a99c84c commit c4d31653c03b90e51515b1380115d1aedad925dd commit de8390b101b2b37cdbab5bc91a47f69c2b1df6b0 commit 97fedf015cd908bf4d200b7e510bb6dd93150206 commit 0d2ca8fd2878582e01e933c8d6110860b921c1e6 commit 45ebbbbeaa33da4a6dbc532ebc57d20de4b60a82 commit ae45f07cade1a5853ff6fd745bbd86a64cc82643 commit 5d7612ae201ec199b46bbf81a36cb4667e29d973 commit b5dd424181f33c2978562c64b286fc22cf5ef4bf commit 8b5a92ca24eb96bb71e2a55e352687487d87687f commit 105dadedc4ef42bbcf6b819d962908e482b7d5bb commit 322dc10b2af8b066cfd4b6ea53f5522028eb6b30 commit 9d4f1aeb25be7f92825f614b57fa91518c47d39f commit e6534546a4b98542ec26375548dbca87f2e1e312 commit 846bd6086d3536d2f9b5a4b289a75d7e7c7753dd commit 024a05a47e4475dbcab489777861e2161e1b28c8 commit a4ad402078ad18ae6a7cc9be91b3492832a481a1 commit fc8bf961059c3795bf8f4bdb5948bff8417df1f6 commit d0a6e5015f0e1c8c40adee1119213f7d72bdb65d commit 1cd377f33d4c042786f2d170a7097021787816f1 commit b2956099379edd869e9efa31876aeb65996c62d6 commit 355d210aad943ed12e70c79576406c0c303af815 commit d2e02153f565b1bd8a4ee3a8ae0039dc108f54af commit 118b4eed8bbfccd625786db940fb590caab395ff commit e2dc7cb72b25f90759382a065787c8ed81beb21b commit 731e46c032281601756f08cfa7d8505fe41166a9 commit 0e6745de6dfc1395ce1bbde1e3f9b0a12fba5a1b commit 41474d25bec56900e3a018907784b0abfe5a6a9e commit f0ccd2d805e55e12b430d5d6b9acd9f891af455e commit 1ac6ac9ec069ed0cfdb1c207ae23f6c40ac57437 commit 6045473650c40848122f5042b112606ce5d14406 commit 512660cd1f1ab60d4ab8a0ae25b507d10be40fb3 commit dc72c52a42e0255441bed7444ab16f2b6c98b681 commit c8c00286f5c4bb3cafa4a6562711dff26fca6c8e commit 62712be3a4e03c8375f490bcab131441ab3a7af0 commit 52c2e956dcebecc8901911217a9647203ebcaf3c commit fe8929bdf83512ed7e413a28e543c725bf536354 commit 67977882a2f1339f0a7d32576ad61967828b2ca5 commit a9f905ae7b6f29a337dda2ad773c08b92dafe9a5 commit cdf02fe1a94a768cbcd20f5c4e1a1d805f4a06c0 commit b6fd51c6211910b1db072a3fa2a17ba85cb3dd51 commit 1db9a9dc90aece0803a26a711b52a9492faefab7 commit e936f885f1e96f59d9d05fb6cb5a02b9b9b88a05 commit efb315d0a013cdc8b1e49f5c07b1a2972bc624d4 commit 2f4a730fcd2d6ae7378a67fe78797b0a3f7ca1b3 commit 14e077f8006df9d2d7adf380f0c80e16d6a0a548 commit dd6b4718c3bab611588922ae8a7736c58eafcc93 commit 392bf22238ff88506f410c464ba0c7a84e9de471 commit 828a8eaf37c3fac6ba048995f55f1647a4ac542d commit 70af432b9acfb382dcd4f5f936528db2de992a8e commit 3a1fc394ba85e851084d9fa1bdd4ecd625ef913b commit cffd77865f476994680892601e09bc2164179907 commit 97db7348640ececd60a0bfd85b6c0a3a0f81459a commit 1eb28818c2418e341af2e8b5385243e03e841ae8 commit 22f3a60558da4509c0c3fa49b82a5d7e6f677cf5 commit b445130c35e5bfe7917e44140e259b2babeec87f commit aeb7a0fe21dca9f8322906e6c5bd45c8b3d9b768 commit 3ec391a007f405b4fe48ecf2bf55d3ff0fc7d1b2 commit c52a3187a1bf0a13c3a0119d057781166f12a8ee commit dc9cfe9f1d22b359d6f316005c887c1a6e31701d commit dcaacff03a9fa2838f936e1009b4b7ad56807152 commit d754ed2821fd9675d203cb73c4afcd593e28b7d0 commit fbda4b254042250d390dc74b058ad1a9a29dacbd commit 8e7455dd0dedf88332f249f8b1e50bc554e4c1e3 commit b9578c49456340ca4d3c7ddbaca054ffc2b51bc1 commit 0fd146067d1b1aa9e531c8e69357f1be46f1a17a commit 319d4615518c696bdc33c75f894744ce1be89dd5 commit 5af757124792817f8eb1bd0c80ad60fab519586b commit c76f56f252455c8c7851a596a2f89be18efe43ed commit 470f3760cfe6dd2ce66cf9159e65876f7eb28792 commit 7cf24de30e8ab875abc92a81ff227ab9e5f4282e commit b62ec97d55e34942936653dafa1542ae9cfe14e3 commit 26ec3cca7b1c498307d966c007bc85e0c6b8c6fa commit 85fa2287458f17ee124e77f1ec49dcf769869a25 commit 1a664dc0cfdf0942945aa902d0c38f37fcefbb8e commit f94a97117fc6e1a3a5c718ae41559cc65580df0a commit 9e6da7b70be822570612da9a65cf5b23f71bcc06 commit 14f293e044b1ab392e6c9989bb1bc93ce1aa9ca7 commit 8a1708328c60ebc0f402edb69fb8a5509b3511b3 commit 391c6fb490b069b4f7c4620675c98f2d6073e050 commit a7b38c7852093385d0605aa3c8a2efd6edd1edfd commit db39d575eee8bfcfed59a370d936e1a1d6398423 commit 27dcb8fb92f59756ed93735baad1d3421efdb6c2 commit dcf5e17c05edfa66ace6f6a521c2fcb303c82733 commit 4d14a7405424cfd0d0b72df30d0e4698805746de commit 4b5b855c240a48c6b5a494d5ec62af9bc8f661fd commit b32563859d6f61265222ec0f27d394964a8f7669 commit a6328c9c3df355daec1935f672e8ec9d9d391b43 commit de3246254156e7f32e5591ad0b3b740ffde8258e commit 23fc94795b619bd55d7f6029b395ef951741433f commit 3af2c80ae2f5152ac7a3d27f7c35c038ace9e644 commit fffe347e14789c37d91aca47e9a25dca831b7e5a commit 19797687e64b961f7c5aac9cf60951561aec038e commit 8c9ee180196fb2a04e28891578ae608f772eab9c commit a4fcb5f7337597c10cab7cefde41e379fcbc6919 commit 0ca9f757a0e27a076395ec1b2002661bcf5c25e8 commit 017d0b67bf7b9788784eef9336925c98effcbf0e commit 1ecef5589320fd56af599b624d59c355d162ac7b commit 6399c94f4b90890de9fcaf56bad113d21cba7e8d commit 9994be5584292aa37aff667d9e6821691d9840ed commit ad738e488981603a74d35ef3106e38b891bdfb7e commit fa63577ff38bf0d828d772b807ac082a55401495 commit ba30cd246f10cdac784df096b95e00b33116d161 commit a669b81328cb09474bc7bee56ccca499457900ba commit 851de367dede776180e6c4c709089bc8becbb53a commit 3bece98b9eb6941b4708237a4557a5082df25589 commit e22103b9b6026cc0a7846dc6369f0399b863039f commit f85376c890ef470b64a7fea22eea5af18822f05c commit c1391205754f0ddab5f990cd0642d0fa8fc4c6b7 commit 7a893345a406b46b6a0f9575ce58e513cf79b997 commit b493b26b069e22f67cf0ec40f1d00859ab168c96 commit 91103ca3750c346fe3a4f7b42aab9299d31d0460 commit 367cf0d8a6760e244f30d36cd3b2120f890837a7 commit 294ffd2bfaa3bb0434d2b86321c5de54bd79732a commit 42c8065d83fa3e9267bf99d6de70512c5c071a3b commit a6c8dfbfcd0137b2676f0e3c48752c3d618d9805 commit 4a74de91056d640aa6b4025fc01330313ce22fdc commit 7562c88be8acf3898cd5d35cb5e83611139636f1 commit 5bdd780180e3f261ca576e9d25e8cc356e97f4f4 commit 67577e2eada5b6501e30d80adea9d045081ba7a1 commit c62b4fc4b9b86ab35e5c4236f2053ce21ee81ebc commit cb925d31f091467dee09dd49eab8bcd2c9b3e73e commit 3516b2913ead50c5649cafcd1fe97b9c9dc41e59 commit 93d2d3e4c5d075ed691bf940f7eaf938cf8c6632 commit d35386b3a77bb26d771c7d7c59dab8a920ab62ee commit cc2ee76a9003e1b5a7cd4f67ecf9b4b91d83299b commit b2c42f9d5ef0159635ba23f4dc2798c1fbcb7cb5 commit b1d90a862c890152bbaf847b7a78fc59af54159b commit 65336c3fa2cf7f272067be9193303d1ab7c42190 commit 9632dfb0def48b0b6fa343fef166e0cf2ac10a95 commit f20535ce1dd96003e76c958ffaa9c345483d2dfd commit f2800572cc0b01f329fac69646234c64b1ca9576 commit 5aa326f52872b25906d7dca8e0c4f7e6c597f40f commit ecab82af27873336e2a1655dd09e2a3fc41d1c10 commit ef3fcfe0639824bc908c7bd18125a97f5f83357c commit 7875fe7c2495884dd08d4a23fdc44147225542da commit 2b79878b0784ba7253ad9b8dee66495b288272c9 commit 0d39640ace670bccb7f03b2a9e5463ec0885a9ca commit 33991ae8f40a8245f68e8e442766bf9072eaaa2a commit f680df51ca5f4ab364c9bbfcdbd2737e32092454 commit 6dac16124c07a9a4313ccb5f10b1c3cc42ddfda7 commit 91c93e475ca4b4bd5f1e8d525c9a9810283db056 commit ab3d8479626d281f43db0d41b8e36f6a9bd9980a commit 4552a6a42a3a87f3a9a6efcda02c6ee9a0b27537 commit 41fd54ef74b02233a419b4929d26662e5f105f46 commit 4b12f91a06ee4a18bb30ffa462ff12aeea8b9927 commit 582e372f068c813c852a48000f27c175fb11bb61 commit 47e851ec4c02e8cbee95614c3acc746ae7551dcc commit 699f411dceb4766aabcac05cb4fbeb530e6c257b commit 213cc30331e9e8c92458c57a9565efc47933f34b commit 588c4c8d58c413b52c68193bdb741cfbf1040a77 commit d0745846a37a3a37400aa721df6e4279e75dc582 commit dc50165601f5c24b3121defca60d267a980e8dbb commit f7ed0a7e42c10cc0b6415203dcc3be7edbbbbdd1 commit 8bd1ff5ddc7bccabf5be7cf540b9af8d5f968866 commit 32d618e946388809b0fe62ad13f5d67d95dac1c5 commit 8eda41dfc9b2f04c03858cf33c79eb1e6e9249b1 commit 5fe3943385c987f73f99cdfa99785424a9d32a41 commit d6a82a1580c3b3f6a0a34f5189e9a5abba4d62a7 commit 99eec733e8236df37017a700ea9d040a91db62eb commit be487a29896937d14caa3b00a14ab5c6ae29573c commit 07430fa5248964d5338382b4b2e9ebea3904238e commit a63ee07883dea5265ff00e606034e6c72b247cbc commit 94ff11d3bd32506710ca43569d38420e7fc790c1 commit a3dfb1d120aa214a76a9b26de3490d0b9eab572a commit a40d031d7b64df42dfd3a4c96ef19e62ce32b332 commit 294bbd1f2697ff28af7f036b2cb19fee78eb100b commit 1d36db2b5173258e51015200c8ae86325268edec commit 1c5f18d88eae348cf45f90aaee7b361f593b0701 commit 195b7a0d2ebe5672a58210992f3629d19d5a95ae commit c7bfd98f00f954e40356cbd80db2dc1992230e94 commit dde7b1d04433def5cf19123178db2e1e911d4059 commit e1488b7ccf3b71407c6479ccd4255c356a941697 commit ee3c3e332d2f2c08a745a7652064dd05a9afeec5 commit 7652126ce7070ddcd1b3f8791efcf7537a9ec01e commit f8fa26f4e09230137a304a5275d2633a6de11c7d commit 12f84e8793af19357e2270b24b9e8d453bb3a1f2 commit bb8624de096340daec29137f56ea711fbcdea450 commit a441c0aca4552a1b959b26526854a97544d10ecb commit 897d29ce229569bb497861c9673e6f828521384d commit dfeb3a249f11787b269eb15d0de6c91dc4e3292f commit 67cf05473704e926d2b5302a68433a6aefde6fc5 commit 5d9993f88378a68458af101bfda82754d80fb33f commit 397b51ef1ab28b1c807c042f455b47c720984473 commit 0bc96a4ba99a9ef35a9cac55cc1772016ff890a2 commit 5d81c2986926d61dec0eb7dc5e96c4b40bf3d95e commit a18114ebaaa89284d9da7d0f80bafcf8848ef520 commit 0cd2bdbf19ac4d77be47564a678618fa70681474 commit 623ad75a014864d3551ca2aa83ce19458ef1299e commit 85582ad0bc44960def44c78674c0c9b8dc007817 commit 26149e6fe1e89dc1a74bf6475f7a6e22dc6f85ab commit 06ec7893a4b48a1fad9e94cb670862ddd65b6eab commit 90328eaaff34f5617b3ec9603681b08d4a8e72df commit aaf9dc86bd806458f848c39057d59e5aa652a399 commit 7bd09a2db0f617377027a2bb0b9179e6959edff3 commit 68145ceb9b6dc5c11ecb470ccdab8e146ebf294b commit 3ebc76c424bc0f0768f5c346667e8f51217917ba commit c5207ed4638314aca89afb45629902288efe5f4e commit baf272bac637d3275bb83c17ac849b44a4590655 commit 8664e7637388c013f4e953371d023ec7c2d84c8d commit 3b1592fb783549e968aa20035ab37be5fb124f02 commit 9d2ab8623e85843956c3d5fdbdcbbb7ec198610f commit 701d9c4a199bba144d53cd47c80d42a788498962 commit 7e5161da9d267957b726a29f3efe6cb50fdfed04 commit 20baedb8033d0ba6ae382fc9974b481fdb32e7ef commit be3bf9dd1c6d1c0b18396e4918a40a8f7ce6c591 commit b084dfaef2107bdc0cfc77d4940fb59b660dd901 commit 92e9db6e1fa30c87f9c25fae9c9e275885cdd0b2 commit 8511d9da2058ffca7c745c48e93c51840e2ed65e commit 80bab5c5038f32c92f5d26ff9df7255247c8dd89 commit 8d789ff4a41a557de565b1778a7c620cbb22ae0e commit 1bab7ecf5c10a0a529c06480692a544391053c20 commit 406d058dc323ae152d380ac90153eb56a75850c1 commit 365aa9f573995b46ca14a24165d85e31160e47b9 commit a78313bb206e0c456a989f380c4cbd8af8af7c76 commit 04aaa4dc97002ebe0c6ba566c55a4c4376ab618e commit 84708c2d180c32e216bf753f6627f00c03297bea commit a723d434009e8b8ac0bcbb322188061a94de1000 commit 3f13e53bcf30583ab804d94973157d515330dd6e commit 9c433c87e81c2dfc005b72b9fe822b065ffa044e commit 86b0e0c1ad47a01ad75ef0519d02d1f774fead55 commit e044e707fc97dac693691178cdf41fe1a8da928f commit 54be78446d0ac117c1781b0f67e77f3a78f08529 commit 6d4618ad04e1a14202410648f638b62d3f666d45 commit 2d192f4a3acc1c6fe47456e13327701e62074c95 commit f37952339cc234ede318722f85729471f8a87c85 commit e7514df007e3b034b65367a32ba19dc61aaa3980 commit dcbaaa239dd3bf3d9edc01cdb4661a16d9a73520 commit 73f613908eb1c8a1361bac9d6e15d054ab959457 commit 3efe2ace7f5b1199c1d6f250aa9bb50e19c38f50 commit b8a4cdbb01312ac72e189072a1058f7948c07f9e commit 90986e356c7a81d32550475f7de5bdc4cd878c2f commit 917c8d192ba6ada16b4cf11c786f3dbfe70de0d9 commit 0fa5e37f874850e4cd09ba45e79ec698f4630da5 commit e857142bbb6491693051f112c833072b9beb5627 commit 61bfcd190820d1dce846e58a4c9ddca8db4751ed commit ce6b63336f79ec5f3996de65f452330e395f99ae commit a9422ec92a6388c8a19fad759f7ed0d533734cc6 commit f4efd274d93b5000efc58bbfa14f8f863a57642d commit e71cf19e3119de446cc37ddabb2e161ebbf7357c commit 275fee9dccf76a31124232a8167d9289432e2e9e commit 83edf00d8972eecd849865a34bd4fada09444ec4 commit ed3165d660d8c4e4ba540bfaa461594e01b3815b commit dab70d9f653665aec5cdffd2d512aa98b1b38bdb commit e779af8e8b51b4b3d403fa002e579b56b1931296 commit c71c9aafd5faa579e6ffe32018071c7af97d5a2e commit 1a0c9c218250fe53f530fcdfa1ac16c59f2762e4 commit 35665ca2cdef314bf0bde0c568a0ad38db3020ce commit 39de69c4f935aa66fd4675c1d000643e46083842 commit 541fe90ee699658134c26539fdc0ea31c8f47fa9 commit 78beaba9796365dfe264a93e0f33e0793c551367 commit 6bab222b8b767aa773a8aeac7a3a43b958fcd694 commit 748bd8ebae91fc0aee76d13026427d0de02e9e1e commit 6e3eb2766731c6bd2bfae5a0fbb538ec85e7e822 commit 8aa5aff2bf2d5cf793946f1415dfbeea9f936ad5 commit 4fa0046f11d998c39689ece909b912527081e558 commit 9da0f7736763aa0fbf63bb15060c6827135f3f67 commit c6dfe8f20b00d0ac6addc0024d4c70693e78e7cd commit ee8287e068a3995b0f8001dd6931e221dfb7c530 commit d03415f60b3401914fabd27a20017f8056fd5e40 commit cd80e7ee47d2fd5c97563c003ff31ce8240ca2d8 commit 3a82f62b0d9d7687eac47603bb6cd14a50fa718b commit 51dbe0239b1fc7c435867ce28e5eb4394b6641e1 commit 3bc73bc096e64752961060cdf9d460e0a6bb0e6b commit e094992bd1caa1fbd42221c7c305fc3b54172b5c commit a171cce57792b0a6206d532050179a381ad74f8f commit 2c2ee1d1329881d8e6bb23c3b9f3b41df8a8055c commit 5d93060d430b359e16e7c555c8f151ead1ac614b commit e5a290fa5df4efdc026ff36fe86d53c58d944fe6 commit 2ffa97c50a8b0598975e47c890032e71958425a0 commit a4758aa3d1d9ff1c7a05da58387d217c2cd0c38b commit f86b47bee6343c9f74630d7fc2fb8f5e41db0440 commit a42e74391783603b28f266fc7bbfc1011eb0a151 commit 871512e36f9c1c2cb4e62eb860ca0438800e4d63 commit 020fccbe8fe7552e57804bba0c7578d227f561c2 commit 0dd1190faff7f7b389291266e118deb381b6c8d9 commit e1f4805bcc6b39e1c249777c237e419705266234 commit e1e75cf7334c0e31f4c37d715b964784d45685fa commit 7210195f1bc51ba02cffa45b27ddb5c962faa606 commit 4228900a64592f9c5d4f3b3d48d158948b08ec98 commit adcd67e0bbea5fb504d6de50e5ccf74ebf96bc29 commit 0b8de7a04f7c14abd28bd8b9f3e1e5737a3702e2 commit 4b22869f76563ce1e10858d2ae3305affa8d4a6a commit 569d7db70e5dcf13fbf072f10e9096577ac1e565 commit 58acedd7849a238d2d06430b030b365cf069cca8 commit 9862ef7bae47b9292a38a0a1b30bff7f56d7815b commit c53bb80f49a7cea933ccb4b7a458e6983820e9a5 commit 673f816b9e1e92d1f70e1bf5f21b531e0ff9ad6c commit 4de670dcdef04feee864a110dd6c1737f29f6dd0 commit bc180e26837ec238d05d7c7ac05d73ee35dc1076 commit 2d072b445622b90f8a961c0376887120da75221f commit 78f608d7aff05c245bf0aab00ce7273a7d9f04b9 commit 94534f41fdf1ff1eb6c98e2e3e24d90fc5a99d04 commit 9ff2e14cf013fa887e269bdc5ea3cffacada8635 commit bdbdc7cecd00305dc844a361f9883d3a21022027 commit 79ea35c7d84b73733ee5281a089168e71d0168d7 commit fe86c4d1a24e0a09688110d217576347b162df99 commit 429508c84d95811dd1300181dfe84743caff9a38 commit b72585f1c2228630e5fc5bf1b8a1f68cdcd8a446 commit 68936346b67d8a4605d8b66f0d345d6bb1f95f4d commit e97db6d9f068098b35ff1f37db89826c77ea037e commit bf826ba9b4b17fb2bff507b8391a8e4babd227fa commit afbf7955ff01e952dbdd465fa25a2ba92d00291c commit 29b6985de50b6bf4de77aa680b875a4362d7b30d commit 78146c1dcd220ae98fd5f4114f992299fc5ee161 commit cbda2758d8bfae323b846210a3e52f0ad5fe7164 commit 5f08275cfd88609c86ee86d92efdb196d27c732d commit e278849cb2b663bca7dd67ba5d531ecb5b4557df commit f852c9795c80361c4193ff02367c3390ebace7d9 commit ad89e904e3aaa93628785546034ec77f3100cf79 commit b17eecc08fba0c1d256f9a78fe13e5e568fe7081 commit c96140000915b610d86f941450e15ca552de154a commit ecbf60782662f0a388493685b85a645a0ba1613c commit 291af3f59849c54aba2d96256680a5d4688f97f3 commit d4b8386c86800bd9616dcfc82724243609c01c55 commit 772e4d56dab5448eb120f74811eaa71d7a474c1f commit 8fcbfd53ead3d5faf8c79b7179aa1caecd44384c commit d232584ae369f13fea6b904cd7486357d5367ea5 commit 8930b90be637972ccbc683887353e71c52a918d9 commit 0253d718a070ba109046299847fe8f3cf7568c3c commit 05bafe95e580587ff5febf8ce242fa2f401a1f17 commit 062666ffbc80e15154315550d2aa171c23e76c61 commit 7c2d3112b212c9eb64dad7b28a8b1a4a7ad03062 commit 75be61aa77feb09f829104fa74b359bee74f0363 commit 71fe4494847f03dda3932417769418c02431615c commit 15eb8573ad72a97b8f70e3c88b9bef6ddc861f77 commit 3b85152cb167bd24fe84ceb91b719b5904ca354f commit 91fdc5e76513e280595279ef78d3170fbfb9d369 commit 6c2b2cd33705b43cb19699500bbf7bd77bc8b60b commit 38cae7b626ec7b89cd14f15efb36f64682c76371 commit 35583e129995164aebb169103fe64614482ccf8e commit 2b976ad760dc3a62e4ff4c4e5afa02ec16e4013a commit e1c550898f75eec9c6dcfc16a584d5bc58eebf77 commit 32a120f52a4c0121bca8f2328d4680d283693d60 commit 0f54a19262154cb3965ba910c8b081417d97c6c8 commit 25b1f6cbd8c55216e02bd1c116a5f62f10f4d535 commit 4279635e562953c08aa27d9737311a958ce9e753 commit 4f82ac6102788112e599a6074d2c1f2afce923df commit b8c7dd15ceb87e5f37ec1ed7b56c279d98f3eb53 commit e315384899082843193116060e147703d85546e6 commit eb523ec38269889cef15494635a2bc4b608602a3 commit d2d5409786fda857e44478e5fa27c9441a128219 commit 234670cea9a2995554dad6e084e5e18b0bcd151d commit 411220808ceeaf91b11a9fa9bc992d59568a7ee0 commit 7dc10eff223b0e9fed5d48159820556a576be592 commit 2d46ecc958c9cb7b0f116aa52cf9296b6c71d784 commit b73581329adb9e8105277a463a4d1801868b22e7 commit 21ba615af622a6bded6931499bb28a31749c840b commit eb6dfbb7a9c67c7d9bcdb9f9b9131270e2144e3d commit ac01f6ad710c41c8c2cfab24be8bb71586bf8c44 commit 032831f223bce58e2fea9542cade0ae9789dc378 commit 73b8a388eb0c1328dab1161e42eed3d7b507764b commit 02b438afc63b79490abb3ce82acfd6b49b88b34e commit 95134e5852978a92d2290a3b1ee93189e75507ac commit bbd0d1c942cbac87404ed2bca0aa4f7907b8f47f commit 3269d6fb7580e91313f40dffcff70c01cd3f0717 commit cbe9d7c1d25ef6da67c9bf19eb02760632857f13 commit 116a678f3a9abc24f5c9d2525b7393d18d9eb58e commit ea79068d4073bf303f8203f2625af7d9185a1bc6 commit aa08d1143890ead78d28a5286fd53b45907743fc commit 9023ec5d55f3991aaa76f3c87a6fc4552e776172 commit d12b17e43aacc6a4a462f0918637b4097b72cf56 commit fe4b8c98dd1fcfab6e6c18bbc0f0f31a64bba7a5 commit ea04ef19ebdcd22e8a21054a19c2c8fefae011ce commit d6d884b68ad65c832be5ba22ac61dc7173059d9a commit b6d508533fa1371d870628a88b74c831c5881cde commit d19deabe5a4566851f6ecade5ebd2e63c3248cf2 commit 9ff3ba3e769361ebc22e59c76b18bc67427b541f commit a638b837d0e6052678a686d42018271042e38408 commit 882643a95fe60c23a70917f97ac0781e92c583dc commit 9ef37ff38d01a616a670019330190ce1817df887 commit 230806dddc2601e58073740b74bf85a03d12ba53 commit 11317d2963fa79767cd7c6231a00a9d77f2e0f54 commit b16ec6300fc5c74f12622fca7de0255f7016b675 commit e5f6bfe4025f881c17ae1829d76b19efcb353c81 commit 30fb9cad6fbbd9d23d2d0ff7be8c59ce39b882bc commit 8d9ffd15ff5c9da7bc6171f2536aaaff40bcab6e commit f21373802da4e8c4fcf8acab60d98af307294b87 commit fd536d2e12d6fd8e6b199c343aa6475fa969ed99 commit c2fad7317441be573175c4d98b28347ddec7fe77 commit 8dd1426e2c80e32ac1995007330c8f95ffa28ebb commit ed17b63e7e25f03b40db66a8d5802b89aac40441 commit ce7985fd94a0eff154e13913e4ca553aa09e1097 commit cc6e00a6c4f6504b61a11154f15140cf85b5980d commit 0d3157d04d9cafd54f32b68366f0fa227076aa0d commit d3dbccacfd2d47a73e2bb6f9be45a116de94cef3 commit 62ec7d38b769ccf33b1080e69c2ae5b7344d116d commit f340f2bad1c790d2759680b7df853f548e7beadc commit b0b2b50cdbd132cb78ed25c27081849a405b75e3 commit aaa08078e7251131f045ba248a68671db7f7bdf7 commit fcb2f988ef4905ac787fef040a28d0f0f610ad83 commit 5380092f65b84cb843f363a145526047ef48d1fe commit dcac51bd102cdb2aff1ad337d3c2fd354491ba42 commit f4b1dbf413624ad07cc2ca2a6e6ec25c3f1e733b commit e931ab3eea505535abd0369c5da27e3a5d0057bb commit 425c4a6f8ba62f77669a6a10ce9678153dee3e03 commit b6a343df46d69070a7073405e470e6348180ea34 commit 02cf3ed62783ba42b66605408666fd648ac3a090 commit 98392782df666cee2b9d4161494bb23177d67605 commit 43e4cc22994290668b1ac63a0da4c74388c1cfe8 commit 23c1ea02417d10ddcf4d50b5cd5ea7b02c69cceb commit 53c3a37436c400a00d05702334920354f2e3fdc2 commit 4448b1ff4d267873575a7b74a3786b9c7c114c1d commit dfeccf4d5437bdba1bf9cec14490d989677743c5 commit 71d8af38d3a9d9e17c255c13b6ff5fc1379ebade commit 6857669a2276fdc31f53b0edec46661149237112 commit 5aea87169414101686c90c23719cce30c96d6ef0 commit 410bb279a8ca540cb8101160fefba5891b89d03a commit f3e2a425c6b212d88d26c7d194e09508e520a5e8 commit ca15cd559fd841c968989ee44d3fda6e75974198 commit 614a9f5ed5b079af9cb933b9ebc6b3e128a2560d commit c7c3f786b931f89a5b645e01a7cc3214e791e73b commit 9cd2ad14d88d6a99fb1f9364fabaf6bca5b1fc9a commit 11382d02fb5ad2d6d3145c9d1c863720add7efa5 commit 80ffdc273a75f5049277f590b0c287df979a5169 commit 38a16bfe6fae93d3d4b7273f0d3add9ffcc4ff03 commit b709f949f0e5576cd5e8949bfd21474f60ba3df5 commit 94845ea05758ae94cc305a7bf3d536cad40bf15c commit ea67deb03cc0b3f6e00b4aab87732672d73295b5 commit 4ed6a3689caba239e6df18c60af9489001f481c3 commit 2a7e5f45314cfd99eacd9301a196c2f7cb67237d commit 7b8a74bc42016173ddb4872d113f132c8ca59fc1 commit fd63bf978b7b0f106c72b6392436f4223b16ab85 commit 4f3265b85fed99d279dac114a5aaf0c13353420a commit bb5367d17e83af95b56d2cc455a09316d6ff3349 commit 171b357d18eea64988ae774aa25b32bbfeb16880 commit 633743ed18461061441af69d1ec669bb7b8c4269 commit b84c28f33d35361282d27ac304c888dc1ad38a15 commit 3f5ea7ed705e8effe9cfabf912e769ccb6b7d389 commit d69d804845985c29ab5be5a4b3b1f4787893daf8 commit d63d81094d208abb20fc444514b2d9ec2f4b7c4e commit ddf983488c3e8d30d5c2e2b315ae7d9cd87096ed commit 58cd0cba82976a5a21bdfc78783952b147837a84 commit 74c3f5da233637bdf828e1ce67a5c1083630a47b commit 685505219723147b10353b9018ab0c8706934290 commit 896868eded124059023be0af92d68cdaf9b4de70 commit 27aec396c48c6407a7586a35d79ac3fe387f2054 commit 86634fa4e6aeff2e190616c304156899beb4d76b commit 71e9f407fd42d8ce28ff40c4d9cda08c9f3c0f99 commit 6be146cf57b642d35a11dee2af4d534ebea97dde commit bfc109361cfc7b3251ed3b7993156825fa895a0d commit d076e2bd09f22db8a181a081479008524674b5b3 commit 62a05f4ae9c1fb70bc75d494c9c1c373d2c2e374 commit 91f9f4a37124044089debb02a3965c59b5b10c21 commit cb31c58e8c294ff31ea842ee1fa2c06c9a9f1cc3 commit 78347b651aa5be8b48462c48fee7e8302dcc5819 commit 064d92436b6924937ef414894d9174fa4465f788 commit ffcc5745ed56d5c4e7ddf2774ab7ad26e93143d2 commit fbbbb62112a8788f76e28bfb7e822bf33ab1075e commit 2262acad0ae911cd45b6cb976f803a74db9e9ea7 commit 33f23fc3155b13c4a96d94a0a22dc26db767440b commit 906219ec94d0a51e4929d6860789656bab02cfa5 commit f0c6b79bfc9216bf0e4e35389d4e3e4fc7bbc2ad commit 495e6173a4176ef578e8ada9f17e1685fe45d00d commit c8714ac982e54e758eb937c0d82d4d265dd6e7f0 commit 54837bd2be229cc386298c5eab7d05f36f26e1fc commit 332210c13ac0595c34516caf9a61430b45e16d21 commit b6ad1091666732e8750357f9d2fb599f81bf6bff commit 320debca1ba3a81c87247eac84eff976ead09ee0 commit e33697141bac18906345ea46533a240f1ad3cd21 commit 75ac6a250632d2fff62039ae728c842033dceddb commit 5b9de2596f17fb328945676293a956f3d7f53a9d commit 91ba536ead3ad86952979b1944cf3b612a7f944a commit 12b435a40cb5b05378ca244a9d524b125b0c1f6d commit 1dd34092c1f1fa1e9e3b0a294f7ea0658e676ae0 commit 59f488be7631513acc9a266e9d006358545b7074 commit ee98fb71baa8728156b4d75740f82cb0cfe6d923 commit ec85147a3529fded4bba12b48623f3a2587af83f commit 2df7aac81070987b0f052985856aa325a38debf6 commit cb520c3f366c77e8d69e4e2e2781a8ce48d98e79 commit c537fb4e3d36e7cd1a0837dd577cd30d3d64f1bc commit dbf35b4deabb5706e739cec7ce35c12631bb8c87 commit 5d64af40e3a99c3bbe7a66c3cfe23295f8e97130 commit d02ddefc7eedaa6394279bad522c70fd5d63e163 commit 708f220567d4a398ee1553ee6519f7e73ae5ed6c commit 948f2828a676d323c18dfa16e6a91c8103a97e4d commit 7d570f56f1e1005cf5bb34ceec608432d2acb157 commit a85cc86cce4183962c9ab80bf9c9c666aae174f8 commit 21e6f6085bbc979b5cc3f97857e66387ec550c48 commit c39385710cfd9ef22f6a2405d01ebcd6019e8767 commit c04706914ddeb9098a509a5647c0b46c7e07cf11 commit e23300dfffa178b19abc1b1b94ed7de74b0e0930 commit 8030f6533ef0a40a81ab6113aa6a0ab6a8e981c4 commit 99194e6db5d89c00ea8acd1eb3ff260e1c440f55 commit 833cd3e9ad8360785b6c23c82dd3856df00732d9 commit 63347fe031e3bd738a2a16aee8eba889376e49a8 commit 26d289158e491d5ae34b10eab40b093a40fab7d7 commit 5207c393d3e7dda9aff813d6b3e2264370d241be commit 609458abd5a10180f513ca364d6c0ae30128c821 commit f00059b4c1b068df108c70f86749b23f9080d2ba commit dc1000bf463d1d89f66d6b5369cf76603f32c4d3 commit 38e73004c2b537f79789347a8c381c8efc502480 commit 864204e467e40621bb8b8009d2931558146a3e9a commit 85e23c6620745c6c0a764ded52f3d775ee767eb6 commit 8b68788bebd3f697ae62aa9af3dac35ed112ebd7 commit 7ed58b68ac5c3ff378656eb082c982a266bb658e commit 478cb8badf1898f22e19e4d21f7d7b70cd44df9e commit 1cff1010bef6f325d895db0306b59dc7232ed9b7 commit 725553d202dda60dc17a142c80fd96bdf6ca43db commit 7d79cd784470395539bda91bf0b3505ff5b2ab6d commit 0c8b91ef5100eaed3d64123ac91ac4739fccf15c commit 5e72b2b41a21e596dcff489810ea760adeb2ef30 commit c6a3194c05e7e6fd0e8fbfb1720084ae2503c4ac commit 8d42e2a91dcf86b34461cd7f709797805afa9f43 commit 3b0ba54d5f8ff60553c01d3ec3c607ab7bb3b452 commit d60c429610a14560085d98fa6f4cdb43040ca8f0 commit 28814be8823002eca06d857d4bce70eb4c6fccd3 commit 7bbae44cf1bda02537a84cd8ad75bd81694acfc7 commit f998678baf3c143fec4c66e7f3a84bae3b25ff12 commit d13e2a6e95e6b87f571c837c71a3d05691def9bb commit 509580fad7323b6a5da27e8365cd488f3b57210e commit eeb1f825b5dc68047a0556e5ae86d1467920db41 commit ecfa23c8df7ef3ea2a429dfe039341bf792e95b4 commit 7d75ef3736a025db441be652c8cc8e84044a215f commit 6e169c7e0f842c48c7bf683fb789dbf5a8b1dfd8 commit 0e2c796b49735ee141fbff355b9d02e0189c3c65 commit b3fb79cda5688a44a423c27b791f5456d801e49c commit 2fdc99b96ea86c178eb14bc948dac93feffc8936 commit 5ae8fb971201d281cc594dba58787406e46c696a commit 4cf300f604fe894e4bd734f87fa4502faf1b8af3 commit d938ec1a12a22a4eedff319aa41cba48e9c5e544 commit c95e67bac42d7e671e6a2c14548b6a7f76e71235 commit 6c85d6b653caeba2ef982925703cbb4f2b3b3163 commit e3615bd198289f319172c428f20857accb46b830 commit 478a52707b0abe98aac7f8c53ccddb759be66b06 commit 408c2f14a5d3d7ac4824b96e52693ab271efb738 commit bf07ca963d4fd11c88a9d4b058f2bd62e8d46a98 commit c9474b726b932b5d555effd9ed0ae19f4da2367c commit 90936a0a4c54f0a1cdf4538f9128821ad70c36ab commit b3ce7a30847a54a7f96a35e609303d8afecd460b commit 12c35c5582acb0fd8f7713ffa75f450766022ff1 commit f4f92db4391285ef3a688cdad25d5c76db200a30 commit 3f386cb8ee9f04ff4be164ca7a1d0ef3f81f7374 commit fbc90c042cd1dc7258ebfebe6d226017e5b5ac8c commit 7d4ecf3707b5da27a69ddf3dcfc28599593aad2e commit 527eff227d4321c6ea453db1083bc4fdd4d3a3e8 commit 78e6e468e111ebf502adea7bb07c6708e497f83d commit 627a24f5f25d689682f395f3df1411273be4436b commit a9bf3efc33f1fbf88787a277f7349459283c9b95 commit 65564157ae64cec0f527583f96e32f484f730f92 commit 26720dd2b5a1d088bff8f7e6355fca021c83718f commit 445d336cd15860f1efb441e6d694f829fbf679eb commit a03ebf116303e5d13ba9a2b65726b106cb1e96f6 commit 73048bda46c3085df5fd42840de09523386d3e54 commit df65aabef3c0327c23b840ab5520150df4db6b5f commit 23df34997d386f1442d26f2d8edf44a5b5fee79f commit 485432d090016aebf8fb407a44ce7a2f856d11eb commit 6728f55590a667c292cee10c009e16d90f48d63a commit 4ab68e168ae1695f7c04fae98930740aaf7c50fa commit 5302d1a06a2cd9855378122a07c9e0942f0f04a9 commit afac8c6554ccee54bfd1743755e10af005be3bcf commit 1a8825259a9ccc53faddcdec24cf94e0a36b32cc commit fab1ead0ae3a4757afb92ff6909b37d63db17e55 commit 5659b0c93a1ea02c662a030b322093203f299185 commit e58337100721f3cc0c7424a18730e4f39844934f commit 09f34a00272d2311f6e5d64ed8ad824ef78f7487 commit d6667f0ddf46c671d379cd5fe66ce0a54d2a743a commit 12bed149a3460bb6efbca697b4a46e11c819db86 commit cb372a505a994cb39aa75acfb8b3bcf94787cf94 commit c2a96b7f187fb6a455836d4a6e113947ff11de97 commit a37cd98cd56e2c53d77d9c45cd4b7b3d91916df7 commit d4ef5d2b7ee0cbb5f2d864716140366a618400d6 commit 75c3e8a26a35d4f3eee299b3cc7e465f166f4e2d commit 0ba9b1551185a8b42003b708b6a9c25a9808701e commit fe26546aeb35c5d1fd69530bb6bfd04e0b5cd489 commit f3572db3c049b4d32bb5ba77ad5305616c44c7c1 commit 9038e25c80558d48ce33d6d8c168666164dc72e9 commit d2860084ecca456ce78b251011f7def8d9136dcc commit 4477b39c32fdc03363affef4b11d48391e6dc9ff commit 1a251f52cfdc417c84411a056bc142cbd77baef4 commit cb04e8b1d2f24c4c2c92f7b7529031fc35a16fed commit b5fbf924f125ba3638cfdc21c0515eb7e76264ca commit 4bc14b9cfaa2149d41baef2f2620e9f82d9847d7 commit a1ff5a7d78a036d6c2178ee5acd6ba4946243800 commit 0ce91928ec62d189b5c51816e325f02587b53118 commit 555069117390a5d581863bc797fb546bb4417c31 commit 5b511572660190db1dc8ba412efd0be0d3781ab6 commit e0fa4132bfae725a60c50d53bac80ec31fc20d89 commit f85de245c6a8e2654e1e9158588bcf78e38cd5a5 commit 9c685f61722d30a22d55bb8a48f7a48bb2e19bcc commit 774c6f271080fea23e7780e063c665af8679f3af commit 7b9b765168beb8b7c7c26e60c9b7c86befc31e2b commit 4eb399741ff67452eeaf099f366045042401cf3c commit 113fd6372a5bb3689aba8ef5b8a265ed1529a78f commit 62b45bab010d1b0cea6166f818f1cd0666a6d8d8 commit 29b4a6996c244f0d360537d6a4a0996468372c17 commit 1b85bdb0fadb42f5ef75ddcd259fc1ef13ec04de commit 1fb0847392e220890c9cf8908e3ab8e7e1227ff6 commit 1ac5167b3a90c9820daa64cc65e319b2d958d686 commit 8bdd9ef7e9b1b2a73e394712b72b22055e0e26c3 commit 929725bd7eb4eea1f75197d9847f3f1ea5afdad1 commit aef21f6b6a4aae648c890e74c2322d10ab267249 commit 264b5b5980061d8c6a6a30c031cdec1179fe2bae commit 787db3bb6ed5cee56fc97fecdd61517d89763f0a commit f2aaed194a54d78c307c44d1829c7e1ba67e9ba5 commit 4df19b14f6311c860223f349356da2c08ae92101 commit 437cf8bb0e1a56fa0491610706ddafd04b3b1a9b commit eb880ffddd5da8a014669deaf7bb3e7e9ecd06f4 commit 5f142b3826a0d223e947501fa9fe4ca912d9db26 commit aa5c9701ebd654284c55eba30d0a38eec49f2946 commit 07cd40a0c9843653451f9355170770f6e42489c8 commit e8097cf1ce9e7ad8516ee95f06f7baaa31506035 commit d507ae0dc83b7f43cdf6760b8f1a30aac4fc405a commit 8ff3bb44cc94b74ebd57fe3be9dedb98dbf92771 commit 829798c789f567ef6ba4b084c15b7b5f3bd98d51 commit 5d687a67fda6389b9214815aa0d0adcc44302dc5 commit 50e376f1fe3bf571d0645ddf48ad37eb58323919 commit 4a5ad08f537703c35cf7cc29845381805c891d9b commit 7fc5f252c0d21b7b89720386344b614733edab32 commit 6ad9dafba19f15a64f71c2e1a9e3b6932f96628e commit ae02c7b7fea3e034fbd724c21d88406f71ccc2f8 commit 4f854a8b1b85d46abd5ce206936d23f87ac5e0c9 commit ac3191c5cf47e2d5220a1ed7353a2e498a1f415e commit 642dfc9d5964b26f66fa6c28ce2861e11f9232aa commit 062fd0a6cdb5986745100ab1328d4e475078fda4 commit a507e750a1d693a21b233f47db466d9aae895fa2 commit fe0ce0d622d08dde6acb9857fc180d59af804a86 commit 06f5b920d1d0b686d794426264dc39aa8582db14 commit b86aa4140f6a8f01f35bfb05af60e01a55b48803 commit 2c71c8459c8ca66bd8f597effaac892ee8448a9f commit 11752c013f562a1124088a35bd314aa0e9f0e88f commit f6098641d3e1e4d4052ff9378857c831f9675f6b commit 0dbb81d44108a2a1004e5b485ef3fca5bc078424 commit 338567d17627064dba63cf063459605e782f71d2 commit 737222cebecbdbcdde2b69475c52bcb9ecfeb830 commit 56fb276d0244d430496f249335a44ae114dd5f54 commit e414a304f2c5368a84f03ad34d29b89f965a33c9 commit e6c6bd6253e792cee6c5c065e106e87b9f0d9ae9 commit 0573a1e2ea7e35bff08944a40f1adf2bb35cea61 commit 278e1865b7a2124ea783b75ea8b3ee0bc2da5d85 commit 2029b3d7e1358bcca30f74978543ba35b4bbc43d commit a13d91bf3c1910212e45a69d04ad40d99878f8da commit 3738a7f0ddb920bde538d3f78a02edbc6ad1307e commit 1097727d6d0c13eca25321fff46714fc5047d6e8 commit 7254027e1e6edbff54f5930a5f13f14ac6f1694c commit af401543df510a73f7beb13f80cf4c541be94786 commit 4246b1077ffcc37926868581bb818fdb49d0d065 commit 470516c2925493594a690bc4d05b1f4471d9f996 commit 507a2286c052919fe416b3daa0f0061d0fc702b9 commit 23acd1f344e8102f803119d0c8fc4df4628d694f commit ddeb7989a98faf8da67ac613731a0eee32667b7d commit e98a032c0340d45c199f4eb536359f5762a8748f commit d28bb0120f360e772458a7cf295d6d0ae3dc18a4 commit 6309f9b1fc4de2daa1293fe12a488d765e60507d commit 817c70e2ba278e9d5360833b1137ef8855ac1728 commit 64da63cd3f7d771bf8f240e72203da1f72aa3728 commit 55ea73aacfb9a92def840a7110a468c5a76caeb5 commit 4f7652dcd339aca6678084d42fda999ecb19b624 commit 90be4cc6f7674a1478c4c750beeee3edd14aee38 commit 58bfe6674467f4c037e89111e6007f25b34d8bb3 commit f002702290fccbd473f5bb94e52f25c96917fff2 commit d7a5aa4b3c007fae50405ca75c40258d90300e96 commit 75eac7e8bb77597fa199a056710f9ebba5b1995b commit 9b340aeb26d50e9a9ec99599e2a39b035fac978e commit f8e170a3dd723c29d7fedcd584c468e1fedd5e5b commit 37b20e9a5810e132a21c54f858043b22671396dd commit 5d41eeb6725e3e24853629e5d7635e4bc45d736e commit f4b2a0ae1a31fd3d1b5ca18ee08319b479cf9b5f commit c621f70539cae731d9749c1900cd00bb70ea5c72 commit 7090d7fc969fcc9985d7e538cfcd8a69a5f9c616 commit 15939ca77d4424f736e1e4953b4da2351cc9689d commit 730b72480e29f63fd644f5fa57c9d46109428953 commit ddf6492e0e508b7c2b42c8d5a4ac82bd38ef0dd5 commit ad614a706b1ac83b95b333f44b8f5e70bcb37dc5 commit 27cb2b7fec2abf310e4128137979124ead920ccb commit 03a2dc84f5c4ef31ac0112b29d51ff103f7c8dd4 commit b196e6fcc71186134b4cfe756067d87ae41b1ed9 commit 7e81285380743aa5759bb29a388f056c3d326a2c commit cbc6e98ab11bea52789d2835e45e8816c39407e1 commit f5cb1275c8ce56c7583cb323cfa08a820a7ef6b4 commit 8776b0234e1d008d8f19b26f6c3af1cfa6187070 commit 8636a5c29be1f05b5162a5c82c874338b6717759 commit a06a7b3429e2548a28bb661f17347b8ffe4a8a15 commit 0b43312902d165c4c8429cd49e8c91479f52b7c4 commit e3e4bf58bad1576ac732a1429f53e3d4bfb82b4b commit c99769bceab4ecb6a067b9af11f9db281eea3e2a commit 9cead81eff635e3b3cbce51b40228f3bdc6f2b8c commit a6f78359ac75f24cac3c1bdd753c49c1877bcd82 commit dd3e840a33b57b92812fbec26273b3f0b4eb5ae3 commit 9e7f30563677fbeff62d368d5d2a5ac7aaa9746a commit 424a98a68feac20de626e307e09c7ced6585a658 commit b069f6315c2d99b32cb0e1adca7ab4d99bccf410 commit 5159b9dcfa4b79658543465f6370cdd514cdc6d9 commit 76f461867800fa9421d26a70a1640eed55dff0cd commit aba07b9a0587f50e5d3346eaa19019cf3f86c0ea commit 50f1199250912568606b3778dc56646c10cb7b04 commit e9fd436bb8fb9b9d31fdf07bbcdba6d30290c5e4 commit 7d058e6bac9afab6a406e34344ebbfd3068bb2d5 commit 2955ae8186c8a6f029e429f7890e0c7e5f6e215e commit 1eb52589a299f8b29df0f214206da6616e33a8b6 commit a2ccc33b88e2953a6bf0b309e7e8849cc5320018 commit 8f614469de248a4bc55fb07e55d5f4c340c75b11 commit 948f279dc48a6db17204f9b23f76b67abcd5d702 commit d420c857d85777663e8d16adfc24463f5d5c2dbc commit 37a45fb8db2619e03d26de59dbdb4ae2b0b02d7d commit 959fc102ff4c39f5ab021da311c2cfd1d5602a0c commit 3b9a33235c773c7a3768060cf1d2cf8a9153bc37 commit 6d5064c379557d92832b51d247b385bb8bd6aa5b commit badfdc6211f27803bc805fb56629f7d418670870 commit 849f0d5880b7494030c4ee1e4fbaf2ca5422bca9 commit 59d237c8a241168c7ae34c48244059b7bafaff38 commit 9941b5bcfeb25c5192c8d4c8307d3680c04d4021 commit dde72a5d4fdf2e18fedb4b2abfba5f7e86bcb7c8 commit 27f5b729cb56e46d8beca47c227c0edf1e958fbb commit f33b9ab0495b7e3bb01bf6d76045f078e20ada65 commit 3f6b2f60b4631cd0c368da6a1587ab55a696164d commit 59d3cfdd7f9655a0400ac453bf92199204f8b2a1 commit e8705632435ae2f2253b65d3786da389982e8813 commit fcd9e8afd546f6ced378d078345a89bf346d065e commit f99999536128b14b5d765a9982763b5134efdd79 commit 65444581a4aecf0e96b4691bb20fc75c602f5863 commit 34c36a77f431b67803c68786fe41a05d007a9306 commit 4de34b04783628f14614badb0a1aa67ce3fcef5d commit 53c3685f5307967a62517ace10e69d66520d0fc5 commit 38e3285dbd07db44487bbaca8c383a5d7f3c11f3 commit 43cf50eb1408ccb99cab01521263e8cb4cfdc023 commit a13494de53258d8cf82ed3bcd69176bbf7f2640e commit 466cb3c630a51b04995c6247d2fb73b5ce7bfd7f commit 9da7ec9b19d8c1ad4f44e459fa5f93ad7a117dcd commit 9a71cf8b6fa433a8f243626ba9930a3870584e38 commit 529bf8d1118bbaa1aa835563a22b0b5c64ca9d68 commit fe13fd68337512da4b7aee6326c397e817a943c7 commit 82122d1f54ec2244fb9c367ee2390b51ce08cf44 commit 269a3f60843b9d2045e0c09d4bd34a91ed4222aa commit 880b398288487029ef5062ec5d7fcfc90672f782 commit 4bfc9c553f5ea8cbfe085824f3283885cf173c20 commit 5f7762042f8a5377bd8a32844db353c0311a7369 commit 76dce2a96c0f48295e92acf7a8f3fa46ea0ee524 commit 7de295d1a1a1b84e57b348e8bfd0fab5aab3ce69 commit 5a498d4d06d6d9bad76d8a50a7f8fe01670ad46f commit 1a8d845470941f1b6de1b392227530c097dc5e0c commit 4de4a0f160cf8ccf29a9a70f00403e6948e7e108 commit ca10367a5abe5f04df1374b227a10439ef686b90 commit 141bb6bc73cf45e8b742d6fafa6734b6d5f82b77 commit ea5ff5d351b520524019f7ff7f9ce418de2dad87 commit d3d37f74683e2f16f2635ee265884f7ca69350ae commit 6db9df4f7055eb4ea339e7b83ca676edd9ec1277 commit 8c7c44be57672e1474bf15a451011c291e85fda4 commit 02c132166993c8f8ca1b319665181f72f22ebc6b commit a7aeb03888b92304e2fc7d4d1c242f54a312561b commit e835d5144f5ef78e4f8828c63e2f0d61144f283a commit c5b1a06697eae4d365691195ab2e0b45539bc2a9 commit 612e3bacf8009e329342934ce403fd4ca553beba commit 7a0982523cf3ff00f35b210fc3405c528a2ce7af commit 3a23aa0b9c24c682c506121e2e0f6cbcfdae9076 commit 8409fb50ce48d66cf9dc5391f03f05c56c430605 commit 17ea4383649fdeaff3181ddcf1ff03350d42e591 commit 2a2a865aee43dd6f1ddbb0581c2a2cc205beb768 commit a2655358cbda38d53d4a443c7edc7951d91c3043 commit 572239f7f15223e4cf22a8233677b9a080c3d873 commit 5e2d1d4dc1c15da3e1e3dc09dc3c1276274439b2 commit 062d59eb96b24990429c13706cb74ef09cec7e99 commit dd10595c3232d362f5a01e5d616434b2371ae8d4 commit a262cc8d554217fbe67e083159584beee3ea9b11 commit 9bd7ff293fc84792514aeafa06c5a17f05cb5f4b commit 94c4aa266111262c96c98f822d1bccc494786fee commit bb7e19bd6cb68e08272e08acb814b9342ad5a43d commit 690e516e9869791bcac00ad5a351d953a928044b commit 135be1dc46c64c454f2828dbb7f239d035f47180 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:33 +00:00
array->num_fences = num_fences;
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
spin_lock_init(&array->lock);
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
dma_fence_init(&array->base, &dma_fence_array_ops, &array->lock,
context, seqno);
init_irq_work(&array->work, irq_dma_fence_array_work);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
atomic_set(&array->num_pending, signal_on_any ? 1 : num_fences);
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
array->fences = fences;
array->base.error = PENDING_ERROR;
Merge DRM changes from upstream v5.17..v5.18 This commit was generated using: rhdrm-merge-drm v5.18 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/drm_cache.c drivers/gpu/drm/drm_gem.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 301a44dc18e3,308c302c58e9..c2ef5f9fce54 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -134,4 -132,9 +132,5 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-y += solomon/ obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit cce936f4fff736927ffd53a61d7b2c6a1064e0c5 commit a908db6d98782e8d9a8d545dcc74937db5bfac04 commit ae361eb07e9b498bc224db81113118fd28e35f6e commit c2a9682d2214e834b493c454e38809e571bb3045 commit b8ca477e51318d28f7514abfb5a369e11848a8cf commit e74c6aa955caedd06b5ade58e31e33338e4efde6 commit 637088a21e204b129a03dbd59bc0cd80d0292651 commit d0c0cf22d7071e9ba8d30be91723e1d997a07970 commit 49d535d64d52945e2c874f380705675e20a02b6a commit 11343099d5ae6c7411da1425b6b162c89fb5bf10 commit 60c9ecd705be3a28f79d70ea21c3939db668bf46 commit a36e7dc0af1cc7e5eaa89136c35a5305fd693731 commit 007354597d5c12a8d44a34c66a2e1a089bc7d3d8 commit be5b6985fbbe6ba9580351b3c9168c84e51bee5c commit b96a1d8c5189452d80551f2c38ef50c533c19669 commit 3edcd504077c02c9e6e7b687a43849eacbb8088d commit 9543e3c0511da64a77b1af3ab1f7199c39226e1b commit f21e5fa191be05616e3250723c5c4cadc9baf84a commit 405d5382ba083e6e54df354909b1583f1e3cb0db commit 70704fbf67ddc07ffc81073a3af1f7b2171697eb commit 943e6a8beeac1b676265f2dd81a69d7bede5e41d commit 7e28d0b26759846485978ada860ef4a427e06c8f commit 5995aef006698bb639547a439f47492de5c37f05 commit 5664e3c907e20523cda622268716867e77648d0c commit 6844a28885183a5a2af92a8d315a59f7a0e668b9 commit 825ca9ed1c9f5516b30292bb1c7ab648c2a01b92 commit 980f42e7d57464af190d05b9cc0bc21846734f48 commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d commit 249af7242af72a826dbe93f7058237eee4fac1d6 commit a88afcfa258672601eda5966439d2fc310a34cb7 commit c3c2ac4c77ee2191ae2f1e8d140a59e852104e3b commit cbffbac9c14220b8716b0a9c29d72243f6b14ef3 commit 62eeb9ae1364cd96991ccc6e3c5c69d66b8c64df commit f7747be1410321de8a92e340c5ca6c18a59770e9 commit e35d8762b04f89f9f5a188d0c440d3a2c1d010ed commit 0b464ca3e0dd3cec65f28bc6d396d82f19080f69 commit 6edf615618b8259f16eeb1df98f0ba0d2312c22e commit 5f4f958a0d9dfd7a569c56e76840e39b0c434378 commit 3b26a2916844cf2680de10206e193e1d13f0eb88 commit 50d76e3d3ec0c18dbe2c801af676f7e7cbedbff0 commit 7c442e76c06cb1bef16a6c523487438175584eea commit 7020449b8f5ac0f7444a584645edec02f7168f1a commit f5f05ddc37e0445567e4a2369b73ecf9ee2e187d commit 816e3be74f16f3064e74acb3e6ed69e27f14231b commit 80dfdeb75028084f42a81a4151a986c56aeec1c1 commit 9294914dd5507eca56566c470c56327f46dfd4fa commit 96211b7c56b109a52768e6cc5e23a1f79316eca0 commit b146e343a9e05605b491b1bf4a2b62a39d5638d8 commit 848915c35e22d36614f2b0aeca6ebf7361e8e204 commit 204129a211fc486164c25e6082941e4fe3ba889d commit 5c24c9d227e9bbcba509752a32b3da5faa149aec commit 59dc4632e35becca1186dbab83ac7cf8603afaa9 commit 17190a3492bb20ce1cc695fdadc7e4f7ad5b44ff commit cdeea858d8df9891ed75415f377b3564f899a659 commit d14f0c205302648df29c494a1a81ec3d897a2552 commit 91d8531393be96b4a088290cc67233b2e6ab072f commit 506d9d7414cfbdce02b7126fc8644f04ef234680 commit 59a39fcc21c56845e74bf60c1177925bb0255de4 commit 5313fb2c779f74bc5083e9d3738d9b2c2ebe0aa4 commit 814d5c51f8966895bb20b51c886bd3961f76f3f4 commit 5edaa2b9748979b08fcdb2f65781aac39e6ae011 commit df2d385cb4132e945d5bc17d387d0fb6f5d4d66e commit 9354417750e51c3d120cb6040b1b69f70d9ef43f commit ffa3fe080c77630f87436a9410475fed1e684612 commit 191be00229ef61f9ca0cfa39a09dc71eaf90e78d commit cd1637c7e48043503f8ca6d441568e3889998965 commit 607a264ea7016b0f811f82c33094a3c2eda5968c commit 3dbc84a595d17f64f14fcea00120d31e33e98880 commit 658a0c632625e1db51837ff754fe18a6a7f2ccf8 commit f3cb4a2de5410147b53e53416a3af0ffe26b5f4e commit 903e0387270eef14a711c0feb23b7bf62d2480df commit ab4911b7d411ab2ef3b38322178b9138e156c393 commit 30598d925d466c53c4c218a58f80e043cfe9b085 commit 0af2e827b6acfd22b7794c148943a3ddfe5fbb65 commit 2564c35df5b81a88efce965bbfdcf32c1a1bc834 commit 23d639d7b6df487d59ed23b0c9c04dfd3f909fc3 commit 2ef97818d3aae3c89a6cb1e6b8cd204156434aae commit db583eea5a820ab4afce6420aae61be9be55d05c commit 386e75a41478d8d70889f0d1856e782d610353c0 commit 7e470f103d7579836a536c15862b70118379f7f4 commit b4435717f53b776b770e7a025fd84688e53dcd5f commit a9e4fb51425f680f191bb65c2778cea31bf058c7 commit e1a4bbb6e837d4f4605dffa9eccce722fc59b9cc commit e8c1f36157ce0bf8c150059c3f9f573c13a186df commit 583998c5e8cb3e7a151dca22303b68cbe65c64b5 commit 39a2bd34c933b00f7c7ada923c212b3ff826fb5d commit ebf3c361f43b1c1fd254be5a6d12bd37b922e6b7 commit 2f6b90da919208621725d1703c0391f63724fa62 commit 950505cabe517ad40759cae6f88f33f0bdfbb7c8 commit 60dc43d1190db1bf80c696ab4561ed53f8f42f33 commit 55a9c00021e2393393a26e0833fd66e73d630117 commit f199f71f20916ddaf2bfc4dceea33c776d414428 commit 53c8283ba9b46559c12fb9fd679cbaf72424649e commit 77b6f79df66ed2919dedb834edea630f40079f12 commit afd088ac05f120d22e06f8404b2672f5841d0da0 commit e9f9bcd598e2b6f3cfa617f8e38f83a59738d19c commit cd5d2fdb045fb31a152cbb257e10da78fa4f06ac commit e0d47fcff1f4df458b9c8824a5204adcbf624ae7 commit 3e5cbecb9aa88f00016b61200d4126f727fc71e6 commit ab076d8d79e1e5eb3960e0a489f7a11d729c03bd commit 2b25a93bf07c6b68dd9e2ee427e228cb961f7961 commit 202b1f4c1234b34c15e51acc9c43e613f509f587 commit aa1d6068a460dcb21e69f6d65fa7d3ab483d547a commit d0864ee4f81fd8c782fbb382f80d6c9c531f2967 commit 24ce4d6d2ca626a733f70b578c4a298b200a69de commit 43571e15c057f69734d0ee3be45fdf9e4adee614 commit 919606f5e7d8cfbdef47ab7e24bf37cf86dd1512 commit 3e1f4c491559998615cc8ee287c673f0f7e66534 commit c41aadd26496db9c21deb612445801f3e44ee8b2 commit 5512445c9b64a2fd78f37c41796745d72c02e9a3 commit 1b277c892940af1d06c2433f3f3a39d4bd146c89 commit 4642077775a65566c0d25e63bf918fb5e5235163 commit ca1777797ad84cba3a72b73f74bd80092a7aa220 commit 0b782e669298e30853e235b963fdebfdedf45383 commit b17639c7f7fc1fbb23b761c38ba3233cd5d082d9 commit 38bd13a0b151093f5f26c95ee106659008896995 commit 3f8bd465a6f083a4112d82c18f4a85c9052d2132 commit e592dc320559ebc8166c1dce609faa7e4f3d6da1 commit 9d31993451f6bb4059a9b9eec4856b2225e36df0 commit 0f5d32617246810d00dae08c51069873a77b60d1 commit 7b1534188c25948f4ce56dc4af9d8e9234e97592 commit cd6e4c2fbb004f06d9c552761c171fed82ab5225 commit 2616be2eac4b1c361ece55dfd8f942dcecb25de2 commit 6650ebcbea1314bf91bf161802ecaddbb72651b5 commit 5ec7baef52c367cdbda964aa662f7135c25bab1f commit 5ff59dddacd4738edcbd01847d9df7682348cf86 commit 93e97b05d5816ec96bf209a50023cdf9fa750a55 commit 1500296576464dd4f8f7ba409069591648f4e98c commit 3a5d604f90f90a09e35ccfdeeedbadfd06b606db commit 6a8cf6349c7cae12f072889991a2aa0a1ba0bd32 commit de05abe6b9d0fe08f65d744f7f75a4cba4df27ad commit 8c2d34eb53b96755b33a125c65c3e807dbe430a1 commit bc143d8b8387ff0a22e4ef8e2375e63aa24bc311 commit 79c65f3fcbb1288b84473d45e6d001820a971d54 commit 13f5dbd6e3d9a4ea0a8d061bb2a2f19bb21cdacc commit d448157665870bfbf9b6baa5991cd9d6bc98c7e6 commit a79110f2dc0194326d2e8c2cf83db6c784c37e97 commit 28a31774b050261371953401e8072ae15200c91e commit 84176663e70d93836d30d2a480a4201c7f790b42 commit d698a2c4859de2d4d42d2f3c3806d6dce821d663 commit 6ddbd37f10749830e0a6ddf839ca4313a007d3f5 commit a627967e803e58c5525ac92a4af0d15379189a32 commit 7689dab48259073ea13d64d32365b77860b84e7f commit ebfc253335af81db2e40e6e8ed17cd76edf9080f commit 837d542a09cd533055423dfca7e621a9c1d13c5b commit 3bce90bfbaa8de63bc500bc5a4dd262ed8e548ca commit 61d7d0d5adc705f833d8a5dbb596253842486220 commit 3712e7a494596b26861f4dc9b81676d1d0272eaf commit 1a408c710d9e273a22050b0b7b0c131f92847918 commit bcf19fdd507fb679bb6e1b8a119961f32b6cbb95 commit 54c73b51df2958f564b144ce86f15a85e227db90 commit 685fae24d94fd615b7058832fcb437eb588f4860 commit 6492e1b07c03397f85bd6dc0e230ea6cd9394635 commit 7cab2124058d2f5f048f435a4631e176dcd1430d commit 8b0fb0e967c1700bd729ae54b6f229501b8587ec commit 6c2453861f48e4e779cafa01c09e78ddc2c23c6b commit 6d76e9049ad92be32704106668c34493c3e4c0d4 commit 5e67bba301156c85251f49df19f5c695875814d1 commit 2e54fe5d056e7dc82988ef64ded3dca0ef954f0a commit efe17d5a217e6b7dfd16c80dab522abcf2edf1bc commit bdc4292bd3b4337985f716be789b08eef921f7a6 commit b0e2062dc8978869c1dd96d92027f74b361d5eb7 commit 22d4ba53b1c10de6832e588f01d916e24306f6a1 commit 7389a5b837cde5e5cd771619e9f006ae102f5d7d commit cb5cc4f573e18deb7d9143de0ccb62c08181bc85 commit 400ef298f400854544e062023671e927965bc9b0 commit 20c5e425d36a59529f2e6a77ba21d009cdfa8ffa commit c4381d0ee81930097e94e55d1c23f85798ffd093 commit df01fe73ee98daf00c94189967550bd2d2098912 commit df4f0041c6ef497e598a67e367db835489162754 commit 69f91d32c6632e09f0954e690d61ac4921dacbd3 commit ab3b9de65bfeded1d4646c9f66897c163e89abd8 commit 954ea6aa1545a13036851327b4ed251fa7ab2f22 commit e3d833f41c46b8c59c4af53897a6619bf667ebe5 commit 1613f346f86b25121aceb941d03ca927e57af20c commit a85d70a8b4813a955d45b062440fedb9be701421 commit fb825b651de98cafef13e07673eb72d5e2ceb4a9 commit 31425abeda7130e66e61dbd8468502061413631f commit b3523c457380c23cf28d4ee1ef60da337a0a45c0 commit 06cf9bd61a7452df375f212881d9bb6b3c52c3ec commit 5f0754ab2751d1935818459e8e71a8fe26f6403c commit a8e6398ffe171c84b1c03a17eb6d432dc5f703a4 commit e8521d0cd984897b4fa58e7837afebd04e44f0b3 commit b0641cb8a1deae38990cea783d2a1117255f59f5 commit 803abfd8dda540b94ea3c754a70cba69d3825995 commit f4319f72a9bc37c948832c0ef121460ad7c1573f commit dfacce59553b2a65f4357ba6019827eb4b9a0eed commit 3681eb24a9f14e001d05f8d15d2e07a96abef8b3 commit adb9d5a2cc77e8aefe98fe4c11656c5b7025c248 commit 5b529e8d9c387a34ca2b8008dc65f55d539b3ef6 commit 032a125904995985334766911de9e26ee2bbd646 commit 269332997a160b3785690a32d2c5496bce7dae51 commit 71b59439aa03e8de022c31ccbf9aa9bea4578971 commit 12d7d858e63d0769a91aab218828e0526c0ab49d commit 2f609faf5bda9d828ce0229689227ba2edb1918b commit f6bb74e07705579f83252f9c3cbd462d8084bb4d commit 348abd4cf353abb3aca8dc6ebb80ee84acc4f64e commit 366714b0883f0411a4b142b1f7cefc6b184183eb commit 4682a6d99638bb8ae62f00b9466849065c91fd1f commit fee076019d0a3634aeea8df55c1f7ae35ca31d18 commit 2b6dd600dd72573c23ea180b5b0b2f1813405882 commit 6b79f96f4a23846516e5e6e4dd37fc06f43a60dd commit 647bfd26bf054313305ea9c2c4a1c71f3bbfee63 commit e849f7e708600a9d7567ae22f945b5b01d7f7401 commit 6945c53bc712cf4a28a46fe46c2bd8526ea261d1 commit 7e00897be8bf13ef9c68c95a8e386b714c29ad95 commit 0f341974cbc2a4efe074dd24c153e439b8430afe commit 294996a98a641254b72732f3cb36d51f12a6f3d9 commit b5cfe6f7a6e17c6bc7c802d382cf22c4dc405477 commit 83f2726cd9c3b92589f850cd4935ebbc35eee840 commit c34242eea16f7d973501267142dd340cad3caeec commit 3ddd0c90bafd9f2ae1ac9f1e67581537273dfed6 commit 79c0462159a1fa3810ae1869a5fc9fd7782b6b70 commit e475986f182156496fa2991012ca51956fe90bf7 commit 03f6fb84bd0e98a7b929aef5f308b8e3f2f24a0d commit b6efdb02d23ef615464cd0077c211b40a1faca26 commit 4f64ccf4f27c89089f3206446e2158833bda4795 commit d622c094f8fe7a77fda613964ffdd9a248d2550a commit 8697a19ee955e32fe298b00feb0c61fc75cb5261 commit 71b6c4a277dbb2594c260ccedcafaef5154b0da0 commit 22c16d251a79c3156d17627810557878e600dc6a commit f3527a6483fbccbf569f91d9ee9c561b14d86a9f commit 47f29ac1cbae6e18329f0066f7c8d5d2346a5bce commit 7aba117ac9e01dc58afe29490f50025add9d388b commit fd9048dd4425a9dc252153c8b72369f1969a35b3 commit b4c55e525461a9a091421e952d1e052127d558a8 commit 82dcd8eb357caf4b16e6a201f6578b6e8795e541 commit f369e4eba89a6fc1cac619db86c00a964d1fc0a2 commit c1a20f707ac33b1fec1d78bab74e07656c237801 commit 6421c49567d55b1ba8d9389e5832297398a51a1c commit 58c69b53aee24f47741b150e309567d9b38ecd6c commit 9338cb719f0f0b43ee1ab39d17214f9b388c7fbf commit 047db281c026de5971cedb5bb486aa29bd16a39d commit 56ca49cf6004ff328458954dd3d0fcf0189a96a4 commit ce0bdc62e80d40caa346ac4840a20769d5bd1ae6 commit 552b7cb0eed12c184b3bdfcc262e96a954a2bc86 commit 4bd8dd0d61f961e6c13cc118d4ebbdba57f8561f commit dfd6879b98999867ac860a51348b00b5c0c2cafd commit a5e7ffa11974d90d36f818ee34fc170722ec3098 commit 4e68354667716e62089ce3032a3c7e1b6c07e669 commit 41f8aa5d6a8aace5d33e2d908bf5fdc833456a5f commit 6387a3c4b0c45a3932cc06daaf15727e7f83be43 commit acde6234f65bad89a2e27d3e8dd2daf680862545 commit 75ab2b3633ccddd8f7bdf6c76f9ab3f9b2fc5d9d commit d7e3ea83bba81d6d9c8f80c62a99b018165f5808 commit d39bc5c5e10a648c7de9558592816474f45a374d commit cc37b88b02fb590d08dd922ef1c0f7ef3125bba8 commit 028a73e10705af1ffd51f2537460f616dc58680e commit bcc77411e8a65929655cef7b63a36000724cdc4b commit ba3a5ddcf1e5df31f2291006d5297ca62035584f commit 8172375ea95ab8b7f7ea0dda617ad87c439a14ee commit 52506b099e1baa204b56b170f40f680ffcabb4c1 commit 8638b4d8ddc944ef3c1899cb774cb07de0b416f6 commit 54e67e5a2326b99c1461e29eb022e9d07a419abd commit a32762d1db4c13db53ab9005a24fe5465ab511f1 commit 2075a734ed990c50b6c544c6256b0dc0b74b82ea commit 09f137c320633d08b263c54c0782e91d55a6c09f commit b90b6e41379789ed595236113779e0793a63bf18 commit eb9fcf63857556d5eacd67f5c96078e643a8d15a commit 594c504d33343657ad3b24ff8e4ef032cd4de25e commit a868a1e57e3afca98509345d5a8f747a4d745cb1 commit 044cbc7a74c136f12a80c855cadd1b085084aef1 commit c26962803d044a7668e9ea4d5313117ac5b878c8 commit 479e3b02b73a2de2b19df2950863149c59d57bfe commit 86700a402694db56030a74481d09f35520332736 commit 8eb53bb2aa8afa170ba40f9460f2de4d4d138764 commit 33cd016e600ac3417aff7c85f59b9a4b70a947e9 commit 5904e4135f3b3e6cc7bed46bda71118d55a56681 commit 1b08dfb889b2c584b444538c9500af24ba0a6dc7 commit 590e86fe3462da81f1cbc4fc8d4cbf8b16b4f968 commit f61c40c0757a79bcf744314df606c2bc8ae6a729 commit f548f4291e89e6144d3c5b8a9ada66c7dbaa1639 commit 6d1d72fb4fcf85ff0a96de1c16c46162b3baf9a6 commit 6f043b5969a4d6d385ca429388ded37e30e0d179 commit 27535f1d94318f34fd6d41fd01bfa4a970e73bd9 commit 5de6a3de999d0cfeea94f1d3932b78892f3d69e8 commit 198bca93403d04f43c07c5c87c7b75a54f4bcb54 commit 26950f2968e873301c8c536ba0615ba04c17a0de commit 603801d0f2f418941d2524ffc43fa6d8c95873b3 commit 34ed3e83475eab0c8fe6bbb126165a3ff2f2ff90 commit 1358139bdefdb07bb402efb3164c1c51db99e8a5 commit 1d50942dc9304db488d1b3978274b851e890a33b commit b4a1c675d256bfa1d399490847d086b8b463b5d4 commit 784a2ec00904999fccfca12eaf7c63ac3fde5f48 commit 37ff945f804c2d40d030713fc8692e793a81eff8 commit a357dca964e0c77c479075dd65ef86199078d82f commit 4f72fc3c7f3d9f29a438bb0e17c7773f2fc8242a commit 1f73a367420c954f5cae2f899ebb9515be093645 commit 5fe0fdd23e3379833f4346b49fa791733c22ed29 commit cb935c4618bd2ff9058feee4af7088446da6a763 commit 428cb15d5b003102bc33d49f2ab31a6e4e785157 commit b4d775775877453b44834a621eb410aed7891875 commit fe6959a680a4c50f12dbb362c90f9d7157fea334 commit 7305f5b3a5d62d1ce1405e91fa367e6a9126090c commit b3bddb7a3806f26ba3eacb4f77834102ed344b9d commit 70b42b5845c84f33ed2b79a0fa96134710c652f2 commit 17dd7b896abd2c81bbc76ed55899314b1c285677 commit c5274e86da5fe7297fc28a4e12bd29defed1f435 commit 51f2d00909c6153d23edf2344f6b57d45e391945 commit 0bd6c4a1310336af511519a8a853ecff2120d11d commit 9d0bfa7ac97c629542caa860bca903af62b86326 commit 5acbdcd1b12ecba04f1481004b6ce5b40c64b211 commit eb8d73aa63cde11e43ab0619308a5356a691850b commit 15d641c41796fa1e8c8965ea457aac737a28a88e commit 140f70aeef07e4516a338b275e36eb5f8cfb463a commit c9b06cc26f1daace605238adb4720560078b0eb6 commit 2869f599c0d8c9c6492bec40d062951be8caae04 commit 50dc95d561a2552b0d76a9f91b38005195bf2974 commit ce99534e978d4a36787dbe5e5c57749d12e6bf4a commit 8b250cd3b5da18bd90f34ecb04c01661213b65ba commit ff3aeb34deb24f40626c171ce1cfd447a2edafc8 commit cf5b64f7f10b28bebb9b7c9d25e7aee5cbe43918 commit 4fd5e720b709b87f67809a871fde9fb6cb910f28 commit 4a46e5d251a39e7c10493743ac89a31f6f3ce5b5 commit 75478b3b393bcbdca4e6da76fe3a9f1a4133ec5d commit 4adc33f36d80489339f1b43dfeee96bb9ea8e459 commit c03d0b52ff71d580ee235463c7ca9eac31351dcd commit 80ecb5d7c0f224218fdf956faec0ebe73d79f53d commit 85e97b1dd5d29b66a249406624734843b71c0a0c commit 2343bcdb4747d4f418a4daf2e898b94f86c24a59 commit 901abf367d3eecd54f21829ced48c20f53c74c57 commit 828904660a2e0a31d5c8a2ce75711f7123896bd5 commit 6a6c2ab687c8eabaec4a55a4f13eb5ee68181403 commit 239d6de307b0dd1d48ec9b935b57531f07f6db11 commit e0638c7abc4d3d3c46e8f2fc07e02c3877c3c402 commit 974d5ef0dd9d251dd4571e30d5e79e7e4940d424 commit da11407f066c28c49bb7a4ff6a6b742b7a18d7ca commit 56383e8f4d296a33cc5b2a11864025d8205e9438 commit 1c4dba5e14c0085d412429d50cbcf8e9e2a18924 commit 1f2cf08aa010594036ccfb19d207e5b80b5bb7a0 commit a746c77e5ee86829c03dfaf718e18b589f849be3 commit 83a3766b147053e542f3c91c121cb9594239e644 commit f9130b81aea2de3fb6d356e9495a384b2d35b1d1 commit a685572c91b08e2e5143e52f4c5bbdd3d22271b3 commit 25c6aefceee60850bf78e16ae9d7fcc4a9d20884 commit 5e0c8ddf029e0a8533bfb04e4542b46356cbcade commit 0fc2549d55a238da5e4c1b1ae20ebc3856922334 commit dfced44f122c500004a48ecc8db516bb6a295a1b commit 1418b9c38270f4c7843627cb0e9047b19eb3365a commit 5d5c6dba2b43e28845d7d7ed32a36802329a5f52 commit 5bb1465fbdc291593a7c385cede0416ff6873280 commit 29dbcac82f96d06608f3658aacd3e14efb7ac0cd commit 97d1a3b967a3cbeb0dd29a8b5bcd4ac1fd9ccd9b commit 7bbe43f8a4e7775daf6ca62807e0023b0642a20b commit b12252b0538183d8b88bd4a8d8d05a808c46472c commit 4819732f5986ed8b3d88bf4272d2d5bf1ccff9da commit f8f96b17f0fa302b246e35773074f39e43add023 commit 5d447e296701484f3df5b31a7a078cbf1e3a9cc9 commit 1b2dc99e2dc6f35f55f0487e12fc9166fbd023ed commit 381519dff88845bbe522e7446ec1e32e351c670d commit 04022982fc5ddac6cc783d66846f2464fe4985fb commit d6dac2bc12bd968acfcec7a0c92c59d2e19dacc9 commit 1f33bd18d703ecdf7b664168d640439e867d1605 commit e9287ef8d46cee538c9a71bb8978b2f7e975c452 commit d435c1ed56b9f9347189924395588cfdf7489af5 commit 5b680dbfbf6899afaf8bbe59b859509149d59129 commit c282d9512cdd167384fe0d233d13deea538658f2 commit 31d64b8219e057705d7a9debffcf6abbccb7781e commit d9eb8fea6862e63421f7b9c93e32bef348488c41 commit 5279e091616b74ff0e4a24e220e0552b10d88d46 commit ccba4e5bc856471ed009d92747376ee506fcc6ad commit 3ea07c89fbb777669c668452e94275a98dc8afbe commit 1f6c40d5c0095959a260c014a6251a0ac124c721 commit 09ece5ac397f8e3539ea9ffb776e1cc6702acb9a commit d715c9a2cbd4b5dbf72bec82b033698db3c6eca5 commit 9506b8d9626f4fbc230dad30cea1b3b095f1e4d4 commit 2eee829ed48747181b17f3f8d458b23981f2bb7b commit e2d8ea4320c6fcf9f042e432232240f858ae9ed8 commit 1210b17dd4ece454d68a9283f391e3b036aeb010 commit 87e298d6e3a2169831a2f4a29e35575ee5747036 commit b80ddeb29d9df449f875f0b6f5de08d7537c02b8 commit 4a3ad932b2c538c62e4a60dd4b7411f802e018ec commit 2ca97adccdc90247c907541089e85101b2d87574 commit 09db246ceef70bc6bd9c3e0d02b3c855f8fc25fb commit 9cc370435cde6b672b6e2221115c2f535e8bd4ec commit 5f2c1192eba42f6926253a1f2c9b18da05b3c31f commit 72b90723b3760c69721b04f59436f38cd215e2df commit 0c5a0bbb7379625eb2a5b6a931415c008b7a1a16 commit 5cef7e8e2fcc6f9e8d2134668848a31b15c523b8 commit d52e77a3ffcf2da2be1a7892bc8fa67b0e907058 commit 53a35edfd0a767dbd04537596d95f56e94582f50 commit d063e70c6acad14987242f266e9448669db4624e commit f6a3795d35c69bd34a556e1d93000057aed78599 commit 0015cce5cf04d3bd7b2ae4f62d5cea5d35383e8c commit 05d6aea36a69e65b071e6ba897bf83a4aebaeab2 commit 85b8f62b564120943cc0db1e754d6649037e6c7a commit b5d9a483685c37a480420cfe2d41a03d529bc0a5 commit f2bde8349c35d01d7c50456ea06a5c7d5e0e5ed0 commit b9610edcfec216d7a2a5ea2c942734b3e5e26ffc commit 212021297eafe23b79ac117db9b5159d1df2ff30 commit 901e2be20dc55079997ea1885ea77fc72e6826e7 commit d0d66b8c66d04363eff3a5b09da4074fc1dfc758 commit 243c719e872a1322b22efccff80776353357b296 commit 82c3a7a5edbf5f6feae9602d19567d2b5b55121f commit 153a9529d7f372ce7ceb5eae7e2c312c0cd64d41 commit 588a70177df3b1777484267584ef38ab2ca899a2 commit 94ca070cd3737dd5c3b98f615bd4cc950f82a597 commit 5e6d72c643e1262ff02e057620b9f87d7d81141a commit 430e6a0212b2a0eb1de5e9d47a016fa79edf3978 commit ee2016b4b5bb70483e1c06218e7b6288704284cb commit e6f62afe9b2731b7a94b31fe59ef2c5134ad426b commit d726d43c20e744bab1e346c1f77b7a71eff0c40c commit 37d6b1506b80a5cf76238b6b00926070ab544058 commit 3b36f50d3a69ed720e4c464bc9c5fa2c3fadc750 commit 29c52ab2711f0e8ce506c120fbecb30e83f83339 commit 721fd84ea1fe957453587efad5fdc44dfba58e04 commit d8f7f8831bce9ef6a1f562037e137f57b5951501 commit 41e096da18b357ff1d2108c514b9634d67364c41 commit 20f6ac2d5e00d8ff154d9617a5c0b52ff12f3320 commit c3639f3be480529ac82b592e627fa7dd712de83e commit 6a4d8cc6bbbfea4469a063bff0ff0114507df524 commit cec49bce6e0cdf916433a248402bfdecbf6589b0 commit 9f807822abf5e210d8656fb5304f662bee64ca80 commit df216b37333cf2ddb0db86b966e86a53d239a013 commit c20b5d41e9de40a51b7e5516198c08a906fb7770 commit 1d894ce88eca35ef8627901c47c3881cb1f3e74a commit bc1ce503769c51c1c06f5ed126b07a545996d697 commit 8f4f9a3b3a0b733f8fd102f9e0843cad8d055c83 commit de3688e469b08be958914674e8b01cb0cea42388 commit 3f268ef06f8cf3c481dbd5843d564f5170c6df54 commit fda8d552c9c7783d4b29aeb6350d7404b31cdbff commit b889d89ad45f9957ea3eac8f61cb8884c2010940 commit 4be990af2f7ed8bf209cce3b86e1abac33742763 commit d05824796d9cf6c0e59a0aa86333584bde8b51c6 commit bf172a01ea485e630f28b6ad525fb277d73d3e3d commit 96e4c3c0ed4eb85e02bfa438c6b4ef7cea78bd8a commit 8295524a2d5550b56e800ac779a183b7f4d8c33c commit d083c232fe2dc4720d8f0e337613f88909ff9d2a commit 7e31ce581bf034cdcb1a94f84ffcf3cc983988e9 commit 6a6d914de30f15472b2dc36e8ac6bf016cfbaed5 commit e93a590c79faa4aaa4d7eadacdef9240e1e823a1 commit 62236df23d018fc977d2871744440efe6a08a6cc commit db3b3f3e62279b914e1958e93e057fc4d8dee263 commit b229712b26b58d043cd7386827f41ab022a4d109 commit 8ec6a72da65bbc4d341253e5a641a51bb1c0d967 commit a5d092d37eb5d25520d283985082e977bda68eb7 commit 516b33460c5bee78b2055637b0547bdb0e6af754 commit a0f25a6bb319aa05e04dcf51707c97c2881b4f47 commit a7b23fd90c804e79d1edb478b42935848bcd7e36 commit 66755b4871782cb95e3584c9e88b6ed6c52c9022 commit 10dcc8317f6063806ce1d34235af23da5e2fdd7a commit ccecfd013a39d8b8ea837e90f7f907e4ed5abe17 commit df8d1d0abd9439479ae1a0d8812ed57debe48a86 commit 94afe983b5aa56a841f208a6b455691a44eafc7e commit d5410d6974acd0aaea6742ecd8e3f7bdedbddf4b commit fdb5713c7d6f6d60bf23596eafb1ada154869ae9 commit 1439e3bea7b1201a9461ffbff2a9d59f3e65dc1e commit 8acd15a0c8c647ed4cb07c53c3ea4a8768c974ce commit ba4a28bb168aefa98ee422be8e04a0c964256f95 commit 5f825973b491a457c7233e808ecf64726abbeb86 commit 5e66e818e0358fe42704404580b70e1ffc7afb6a commit 9d6bf794084d9258dadf2754d911fcfeb13ea8fc commit 039cacd2393971fe11f855118eea6c83c8f506fa commit 1790b649b01ba7e44af7c08ffcfc0eaa9d4f5ac6 commit b6dca949b88ee69561fc4ed853ab7a2ae13d842f commit ac7c48c0cce00d03b3c95fddcccb0a45257e33e3 commit 367c9b0f1b8750a704070e7ae85234d591290434 commit 6225bb3a88d22594aacea2485dc28ca12d596721 commit a154bf6eda9881aa3dd74cea83dcff6de3ce9680 commit f4e2a66dae996b4fa2cc21b1904798ad1dc83049 commit 75513bf5d72cd1a81401866642f4a8052b2d4420 commit 7270e8957eb9aacf5914605d04865f3829a14bce commit fc6ea4bee130710a77ec16a86d2013e964602503 commit 9a17696049889550ce76a987562e679535943c96 commit 400013b268cb666a44c0827b136bfd4bb741b13d commit 498d46fe7aa7eda5807352d62af133a2f432b814 commit e63fa4dcea2f7afcbf8f2d013dfae23a61a273d8 commit bee7f8d09268dc80da0e841ca99d79f500d03b84 commit 7367540b26214ba5f7236e0f212fd60ec6d07c3f commit 4e13b063d2e510b54e3ffc2e975315d08d14c5af commit f06d9e4eec7320f5a560e49ed652e785c8ab5c45 commit 2f60dd50769efcd6eedd0dc6b3f419cdd1f1f1fa commit 3ed893396b0132fa5a4d3fe3f9ba358678c6dba3 commit e281d5940ae7f2ceff99d5e001a69b5f0884d2f0 commit 8cda7a4f96e435be2fd074009d69521d973d7d31 commit ded81d5b2b67e6e6fce0a1e8b73e4565a28dbfd8 commit 1ec5a44331af283b1cd3b0f0981cf65f0903ec8f commit c57f5ba2c8febe944ddebae53730667d5af179e5 commit c36846f3917962a1f7586a3d39a423e6679df3d7 commit 512712a824de9b856a4e61343e3e4390eba2c391 commit bc1922e5d349db4be14c55513102c024c2ae8a50 commit d29c9930279df7c10348772f812154d3c41562f5 commit c65b3affc6737c99c09925b910c7471d3db26b54 commit 5f721a5d1bb2e3ada83f04a119908b66d909300a commit 14683babf8ee356a232ee76b0acd332aef51fdc4 commit 7a05c5a0c883ed6353f82699dff8d789dae6b673 commit a594525c82e0b8d677a7e5fd13c7c115d41e9722 commit 270677026261ad8d1ea8ed60c3327d37aeb5f372 commit 46f47807738441e354873546dde0b000106c068a commit 9987151a90567785beebcbd5c8ac58d05f254137 commit ef6e871af3126850b429f68e8bd5b657042139f0 commit 063565aca3734de4e73639a0e460a58d9418b3cd commit 2af104290da5e4858e8caefa068827d7392c6a09 commit 8be576837b6e62b2ad0de2f9ba31cef618fa2891 commit 3d082157a24216ca084082ce421a37d14ecfcfad commit d80976d9ffd9d7f89a26134a299b236910477f3b commit f588a1bbfce781042196e68f8e200f08b3d9e8c4 commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc commit 751a9d69b19702af35b0fedfb8ff362027c1cf0c commit c50df701d49e78bea6410b4b111c7be71e2a7c2b commit 8023d3bef18bafe54708faca0c4206e1a36ca155 commit 6149cb68a5be127909ee39f4d40b8f5ba0d047cf commit cc954cfa6fe47579aa8eceaed00677feda0a95b6 commit be0c94ee215043c0a5cdbffc5c45b5073054e125 commit 5cd0664483c1be4a71bcf4ec643f5d3c782e0319 commit 0adc41de818c1a051c18732db57b9ee95b30898e commit a68819cc557cf0a37b7fce50d412abdb73bd69d8 commit 8de5df3b07efd1a04c549e59e0d72e2b3e2c517f commit a35eca01c372dc0f1a3ad663c6a93604c603a782 commit f0d4ce59f4d48622044933054a0e0cefa91ba15e commit c3e27f4307fed7b963d8e99c18dc51682b3431e7 commit 6d6c932daef5c5b3cd5e3692e79507d2a3306031 commit 1d06c820b2b7ceb38bdf0775fac495db4ad4d10e commit 23015f6f900b8b158f6811b85de1f96769be4dc7 commit 00dd7f953b9b1d85e97da8065cc2887a5477008f commit 2efb4adf489dd29526c412c4593d12e08076c68a commit 19d36cfafad0395d1b8a9db7a85d64282c42ae94 commit b5c84a9edcd418cd055becad6a22439e7c5e3bf8 commit 657b15d672f4d89cf0750793473b8963429f8ae3 commit 29b9702ffe70d83b9970abbccaeb287dfda4409f commit 363c4c3811db330dee9ce27dd3cee6f590d44e4c commit 2bf68bbdb6f5a445b26a0e8fe14af229ffcc7f9e commit 86df4141869350edaa53fb994b3db2c2cca5065d commit cd9f7f7ac5932129fe81b4c7559cfcb226ec7c5c commit 70c0b80d0bbb97c072c4a9c3e8b0f68a9e22d7d2 commit f0bb41fad02e0310fa7b222c7254a3603ecaca1b commit 72be4584ae7e23f64c292171cde6c8fd887aefa1 commit 3f1a31ff8e3f6654d2b03a34095ca1658e4cfd77 commit 2ef6d3bf426218440b156d392cf95e830990e0e4 commit 66a19a3a0e2d200121f30a48d13b80532582f1a5 commit 7d296f369d38e12b1f9c552d8635eb0caef71095 commit e71a74122863fd8acd23ab772ab4f7c3a378aa66 commit 0d6419e9c855dea476300e2bb81d29105fe76d38 commit ce2fce2513c5c1076f2a2d6e977c0ac523aad5e3 commit 22ba60f617bd1cfbfae72f73c93ef9507a305c59 commit 18b66ace6b3acb01b645d2fbbd571f66b2705c71 commit d2a197a45daacd4ab3221161405768a6d1d11086 commit d2895ec4ca6c67c5a9c8ce74bd5deba76ea77f6c commit 6a77bce58c6b29167bce2f548559c75326bbaf03 commit f89154b6525c7ca394ca68adc90e6a0d5b3872fa commit 1ca489fc60e2713a9acba4294c6fad66d85961b2 commit 90c44207cdd18091ac9aa7cab8a3e7b0ef00e847 commit a2170b4af62fd347c699ae3cd9ec0a8096466f9d commit 889f84798c5b975125f5f7de910ed222ca8b2677 commit 274b924c3ed18f7d46d237810dd59d3bc89cb4b4 commit 241a074fc1342b8f6a88af4b7bdc014692ebcde7 commit d389eafa3f50944ca272e0ec865143a9fb948e78 commit 219fa961e12497fe6beef478cc0de0da47b3a3e6 commit 88839870c3060a04a2e085ef1efccde4b0d1d440 commit 702f8dd8319fa6e3fe9d90115426202e6ee5d06e commit 9d8033d6beca43e9d8eb952adfa8bf08642a357f commit 2426d71c52876a5558b40af06143688b3978ddb2 commit e8702d0b97dc9fa825715fb28f116c199bbebc87 commit b9d3d50adbc79c3131ff3c5ac35bb9a57442f08f commit 8788e0668f4fd8815f82c982879252aebfa708db commit dfabe59797799bb500897ab4064f8a76aae4026a commit 2750caffa7a9ae82824d7ac3ab0fee65181c4126 commit fd24926676801dd68afa1f39647a858cf4f6ae50 commit 2412d339b30e66f86d9430aec26f5c6a44908b15 commit 05f8c2a87aa01d1000cf148213560117e39a48f6 commit bd682a788c1f4fbefe17b3ee9e0e3debdefeec6d commit dd4dabe4b3c2425878a49ae8d5817d5c5958c6db commit 33413ef964b8cdbb25a23aaf0b4aa8f0a330c4cf commit fcd6b0e270a9dd849981df34051ee6dcbdbb1c0d commit e0a4459d45425fabd5f020a2117d350c5a07477b commit 6927913d700749a4b9550f87f294778df2a7faa4 commit 22f7cc7524081bb2bfb2720e43ab9889e2ed5b00 commit 9308a49d8ee2f0f372fb7f18b8f4a97d9ec676c7 commit 4f860edecdafeb2e5fb29fecc6428090997936fe commit 5d64f9bbb6281a5a89a2266b9d39daa1fca1d6b4 commit 7e2ec174945fa98048b39baf2a87973eddca3241 commit 876f7a438e4247a948268ad77b67c494f709cc30 commit d30b9ae93bf57414160503d3cc62735adeb61557 commit 377c675f3c17ffaefd023ee283bb366bbd6bbcea commit d946bc44aa0bf03ff5c2888e8c3be8646e14467a commit dca384a3bf5af1c781cfa6aec63904bdb5018c36 commit 9277b75675113d64a74ec01a1219973f3720d9a7 commit eea89dff4c39a106f98d1cb5e4d626f8c63908b9 commit a3574119826d9a4ef807fb973cf5150c3b90da43 commit cf1c7fee7ef37cfc09b5e704eb52d9466ca49012 commit eef173954432fe0612acb63421a95deb41155cdc commit b3dcc6dc0f32612d04839c2fb32e94d0ebf92c98 commit 15512021eb3975a8c2366e3883337e252bb0eee5 commit ccbeca4ca04302d129602093c8d611065e3f7958 commit 542898c5aa5c6a3179dffb1d1606884a63f75fed commit 722b717d8e2759d943dc1f55a2f6fe19c55080aa commit 972aa1a161d8eb61bc588c31bf568bd69c7c231b commit 7994369fd3e758ea1fde269ff7c3984a8ab52b59 commit b8c75bd9746e3f1bdb5a1b6288b50dc2fdfec0ef commit 2d022081b333a7f15ba27607696d4a41a7a2b5f9 commit e56694f718f0f6694c18d7595e61533a2663335e commit afa37315917bbc9e71a4359f921eb887470c008c commit 3698807094ecae945436921325f5c309d1123f11 commit f185381b64814bb483416e4dd83d85891018a7c5 commit 5ccbb057c0a1282b39192a346f963fa989ddbc92 commit 73fa13b6a5112b59d09e58b8075973769a15814c commit 011bbb03024f5a22dc04eba370f9296f0cb83502 commit cd9f79103003599e58f9f394c07cb4045883a51e commit 626f7b3190b4c07917f0262162cb7fef7272c34d commit 8668dfc30d3eee695233ce83944abaf5546a5017 commit 2485c12c980a36bb9e23ababb07d73c4ac6a45af commit 5bb6a8fa75fcfda93592bee0a4910420ceab15f3 commit 42c6c48214b726c30918e8dc80e2168607d13ae4 commit 3a9822d7bd623be9000cef8101ecf8479fa53f2c commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 commit bef153b70c6e3594b849d44a23f806328b9c68d4 commit be072b06c7397004e6464b4225e13c31ed0b9ca3 commit 4717fe3d8dec42bc951a44f41efc95d635d26325 commit d1289b41ec4db347794abfed7525e33dd2d9503b commit d763d8030f440441177d9638ffb0be39cba32a03 commit 08a987a8a02b073c620b5f3f363714ccd98c0bc0 commit 9d5dabfeff3ca63925cfc9c427f2d1fe8929402b commit c2db32ce77adf82dd2a4193abc709ec51474f84e commit 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba commit 692996f2bef7aa1737e07554255ba0d9a73fb750 commit 3f1e2e9d9993a3b1e33661fee26566f091e01b2b commit 3f3a24a0a3a58677d2b4f3c442d7a1be05afb123 commit 00b14ce075732edb2935d738de990e9aa96f1e08 commit 447c7997b62a5115ba4da846dcdee4fc12298a6a commit 00d6936dbd5486bd5c0a07870d5747eed6f799ec commit d5e8ff5f7b2a41d503914d4896ed3c6b3befe933 commit a50b048276c4e1bc6f7e869c99b6bdc91b4e237f commit 4e781873fa1359c9a85559b6da6548ac5b07ceb5 commit 29ba7b16b907a1f915aab8b83ef901e209146938 commit de95753cce66582b0c710dc31592cf15d317118b commit bd42571168ed54d309480856fadea3eb99821253 commit 5af779adc3ab0245b94187a3fad6d10f60013c1b commit 2d282665d2613fc7be9dde557811a7783ac01735 commit 7ade3ca9cdb547eac2cdb661c91a481235e21ae8 commit 3c6591e947f5c23c13dec67da3dbff12ccd6e209 commit a89ef0448c9b59c524499663eeb92a43c8bc67fd commit f69c15e15e74fb0250049c5532d8322c75f423ad commit a423746305d41c1e2767b832742cb572ab173af3 commit 6d33f0e820bfbc4f0b9b2f23d0d30df4bd6c3001 commit 3084488a49d6d58005d6ac1b5457b3f13bad1ed3 commit 77a35bb579827216d911ece7a6b909e4ac8e1626 commit b65007590911ad558999073dbffa413cf4861df3 commit ca7f9d0aba9940f4d3e759f44c414c3707a94b21 commit 98ea24e6c563241814abcb1d22ec207a7ec2fd9b commit 559e2655220d56f939a9fbc6212992345025392c commit 39da460fd4c0f8e7290dcc9cbfc9375de9d0eeca commit e8dd130bfdc627d935d4eda4654059a24864a493 commit ed3a56f9c638a4ee42031eac748664c834fe245d commit 66d58bf73ba17ac45fca79f2e5e26870cc224ee3 commit d7d7ddc15672940be0dbbe03e016c5bb617256b8 commit b6fba4ecf3554c515aa5354c54dfdf70d7526ff1 commit 6cbdf12b87356827d35975dfb3030d116782737c commit f54b6bdf4248b1e26ff66932231e1d6a2f16adc0 commit 3786a9bc0455ca58d953319f62daf96b6eb95490 commit bcfab8e35ce81e2fd3230c1575024bfde0d28c8b commit 120cc6e67a5e34069693cf1711ea222b8c414685 commit 68550cbc6129159b7a6434796b721e8b66ee12f6 commit 4a5dc6c73dbec54648fe01af2f1818dc3ae90d5d commit 7938f4218168ae9fc4bdddb15976f9ebbae41999 commit 976b6d97c62347df3e686f60a5f455bb8ed6ea23 commit 0fd9803b985e5d94e2b9f1848a12756b7848b62d commit 270b48bb8da7452b4357d8726933beba72652310 commit 68129f431faab376c1dd1c701f2fb999eea53383 commit 18f5fad275efef015226ee4f90eae34d8f44aa5e commit e09b9aef6807474d6964a2513321e174f5162e8e commit 9285f09e8f96496604cf0755a3d7e91478120609 commit 6abbad2c00bd26531c203f29190d14ad9eebfc0e commit 042ddf6663a86be98b306e6cc9e7048ea4c835c0 commit 84d826c8fb84a57716b44b721591a0fffe4ea1ca commit b20384d9196788dfed70aa7cfb2b3dc458217918 commit a59b026419f33040d7d28b8e3b1cea681b9ce7a7 commit f665147cda30928ce79045a13953eb709fa3dcbc commit 3ab26eddc67a67579a2b52f908b69cbc253f5ff3 commit 5e78d59a1ead969669f64dde4245cfa65b7cc4a9 commit a28fde308c3c1c174249ff9559b57f24e6850086 commit 053f2b85631316a9226f6340c1c0fd95634f7a5b commit 2a3950c43e2ead47ed7456b04da5d4afde58c4b2 commit 6b0076540faffd47f5a899bf12f3528c4f0e726b commit b21a142fd2055d8276169efcc95b624ff908a341 commit f4044ca1967098b44bd2d569ddb99352b599551e commit bf8900406e9e5c928ba578c8fd932b4bc72556be commit 2ecf64a0d26699f5f7458e87bfc873a47a2945bf commit 6e007c3bc97024853e3397cbbf37377fe8cf2b5b commit 7e97596c743c978e81ac67a59940071aa292b2a9 commit 91cb1e11786c4d5cfd8bf32e891232fa42b03cc6 commit 11a1d09c974fd58b8de0474081d6e97bebf4b619 commit a3de31d55b2a9fb672007aaf2b070cf90ac7dac6 commit edbb9242478d3aed8b4d3cb197032e9ded26b3e7 commit a0386bba70934d42f586eaf68b21d5eeaffa7bd0 commit a4c63cafa58b4bd9e15511bab77a4752b93d3aa0 commit 5fd8518d187ed03403a4d4f7f56f52c00b11c148 commit 54f329cc7a7a7ea265c45b206d45e3d09192aba7 commit 02599bc7f7047f2b316ab499f41d72ca14e3b3d3 commit 681260df4dad45337b14ba762f94b402204e9ac3 commit f287a3c5b03f51efa8d8f3e141a79177f91047e0 commit cfbb6b0047448e2d986160d9f30d60f604d9ad0f commit d0fb18b535679a28b1f55a312b7454563b9bb36e commit 89a7a87093d67e2c633e1ed400ba00ffd15bdae5 commit e923be9934a9c54a94e443f9e77bda5b9fbd1ce5 commit 3675c2f26f33ab4928859fb8950a4697a16be5c9 commit 03e5b167bd2020053f3d10b61a361de8b17c5936 commit b1c87b0874a4a2045dc78a8d3d3a77ef61536711 commit 803ec96319eec2897d3828e87bd38180295d0dcc commit efbb7c98f5fa5a547c4bc0369f825c930aed8918 commit 2feb6b0f06b1221b2841ca61b721b1d608bafa79 commit f3b603de2ff41eb915d75163f7212bbf177950d1 commit 28f5f8884e7cb9cff5375db487a8ca7cd3fd599f commit 98476876b837069e4582565fee63e70810c880b2 commit 40f1dc5223ae9b98458124bbeabbabc74c2bccf6 commit de7fbd020d959708282ac0916be3e5498086d9aa commit 6c1a7867734bc6f54e8442f47790c90d3afa07a2 commit 5bdd3eb253544b1e80f904e1205699d0a126d2d6 commit a439b890dbd17457f071e41777aa1d17916258d6 commit 1cbbc8d4f788af4c260ef3cae05902ef7b191197 commit db7b81545f5abdfd1f13b7f0a3f995994701cf92 commit 3b99e8e37d0ffaa0ef95598b9b83c49c89bc0ea2 commit 63b5fa9dbb711e245e59cc14eaae0106eb716447 commit df62ae6fc9b49a9a401afa2efd3f36c0f82ad663 commit f5666d482305900b9622a2c9dd73a864a3b0d281 commit 24524e3f43cf77dfdff7187f76d967b3175f68bf commit ba2c5d15022a565da187d90e2fe44768e33e5034 commit a3c286dcef7f8bc576a20f5d1e80624f6b4b93ee commit aa15c677cc34e626789cb65b8e7375180851c03b commit 67b723f5b74254d27962b1b59bddfee1584575ff commit fe23b56f56532dcc5e49e83e20333b97919dec53 commit ded74cafeea9311c1eaf6fccce963de2516145f7 commit 1528038385c0a706aac9ac165eeb24044fef6825 commit e7a09cea6483b44ea0c82f07145fcbd8a918bf96 commit 24a644ebbfd3b13cda702f98907f9dd123e34bf9 commit 73144c0ce4e9d69c8d0de4078b6bcdbc55f79db8 commit 66b09ddd8b323547e24871ec05fc63c44a557877 commit 69898171829d6fb92e366a989f2f14d8b5b15e21 commit a391e06958b2fe3f53171ba04f60dadf17b09d5b commit f7bc440bc79ae5dcf648b90209910ea8dba6ef0c commit 0f4b58423f3500ee3e3159fbbd6c41a6e6f920d4 commit 0192c25c03cd2feaeaadae375fe6aadff788939a commit 427153ef63a82a4d51c6046e2457787127f4d6d7 commit 92e438619d1603995ecb9f1fb2c322cc304b759d commit a421d8a99216d46926609611cdcf260fdf900645 commit 3ee7fab0f3d2c1f9c2bfe6d4fb8c58106a52e840 commit 420f63cb6d2a691b94662f50e07dc3c9a851bc69 commit 721255b52700b320c4ae2e23d57f7d9ad1db50b9 commit b508d01fa577e21a8f574dec09a16e5f2f6c7d3d commit f3392b85130fdc9e17bf6abe362d5e9e4bc9b8b1 commit 985a0256df3290d318bf937db7ef0633f7654490 commit 88d23eda3c7f8bb560ae93b00d03688ff7920cdd commit 165bbfba34cb4c8f31d1e643abd2d5cb6eba1b90 commit 2528b396d5304a711d28f08047a8fe60daebc3ae commit 154cfae6158141b18d65abb0db679bb51a8294e7 commit c8eb426d47abfffb0713dfba8d25d99ff091f3ab commit be137d791b5067fd5f290a593336f93019ed25c4 commit d21b3be8e14445fbd06109b4831c4fa8f9adad2d commit 8a84e7a176c0a02a97f64ace508c1f2546c30bf6 commit 759d4fff3d2d70d6b689a9f1f7eb4488df337fbd commit 63b81e6063200d01592cc2cf9b3a87dbade2e149 commit 04d4e167522fa9b60c83e04c4a74041b36b2327f commit cad3fab413efbfdb1c64a08808aa3a59fa288457 commit 5d488786a3a18d48bcbd1d215ba9dc6811b7d639 commit 0c63fd3d962525d3eb1001ebc31537206f66720e commit 1a7a8d93db9b8c7ee9cba983fc6aa8576da237ea commit 6148f3653bba417488e0d289bbe60c6fc7c4e711 commit 2b1466ea19182551ceffcd6deed2b22377cb2a53 commit aeb47df35742376f2fa13ee39039f1873daee626 commit 02cae05ec4b6d6f1a1a07c98a34e69ebc1b8f7d7 commit c7703ce38c1ecdeeea6791b54fbee29a08816ea9 commit cc188a73addc8188d73ad11901b697acdc7fd0b0 commit e5af61ffaaef0e952e248de895454cd339080035 commit 5aa71bd773c390891974b1bcbdb3b12aa17c781d commit 574ff46f10102f65c40d24729197033a80458238 commit fd22013a098baca78679656d55f8fd0becb99a8d commit d8a25e48585773afc573e835a52f9cbf409215bc commit f9ed188d5a08cfacb945b21976764f57c0ea9ebd commit 69f915cc97c4bb82b34105a47abf613f7c87215d commit b06b48d7ddae440f3393e5c1ddda4d2537b3a7cc commit c8cb19c7b26d78434ec563088d5d377ec2caf616 commit 60aac460ed97852f620529f43fd58dd05e41644b commit 816d61d51a31bd16d0fec75526462dc987f09114 commit 8bbd4d83a68beaf54ae01b2e2aa2024ff1dfc0ba commit 461fa7b0ac565ef25c1da0ced31005dd437883a7 commit f3986e86b2d861a2ed2d336bafe53b5c404cb995 commit 1915a433954262ac7466469d1a4684ac54218af4 commit b010a46bd3abb161409afe147a73fe58c115858d commit 24992ab0b8b0d2521caa9c3dcbed0e2a56cbe3d0 commit 7f161df1a513e2961f4e3c96a8355c8ce93ad175 commit 123db17ddff007080d464e785689fb14f94cbc7a commit b9c7babe2c2e37a50aa42401b38d597ea78f506e commit d315bdbfebd517cf5efabf666c8099e027ef666f commit c6fc836488c2ca45c06d21213f5281d668b42b95 commit 9a8e720fd064193ef5112dcb221192fd4d0f7809 commit 74fc595465a0f8e54a71a9b2fc8552a1ccaaf5e2 commit d83d5298ba188a829558ebcc395469e39ffdc2b3 commit f9bf77df111a16d00cffc4ed6b7e374956290dc1 commit 5472b3f2d9ae65d809d0443dd8f5cc7e1b20b1af commit 5f2ec9095ce8439614ac289819a44e02f52a5415 commit 82508de228bafb2ea8f048f7bf11bb5547354d62 commit 01b94a9361680d6582dcc2a73a9eb464e0e40888 commit 14da21cc4671dbedfbe3854e495f24adac7866c7 commit 4feb2e9eb95f785ea39d5a7e69b845354c2691b3 commit 548b512e144f890a7ba4aad71985cf4a81611f5b commit 57bfb34a51c7c655335010b3168c1061b5eba354 commit adca62ec370c131ca676ea4fb2e4e450f999fb9e commit 90d4aa20c8cc76f5baecd423b5dc289b899ebc42 commit 0e05fc49c358cb49e59ce8d6ecda652951335e1e commit cecece2ca505dcd47359ae21e3b37ca1f57c08e4 commit 8668658aebb0a19d877d5a81c004baf716c4aaa6 commit 73792e6e66be1225837cc1a40f1e39b1d077751c commit dfa714b88eb0a9d763eba9e5720b089a58dc9496 commit 3fc2b087df2ce87dc11abe4a5e7a02b75b5bb82e commit 7db47b838896ec2bb57e3d0b329804b84f32626c commit d5c6f647aec9ed524aedd04a3aec5ebc21d39007 commit 77608faa77196cb0f7af3fd0e3e26051f3de1db9 commit a6c40b178092f41b9d6cc8615697c14b1e5a1c3a commit d87f36a0635edc58430e322f9e04fdf9aae6641f commit 2243f4937ace91437fb39f9b67d309c3d0d7aed4 commit 71579346991927687c76ff76084bcb1f9da410a2 commit 22b1df28c009aaf78e77b20a9cc8d8bf98e698c8 commit bdb3489cfca16815e9a737359e9e90a4af5d0ff3 commit 311065086ee15b4d5d544fba44b66349fa7cd246 commit 634b56b0f88bda4a20f88af2f3d8bb212ed53027 commit 88bc3cd8450b73ad37c9de4b48c315e6c8002f03 commit cb9561d0e3f4393a31fab2034c33c6cf2162513a commit 80ed77f971c3911d6a6f7c537540b4ee62859455 commit 683bac6b00e1158bf3c56dfd9f55ea34acebcf90 commit a3ace75cdb6979e18ec9ad00862445ff71bb8a71 commit 892a57a975c3bd51834ddb0afa5f27baa19a785b commit 9252d33df597a60416f3718b9b41457657c8540c commit 563285c85ecaa1fcecf304dabf87cbeee1ddbc3f commit 2fbdbe958a15e735a24ce33751671e9bf221e70d commit 1ec1944eb50c8de2d96de1188eec9f8b22d03366 commit 7258fa31eabd882f6c8ed4d6d281f6657a33ef94 commit d2cb0b21b8f809ae04a5c30468d3ccff2b23eec6 commit 009e9a1585059ed517b8e02d0afe11128af5ddca commit 3b853c316c9321e195414a6fb121d1c2d45b1e87 commit b60668cb4c57a7cc451de781ae49f5e9cc375eaf commit df529053590d59ca3e06d5b3232586987b61525e commit f461ea5d8dc425325f4c478dfcddc4de8e24fea2 commit 7e2aa820ac24f9d5c1fc39ef5a2ba7baf3384596 commit 208f6265d519643f380c504ee1c1ef925f2c7d5f commit a6e7a006f5d551ee0827059300148e1c9cf4f9a3 commit a32ba6bdca21fd82cacfca2aa4708cbfdac6bc49 commit e283820cbf8092c87a8d6461260d5bc525da72c9 commit 2509969a9862b522d2208e8663057fb227556687 commit 6ed19359d6bd62e993b09a7a565d7a5ce5e114c3 commit b3d9f59f69289569133730e1be019adcd9e06611 commit 4a564e59bfb7732ec168f66ee77bf1eb81ff9319 commit bcf8b616deb8794179e3e9c6233a53f42664afb2 commit a61732e808672cfa8c8c6028bcf9feacb953ef40 commit d12dd1db809a3f298b4ef6cc02ca64fe3038391d commit c17897428e1d25975da5d45d40f53bfb19d8fdcc commit 3358e2ca0ebd6454307bfb8affab35d26cedb9db commit f12dc0d8431e1fa36a3496f6a0a34edba1fea2f9 commit be78311eaa92f71d2f4c0861defaf185d799e19c commit a19c1d00b0d350fb7b75c6c4da91887f66114a7d commit 4895b90dd510b217852b3d118910f57f3f333b2e commit a874aba8bbc529517ed154d88b08e3c437564c88 commit 93cc7aa0b037f34d9a55c58fb4ab6bbd802fa47c commit ab9e00a3509ab7868cc3d4641f45ff926467b38c commit 680a5cd10b9cf4922e182f768d3a534b1a4427dd commit bd3de31950aecc29abc6e554e3b3f6883080c5be commit 0d53879faada6278209883a9eebf39b9e3a8ba10 commit 573ca6fb97c617eef263b15d982dac2f85fd2854 commit e30e6c7b82a18256a1e4ca2f067ce2b05bbc8871 commit 5f1d00420f46774fea45244effc6dbcd53cb6bdf commit 783782a52340e850840c11d823b649e6ba83a700 commit eed1a5c74216907f79f7b1af725e570e95bab0ea commit 92ede25eceb251ec31e1599065b98d681a419046 commit b874c6671b911ffab69f70b298d074a1897b8aff commit e610941c45bad75aa839af015c27d236ab6749e5 commit 7e2a4cfc62d35a7c567e7d85b0af2651cc6b05c2 commit c85bf88ba5100249451151fb1b76d2ed9e40b634 commit e506db5905d18b014aead347e37b7311858e2750 commit 951be8be7d66fc7c69fc2e2f42664bdbedb48c32 commit ed7208706448953c6f15009cf139135776c15713 commit c5365554514178840400b801787bedb567811064 commit 8639bd70497ac96a83ff26b8118afcdc45f1cfaf commit 4d7ba312dd1f94cce23f1f93f33bdf92db090688 commit d9f2303004581f767f3f4acfa3faba205c9991d9 commit 128f8ed5902a287a6bb4afe0ffdae8a80b2a64ec commit c25badd59cb4978bb702e52ee4c5b5ed1cd03910 commit 43d15db1d067e4cdceb0aebd10b9210b97899789 commit fa39f936dbb96626d3345fd8d66af6be6f47ff9e commit aa79d3808e8cf1f5fd0f1c20c2e6a6865b5b940c commit 17ce8a6907f77b7ac97ddaa071d8a1f6e06ce85b commit d5c831566d34924f62082f8b675d35c078f9b45c commit 29b440d20456033091a0376cecdc23c6875d51c3 commit fdda8f3406f98fd087784f9516b3825bb4b5f6ad commit dfcc3e8c24cc1fcdf9e14ef98803e295b5e4f721 commit 01cbf049e10f2cc4cda5570ca8ad3d0334cebae1 commit d9f8a22aaf84be5640e0fd8e2adf0ace61ee3703 commit 2019bf7cd2135bf4633dcde8357c63fdf1ae87d7 commit 2fbc5086975679a5c2ba1bac3ecc5942cf7726c5 commit b67f00e06f36192da513ac80148b000fbc5b2717 commit 35c27d9578356762e7421f16d61b91ab46dfabee commit 97437f475c5be7804592bc258e3936aa318895a8 commit f99a7eb2d11b00a20c9fd6e724c60151b74b6ce9 commit db090ff8f98d8314fab0442a16e7b1e6a33e16be commit 967af863f23344aed4353ddbcaa8d6d6727b34fa commit 79aa0367385ceaf5351ea77ea1fb66136739ea9d commit a65dbf7cded724a5ed4a5e1a718616b048ca0c34 commit a4c260de9b6bb3c54a509d24baf871c497bca7ca commit baf682144ecacae4b98597daa636ce7b2b3143f6 commit c1c04560ac038da28694a04d71958ced32964647 commit d8b746eafc2ccedfc0d6008df7fbcd96e149ae82 commit f2ed8ef31366467930c98494535a044e33a1b3d4 commit 5224f79096170bf7b92cc8fe42a12f44b91e5f62 commit dd4821baa8b6f0abceac43840673b4556bf73175 commit 2bb116c7fd1fcd80c7727be44876070d1b3ce923 commit 64b14a184e83eb62ea0615e31a409956049d40e7 commit f3f6eff85f94e742ed9f34330993cdf91f83d579 commit de7cc1b48fde1abf13324e800cecc0aad5078ade commit 868f4357ed0d1e2f96bbd67d4ac862aa6335effe commit c477eaa6a79da6af7e59f74e69af7d6b3af52a23 commit f83e14011e042adc196f1dac7cb235c70798c231 commit 4e9b1fa5a2757d11a5c40eed2b2b4837dcb2f12e commit 72b3588e27feef96be6993d493c8c76a13bf8eba commit 068001b711e820184553e90f9bf2ae18fb4c2c06 commit 20c43547add3a60c553c90b730e6cbd39c4d5c16 commit caae42f00924498e78da8a960561936aa7eba503 commit 867e24ca4945249baf34ea07ae6b27ca927210a1 commit 418abce203fc2e936bf8c7632a9a429e861f6283 commit cba07cce39ace4c719e63b0410a53480aee6aaee commit f0d540989597d04905253b54d4d0ee53cfe70a42 commit 0ab5d711ec74d9e60673900974806b7688857947 commit d01899d3db2a553268dd4bc03641d9e80e41d67a commit 8f74f68d907d2a41be211e61aaa7c9268f5532e1 commit 6b5033831febbe1c009b6713338cc9e417b45ceb commit 779596ce6a79e187995f04f143fc5ea44a565ea9 commit 91aa9c8f5282922b2890227724467de2f32fbf84 commit 1957f27de290cde5a0d6e1df46a2c8b3e9c77046 commit 50e14a62ac3a56c62c5676bbb8b39245212e0567 commit a142606d5433c9bfc68c0f40ba32c2e05ad75d09 commit 874bfdfa4735cbb1b0d6e0c6157c712a312371a1 commit b63c54d978236dd6014cf2ffba96d626e97c915c commit edf176f48d87fa25ca93f09362707cf5314bf7ee commit 84073e568eec7b586b2f6fd5fb2fb08f59edec54 commit b71a4a2542e1b092b4f11ce6318eaf82619312e4 commit 9b43698af7c36361c340b95c9601c54523da4f2a commit 7f088bef6b0cd976b5d39eee5a4046ddc920ff29 commit 77f4ec2a4111f1dce0c5903d6db7887413a0a750 commit ed0ccf349ffd9c80e7376d4d8c608643de990e86 commit b70ad01a22176b6d903e9cb2f2184c2aa67ecee0 commit ab597bb3760ce2e7a5c48755cacf7df8abfcda6b commit 79af2404e537e0f74798faa0a26bbd374ece27f8 commit f470b218b0bb7c9bae8aa2b4859d9a6bf97d98d1 commit 61b3b2da10dba0ac1633c699c9d305c702b43720 commit c94d13e9d99bc0432cbcc2371060acf5e10cd7ca commit 48bb92d91ae9331138656f369e66b5cab8f0fa7e commit 89bfcd82b3452b6e47ddd9d573add43dd7de54be commit 93afe1583758105ec390ed130681bc7b70371b7b commit afc2f276057ea1eb165c4249d15cfbc1954411f0 commit 87b5e77f02da9444c630b1860b9f384e805eeba7 commit 935ad3a74c7d231b82e7fca15899a5cab4195b95 commit ec3ca078850a3310c9a393866418c85b7e6d40f8 commit d7fd297cb0f19a87c1eab63fdb90f8ce8f03a533 commit e8c487a6b70f060cfeabf3e155c9daafd627617b commit cec24112e125a228d5077eb05ca793398de619e3 commit 068ea8bdc0aacb3bba3d1392ed41cc1116a671b8 commit 62640f251f4777cbed654e59827fccd3b4c94bce commit 5b723b12301272ed3c6c99c4ad8b43a520f880ea commit 574dce2d2414f7d782536fbbef7d20d1cf027e69 commit f9490399614050a47472ff127c67830cb4e311f4 commit b9d7eb6a31be296ca0af95641a23c4c758703c0a commit 92d0c2ebe564f492ea71bf2ca81de5d95d58d6de commit 5559c7ba93fa6adcfe6a39ed80081466d8165e5d commit 9cc57625a6f374174f716f87af3bb5df87118ca8 commit f9806a172070c2d6094b0a9e488c8c172a6f35ab commit 0b208d60adffb6b3dde41841ee423fb5be0d01e4 commit 501867d0d2a6bee3ec18a6471ad99a7a1af47e08 commit b5b8ed444a7fcbf5229f0469f85c752b5192a9b1 commit 181ebed7dcfce21dc152c3b473e3d44e7e94bf27 commit 8dd8ffb824ca7b897ce9f2082ffa7e64831c22dc commit 6b728595ffa51c087343c716bccbfc260f120e72 commit f257879182867979e64ea8940cccd52e9a01759f commit 1d82ef6552b5b3e8450c49fda90a82621fdb8142 commit d1af7b6f91a56081165bf1c1220bf1e0d9699d29 commit 9b693453a4eba392bbb62169243f9513366a253e commit 2f8a6699c90df7616e5dd03cc0c6ea22d589eba2 commit 8c26491f58538ffc647b813070ba493e35a48984 commit cccd73d607fee52f35b4b030408fa5f6c21ef503 commit e62f25e8b3cdd29224c27938addba817aedd4b54 commit 132aaaf01788d5603a1358cd53a95e5367fd612b commit 87bd701ee268a13babdfddea53894a416209123b commit 5189e3126eb136a2cffacc708f08ca4fe86ebcf4 commit a413c99fc1e49db4db27f4bf0f7791011b4e2132 commit 2cff4b9ed6171c61cc50c38b25534f7c3d30db3c commit 6f84aa1cd47cc0feb38da76999626051491316d7 commit 00e27ad85bc9842e2a775765597e6fe4b6beb584 commit caa574ffc4aaf4f29b890223878c63e2e7772f62 commit 5e3094cfd9fb313be3b8fbf9f91e92a30483bc28 commit 4b31b8e34460af9b2eff0d389a6caefcb694a1bc commit 994ea402c767e54af60f1d01f0c16520480466ed commit e78089da45093e0f421b933849c56b7bc21108c0 commit de45f0a3bef63a754839f008bb0cae86d8f501c1 commit 8f0991cccec93665dd6ecd88dbefd7db2b28c85e commit 72935696f516e3d587838a9f0e1f82d251925840 commit 2b72a38c6f9b9809cb09df4fa5aa886aab6bf05a commit 3c0deb1485c49fb282010d1add65514906ed8928 commit 602e604a899a0d06afcd69c693f15c5fd91742d8 commit 55223c3bedcffcb81400db7f1ed1f207d523eaba commit afea229fe10282da14595870b44f82792451dfb2 commit 476e4063022787b5720758239ee4c22fa2495e82 commit 95ee2a8b4b3cd1fb25f7e14e2202da4045030173 commit 64b2a6a054c40c04a4e48fd70002570654381f9c commit 9648f1c3739505557d94ff749a4f32192ea81fe3 commit 0591ee6a5c428c2309f5fefcdbe40d9eb669634a commit 757f9e4dd51644729d27c9b5e56f75681e8f17d0 commit 22804e03f7a5ed35d86721d037bbf52fbfd0369f commit d4a7eac27ec2e6b5fdb64066e967fc7767cd4574 commit 7342bf6530a78ae80b27d9a13bb10a409fdc20ad commit f141e251474d673f75e8c16dbdabeb4da3939d7e commit e1dd4bbf86d5e1e6ca2eedf9ef9ac680dbdb3132 commit cec2cc7b1c4a31c0facfdd0ee7c2ffb7d6a76556 commit 9dff13f9edf755a15f6507874185a3290c1ae8bb commit 091cd9c3abeb68981552557676985eec761d6fe5 commit 9bc34b4d0f3cb368241684cc5e0445d435dded44 commit 02ed904261481460e6084769416e7ca31bbb92eb commit 390a1f8beb879359359ef38d30a0b0ccf392148e commit 8ab62eda177bc350f34fea4fcea23603b8184bfd commit 3d515ba9ead046a0c06a461697a8d5211298aadc commit cb8f00f27ae7a1e8d047f1e2c96acc257f09d51b commit 92937f170d3f49f41d7acb86243ee691a98eb2be commit 4010ce9fb634c6368ebb9dead9ef83d49c4dde96 commit fe93feb5ab0f6eb1a08295dee51b814bf7227799 commit e6ff5ef81170e11dc0f196b0391f708f04fa8c87 commit f915686bd97a9c234602426e6d132b74a112a8d6 commit 94eb6b244c7cb0fd955f712d38a8ad9bfc7740a3 commit 03a62c40544c057a4b0df86b7c4f17da7f7bb2ac commit 7d7007686b0f999f90690d27eb013aba2eb8dc30 commit d95c25668f2379c807e1fa6328954f494c4e2454 commit d5b8da37c017b182e121e6143979bb969833f482 commit 6d8ebef53c2ccea482ed77769b7b5cbb453b7715 commit 94fa115f7b28a3f02611499175e134f0a823b686 commit b9ef89392c2ac694a3e5624cde8f848fbf393818 commit bbd57d16d5ddeb9d8995a6ded81a6879be6af928 commit e460f244fbe847904abd767e4ae093bad699f218 commit b887d5f9b9232b556fa324e77edb92039e626f66 commit f113cc32e35b5503b268f0bd891fa2b7d6d12137 commit 8f7519b2f3a93f6eae76912be66188366cc47aed commit a0c5fd46b2510cb054bd4e1fa6c2f207424c97e5 commit e7c4723103dc58c3d86fc7bc4e03c2ab500ef8b5 commit 0b1a63487b0fe45750528f89ea688eda2862dfa6 commit b784f42cf78b08932b837b5aa15d620520cd4d95 commit fd546bc5ad909f7ee67f90d91d4882f0fabc7edd commit a7f520bfd0551f9fd672b45b9b3cc56ab4275128 commit 5a82b018230b3947a736f45afa95cab434455248 commit 4683af148fe8f94383ed867ac986fe793381e362 commit d41ff22a4eefe2b933a82c0d3ce8ff47fa86e212 commit 78be946dad6d9f888726fbbb5de81b521f156c01 commit 23da6e0f7d5ebdba2b18ffcc228130a33d5411cc commit cf51c8bc5c0085e77ed956306ec7adbdb7bf5ab0 commit 3679b8518cd213c25d555553ef212e233faf698c commit 3a4bfa509eb0f73daa2e30e409ed907f2a7db82b commit f3067604b8de052c6a1c65eed3305cb6f3f9eb18 commit 2bdcb12ff69df5e42eeebb297ddfc110ee8af203 commit f11d9373b61598f6a231dbcc74829c2f11dd567b commit e0adbe73d75e46e3665cf0fb30f2cfc00dd78c04 commit 2e6e14c9e47dac61e341d4b8128184e3e0eb3568 commit 3e6084aee08b108f5cc489be46c68ba56b13e52e commit 10a9accd4842e6098cc27d79d43d7542254003bc commit 9ff28ab43af4cd9f1771779b502cac1bd0aa4264 commit dfd9be42344d9d3c1ff23778923210301ec5f372 commit c595fb05e392a5cd17c70c4fd996b8cc9735f20e commit aa34ca52a325d9a547158cdc8644f4c21d68562a commit 301306a90ed3b2311f7f2eee6fad239d3a65fac6 commit 5ac34ff1a41b05c3b22f8b4ce4bf7181246c8bc2 commit 0c41b9b561dbd81dd3955c4c8b59d55244a80100 commit 29c9b6cd581de79ef848a50d1c9f06cf567bfd78 commit 504390602444a209a52bfdcc59f539e9832079e3 commit a1235a01e0b208d424c5e72ff2e794dd356f74e4 commit 9e148e8ce29dba471d4812c6a60a3e843f3b6270 commit db749b769ff61a42480c377c30df70b8b722041e commit b74e2476efc40b1a4d895befc31fa05bced5f3b8 commit 5ce5a584cb826f1c1f0625a336134feb4e1142cd commit 15fd09a05a66216a9ad772728e51290f6dea1eb0 commit e2573d5f2a5cebe789bbf415e484b589d8eebad7 commit 5b45b1c8b89f84d01fea8939b672631b51cdf95b commit b51178d6edddbfc8cb4da5b5e9c924f2d24bbcac commit 203bcac9bf2c5676bfb0b33c7f2403ea5d6ed332 commit e776a755abf0dbe14001e4db22aa1ee70290c1dc commit 30424ebae8df0f786835e7a31ad790fa00764f35 commit 24c6bedefbe71de94455032f82cdff2694c002b3 commit 7f44571b53fd07e36ae4d2537a6fb40d79b39462 commit 54f43c17d681f6d9523fcfaeefc9df77993802e1 commit d814833f9e0e1fec2286e7d65c386583139c6a74 commit 4f0f1b58fbacc3d4f60e0cf17b01a6273df1d415 commit 45f0ff404cc92cc97569333314b47e1654a0491a commit 0bb319e7a1146e15f1919cfbffe44831c29e8f82 commit 158a05a0b885f456a86720b9b6b4571943d2e307 commit 2656fd230d21ab765eaea24f6b264a744919f13a commit ce075e75e5e3b1274735118f0a417e79d68f426a commit 8054e2f01c2cd287a3872baa02e30ea836ec8070 commit b3e8239882d9f5870bcd78baa342b0cc42c1fbb3 commit b83e1ba9395dd39f6336358dd0cbc8ca6ced21e7 commit f728eb3a5028aa87ec85f0de5c03daee78fdc544 commit d4da1f27396fb1dde079447a3612f4f512caed07 commit a2151490cc6c57b368d7974ffd447a8b36ade639 commit 0904b83e0cbb3dc1b8d5c0b1a5daeca725600eee commit 11ef5c77abc29d78ccedc26d01deb0bf0b2130f4 commit ab011ab6b007378132b242e6a70813aab3afc2c8 commit b8986c889e7ac26c57cb548f8f344456fa925a2f commit db927686e43ffebfc5d1693c1cb4fd74f462d99b commit 8fbf28934acfdac08073a2d5697c7cacae8d3997 commit 80253168dbfd256bca97cf7f13312863c5a7f2e5 commit cefbe724960bb6b40c019569bc42e02327a09ff9 commit 111aeed25ec6bf4d5b4a7b4cb5654f002ba9f795 commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 commit ef0a04a010e2a521c927b071d6025c12a415747a commit 9a48ab11714c955456fefdd4ab532d324fbef563 commit 1be6b46f731392267eeebef9d59600ff9999a987 commit 9659dd2b308bde4143855f5b57b0412be466eb8a commit 1c0b1175e6f3729c91835f179eb9c97b5067bb3a commit 91a33f7e20700d58941b38bcf8eca0d0b281ddb0 commit 219aada263f909d61443a8d1196592797c6e0281 commit 2dce68fa325ecf5be7007b9e8b13174262a185cf commit 4801b99588a2e022da50e43ec5f768707de3f862 commit 98529e950d4cd25c05643f9811e2387df58bc6be commit d9a5696e7d52edf68776599f2a38b9aee1382be9 commit 58fb284c52b6262b9bd43420aa39124c39e2342a commit c723b8ee3864bdf41cc560da958b7ef7f6138f0b commit f3d45c9d556bf6174258507e0e10519ab7f5679f commit 5fc83950572a65d33ccd661cd9d8be7ab885d446 commit 691ebb1109c97da2943e2d753add9ad5fc63200c commit 0df0c76cc3fd99d72bc1b18eae25ee3e8fb9d1f7 commit d2cc01e1794bd13199f7568298614f1bdcea1683 commit 6c64ae228f0826859c56711ce133aff037d6205f commit 4a248f85b3dd8e010ff8335755c927130e9b0764 commit 235582ca96214b50fa03ea77a5e85e59d94cf358 commit 3312a4ac8a464daa66b97452ec148b69c5959bec commit 30b9d1b3ef374403652fc10fa36b9a5f32cc274d commit 26ffcbbef712f6fb52f16e6f7d5cde736b80d8c4 commit f9eb742988e20fb86926de8ad18d7e93b53d1a62 commit f199bf55104d480370515bc736418808e5cfa6b9 commit 2d45f66887055e169173345a7e6249ecf3ee7e21 commit 5558d6c23d18f2143f60d7bb387e43a5d8216fa5 commit 95ae342dc939a220b7afbd3a65f7106258f67cad commit 1e7e8e18db0fdd4da4e91597cf4d59265b8f351f commit 0e65e2e6abb09d84a75c51999e3a6cf80f30c929 commit ffb5c099aaa13ab7f73c29ea6ae26bce8d7575ae commit f85b3f806e4d43a0e3e5c042f40b7fe5faf2f6cf commit 7eef7f670086f06b3a461f1b4d1e84f793ed4861 commit c03d982670335d732e5d623af31c126387ae126a commit e22dfdb63df36427067fad6b9bfdc8c08371ab38 commit 38a15ad9488e21cad8f42d3befca20f91e5b2874 commit 9373505967ffc1b7b8331a21ba86ea436c09b981 commit 503725c2d9865533b2894f7363be16c762260b7e commit 6e0c5bf0cc1369df0057bccb3fc1af3b38d07e32 commit fb87550d2517878ebcd112f080865a2dc38e9bae commit beac7709e40ba85e0827ffe0c6f3d6840588db31 commit c803ae6d826e441b65b96133ac573c0062740bc2 commit eee5215bd784eee5f8520f2deebf437c3fa95abb commit e068ef3fd5a3574359b80ff823089ca59057f9c8 commit e2a1e7abaee128020fde54d386ec8959b1e9eb61 commit a8b2b8b06e10224c547d90ea97c483b4de511b22 commit c0bbed9051b6eb293be6128d060bb49e999ef7d4 commit 150430366b2dcb170d309952143e32eb814fe7f8 commit 944823c9463916dd53f365e9aa07f23360968080 commit 4b88ad503d6d2ea11891a355e656bf428ec815e6 commit 505c4857fb13fb0ea88a42b843c91d0b9f8231fe commit 803efd297e315859ac7830445699f01eeb1f7822 commit c674c5b9342e5cb0f3d9e9bcaf37dbe2087845e5 commit f4c1fdb93992ffc55899f38ddebcc0e1c390226e commit adfadb5638bf32e97326ec05ae379be561e13677 commit 87cb6d80f2d196427e64d2e6179ee9b1a3609dce commit ea4ca894a160002f4488324ec39083d992cc7163 commit e393e2aa0ad7ae0d187de93f4cbcfc480d28b5f6 commit 88ed07cb2737e15b7ea412dd8ab37de2397cccdf commit ff6b19d3a0f939465b1e40040c4c4869154bf516 commit b2006061ae28fe7e84af6c9757ee89c4e505e92b commit 5e2421ce79703b969eeb9684cedaa76be5305ddd commit e41d27eaf5485df99f366bf7c5382375bb2c19ca commit 52e8da704d8d3ca8b951fbc39cf8d6bce5c33db8 commit b8cb6ab68674d7889c0dcfac2d542a63b9e36d82 commit e433d6843310a259f0be18c80de26d75b9f7fd35 commit 38abd56bed580c98e4284a578380f5f70634a0fd commit d58b8a99cbb84c1eb3b3613d23c1a328695a9455 commit 1e242bf8bc1b37c74619403d0dd59d0f862af943 commit 6dc0fded62806373855350ec8c3ccb1567ddd465 commit 4affb123033851381dcff4887982f6c7bad938af commit ca6fcfa8d4461c889636ef5dd51bdec96c6122bd commit 91dcfe5fd9d3a59aec4a40031c1eef00b41b8f74 commit b51759661e2987993fb49eadcc262d6a2ab2a698 commit 01d468d9a420152e4a1270992e69a37ea0c98e04 commit 667c7091a39e8b360d34f37aed5f8dd85bdc45f7 commit 1f211a827cbda87bd0ec145a1f44f2615c3f56d3 commit 35366481d0941e9b470ccf09d85407381b5d6135 commit 9dad47c50f9bf19153c092a73eb4721344f4a78d commit f578a37d19c65361e141735cdcb691d3930b8647 commit 0dca257d6dc5526c4c293f306b7b47765987de22 commit f148c143ef3f6e897f4a1012d1bcae3aa240bd8a commit aa8e65dfc75f684cd46d49f71453ea3512a1e770 commit 149d7ba1f8fe515a2a36ff95fa659720e72fe4ed commit 30e58102d5164ce5df10bbff4c9d05acbd12a5fe commit 80e0c2cb37b6e00ec0b41c7670e24f72b2d54ceb commit 957b0787ee5d5c0848e2dde625c09850e1ada22e commit 7d4108e4ceb30a89c63ae62bea284cf42985cf31 commit 57230f0ce6eda6d47a2029b7b3a39cc5bb63fe32 commit 5aa061474b1e0cc9605877190e23a880cf1551e4 commit e6fac6a9c9eb42a9362f9f093dcb8862f2b38383 commit b6901d93cc126bbfbdc6caf5f0c03b82945e43f2 commit 00bfab4457c2b57897ea710a423684979c5b0239 commit 9a1358bb2ce3738826bce0799d47d6963ccb51bf commit fabe1753851c62d0292a39d89a4a8d7f15c96794 commit d7709eb6a197171715f370227173e817a3da85c8 commit 7952fa0d3e187504d509aa32f46d4d430e4eb634 commit fe5e8f07fc25c850e4f46967699a9b29b0ef647d commit 45a3e06be4d351af8f81b43407b3eafa5c75827d commit 1b537e64105dd8f04c8e7d5fbd8e97f9dda2dadd commit 31f5f46043c7e7fa453b0b64ea12073d524e2150 commit 825e0af0d453f18bb84feb40bff447cf59d61979 commit 3192f1d9b61a59d7c82fef187bffa7281fbdc9f5 commit 701920ca9822eb63b420b3bcb627f2c1ec759903 commit 730ff52194cdb324b7680e5054c546f7b52de8a2 commit dc90f0846df4870b6cc8528c31e5c60f18fb68be commit 27674ef6c73f0c9096a9827dc5d6ba9fc7808422 commit c9e9ce0b6f85ac330adee912745048a0af5f315d commit 2ab82efeeed885c0210a0029df93bb95a316e8c7 commit 863fa85e6a01c8b239009825dd9de1f64d7d020a commit f70b88b994a35755f1a065ba4b43d2ad4b401e15 commit 7a1bae874b5ec07ac97f02018dfad73fb9bae567 commit 5f5d08b7eb0ab09700b22bec2adcecb8a1de1120 commit 575d0df6dae46f1b5d26a35ce0ccbc5aafd40e1d commit 36b362f5af1ee23ef502b519c2a8e2d273b2f156 commit 493a7508d737a03b620bb0806e222bd39a9ebca0 commit 90d282582aa709eeadaf33db71e92718c9471e31 commit 9e08564727fc7770b30715fb81348aee54fa50c3 commit 24bf9fd19740df5aedb3bc801206f81dcb4acc4f commit 811c04dbb3dc43304b35688d4009117e28c1e9ce commit b6065ebf55ff2fe3dae98e7cedb6ec4aa3c33f91 commit 11eb648d014eb9e80bf553004551dd6694dfb5a0 commit c8b0507f40deea3d5014b5b4989b6a06ffedde70 commit b664a56e8626264276ee27edf949e748f6be52de commit d18b8eadd83e3d8d63a45f9479478640dbcfca02 commit 8c7442f026d2e36e1185b9dd79db51601d875b7b commit a190f8dc4aaf6064527bb81c07f7cff1904dc927 commit cdc7893fc93f1969038ed333b33eac1452c8d255 commit 6103b2f24e4a9716ca3f5de654964f2a083086be commit 48e9fbd1a28480caf2ac5ec6fcb79ac221735c5d commit f7ddbf5581b474fe4a0a29244acaa1bf72234675 commit 90f45c42d7d7b0ec0fd797485c07fc421c474e12 commit 17154addc5c1a175bcf3441ff0d9598efa1f05cd commit 43d26c4fc6c446d766253d546f0083d78023d34a commit 53b97af4a44abd21344cc9f13986ba53051287bb commit 4fe4ed07c815044755075eaad5fe1815436a060f commit 117f5bb31c8cdb1e8f0b443f2a0ac761bf54694c commit 176c0b55d9bfe6e2a7c8ccf3edaec7c92d856b2e commit 5c8107dc9a9f33a88a380aea79be564597d00663 commit 4546281e8ab215b2beaba8e79975c99859a84a56 commit e17c6debd4b2d2d474074f83946f8c6522587566 commit 5e7f44b5c2c035fe2e5458193c2bbee56db6a090 commit d55957fb299b74829c438f77fe29896e3aed39fc commit 96a2f0f2c8006d338a9647e068a15c6eb299f864 commit 482d7b582d7f9688a5f64ed2424157a76a17f2a7 commit 955ad0c8ba93256c9eeeefde5644b3480c1ddedd commit 1d38fe6ee6a874675ca3bba6b48e69a0e6176ffc commit c1593ddd894d0518fc96fe7f531f3a5c919b8463 commit 60a9bac8ab48ddbf68dc280cd26879583e9d72ba commit dfe3da812d99b40f99ce018152db4b3a87bd86c4 commit f8d81df285a2fa2e739a9e4774e413ac778d282c commit e96902eb8c69fdcc55fa6beee796c6b34613e0fc commit 37114e4d1547ed230706d07edaee2d2b4b3215a4 commit dc593fd48abbea1e840c847c464eabc9c6bca180 commit 4e6c91847a7fa94a6a0caeeb388718b8ae005d56 commit d5109fe4d1ecba04d3f6903ab0421188d1420d22 commit f321c35feaee8dbde551775210ae3d41534b7a20 commit f6d790e5a7fe42706756c7fa1686d08d230610fc commit 1344794a59db2bd44b4919d2d75300fd3b1c2cd7 commit 3886a86e7e6cc6ce2ce93c440fecd8f42aed0ce7 commit bb7c3e9ce2d43a37b699ca379876089e03a756e3 commit 7c916f95f58df401fef4f8c7549aa80a5739b0dd commit 3b8b44a431b76be2645806cfa0494399c3dbbd85 commit df5a07c45c68fd85cd4d1a4ad7892d3a717a4ccf commit 4984e3aae6fa4f42fc24f2745b74509bf2cb0b03 commit 4189f2938d49d4d6b2e2191c86000c2e04ca7305 commit dbede77ce38df760bcdcbc53287e8673fa65982a commit 3741584519dcb780c38df502dd5e4cf7cea4d9f2 commit d8ff38d8fcd0a7bb66d17ec689135239aca78532 commit 53923e62afad6f52b2b931a74d2ee10274051b28 commit 5fed53c7983654b1658c49a030ac86bba7965fde commit 305f098020920f9ea6ff9162ee46392f4d67e67f commit 76a52f36b636cdff6b5b18f13daf05005e4b0b57 commit 4a897de1d607c15ebb9aa11a424ec3f3243304a3 commit 4185f99094d50a2f402153ff8922bc694f5f6d96 commit e7145aaedd55b19ae4e8bd25cbd4ef8f415b6b89 commit 6e899860f557fc60135506242cc3fb705e64b718 commit 9c1e260e97606330518a78422ae28d9d56ac87d6 commit 84ce38c7bf7a19fb1f9cc61181e830b7e04dd51d commit 32685b32d825ca08c5dec826477332df886c4743 commit 44ca49f046f89a97ad319372b4fdbde67da1b6b3 commit cf689e869cf0339c387397c7a6805e387594656d commit 22f87d99832650d9389b0b3d08f3c970afc53f10 commit 6e6faf7a8364c77f4021f44043a5a5cee91f7025 commit d510eccfa51e09f5e65621a2e8d41f58a8dbd3ba commit 69691c823531c36c7283ecaa040e99e9c12ece07 commit 8718ca1dbf497c302df989afaeb82f05f5a3d961 commit 2e9fda82c98b1e417b90ff5a2f8b8b96cac06fc5 commit 67a359d85ec2679cc8e11b16844df960e3b27c24 commit b38c074b2b07349097d824e3c6c49b5ac8d98910 commit 65722ff6181aa52c3d5b0929004af22a3a63e148 commit e7031d8258f1b4d6d50e5e5b5d92ba16f66eb8b4 commit 0fe382fb82dc6cc6eaba6534d038dc381e2b17b9 commit 6f172ae59a7577dbb73e2a8da18697ba8dc56341 commit a03b288650abf2a92d5ecdaa737e3d04a2a77984 commit a29d44aea1aef0bc58d4951f2ddbe5b22d9a2e94 commit 85ac2021fe3ace59cc0afd6edf005abad35625b0 commit 72a98763b473890e6605604bfcaf71fc212b4720 commit 436afdfa35dc8aaf43959593f6c433d0ad29abc3 commit a0248d543bbf2a977e7e6d9966ce8d96f6e5c358 commit 10499e4055949e4682d2e7c428365175e99e0800 commit a18112ae72d693bd4eb79f2ec09b536eeacb902b commit d853419f5fcce39553ce0f6837fa122f113b15b6 commit c791d75a64f5c628a9c9a7d9b9ec01ef0357e6a3 commit 906fbba2c9d48678fd182d0de4dd193d9dd0cc9c commit 3a0625813bacf12bf188f8242b42b508af28baa0 commit 2716bc822e2325efed0731d6a6a7dff755dc34d7 commit dd15640bcee5a5fa74fc52557dd6220f48b01116 commit a91b402d50072e4801b231925f33574f90e562ce commit cfe7c679412f14811cb3c4119c8025cb97564c48 commit fdf0ece6309d90dc0f9388001239cb2d12671af3 commit 8476269f758221863c01a0a6cccb0d75ec5d60c3 commit 8c0f11ff3895ec96c9523ac607dd51f812ab69a8 commit 4e2f50e2306fdd0e5fc7db3d9a452ba1327b787e commit 9527b9caf82b040e794fba2667f6d8a85a793bb7 commit 3f543552846b9ae47c8442af1c506207bdcc00d2 commit faad5ccac1eaae584f9ac2ea66278bd137edcbe3 commit bd4b9bb77956639e6d9618ed306cb2264c69ba49 commit 58398727e6f4955f2781e93517b8f0a3e8f22e75 commit 28b7382621f0a83f1db795f36ee0fee6f66c10e9 commit 508a47d434bffde45ca3cdb8ece186f28f9d84bf commit 1cbd78879b5f889355b2a6343ea5db7e633438b0 commit 07d01469325c87aef4ab02ad4ec31d73321665ee commit 606d5877592b0a6f945a68399c870ba9d2a9ff7f commit 426c89aa203bcec9d9cf6eea36735eafa1b1f099 commit c94b731da21f10086a9e52d63c21c730e3f6c939 commit 3a84fd1ed53582b31e843a152ee3219e9e4ccb8c commit 278da06c03655c2bb9bc36ebdf45b90a079b3bfd commit f11de8611fd6bb15bd979bbe5de0c4d59452f8d4 commit d14eb80e27795b7b20060f7b151cdfe39722a813 commit c6e90a1c660874736bd09c1fec6312b4b4c2ff7b commit 1d204ee10817aed6666e020ef1b4c643d68bef11 commit a860f266a0e19f271b839451d291a6acf6ddcfe8 commit 9cddf03b2af07443bebdc73cba21acb360c079e8 commit 1937f3feb0e84089ae4065e09c871b8ab4676f01 commit 3ef8b5e19ead5a79600ea55f9549658281415893 commit 00f4150d27d2c01eaeffe1091fc311a7c0872c69 commit ad9c6ee642a61adae93dfa35582b5af16dc5173a commit c5c948aa894a831f96fccd025e47186b1ee41615 commit 9030fb0bb9d607908d51f9ee02efdbe01da355ee commit 5662abf6e21338be6d085d6375d3732ac6147fd2 commit 7344bad7fb6daa4877a1c064b52c7d5f9182c41b commit 3ce62cf4dc3b01d1cbee1293049ca5d4c7d6d749 commit b14ffae378aa1db993e62b01392e70d1e585fb23 commit 21050a39a3b676fbaed4ad6c5871b917a91abe9d commit c73c3576a2227492b448f9be41428ce6a0b5855a commit 34af78c4e616c359ed428d79fe4758a35d2c5473 commit caaf2ae712b7cc3c7717898fe267dbf882a502ef commit 64a8f92fd783e750cdb81af75942dcd53bbf61bd commit 519f490db07e1a539490612f376487f61e48e39c commit 32f90e65251981f061eec883b0fe9e75d74e9665 commit 2d505453f38e18d42ba7d5428aaa17aaa7752c65 commit 60d61f4ed6ead43ad2de31ebb8d1d27c57290529 commit 1647b54ed55d4d48c7199d439f8834626576cbe9 commit b818a5d374542ccec73dcfe578a081574029820e commit 0d8e4eb337644cab528ff3844675d58496ec22db commit 93dde6ccd66d29502506e95f568fd0f49d575d27 commit 3107e1a7ae088ee94323fe9ab05dbefd65b3077f commit 5e8a71cf13bc9184fee915b2220be71b4c6cac74 commit 6bf528ec91fb96e186461215c8f76265c5a35250 commit 7d56a154e22ffb3613fdebf83ec34d5225a22993 commit bd219322dbb41cc7c753da3a6936ce09d502f113 commit c9fbf6435162ed5fb7201d1d4adf6585c6a8c327 commit 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 commit e5fc78252ccd8dfc260f87d83905e9dffff6d975 commit a572f7055067d95455850fd242d8b54ff5786cac commit b7dfbd2e601f3fee545bc158feceba4f340fe7cf commit c5650327aba02d15cbd6a1846dcde9231493d549 commit 6ea239adc2a712eb318f04f5c29b018ba65ea38a commit ebbb7bb9e80305820dc2328a371c1b35679f2667 commit 5f3854f1f4e211f494018160b348a1c16e58013f commit 7057c81773ac32fd0dba00e2bb869928f008d3e2 commit 609910db56e72e87755d9745442bfdfa009dc61b commit 0dc386add50b07e1cf9341b4e6e4fea77295c98a commit 15f9cd4334c83716fa32647652a609e3ba6c998d commit 50560ce6a0bdab2fc37384c52aa02c7043909d2c commit 148a650476955705482dd57e7ffcf105d8b65440 commit cb7cbaae7fd9cee64f19cdfd89d097d807b884f5 commit 266d17a8c0d857a579813ad185cd1640b0d6ccac commit a701f370b521b2ed0654a9da7cf424b3ff8fa73d commit 21d139d73f776aed1e86f3175a1e9fb8a10930c7 commit c42ee39c1e78224d3a81bdbe0600abe4581226ed commit 67bae5f28c895f8737a1974c3f31cf12b9170b14 commit f444b2d15f7a025416ace9ec298f0b93ef68be68 commit 38d4e5cf5b08798f093374e53c2f4609d5382dd5 commit cf5c5763eb531ff5120111ad300126e926fb5a56 commit 13043d1a12c54d8b6605bbead5e177e9fb98a287 commit 945da79e6dd058be70bc47442dce319844e14daa commit dda81d9761d07541c404dd5fa93e773a8eda5ddc commit 862a876c3a6372f2fa9d0c6510f1976ac94fc857 commit 95707203407c4cf0b7e520a99d6f46d8aed4b57f commit 58e16c752e9540b28a873c44c3bee83e022007c1 commit 83e9faac9a387894e945e7f33c2bb7a9c348257c commit 2944dbedc7e167221fdb99531f7b0cdbac9ac696 commit b2075fce104b88b789c15ef1ed2b91dc94198e26 commit f4346fb3edf7720db3f7f5e1cab1f667cd024280 commit 4052287a75eb3fc0f487fcc5f768a38bede455c8 commit 96f2b7a3571618a1c8aed694c9e668014c70898b commit ef1a0808a2e20c58d166c5707864fba515832bd7 commit e79a2398e1b2d47060474dca291542368183bc0f commit ca1198849ab0e7af5efb392ef6baf1138f6fc086 commit ebc002e3ee78409c42156e62e4e27ad1d09c5a75 commit 7e8906dc2689cbf562ce520cf4a8ba5b495db0f6 commit 6e93d5b0333279d8968a2972065f47a899fb58b9 commit 879791ad8bf3dc5453061cad74776a617b6e3319 commit 28c25238898a242c58bfaff3f46a006585c2dd94 commit 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb commit 72cfb835e56f0eec18f934095fc1a52df1815f0c commit 691b592abb9a5f2b331969393bc06fcc8b564d3c commit dc7d19d27d019d223e74f2f47ef47e778781cb52 commit 995f74807329c97e0aa7449c7a8345fce978a2c4 commit 88711fa9a14f6f473f4a7645155ca51386e36c21 commit 1acb34e7dd7720a1fff00cbd4d000ec3219dc9d6 commit 022074918042465668db9b0f768e2260b1e39c59 commit f8e6b7babfeb40987e946bc1427609a9976017fa commit e4f1541caf60fcbe5a59e9d25805c0b5865e546a commit e3cf2e05441a2c5107fbffadb5b7943113ee11dd commit 887f75cfd0da44c19dda93b2ff9e70ca8792cdc1 commit 4593c1b6d159f1e5c35c07a7f125e79e5a864302 commit aadaeca46ce54af9f8f494792a1ba47a6fbda7ba commit 8e401ff5380a921c309d4c73cacf27b0bdb5f168 commit 9df1e3ff60241ce3fb26db75933970dd1b871213 commit bb02330408a7bde33b5f46aa14fd5d7bfe6093b7 commit f92055ae0acb035891e988ce345d6b81a0316423 commit 5f18c0782b99e26121efa93d20b76c19e17aa1dd commit 298799a28264ce400d9ff95c51b7adcb123d866e commit 169466d4e59ca204683998b7f45673ebf0eb2de6 commit b089c0a9b14c354a0c3a421e09af3208cb7c232c commit 94f4c4965e5513ba624488f4b601d6b385635aec commit c18a2a280c073f70569a91ef0d7434d12e66e200 commit ed911c9f9dcb26849fa688225f002ef2f2c50cf4 commit c05d8332f5d23fa3b521911cbe55a2b67fb21248 commit 4ae4dd2e26fdfebf0b8c6af6c325383eadfefdb4 commit f7e1089f43761ca221914aea9a755b23dc7cbc33 commit 7c6b6e18c890f30965b0589b0a57645e1dbccfde commit f567656f8ab82e43815d8d071d9864941b613a82 commit f95af4a9236695caed24fe6401256bb974e8f2a7 commit 65e54987508b6f0771f56bdfa3ee1926d52785ae commit a71849cdeaec4579696e5e1c45d9279f7b7484bd commit fb8cc3318e47e1a0ced4025ef614317b541147e7 commit 9d9f720733b7e8d11e4cc53b53f461b117dab839 commit 841e512ffb64898db6322c0619f6bbc41266d86f commit 19965d8259fdabc6806da92adda49684f5bcbec5 commit 3dfe85fa87b2a26bdbd292b66653bba065cf9941 commit ca5e2f4d6b677efa3f43a6790777e46dcf806e4d commit aa482ddca85a3485be0e7b83a0789dc4d987670b commit 9b9bd3f640640f94272a461b2dfe558f91b322c5 commit 87fd2b091fb33871a7f812658a0971e8e26f903f commit ab244be47a8f111bc82496a8a20c907236e37f95 commit 3220c3b2115102bb35f8f07d90d2989a3f5eb452 commit ef3a6b70507a2add2cd2e01f5eb9b54d561bacb9 commit a56f445f807b0276fc0660c330bf93a9ea78e8ea commit c65b364c52ba352177dde6944f5efaa29bd40b52 commit b7c15a3ce6fea5da3aa836c897a78ac628467d54 commit 5005e9814698f47c5a3698fcc56c9f5e6f1d4644 commit 370704e707a5f2d3c9a1d4ed8bd8cd67507d7bb5 commit 1d6595b4cd47acfd824550f48f10b54a6f0e93ee commit 3059d9b9f6aa433a55b9d0d21b566396d5497c33 commit 21d1d192890ced87f2f04f8f4dea92406e0b162a commit eb7bac3973d209e5227d1783676362ee5a8a7127 commit 54395a33718af1c04b5098203335b25382291a16 commit 89e96d822bd51f7afe2d3e95a34099480b5c3d55 commit 6e03b13cc7d9427c2c77feed1549191015615202 commit 7123d39dc24dcd21ff23d75f46f926b15269b9da commit 7b1d6924f27ba24b9e47abb9bd53d0bbc430a835 commit 6e4a61cd39685476f7ea74e75fb66666d541050b commit 64eea6805ecf7092a113bdb4cb73860430d39de6 Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:17:03 +00:00
/*
* dma_fence_array objects should never contain any other fence
* containers or otherwise we run into recursion and potential kernel
* stack overflow on operations on the dma_fence_array.
*
* The correct way of handling this is to flatten out the array by the
* caller instead.
*
* Enforce this here by checking that we don't create a dma_fence_array
* with any container inside.
*/
while (num_fences--)
WARN_ON(dma_fence_is_container(fences[num_fences]));
Merge DRM changes from upstream v6.11..v6.12 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.12 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: Conflict resolution: diff --cc drivers/gpu/drm/amd/amdkfd/kfd_svm.c index a6b5ab89b7ca1,1893c27746a52..db88bfc044b5b --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@@ -2677,15 -2727,13 +2727,16 @@@ svm_range_get_range_boundaries(struct k return -EFAULT; } - *is_heap_stack = vma_is_initial_heap(vma) || vma_is_initial_stack(vma); + *is_heap_stack = (vma->vm_start <= vma->vm_mm->brk && + vma->vm_end >= vma->vm_mm->start_brk) || + (vma->vm_start <= vma->vm_mm->start_stack && + vma->vm_end >= vma->vm_mm->start_stack); start_limit = max(vma->vm_start >> PAGE_SHIFT, - (unsigned long)ALIGN_DOWN(addr, 2UL << 8)); + (unsigned long)ALIGN_DOWN(addr, 1UL << p->svms.default_granularity)); end_limit = min(vma->vm_end >> PAGE_SHIFT, - (unsigned long)ALIGN(addr + 1, 2UL << 8)); + (unsigned long)ALIGN(addr + 1, 1UL << p->svms.default_granularity)); + /* First range that starts after the fault address */ node = interval_tree_iter_first(&p->svms.objects, addr + 1, ULONG_MAX); if (node) { diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index a69e861eb1130,eef03d04e0cd2..56a4041f5ef5c --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -12,8 -13,9 +13,9 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> + #include <linux/spi/spi.h> #include <video/mipi_display.h> Commit list: commit 9fc97277eb2d17492de636b68cf7d2f5c4f15c1b commit 7c0389c615b5c6aef1b0e38e30db759b3cbff885 commit 627c961d672d3304564455ba471f5e4405170eec commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7 commit 67d90d679eb3447f73e2a1fe55f7e6c6a44c9fa1 commit 2e524668c440104633af1effcc85d1d6234c7ccf commit 96e7ebb220f8a873321cfc5a87bc4533d36ec444 commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 commit 282e6f846d8c3fcf36293f68f38d814645c3b852 commit a708f6501c692551e3d4ea618c44021f436730d9 commit 04e9c0ce19ac68afd8be7fd54772db3b0356cf75 commit 9dae9751c7b0086963f5cbb82424b5e4cf58f123 commit 466a6c3855cf00653c14a92a6e9f8ae50077b77d commit 3078d9c8b6a0939bc732fd1c36ef86c0178127dd commit 01570b446939c3538b1aa3d059837f49fa14a3ae commit c55f79f317ab428ae6d005965bc07e37496f209f commit 01e0cfc994be484ddcb9e121e353e51d8bb837c0 commit f3a47a269119ade7ea22d0465c7fbe518ca1bdfc commit 74e3076800067c6dc0dcff5b75344cec064c20eb commit caaf1f44a6a27bae33eee189842c4d8fc21c3b02 commit f592e01664b4a57b109fcf6f6916145517f94bd7 commit 6be74ddd0609959b4005f88b6a4d4af678e4a71f commit 9c62fb62c9f0761eeda8f2a9517e007ff2cdbe9a commit 8e9bf0fb10a79aaed37474600948cd33d14aa606 commit 4c44f89c5daee9540cb7428de5d835bd00951350 commit da966b82bf3d16f89a05732c933a589ec798d3f7 commit 10efe34dae798c652053d4363871914c478f1475 commit 3756310e9fe1e0182adac89cedaa98c0eea66675 commit 1dcfca093be9e013a53e3c9b74b3f60ea9c5160e commit 014e597d35816b56c7aac1348b77c73657c4066e commit c4ce398cf18ae2859cc9930a9486b576ce262de9 commit 533ca79cd9f734aae56814445e3f1e6cc1a50358 commit 56ab6986992ba143aee0bda33e15a764343e271d commit 3d122660dc70029d9cccb4e8670125f0affa959e commit 7b5bdae7740eb6a3d09f9cd4e4b07362a15b86b3 commit b2013783c4458a1fe8b25c0b249d2e878bcf6999 commit ea74bf9ccba9ae80fc0766c07c4abaef927e9e63 commit 7fbad577c82c5dd6db7217855c26f51554e53d85 commit 33891539f9d6f245e93a76e3fb5791338180374f commit 24179ff9a2e4524ce83014b8827a73ad03a25c13 commit 7f58ebaccb67cb22b2936ba79c844f1e446dc73b commit a16b680a2140e6cbda41ac144564696c3ee2815f commit e4bd1db1c1f771983393bf5574854dff26ca7532 commit 0e7f4e6a20d550252c4f355d5a303b1d9c8ff052 commit 76299a557f36d624ca32500173ad7856e1ad93c0 commit 9d8c094ddab05db88d183ba82e23be807848cad8 commit 71733b8d7f50b61403f940c6c9745fb3a9b98dcb commit 993d36ac99efeafeb7b5f12353def6d7d20d6389 commit 0daf44ea9dccfcdb1fe694e9ea85497b6cc3a065 commit a4d5ce61765c08ab364aa4b327f6739b646e6cfa commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588 commit 4613aa66e42ba1b0c896495a207b3b26e94e44d5 commit 61fe488fc78a3024b8d4cafc90a34158f4562dae commit f6ca930d974e473fd608fc9aa1759fbe731fe44d commit bd85e00fa489f5374c2bad0eac15842d2ec68045 commit 57c2b3e684ba3e82e9944bc1975e047bd1630537 commit d6e850acc716d0fad756f09488d198db2077141e commit ff10c99ab1e644fed578dce13e94e372d2c688c3 commit 0237368193e897aadeea9801126c101e33047354 commit e97701a069612ba2fa1d92b56a720b108049df4e commit 3b0974d7b74a908d1caa27f05a97551943e1bffe commit 09af6037128c101c280c95c56d970ce8475506c2 commit bc34d310b578952d37b5200a7fa7475ab2a2bd5e commit fd5a9b950ea8ba2c08ce07418b36b296a04d712b commit 6c9ee258b1f4e7021224c9bf541fe6b17a03ee40 commit a5beee65241d25ad20dd814668c975ba13a42615 commit da9bbdb97469383a2ac97435a3b09543d14139fe commit 4c46e34e67587b268abc3916c9613426018561e6 commit 94900000380300b230dc1bed489b598a2a2c55a1 commit 6a1738b3fdd92d48e61de438d05dedbc00fc598f commit 566ad72ba636b745beb8a440bd4c05e779b95728 commit 4290eaa8424905dcee4daa0666ec841dc3a0bfb3 commit f89d7664c3617836aecd291c56c8ab63fe228fbd commit 4d722029930bca7f53d99dbfc300a40dc297dee6 commit d43caea1faf5c31dc02aa1adb8bb1aa1c33bf86f commit 43a6faa6d9b5e9139758200a79fe9c8f4aaa0c8d commit 6f1cacf4eba7a3203f08954a7e00b744e43f741c commit 4c3fe5eae46b92e2fd961b19f7779608352e5368 commit 86c5b70a9c0c3f05f7002ef8b789460c96b54e27 commit cd3a2e8b0a0367c636cd82efaf7802cf85ae5dad commit 7bb97cf915884956311352eae3f444eaaae48cea commit 3ac9384061b250ee40eda5facff10b85e2d5d3d8 commit 45d30c828c613441bfbe5c97ca766854152b7181 commit a237f217bad50c381773da5b00442710d1449098 commit e1a261ba599eec97e1c5c7760d5c3698fc24e6a6 commit e02cea83d32d3a616c9ef8b6b50a83444a6bbcbf commit 7dbe8af13c189f5937e87e9fb924d5bbc49e6f71 commit 452bca0edbd0764ca0284239d5438b3edd305ab3 commit 108c972a11c5f6e37be58207460d9bcac06698db commit 54f07cfc016226c3959e0b3b7ed306124d986ce4 commit 8d79acd567db183e675cccc6cc737d2959e2a2d9 commit 2b808d6b2919cb2fe92901e5087da7b4ed4b9e07 commit 523f191cc0c728a02a7e5fd0ec26526c41f399ef commit 8a92e2a67f627e69dd52aa9c2d3176be13aef2cc commit 3849c6ff3a1517e4c8a6d004d9cb31241c849713 commit 775d0adc01a55fe0458139330415d86bb3533efe commit 275aa53f59df769802f28a0a623019aadab2e05d commit bc657615e10ddd7637dcc05811194ad7e2baea33 commit 99e0fb8b087120b5a7019f1cff6c5c2b5b925ae5 commit 0fde907da2d5fd4da68845e96c6842497159c858 commit 5e4e1ed6b87b6b3a3531cd8b5cfa9c3b09d841b2 commit 104bcfae57d80c484185c012cc0ee8d8d5889a7e commit e4a0251d36fc6c190c545aa95702eec0efe05a4f commit 7108b4a589cd6d3a2c1276fd610b3500f46de66a commit 0c977ff2b807aa53f655f095b0a306f18d8cf7be commit 3d0c4a62cc553c6ffde4cb11620eba991e770665 commit ce8c161cbad43f4056451e541f7ae3471d0cca12 commit a2387e69493df3de706f14e4573ee123d23d5d34 commit 2149ded63079449b8dddf9da38392632f155e6b5 commit 754c9129b9494b2b058add1d1a627fb3c9466a03 commit b345b3542d66fea49bff53288d347ccb06fa1b3a commit e8f834b559621d634a939381caf99a024e272211 commit d6460bd52c27fde97d6a73e3d9c7a8d747fbaa3e commit 5cd522b5331b348302fe410dab1cd070e4fd6998 commit ad16682db18f4414e53bba1ce0db75b08bdc4dff commit 89c6ea2006e2d39b125848fb0195c08fa0b354be commit d5070c9b29440c270b534bbacd636b8fa558e82b commit 9f774c42a908affba615bbed7463dd4f904dd5f1 commit c2c2a91f3868515969a758042887fdc722216525 commit 3a9b77cee7502f7450c725d4ead2c4a44924d158 commit 7e33fc2ff6754b5ff39b11297f713cd0841d9962 commit a522b285c6b4b611406d59612a8d7241714d2e31 commit 61ac035361ae555ee5a17a7667fe96afdde3d59a commit 0a382f9bc5dc4744a33970a5ed4df8f9c702ee9e commit d930c19fdff3109e97b610fa10943b7602efcabd commit be1dcdffa8fadc22ad272f605a53e2a2fd30e7f8 commit 2885d283cce544cf3619f35f0acb3d073de036e1 commit ec92c47d7d098e85eae7fb25c6bc07158686e675 commit f6f22012e6c73867b959524604984ee5ebfd105f commit bd40536ae33911bc74df5ba3b29b573dcb72f904 commit 8bfab7cd8335b10bad92e44f58c5a038762bcbc3 commit e17eedf56ea7afacd919a3d6cc75a617cddd003a commit 8f3d86f13eb2b37d86fc48df8995dffd9b7d9010 commit 37db1e776285518a7e1269b868d094a4532b2d54 commit 57ecead343e724b6ea38e9c2d8f794b293cf2951 commit cf1e6edbd1c8ba654f97071ccb748d87ef0115aa commit 9790bbe3ba48b659c0152f49552f6abc18f85bc8 commit 25ec7e809cc1fe9f01a71199d29092f6f1b4611c commit bc3ca4d94369838c3b6668a183467d4a69a5a482 commit f00bfaca704ca1a2c4e31501a0a7d4ee434e73a7 commit 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f commit d4b9b6da5777bb03f36f01bb6b05c6cc303ededb commit b26d9dddad7bca6727069f6a26b265d303c65c49 commit bf32a3a1268638442ac43b347e4a4a09044dccea commit d5e79eeba3086a52593b295ac4bf6eddd64d4aad commit 9c27f613d55f8ffeb3f250d9d34e41edca3df3b5 commit 649b93dbb902ae3237fddbe998eb1f4de1a14b71 commit c8a31ff6199f12ca65d73f1235117c1d9e6365a9 commit 8af13c3fc1259c1b8cfc4459d3701fcf41ad74df commit 1fb4dceeedc5f0d1d062ddc44c4a426e1639e387 commit 19cc4b7d75b52df2b4fbb76428a6b0dda3d248bc commit f763c3b543d80ebcb94dd19a69324bf2b72b23ab commit 08bed7e4ff24f90e200defcd2c23e70b0a3cd710 commit 43796955a89572c63f7f96e271a2849c27d18f2d commit 00bb3223bf7cfed3c9c714e994cbd454cc3e6b73 commit 1eba165aa40c79f65f487678c8ea8e77b1c6a5a4 commit ccb54d7d91d256485cfe5403a12abb0175ce4539 commit 0f1a93704a5cf53ce819a7c544125442666d61ce commit e84f798a93881062cd14ce316a68068edd50bfb4 commit b68417613d4134b9e39fff95e72ca726268b47db commit 4ccc8fdcca670edd76d8bfd6389f04c448cff6f6 commit 5f30ee493044e9ea3a46167e5597a96f5c302adb commit 0961367cb5208850a123d235d147f92f586b2491 commit 98579743c4561acc3b1c7d2f3fcd46b2160db5ba commit e8d77cfdd2698039667432b8569bac34d13508c1 commit bc2fe69f16c7122b5dabc294aa2d6065d8da2169 commit 3c9154310af71802de2f40c5689b66009a407f37 commit 5fc77c26970d443f1c020ee8a5d475ad6b81e15f commit c83ecc0bee94995117329fccbfa6e8b43ce56044 commit 218784049f4b90834dd7b854857df0b7e0f76567 commit f5c783868855bbecfc4311050dbaca4cb28ada5e commit b3c9c9affd71f1f9b136534d6f56f392edb78620 commit c18fa08e6fd8952e88fa9ad108371c2bd5b82564 commit d94df7cad26b4c5958fbfa550d65794c89aa90ba commit f60881ca126cf825b89b4118e93dbd82ea9bcf33 commit b995c0a6de6c74656a0c39cd57a0626351b13e3c commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 commit 3718a619a8c0a53152e76bb6769b6c414e1e83f4 commit 5559598742fb4538e4c51c48ef70563c49c2af23 commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 commit 35ff747c86767937ee1e0ca987545b7eed7a0810 commit 892abca6877a96c9123bb1c010cafccdf8ca1b75 commit 906fd46a65383cd639e5eec72a047efc33045d86 commit 5d2c102deff63ff8980dfa848ee41858d255c291 commit 2563391e57b5a9c1d83fd36c05ac4cbafeb5efe6 commit 5ed9481db74740fd33ec4079b29db88e8c9f4a1c commit f91a9af09dea850d83d4b217b8acbafd97b5c61f commit 39d496d4721ba509647a70041f38d82b03c74680 commit 4e8eac98046446d99cbbed740f0767204b839f3f commit a41d58fb91248557438de4e8298d1d2ed5b39564 commit f82200703434522f1b35d38bdef02486d22b2f25 commit 9932ca4c03c8181601f611dd366fceb765329800 commit 0beca868cde8742240cd0038141c30482d2b7eb8 commit be1fb44389ca3038ad2430dac4234669bc177ee3 commit fdd5ecbbff751c3b9061d8ebb08e5c96119915b4 commit 6d64d39486197083497a01b39e23f2f8474b35d3 commit 323b19f424486e61784e8797a8bfb2e24585e162 commit b8d3782da396215615c3d125f0829d1d06ad2c97 commit 08cbe68d4aafcf651a86730a485df53e6ee9f594 commit be7a6a5171649c39f79a6259518218351082bd99 commit acce1eb8eb5de360fd82fd900454ff180912d8b1 commit 748b3c4ca0bf43cec186ace2ecb33457d7a4653d commit f59549c7e705be0087d08bc116ccc767b86d8362 commit 48eba83018c14ba6c102f5801d31c398807535d9 commit 6b0a9bf72c04cd8d2864fccce42817c24b060aec commit 2d67c4b54909982d462bfe227279d1499b329545 commit 60a9472cf0a8568f32be6cbbd32ee7759bffe215 commit 90985660ba488cd3428706e7d53d6c9cdbbf3101 commit 78dd6a8d33a3363fb4196e173be0eb4002962798 commit a6e23bec8ed184ed2a11080b28cdbd7a3024f0c0 commit fb1b5e1dd53fc834e12f69749cbc8484382599c4 commit a9ed2f052c5c14e4be58c5ec8794dffc87588123 commit 27cdf8c3cae2ad1dbfe1a32ff999c98349366862 commit 56631dee2932dbc203f0abd1011aa9d3d621e206 commit a7e8467fbeee654e390aad1736291d273b407a2c commit 7a38efeee6b59d0984ff0470d234a06fe6a7cf3c commit ca82ee4e9fc1443f9ceec615918b299766432eec commit f2ac52634963fc38e4935e11077b6f7854e5d700 commit 4df9e2200fb8ae7199e46eaffeb9430bc0ba3ea7 commit 666f14cab21b17ccc1bdfe1e82458aa429b3b7e0 commit 93381e6b61804b777f60357d96d6254eb10b9b56 commit abf839f5ebd98134f51764f2a2841faa6cbf268a commit 80237bfc031cd74cb8abf0d21094207284d56a48 commit fec5f8e8c6bcf83ed7a392801d7b44c5ecfc1e82 commit 585e3fdb36f59c5cfed0ae06c852dc1df22b1d60 commit 49cfaebe48e97500a68d5322a8194736b0a2c3cf commit caaf576292f8ccef5cdc0ac16e77b87dbf6e17ab commit f9e292cbba21e79abea7315b41a52c36ea2b6980 commit c86ad39140bbcb9dc75a10046c2221f657e8083b commit a11b36ba9c1ac494c6a5cf7f1a5e68c1ce4dbe18 commit db54a725d57985c869f6fe4153a36cd229ab0b73 commit fb91065851cd5f2735348c5f3eddeeca3d7c2973 commit 72dc6bf159467f43667bead6016965821186490b commit 3f7477bfbb906ec1cd9ad681475a04a142345eae commit 6fa4bf3dce0668a96faca0024e382f4489a9cc9b commit 332315885d3ccc6d8fe99700f3c2e4c24aa65ab7 commit 14d6ca0740e6237f4bca2dabee4e240b6f4be508 commit 0cf80506918da0d2cd9d31e3b07831f94a2c5cc6 commit 94beb4ac1b3bc5fbeef977960a90ee4f594b4465 commit aaa21e6a33bae017fc190bd75f76baa29d259346 commit f52ea01925f4eeb967c09cb5dae61608a2330541 commit f7543209ce5dc09e3f5a27a7d4ee53e226283719 commit fa53b23ff7c98930c7e529b8f5228d9f182ae2bc commit a90e1dc25c064bf21353cb342aac938662a148e4 commit ec0d7abbb0d464619d6d1646f03603c6616d966e commit fae1879dc229249c17e5fd4ef81bf33684ee58f0 commit 1a03b0e6c5fdb476203be4f4597205ff8799369b commit d925c04d974c657d10471c0c2dba3bc9c7d994ee commit 3237403b98e173c296ec83cbba5e9def331c5e13 commit 58ed441367b9b0fb48aa8cd471a73073d1143e16 commit 8732594017d32132ca741f4ec4eec91211f5d10c commit 779ea9d32612f8e78a2f362d52cf31c23ba878f0 commit c8a0222dedf90e9a79b88814e32ffb43ac4beef6 commit 0352e39e7e781fe6a408c70a336d0f321dfe108b commit bc50b614d59990747dd5aeced9ec22f9258991ff commit b7e99058eb2e86aabd7a10761e76cae33d22b49f commit bdf606810210e8e07a0cdf1af3c467291363b295 commit d81873f9e715b72d4f8d391c8eb243946f784dfc commit f22f4754aaa47d8c59f166ba3042182859e5dff7 commit ac2140449184a26eac99585b7f69814bd3ba8f2d commit 12fb3e9c88406732749fb2f111911a2438eeb0fc commit 7e60ecc2b70adb41b92752cbcd749040e00b57b8 commit 9c7e69d2e1245fdd5fa5c65cd022530b2a5ef1b7 commit 68e599db7a549f010a329515f3508d8a8c3467a4 commit cba7fec864172dadd953daefdd26e01742b71a6a commit 4b6377f0e96085cbec96eb7f0b282430ccdd3d75 commit eac3b274aaea11ec4ade8e8f684055db80d5f8b7 commit 22a9d5cbf88a92ac6cd473c3ba1c369aee8fec9a commit 834368eab36922595a402b9e76470f8efa2fac7f commit 8284951a6e79c6806c675e5f68a4cd425dd56bc4 commit c395fd47d1565bd67671f45cca281b3acc2c31ef commit 015b8a2fdf39a4c288ff24e7b715b8d9198e56dc commit a2737c404cb2c1c335db30737925a306a2e7cc11 commit f53f526f7050041718af84e33fc24f670e7dccdb commit af4808ac40dbf668183d0b69ef6b31e62e1fc5df commit 4b95cec68937a6302c7085b26258cf721d726684 commit 2662b7d9d8bc1dda1f89f0dd33422e069f2f861c commit 39879321769cc2d9a690725959ef76af92a38ac1 commit 48695573d2feaf42812c1ad54e01caff0d1c2d71 commit acddd5cf70e609e1e1e638ac0422977ea2b4783f commit a7909022371dc8c70bdc4871a97cc49e34d78a6d commit bc6c2a6f6495668e3cf0acbecf820b93ca03aef7 commit 5ebca62eb8ebff67e2c8c4903bdb4f3c07922114 commit 238352b4949bc5c724f6adc1c78d50f1d15e4759 commit bd4bea5ab2bda37ddb092a978218c4d9b46927e6 commit 61eec998c9399d1cce91c7a2f51a4d0cfbab97bb commit c60ca14bfd2d399a66f7164e044b63991c6a5a82 commit 708899133615bdb8087cafa129b8e24397d0c79d commit 2108cdcee58b06460a8ecb106d15ab69f5bd49fc commit 6482253e6e1ad1c3a76645a3899d3cfdb5b918cb commit 76a791fa0926e504f262310cbd0c8f1a60e67ae8 commit a2b4da9501c120d60413065169f140bc3d2e5991 commit 66ac3451fb467ce44fb1d4517f91db7390b9fa6b commit 7214da0ed2220a2b9ad22aa77a5974cdd2a62799 commit b46119578167150810184494b2a097c40e2144b8 commit b049504e211e8f4dbcd40434f2dcab2215ea1039 commit 305cd109b761202d71f2f655ea369fe889ba1d01 commit 3b37e2725ab32c9055bec00ef41caa63839efd37 commit 0b071245ddd98539d4f7493bdd188417fcf2d629 commit 08ae395ea22fb3d9b318c8bde28c0dfd2f5fa4d2 commit 47c0388b0589cb481c294dcb857d25a214c46eb3 commit 517fff221c1e6b8a8db69e7a440116caee120ff5 commit 629568d25fea8ece4f65073f039aeef4e240ab67 commit 1a394b4f504f33eac8c38b6f42ba025105c7e869 commit 31b42af516afa1e184d1a9f9dd4096c54044269a commit d34f4f058edf1235c103ca9c921dc54820d14d40 commit b4224f6bae3801d589f815672ec62800a1501b0d commit 3e307d6c28e7bc7d94b5699d0ed7fe07df6db094 commit 10ba3753665f77314cb475e1a4ad0785f4770c4b commit 83b501c1799a96a41e163973e88826253ffadfb3 commit 773884e39bb5a57f998af48b3948308568027a54 commit 93183c9959d456530ae502865586522acf21adf7 commit 3c8d2d5da3e29f73fec6e04a424e789422f697db commit d969b31afa439f71f810076a5612596dae38fd86 commit e814902866ed22bc07d2af1303f3183357a438e8 commit f4aa02c43969c36213a7fd4e56831693fc83ec4b commit 351a88713b6daae5435d683ddab1913a65d09eb2 commit 8155566a26b8d6c1dd914f06a0c652e4e2f2adf1 commit 17c6baff3d5f65c8da164137a58742541a060b2f commit 75c3f06fd900e01a68b8ade17e6b6be64cfdc9ff commit fdedd77b0eb31209c59107de66880ef0be21a77a commit f3c681f0c3b171db923d6147785064962351e043 commit 60c30ba7ba2064066ec462236666058cbbf619c1 commit e06b71b2313a00579ba64a1cc43ad29d64cb8d4c commit 8f28c465a455563917aa15bf5ef40016b2a665d6 commit 641a118c9d91e53bc920ec0ea2ea350d84eb7a9d commit be8f9f4c866f41b62a3df9a5cfd54e0e88fc3e3e commit 81e0a3d1063e388efcbbb4648e07479575ec85b4 commit 5e9209c3739454a08c4d770c649187b0f51dffc6 commit 9d8e91439fc3890de55eef2bcfde97470b7dc04d commit fd6797ec50c561f085bc94e3ee26f484a52af79e commit 0d5040e406d2c4404d26b841c4aa34cec0bf1088 commit 20d70de5823ee6b9d4e8b3db4c13123cee0358af commit 961ae5f9807bb15af0065485785725768a7269b9 commit 448359c1ce50a8e61842c39ffd52f399409a6860 commit c0bfe34330b5fafdbbc63a7124841711651b96b9 commit 6777264dfabe2a7c75453031bee5bcc2e7882cf7 commit ea94c8e217f9a845bf2c565b77c5eb078e975eae commit 2e408ad7a55273b55b14ce28f62111dc1c4f7fb6 commit ba6b8479c944c50db7e2a81794885896fa6c48a8 commit d075d99ef73bbeca878fe2cbf758f8524bb698d5 commit 8bc1ab4f615b200507b113d31ca614fa17b9772d commit b5bd7cf76b7cf8f2dfe36aec0e4916a2a95c8fbb commit 4a865f6a76ed1295d878029cf7a1797395b1aec0 commit b2d474d4c8fa9cf7d18dae3c0784c4a710e850ca commit ca6eef9b1c3486bedadad6a85d246b26df51c61d commit d6e44a8548b614fa9d6c77e0c12b929c2c791258 commit 455167e8751c7fc50e88496e6d5dfb896e2ab3dc commit ffe9f1bfb3e6709769779bc6c1a5b1d971b7b95d commit 7e0d8de4d35789b57eee8acb0a952b854edb37a1 commit a897f65b3a6175243e4878e2fd2e9b8f494710ec commit def122b64e37daa39774d4afa433ad42b8a5eaf3 commit c45c999cfb6716d40af9048ed0142e42a6235378 commit 246b228eb905c94663af435a1cd6cd31cc205ba0 commit fabc65d16337b6cee1cbbd1470bbb903f6daf3ea commit cced63c3dd23e061f0fca754a3aeb35b62b0a628 commit 216c3c4424bb42bd6e4ea75cfe0c22aa7dceda6a commit 8d7b2d3a7e3aa4fac309f9a496e6b237729d2b01 commit 6901f1d6479b6f81b537672cc16720b06b2ab3a5 commit c6bf82d426d8293d7257b9db368e025b1fd66454 commit 0fa0955acdb342bee3651bacfdce3d8927ab1025 commit 3019023ec9fb2bd7b0d2d82ce847ae2520f24c1b commit 5cca41ac70e5877383ed925bd017884c37edf09b commit 2eb58f22e2761b75e4f35847be03ddd425ae2b5e commit 3543e84e20fbd60e02264f757c77c7dbdfd1ee4a commit 034142a303fed2903957b06a7c91abdff5531bcf commit 0df26c0d69dce1141218e0e5ed0ad378a0c6c058 commit 723388bc0fb68f2487795796f4e616ea39cee99c commit 61671d85def2960bbf52db22e9e45b3bf8a5ceb5 commit f3392e662efdc095f10109f588aa4f3be86f7eb5 commit 50d10d9271f6c6542196c54275091c7b2c6edf97 commit 58d283801d06d4434df6625ed6e6b8d2ba47fe65 commit cd162ae9bc3ba91eb630a1321afd3d1dde5f2000 commit fbfb5f0342253d92c4e446588c428a9d90c3f610 commit 25dd25f86eca77b1ce4a611432f57b006fa91615 commit 8e4ed3cf1642df0c4456443d865cff61a9598aa8 commit 66d71a72539e173a9b00ca0b1852cbaa5f5bf1ad commit 7c5b344537a143d15385992e41a50a9c5125e93c commit f9e6759888866748f31b6b6c2142a481d587f51f commit 7fb363c57522b704e156fc4c5fbcb7ee133fe304 commit 17e68f89132b9ee4b144358b49e5df404b314181 commit 0e4b858285e633ea6bc7335fd66529955d023af9 commit 076362d931d0d5ed01a3d1cd4d066f2e6e7f86f8 commit fcb3a4fb8255149a73afeb3d8f2397eaac3a46b0 commit 680caca6feee720d0a6cb00f892c0d2d46dc4075 commit d5022deb4a526009fdc20e4d62528b25b05112dc commit 3f96f545f877ac59d0c967f52d760b4b2b3b9a47 commit 722e96c99f1d7532fdfbb557f50a399f6cc57d82 commit 58a8ee96f84d2c21abb85ad8c22d2bbdf59bd7a9 commit 739d0f3e1f36738d4cd84166784a8f7a58d69612 commit 9724b8494d3e85cb01c377f201bfaf25fd7d38ff commit 093b79d034c59a3b66f6312863502378a422496d commit 4981bd4749fa769b3d6acbc82fe8059c030d0920 commit df18a4de9e77ad92c472fd1eb0fb1255d52dd4cd commit bd870cfd21489d28195fda157710ebd4cecaa8ca commit cead9ac8b0992ae2659b637e86a0da7cfeb5e267 commit a15268787b79fd183dd526cc16bec9af4f4e49a1 commit 13d8850a3387635c051c5ed1c8a8b6c1e9bd1341 commit 608d886c978cd5f3d8650630568d96c231845227 commit aeb81b62c7fe4782198e9dd79c7d6cdf04d92586 commit c6bb3acf1cdeed5d01ebde70b769a8e25993965d commit b5126ba85beadfa1f3cfdc9e7a8533ad444ca210 commit c3f15273721f2ee60d32fc7d4f2c233a1eff47a8 commit 6eb1fe53ee94cffd7187844d08d46ba8659d667a commit 4067f4fa0423a89fb19a30b57231b384d77d2610 commit 31663521ede2edb622ee1b397ae3ac666d6351c5 commit c9bfc37f085aa180b3c49b9c95756b9ef032243e commit 0c3f3a83c7e8dfaaae4ba8a5b69bd6bc13340d0b commit 0e8655b4e852ef97655648b91ce780384a073ff4 commit a6ed988ecdffb2680a65f142acfe3271e6c04ab4 commit 6f4e43a2f771b737d991142ec4f6d4b7ff31fbb4 commit 7657d7c96657179d002817d5ec2a1d4c84f21cdb commit e525473fd5b7202ae751316799ed759bfaaf02bc commit 20c3a0241b5c15c0d64929cba04653d5556b7d5d commit d93a4fec186c106115d0b3165047dd06f2c1aaab commit 9eab82c38d0184289ffea56477daca8425758442 commit 6da8acfdb6e1aa72787efb733e3af9e9e0c57b9a commit d51a75ac975a6147a4dea2d68cef4566f5c2ecaf commit 1c408c516414fd9760c54f6d42ed1fa44a1dff15 commit dbcbfc72d3b660b6dd9ea7d2c089c228609714ec commit e4ac526c440af8aa94d2bdfe6066339dd93b4db2 commit 250ac9ee60dbb14cdf422ab7f2bc28d671ac9f46 commit eb53e5b933b9ff315087305b3dc931af3067d19c commit c91d75a3c6a2567e8c6b44f7337b6955596ffb86 commit cbacb1b74400299edea7e9bcd58bbc7c40dad8c1 commit 2281475168d2ab3fbd763c2fd762f99a411fa1b6 commit 2000ddac9b5ce5102ab1b194a1cf91e8af3017d5 commit 833cf12846aa19adf9b76bc79c40747726f3c0c1 commit f2881dfdaaa9ec873dbd383ef5512fc31e576cbb commit 7f7a2da3bf8bc0e0f6c239af495b7050056e889c commit 6f20fc09936e786a4ba18f5514fe185e0451ada9 commit 4c288f56030f380acb9572d88396ac15edfd30ed commit a755947e050b8751fc5402609a7d600e9c756fa7 commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 commit dbaeef363ea54f4c18112874b77503c72ba60fec commit 0cf09702a118b1c09b694862061913108565edd0 commit a64d5fe490cd92d74b1cf46da63164cefcc61a58 commit a3f91f405aa7c54d0856c1b8698e4ff05ae7d439 commit a4530e20faddcc4ef4e5939f186a8560c71a5e94 commit 634e1804242b0d5d64031199236fb3f337b5af3d commit 96c468c366dacc0e41e08ac53e20a5025f6ba967 commit aa705f7ec6e2423af87c20b30f0e26eafdfd4513 commit 8f1fe39ded725483a67c15014a1863179c783b38 commit 9d1f218ddce20329a01c46d7a1ea4d88fdb0fe86 commit e40fbf616610e33aba9597f278925b4ae8cc806c commit e44bc451aa4b08845c238028daafb4eaffb573a3 commit 5c7b393452b55ee0cdbced0d3bc798f6875b5c24 commit f1e6f89506e48b42235755fb3c2b73022697d8e5 commit 4da409ba6430e3b5c6da7879dbbdc5f6717d91b1 commit 6c9e14ee9f519ee605a3694fbfa4711284781d22 commit 688c43dd6ca9e0cd0568868aefca5b041695c3f4 commit bb99c51bdaa846bddb85a1e7acca3a3aa5e9f082 commit 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83 commit d97e71e449373efbd2403f1d7a32d416599f32ac commit c0e0bde2c7e6bca2a1f195d82ef7598d521399e5 commit 146458645e505f5eac498759bcd865cf7c0dfd9a commit c3bc97d2f102ddd5a8341eeb2dbae2a3e98bb46a commit 53369581dc0c68a5700ed51e1660f44c4b2bb524 commit 4f04d07c0a94b0b30db839e44f1b8364a1b508ac commit b6b242d019ed23195c81cf00eb8290d386efb83f commit 717b432b6d55e1dcefcb5e2ec315bf66b6ab8c54 commit 21e97d3ca814ea59d5ddb6a734125bd006b66a60 commit 2009e808bc3e0df6d4d83e2271bc25ae63a4ac05 commit a4172af3040cdc207f1b60efffcdd219156093c9 commit da1878b61c8d480c361ba6a39ce8a31c80b65826 commit a99aff2608f422da833cd91fa1eff23daa05c0bd commit be1dec570b6f5a29ce9c99334c52bea94c28914b commit 8d5309b7f67571bc0c95d430f4722a99d38f3b79 commit 843f10ce6539cd5e4989415e18cb809f4cff8b91 commit fceff12e52985e49c464f402e11b2f97bce3cc24 commit 3196763851b5fb9f7c8c488e233e947292cd71a6 commit 8466a14173e5ff7c2a52d8700a13f4b841d0e17c commit ce9b1466f5a9a1b2acc80d29f12d69559fa97174 commit e60244554ca98e87ef731739f608eac54e478e9a commit 2796b7ceec95bd5a7069cd27af7e4cf01a692db4 commit 1de99ff7371bc6ce2187081bf5bfbbb4a7de28d7 commit 34d0472ce1087fbf8e2ba504a4625e4c74286c63 commit 60a2066c50058086510c91f404eb582029650970 commit 97b6784753da06d9d40232328efc5c5367e53417 commit 54bf0af90844fbf18f5be3272eda69198dfdb622 commit 92653f2a572505adaf7f13f695c1907e71a1dc84 commit 7c5537cee9a8dff956e3b9a3f68c22af06a57558 commit 7b6cf6c750da7661a90c12642c3a8f141c7c2819 commit 68914b7c4dae0fd59ccb6b8bd8e2b6f5656cd25d commit 0b8778af8babe55f133b9bfe3a5bf234a36ad7f8 commit 75830999587470b17a30d2ecad25ad13cb272c19 commit d7683c49638c83bcb6a817671bb348dc435da3b5 commit a0ac33cb9a12f1e499c9f009067a3135df626cd5 commit 16c9898ac5ab00fc96efee404a1b8bcfe20ad48b commit 9a72570491b524c9dc4c1caa7323b2297c27b0b7 commit ca0fb243c3bb53dbbd71d16c76f319bf923ee3d4 commit 9330af0af3d54df71b6b752a260dadef05a4fc44 commit 29d0732f8f61ed028d642034e5323b8cdf6a1905 commit 85ecfdda063b6f148335c354c8b7200a49640510 commit 5d6a620875a04e70c51d8366eccae74d9cef0308 commit 6cc213b9aa34bc3213e20f9256345c5cc1495b0b commit c7b3569b3ebc53e997500be09eb612b6c852525a commit ab799c16c9d537fa2f070283f1ca63a4425502e9 commit 675d9ac9d0de765531e94f9fdc536989a997a324 commit 24ffa5bb6d363c8164be6af974e318f5752797e1 commit a00a177055cced5cd2bb057a1ace9a95a286bc49 commit 74bad61c5d83f5af8a855c8b7dc8e20377c74d46 commit d91f93c7a7fb9589e62814c1e229943e1259b48c commit 946e2c5be80b2cf93be34e28b3a6bdadc8ca419b commit 3e048c8846a658098d935df83050170c8a8fb104 commit 1cb62da0802c8f08e26443a5409edba99b8a1f6e commit 8141f21b941710ecebe49220b69822cab3abd23d commit 9710b84e2a6afde2db20cd33435038eb75b91200 commit 17277da26623d4aa8bdda628d0024cf2f2e39ae6 commit 836af5be1b6d8e93d736c252e711a20db7dbde9d commit 4a4c815b08dc774dde67fb90a0286925f98204af commit e89d2fec4cde967445e16e02e406481bac380cc4 commit ee0a469cf9175aeb6131c0476c4a4a8eb5997dfa commit 67c4ca9f794951482c54a7006c8b3c367d6c3efc commit b41a382932263b2951bc9e83a22168d579a94865 commit 847e387e00547b0cc728a5e61f5beb2ff861ed1d commit 62eefd10ac1c7e976bda47ff311bd87cee40ab8d commit 62ed6f0f198da04e884062264df308277628004f commit dd340acd42c24a3f28dd22fae6bf38662334264c commit 28574b08c70e56d34d6f6379326a860b96749051 commit f59902ffcc43ce7e1db5d0c4dfee37ec2a1bae0c commit dfe9d047b162f3a79ab63046608c693ee14c5b7a commit bb670c31e13a402d30afa3d484403196031d0fbd commit dee44a7cb577f2aba39e1713a51e9faee2f65534 commit fd69ef05029f9beb7b031ef96e7a36970806a670 commit 62341f7bc2ccb7c024eb023a05714d798ba6437d commit 0964fbd59e7131c1bad4c8549ec13a27104f0b11 commit 0345c8bc22c92f3d5fc0287957a96fd214297aa4 commit e9180253e22596991db426ab5b01111c2a739db4 commit 4f842ba7cdd83cba1d5c0bbd15ed9d14d882cf89 commit e1dbe625d6ac2821eb29e087db46cb539d8079f0 commit 507293b1b207e419fc7ea4ff1d72c2f1db18e33c commit 64a905203fd0da3e8a3f649593cc48c9fbab25d0 commit 792be2e23ac69821db7860ba4ba94592101f0b07 commit eaf3adb8faab611ba57594fa915893fc93a7788c commit c9875d0a789060facc274dee0d4eb6500d471772 commit 671af06690e7f79db51b475a35c3b2619f345abc commit 434967aadbbbe3ad9103cc29e9a327de20fdba01 commit 65f6e9f7e1319119096a6dc93e62894e4375b578 commit dd3e296289346109d41c6317124f51aee0269c25 commit b3a3c9a6b27b68310f1d4d486f47556808c7c855 commit 5aacf8917fde5bc2a640f3cd49130c0e2e85e726 commit 7b2363e06c0ff4b868e7d768d605a9e656ff61f3 commit 51d334d6a49629ea03a2dde562d46846eb7d07a0 commit b8dc6ca028d9a39196a3a066b9ef2d4a5eca475d commit be64336307a6c3ee71fe1337c1b9f0495aa83c50 commit 78c508a1c162c90c48e12faa62bdab8b90e6f17c commit 41cb5a5e8480fa41ee452ee60e620a4c1de3c323 commit 8151a6c13111b465dbabe07c19f572f7cbd16fef commit 329ee7087bc9862977fb6e431b8b0ea5e7e261b0 commit 00f06855f6e68954f67616cd5560fca25c755eba commit e80f8f491df873ea2e07c941c747831234814612 commit a0fcd3df4591043d447bb08919eed2ce68fbdb5b commit 130376ab8300ef06231ebac4db147f06d601d53c commit 86598c3819fdc70e59d28221bfa7bc36e9f5777e commit 57b09a168ffe88a4c088e8f7ca5de2ffbb8fefa3 commit c0277b9d7c2ee9ee5dbc948548984f0fbb861301 commit 92549780e32718d64a6d08bbbb3c6fffecb541c7 commit ecabb5e6ce54711c28706fc794d77adb3ecd0605 commit 4eb0aab6e4434ada240286d934651dfdb2e08301 commit 9cc033e07d025dee1fac178c20ba96c56f8d9a91 commit dae5d79a3bcc3101e1e02a1c2999ca74d1efde05 commit b62ef7e4021f74bb12445987efd8109ccca289c4 commit e102b5ed6e283a144793cab8fcd95f61d0ddbadb commit a225800f322a3d6cc8b8b6c7dc4d5281f2f5375b commit 1da86618bdce301d23e89ecce92161f9d3b3c5e7 commit 0829b5bcdd3ba077c408e71e22ac2bfa85bf2c95 commit 17419a5c8c75e1f9de01b094f763ec1c6ad02979 commit cecab0bb737fb74813733f2472761fc3a93857b1 commit b7b930d104c38a545d862896759863d649be8252 commit 6600c55ba0d46c6f2f74eaa6ddfe2b66cb8df852 commit b635066c2e0fcf74428b0864c249c1dbcaa4b5bc commit 94a438a7595bb5a7a2efb94de2dc818845254e4f commit 372f244b01784b5ee233cdfd732b4c1929ddd71e commit 91dae758bdb854367bf0811d97acb84e791764d9 commit 636cdf6fbddff4780ff4452a82afb099292b88b1 commit e422c0bfd9e47e399e86bcc483f49d8b54064fc2 commit f5510726608fa035bdd2f1fc167cf4a0f7bee22b commit dc06efbb7934405461d95bba5b702849058424a4 commit 9d09cac47de5358ace64dddd14278fea002e68c3 commit 0f9ff361ad823b887cfb09dd78ecc8f25d32ecfa commit 219b45d023ed0902b05c5902a4f31c2c38bcf68c commit 5bdacb0907c1f531995b6ba47b832ac3a0182ae9 commit 4e996697a443a214887ef81b008c344d183b5659 commit a857add73e61277fb8f688234c9d383130313ea7 commit 89121e5d0857bbf41f1987c3c6019f4f318aec4c commit 2eb20b96d7696dc354e1b38c511418b56291013c commit 549dd786b61cd3db903f5d94d07fc5a89ccdbeb9 commit a86ee96ce819800a399e0260c5ffad793c9c6ac3 commit fc33077765e9104f84b49d9b9e0702a41d5269d6 commit 17d6abcbf6249b4ef22f41b255de2be2691ec32e commit 885c31382509d13fd70f6a9c42637eb72056a6ce commit d79fdaef2b55deea0df3fc6af4d4ac60e81a527c commit 08b5a4798713f4331317272752b27b1c4f6a246d commit 7d113cce5fe92c8bf0a2e2f19f71762a845e9d9e commit cae39e60abb10ba1e8cc095b7d5567edc9005f03 commit 6d470f9b8cd3e88d097b332bab3e7231f2fb3dad commit d27a14060f8501e556a65b346b2644be0d0a2de8 commit 969135862e731620b9e03bb0c21179ff1cccfd0e commit 5d45c01dea6f9e0f2dbed3ffee02ac2e80579ad4 commit 0dc4fb69eb14320ea0fcd9657b7748eec201ccaa commit f7303ab29d08a551975aecb4bc6851ac3445abf4 commit b7f317e62968979343a4677ffd5bd91dd3edc204 commit 769b081c18b916e362a2b623d7c28ce761c3165c commit 9aec6f76a28cd669aa98403883edda3a7981fef0 commit 5c61f59824b5e46516ea5d0543ad7a8871567416 commit b9396b49879b6e3d9069586e39432b2203de0a7a commit acc4e41ec41fa28ae9fbdb1a2750525a7a242743 commit 39fa14e5bdd037f50df0af408da7251e400b41fd commit 21ff3a16e92e2fa4f906a61d148aca1423c58298 commit 1da91ea87aefe2c25b68c9f96947a9271ba6325d commit db639278e6217173c21bf8bd52eff2e9a0d6919e commit b8cdc47adf059f60a39555eeba1db92c503a5061 commit 50680d1698f4d4c9651822398805cb943b7c04aa commit ec0796e6446352e9e4ecb1804bf470d1ca47c5f9 commit d408d6f8cbbb5ad92b383f33d091f027f5740aea commit 844efaef48e846b5310b0e7af5e7578762eb7e8d commit 34e087e8920e635c62e2ed6a758b0cd27f836d13 commit 237193e21b29d4aa0617ffeea3d6f49e72999708 commit c3c5b79b6ed1d7ae7356b51f7c17bd88197bf405 commit 7a26f18119d1daf910cca58f875582d50d0e4974 commit db1aeaf2a1374fb05d82a1f8fef5cbb059ce6a01 commit a0634663d09abcda84eae37e9817490628a034c9 commit 17674d6603eab37a4f7b1cf5ba345d5a1e275fb7 commit 8df39400d0db29f84a72c891d1f526e3b61a332a commit 6c22aadbf6fd0240181eb4897308153c2aabec2a commit b5757a5be2fac24f5c138e8ddb3b2c7be8ba1cb3 commit 446d0f4849b101bfc35c0d00835c3e3a4804616d commit b7ecc44a1b0427d8c71fe2e2d46c4a8dd6e6f64d commit c6c2e8b6a427d4fecc7c36cffccb908185afcab2 commit 0cee47cde41e22712c034ae961076067d4ac13a0 commit 7b3a4e1d559e892ea563f46f45c504a60c82d70f commit 3834ce360067b4ee98fdef14571923500a0499a4 commit 9a12b1c7a0595736d398b24712dc1ce79072662e commit 8641b817392bfb12fb1e71ebb68c31783297bfbd commit 17d30ed33c8a9e7b866dd7c2ceb4a6858cfcaa81 commit 020620424b27bababf7f53d00692ab919c357a3f commit c6dbab46324b1742b50dc2fb5c1fee2c28129439 commit c30fb344a2f7fb5d553e98577185d9f8147598e2 commit 45a2a4514320f9c835eccb661601357cb1fefd82 commit 947c0808693e267185c5471f87f83146e4300561 commit a46a7bef7d41ee7787c246f47a656fbafe02f122 commit 3df34334147e73b05480db6cf8353a405597d04a commit c7d4355648ffa02a1551495b05c71ea6c884d29c commit 2f93ec07ab54cae66155d0a09182843f358da178 commit 434b3554d6435dc4e19083a2214dee40a88e09e1 commit 311f2b587461f86e3c30e7ac28df38be4a862ac7 commit 0fe20258b4989b9112b5e9470df33a0939403fd4 commit 596a4ec72876f1061f0ef4be47076b093f03b4f9 commit 782cef7fc367542ccc851d93edbed166defdfc27 commit c20da89edb69f05ab78fe804899d50be2596b0f0 commit 95d9e0803e51d5a24276b7643b244c7477daf463 commit 4af0d8ebf74ccbb60d33fdd410891283dd6cb109 commit 680458d41aa46a009909482f58358205b5c4b438 commit 8c4f9e466169b3e411947347fef09382c14e5733 commit ce4f9f79ff8cfc78a064c533f0aab563a5613d81 commit 1b686053c06ffb9f4524b288110cf2a831ff7a25 commit 66e2d2d9a59f896def82a1c8684368be45cf4c06 commit 07f4f9c00ec545dfa6251a44a09d2c48a76e7ee5 commit 98df5a7732e3b78bf8824d2938a8865a45cfc113 commit bd15f805cdc503ac229a14f5fe21db12e6e7f84a commit 9b7e697839c2745c10f63fe5fd54c9e328fa2e3b commit 70f83e7706e57200edb8ffa36883b2f43d214142 commit a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 commit 3bb41f2e9134906e0814766c07dfbdd9de0bfaf5 commit 027347d17a16562f3be272833243b835c21aa2a5 commit cd9e9e0852d501f169aa3bb34e4b413d2eb48c37 commit cc2991203c9d4e23051dbe5bcb1fc700fea26992 commit 67ea53a4bd9d03a85eecd99875a2a794c886f788 commit 7a1eb66809390d06b744aa13123b925b64b54c4c commit 24f483ba49c9acc1139a0b4cbfd1b122fbe1ed7f commit 5b7813bc6218100d7bbc6d3a1b582bfd64034bf4 commit d6ed53712f583423db61fbb802606759e023bf7b commit 12dbb3ed212fc7655fce421542a5add637f8af7a commit 5ac2557d75f94777076885b5119d3b6755e6761d commit 17b6527dcfb3249401e037734ed3fd0f4752572f commit be280fddfd645ea0ce4c7a26692c3d1115447e32 commit 1fd2cf090096af8a25bf85564341cfc21cec659d commit 8f9b23abbae5ffcd64856facd26a86b67195bc2f commit 267c5876c977d5f2d5a89f377d74adf42b5c38a5 commit bbec7cea6fa4a0463d4766ed0e6bb347773d3949 commit ef6c2cb349c708676b7820c36a5beb75868ad544 commit 61cffacb3a1c590b15c0e9ff987de02d293e0dd8 commit 42b3a6f12aa56dcf789464d29fdf11f33bf0e793 commit aa02486fb18cecbaca0c4fd393d1a03f1d4c3f9a commit 35c7152202e111968b10140383f49da9159d2704 commit f83cec3b3a7c968bbceb810b7acd1baf3fe8cd87 commit e69c2dd7534f3fcabf7bb801db2a7ac71e7e5da6 commit 9c081c11c62112f1c30ff2426f755279a43fa1a1 commit a85c3db6b3b088f63b5b8c4fd4352f56f0e4ce3d commit 9e823f307074c0f82b5f6044943b0086e3079bed commit b2dee0837a4be63e8d3e00550a9f057644f962c4 commit aa539da8aff07ab08def6490e8c9b441439e70ba commit ea5d6db17a8e3635ad91e8c53faa1fdc9570fbbb commit 98cae695a8ae0e4291b1fa7feef9b54fabefe885 commit f7fb9d677faf0460131bc2af15afd766d48a1f47 commit a7f670d5d8e77b092404ca8a35bb0f8f89ed3117 commit 6a28a072d90e4543b5e07a904e3a6afad0117e26 commit 1091796fb1d9d6888656f2416ad5c99cfc62a4bf commit b232c4a63a176ed837e3c6bb4a3ac79a1ca5ef1d commit 98aded657f506cd5d6d459d68ab4996d9dc0938c commit 1d734a3e5d6bb266f52eaf2b1400c5d3f1875a54 commit 4b498d19610c6acd36a8ddf622afdefe4ab093fe commit 5ddb0a8aa8e4754a8fb77e284e0d6f46c2350f88 commit b080a60731ad909eae4463684acc23d322e93579 commit 52e371914ed37f531a8d8c3b4cf1a1af2753eb6d commit a884dde8d9b6a4a817cc39663db824e5602a8001 commit 1eda95cba9df35f1fb0fb4b89511beb6603c614e commit fde7679a2b374c8c0932f5cc48438a312f3f442c commit 29323882aa48fc9f273db5820babf32c979359a9 commit dfa5543193f303a7270ec7c725e656970faf7d57 commit 202b85da0a2fb6f034f0290af841e0f29352af9f commit ab0d6ef864c5fa820e894ee1a07f861e63851664 commit f0ffa657e9f3913c7921cbd4d876343401f15f52 commit 4551d60299b5ddc2655b6b365a4b92634e14e04f commit a98a1a3c448820dfb3974839e1ccedf80b6fcacd commit dd925902634def895690426bf10e0a8b3e56f56d commit c7085d08c7e53d9aef0cdd4b20798356f6f5d469 commit 23ab1cb6591dba7c97b65eb407cd71147bd878b8 commit b0ee81dac3205db1e01019629c83595e9433d96b commit 8d3a2d3d766a823c7510cdc17e6ff7c042c63b61 commit 3396900aa273903639a1792afa4d23dc09bec291 commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a commit ddda6542c85304eff31fe433cc0fc2c0d03c8f3d commit b3a901841ed1edd65b2f4cb9dd890ea1e2fc7551 commit f366d8804fc58f87b682bb02e8bf970b08e5df7d commit 21d6376865219277ca91bf95f9e54494c1ea7ae1 commit 7f75eb222d5c8c4b166ff99a38c85a3de97e0647 commit 649ae0e0d55f6d432ea73298929560ecdfaabd05 commit 34aa0a87f83b5322bd8541cd9534179c90c580d6 commit cb2f92569a2b7809a0569b380b9a6f2afa368cb2 commit 9aec90f9e545fba64ca47c18c37c588fa0d71b22 commit 1b9e8095fa3ac29e3a00ba1326976b479fd809e0 commit c6cbfc18138a22cfbffb208be92b18a531233528 commit d0fc54a201d673013b031ebce32e5d8a7e3bfb70 commit 6276706f33cc38ec59ebf03b680240ff74740c8a commit 7d085bb17e3cab501218a7a4604aff6c4a8b9585 commit fbc64aafc99baabe4d4e4d5a58d6113aad7909c7 commit f76506358078809461866086c5e224d949002016 commit 2e5d47fe7839298fa096970e184aac9bf82c3bd3 commit 5a891a0e69f134f53cc91b409f38e5ea1cafaf0a commit db3461a7743817ad7c73553902231b096616813a commit ed7171ff9fabc49ae6ed42fbd082a576473836fc commit 437ad4534a15ccf538ddb440cb29d3f445251605 commit 8a0f58ec4728ec04c654645bf8ed4070821ebbf3 commit fc7c7498db3da52efe874029a9c2ccc0ad2646ee commit f9e491c8633277d5398f384cf1fd1a477e04363f commit 37ee1456239cc5680f672f37417e52db2349965b commit 406792dc2a5c82e2f312e10c3c2c887de6ef80a4 commit 57a372f67688dc7aee23a2a00bcaf6188f592934 commit 15789fa0f0e29cf802f30d0e308da9c6b18c116a commit fb0a5834a338329bc665c7ce2b89f3e376557565 commit 5fb4d2a77113d3ebaa5c9dcdbef8b7bdfdeeffb2 commit b5e1a3874fe3cde73a4b02870bf3e8fa43777c5c commit fdbd69486b468e4963b4ef9f76901d3788252dd5 commit 5d0112f77793c0351faee6c723a6fb9191c12be6 commit 6f38589e170f7649bb4b5efbff6b681c31433440 commit 4c953e53cc34f8601b7b7c6286c65322452d35fe commit 186020c16650d6f7a05774ef318ae9056aae4f21 commit 2e9bbdd7b7cb5f364a917e7c6eff2a2c36f11895 commit 4dc4422f11b041a9cb7a86f2f9bc310e48620fa2 commit 31ef969301e58daaaed1728690e16192b77b9028 commit c4f503551fd65e50e657219c9bfc2987c51805ca commit 27ef61f9617478c432bc477d4eed8963deb89f24 commit a48f31fb78265d992c75d45bea215998367d4956 commit d082e5cde489caf7b29e966a9dbbc3fb43fb9164 commit 3ec2ad7c34c412bd9264cd1ff235d0812be90e82 commit 0f2c243dbfa008cec2dad03ea074156b6b176a03 commit 89ec85d16eb8110d88c273d1d34f1fe5a70ba8cc commit 3fbaf475a5b8361ebee7da18964db809e37518b7 commit 20588d5afce3992ff4fc9b61085e3e1affbac620 commit 27a74c125d029d0606b81ef865bb68dd975ca2f7 commit ab10f7748789fa9247949b530d8ee7d56eafe9a3 commit 6d88c0f94ac07ffc9f08e459cca036f4af08617d commit f685b38455b0c990a0f018a17b238d8ffb5acccc commit 4af8071b654dbd9b8bd003ab8e49eb16b4cb9fcd commit d479158f6502a3698b91829fa03bd3f2ea38efe7 commit b5be054c585110b2c5c1b180136800e8c41c7bb4 commit 76acba7b7f12517990f326fabfecb6f55e334233 commit 478efcb90b074f0fdd18e62b30ce09140bd69022 commit 5b7a59de4845460a313d93d4839258bfb982357c commit d4f1fde734eb73767015272dd2e8af1440b30a9b commit 32aada4d0a35ee613ffed23090bc23e1b40da419 commit f3c958ab857927e1ef2cc6806fcb0eb3f36c923a commit 8962915044364bb7c36b3018f74371a798aee46d commit 9d87dac3f9adbe30d545c577aab483dfce71143d commit 46553db49cf7b7dce95879ee0725f7d95de3c184 commit dc57edda816df4fb43bfc2809675e91d15994195 commit 3a50a51d04d2ca5066949073274e70191104f8e5 commit 439c3b124e9ee704766040d5182ccdaeb4d45499 commit 837cc7f1bf2bbebb05781efb6bc1b10d5c2e9308 commit ef9f3b5fd9d2594766c60b1e12b0e72e4918512c commit 2239aaa204f1c5002018a02903df7e45a0e0e503 commit b910cacb4e70066238feafaf3f2430ef2c8c3b12 commit 0eea81ee2e12900bd5276558434b675b52ab2d5d commit bc62abe1b92db4e027a92a6799f2193bb93970ea commit 1a2103d68547407a098c237d7cade79b4ad2b88f commit 2dc3851ef7d9c5439ea8e9623fc36878f3b40649 commit f49280ffd254e718ee01ef515fe91854fdf005cf commit aec773a1fb0253494b85b073f46a0ba1d798b726 commit ee7a846ea27bcbef5182d15923339a7bf182ec65 commit 96595204195d7e13736a84295e217316610d4cdb commit 19cff16559a4f2d763faf4f8392bf86d3a21b93c commit 0523374e303051c94457df9170f12a752d8b09cf commit 852856e3b6f679c694dd5ec41e5a3c11aa46640b commit f784750c670f7c5ac572590ddad77a89b4c997bf commit 3dc6da76ae55d667fca2c9f9497e8ea1a27497b1 commit 7970cb36966c9b9183255dc097ae0446300eebcf commit 53fdfa19e6a9220a14c0bb21273880774ea70dbd commit 7f0d7bee2079fc899c8280e177b0c0feb8b9debe commit 0d92cd8935a3fffbbfee0fd59cdc89ac5167b14a commit 2750ff97ee385b85195c5579ee911a551fbb0dd9 commit 770bd1d341130ff38feda169177159cd78389cfc commit d16ef1a18e39a5086a419d8b3c71adb30273881a commit 226d92e49a7e7a7f5a3a37a34df7c319b72009fc commit 4099cfda9dd856222d7cab6970a65896375616d5 commit 6b77dab5da721f2fa9d3c3611e1cbaead8030706 commit 7116c35aacedc38be6d15bd21b2fc936eed0008b commit 492be2a070f023c66aaef6ebd664567fda28c2a6 commit cb8f81c1753187995b7a43e79c12959f14eb32d3 commit fe828fbd87786238b30f44cafd698d975d956c97 commit 737ad3776343f6fcffee9d0d849dcd6f6b25f05a commit 11c742bb5a26d4adc873f6e6e2b69a59e1eae285 commit 8a879141dcd15d2db876ce3adf88b9b01650b7fa commit 6841a26e2c6715dc52a1cdd888e958dd2a92a5bc commit decbfaf06db05fa1f9b33149ebb3c145b44e878f commit 23683061805be368c8d1c7e7ff52abc470cac275 commit b9d228a5b2ebcb1f1f63170f5b20bc2f9d276168 commit 00b8a47d8ebe0419e649dc81b96033f6db6a4746 commit a055c91ac6ea493c2508401537e8732dd2a7bbf8 commit 6a60273a0e8274820210abcfe7ec0d5f1f38f458 commit f7c4a15225faeffe1e9f9a752097e7d85603ffef commit 91a759d402b5c17263f82097c647e784f217e2d4 commit 97d1f449c359207b2fb5bc62eaefb7e21ad619ae commit 64ddf5123eff2edf47202e08744c3c14a9d28f59 commit e139c0eb22ce5b2ab6a2056c1ff495f3a38322d7 commit b61c4bc674c6032827f2682a0c72ff577c36143f commit 1453323eac4f13817a07f40e78e76dfc635aab34 commit 7586fc52b14e0b8edd0d1f8a434e0de2078b7b2b commit 3338e4f90c143cf32f77d64f464cb7f2c2d24700 commit df2dbc925fad3274b952b865f85d26d1e056c1cc commit 60db6f540af9f93144d5039140aa2ed17171d168 commit 051c86afc342aed1f84d66ff5d09dc9e1c1685a1 commit 04b5b362bc2a36f1dfe5cad52c83b1ea9d25b87c commit dba1a6cfc311833e10df978f07147ea93b7045fa commit e189be9b2e3820c88164d95090f1fd6343cd77fc commit d361ad5d2fc0e4d59d5d538092c9b37889756642 commit 22ff907d4f0457b2800f4c6d4f40d4d4d31f7de1 commit c2e70d307f4491ff970208a41cce84c95771f340 commit d4c38154951b2bff6bfa4d5eb56df0bd08703cf9 commit 335288315af18c0def7f47a37fe7eaa782c98f6d commit b1f49ff9cbe14264c7eb33462fb700c49c7d91a8 commit 234eebe16138f94de3046f60c52763dc17fe5fed commit afefd6f245024684fff75100052065d6a9e8f75f commit b710dbe55dee946d82bc4815c40373cf8a391581 commit f846250b8a20e6c1225c64ce87a90d4f29cbf351 commit 87758a0ef12cfebb9fab8ef1d0e234dd7b3f4579 commit ccf8ef6b7506cc43e7fd504a85465c1c0786a107 commit 9a16042f02cd08bbd0a5a2d8e9c95347717165a3 commit eb067d65c33eecd4b81771384183ad42eec259bf commit 18ac82c26da45d033df7eb993139da83dd53ee68 commit 9de60462cdba60f575f97ca2655533b35273c715 commit 8783a18409b48455b3a63f0cd930c7c88beee93d commit 7c9cb6d1bf122fdac6a7d51f7dd8cc2d8c94b452 commit 4e9e50b6aeda3e3ce727453c5455cf08c68dac8b commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1 commit f327189389785b26e49904a7d3ba0c96506a4586 commit ec9e2e7acc6dabb8f00c2c60785931310caaa883 commit 2344413205521775d3b1d418e5659e3ae3bc263f commit 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d commit d07722e1fc749fbd78992650b6d00c9a2619be70 commit e389eefe34cebc6219dbe76a923b342b2f31e3ba commit bf2bc61638033d118c9ef4ab1204295ba6694401 commit 186fb12e7a7b038c2710ceb2fb74068f1b5d55a4 commit 88c511dea151b931ba4873119b1b3555aac0ce53 commit a9556637a23311dea96f27fa3c3e5bfba0b38ae4 commit f15e5587448989a55cf8b4feaad0df72ca3aa6a0 commit a8efd8ce280996fe29f2564f705e96e18da3fa62 commit 609d8b1c422cd8d1f93bf526fb236f2e07687e7c commit 255fc1703e42321b5afdedc8259ad03c7cc533ec commit 32a42c93b74c8ca6d0915ea3eba21bceff53042f commit 77cc3f6c58b1b28cee73904946c46a1415187d04 commit 4cce34b3835b6f7dc52ee2da95c96b6364bb72e5 commit 5151fa35ae5979821d091b80096b4c790b187bac commit fca0abb23447c37a6bdbc76798c24623a9b69a11 commit 40520283e0fd11237ed9dfc0991503b3403d5fa4 commit 321d6b4b9cbe3dd0bc99937d5e5b4d730b5b5798 commit f6d9f39f8d9167627bc0f9e3e12ee0100c1c1919 commit 80431c017f745a818ea45ae6a8373b737f73b1a8 commit f89001ea41771fe94005920c363dee43e8078bec commit 0e35457eb4b75f2bc9eca58a46d12e200e15e47f commit 770a961d581c577b579d8d38414b2bfc0b4766c2 commit bbad0090b9f4735e35e9881278b7a353f71b43d0 commit 9e7a74a12101bb07ccc22fb180c5e44051c5a407 commit 44a37ba12857c78389cda176c093967406250cfe commit d20c2f8464280550aeabd2766728590cf0ca8a4d commit 2a2391f857cdc5cf16f8df030944cef8d3d2bc30 commit 5e9c0d1c5ea355679f5b2a57b0c1b5932d78719d commit 11df68c265460d4dff5d19a1313f0fff69470f98 commit 453afb1a439994deeacb8d9ecbb48c1f2348ea0a commit fa509a33e34849cce6c17f969991dc87a864fbde commit 7bb98ca6542e19a9da7cc322114bb4867acd9614 commit 85878978fcd2812eaca309ead436bcd38777f6f7 commit c8fc8346bdd097d624771e606aef93644c072ef2 commit 5a48d67ac336436ed4a79c1c9e036a409b502329 commit 4446387572fb7952a387b8e45e8a96b4f08a2a53 commit dfc88eac97e2177844e5dfa877f2ff60c73bf507 commit e0446e122eae43c173d0c99375e1b2cc8da009a7 commit 168448111279e639e3296ee5c19e0cd96756422e commit 69f0925c67c21c1e3ccda152d2b6ce21c363e563 commit 244fe1666364865154930f34d8df5489df1922b6 commit df99acc7ba1be9f111debdb75e00539fed8ad21a commit 6dbd43dcedf3b58a18eb3518e5c19e38a97aa68a commit 6062ea9398d3ec09c521774f9d81f604d1a85fbd commit 0567f18e0757a260031e59487fe01f402c16c0de commit 8b5ccc9743ab026b12075eb5e3883cc9e42bc683 commit 1144e0dff5e68907cb8d3e2d64d1c00e2a96d1b2 commit 136367290ea5d7b5d05696189e9fd6162b9d9742 commit 15ca09499bc669b600dcdaf01fc0bf8c55e15b35 commit 34e804220f693fe6bb1c4e50f27dd855e9313f0c commit 919bb54e989c1edef87e9797be125c94c450fc65 commit dd6ded6e87a97a32e06c10b7f6639eebb779257d commit 58cfea648ff3b3bd283c03f094f24d379fe6fa82 commit aa451ae76fda24f919174a17df31c290f91a953c commit 852791985af63bcfd66d7f6ec160cc5f9fcb020a commit ab0b0eb5c85c5961913bdb9b8011cc8f5c14978a commit 065ca63e161a1ed7e619ef7dea0c7c6435ee2f8d commit 1c8f80c2aadf76daff01ab133fb11136e7248746 commit 6133cf70725049344a679f85df27d146a2d995ea commit 4b570ac2eb54f66ff64f2864be6303b8d67cc7f9 commit db6341a9168d2a24ded526277eeab29724d76e9d commit e28604d8337eac97fa956d6682b6312741ce85a1 commit 01bfabc2d1d8aaffe5268f8df0843a6d916dcbaa commit 75f0efbc4b3b088cca20864d055b3854a51b5af0 commit 8f4eca6ac52a72181b4f054d4ef6289a5d8cfa5d commit b05d6476ae2dde8eb447f907ab689083499edeaa commit 40318a2406bd426c6f4591269669c04e8eda571d commit 988bfa0bc67d7220ff8d9e2ba3a425727aa98af3 commit 0e405395e0b162075001b9c027443dd10b723a03 commit 570867ef90550b01f0ca0f919dba308c3f2fb605 commit 2845f512232de9e436b9e3b5529e906e62414013 commit 4416377ae1fdc41a90b665943152ccd7ff61d3c5 commit 73dd0ad9e5dad53766ea3e631303430116f834b3 commit 875ff9a7ee8824200885384effa7743892a34ed6 commit 010cc730ace807c6d267481b5fb6ff99acc35c46 commit 6ef29715ac06fad7b3e43086cb4df97952c3a4de commit 3376f922bfe070eff762164b3fc66981e3079417 commit cb5164ac43d0fc37ac6b45cabbc4d244068289ef commit 537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b commit e45b6716de4bf06b628a9f3559f7fc8dd5e94d58 commit 58a261bfc96763a851cb48b203ed57da37e157b8 commit 25ebe10e3f4c897a2d348a9d4b674ee9ea28225c commit 5b993d00d7f0c970a5e5d34c1031069fb13b6986 commit b5de6a5ced074910b8fe57d3b0ab7f8843f85a3a commit a323782567812ee925e9b7926445532c7afe331b commit 6eb2aad402cc94ab4dd3780d8fd94c5c9bb7ed4a commit 501d94389310bb282915e730386d1150b13ae321 commit a64e7e5b05e014dad9ae5858c9644d61400ec6ef commit 122824165471ea492d8b07d15384345940aababb commit 66a0f6b9f5fc205272035b6ffa4830be51e3f787 commit 6628851159c77cf5666160e0272d46acc0772a6c commit 3126d5fff54368288e7fe1c0fd4ecb36b868e5aa commit a4dbe45c4c14edc316ae94b9af86a28f8c5d8123 commit ff9c674d1127e768050fe418470e74586985c87b commit e24b0ef20a20cd26a770c66bf87d911838ea00d4 commit 65112db0c21022cb1caed5a03c6392eaaf984c14 commit 4836c6cc01a16f1ac2b436550299474ad7183c46 commit 6729c73103bd7a0e60b0c980b51b5434010b4502 commit 1b5dfd1881dbe303536d4167500b94549ff2f6a7 commit b330f148017251810fc1f0c297f51b3039b796e0 commit 594cf78dc36f31c0c7e0de4567e644f406d46bae commit 51394119f640423858a2f04076d6f1c3e83fa715 commit 67733d7a71503fd3e32eeada371f8aa2516c5c95 commit cf4d37b8157ca085c17fdc1faad737465ff311b9 commit 22bc22ccf95bfa6eb6288ba4bc33d7fc0078381e commit 5fbca8b48b3050ae7fb611a8b09af60012ed6de1 commit 45c4d994b82b08f0ce5eb50f8da29379c92a391e commit 071d583e01c88272f6ff216d4f867f8f35e94d7d commit 037f93434ce9aea3dc19ba2d97e888a12e538f7b commit 54f90b03335916e21c417a31d0926841f7d97c56 commit 9c57bc08652a7c8e0e355c52c023fddc090fe9bb commit 002353a537a29b9be5bde3c1d9964628f0d20d45 commit 11b7309dbe9fa98d9b8d18cd51db4f385c37ae30 commit 19f01d4bbe9daf71901b200ab5c52591946b022a commit 8a04e342684a75ad1455fc3f23fab8e67c1aa9fc commit f9ae00b1cfb37ccf57017bf9cd82712ee0a5316b commit 3f53d7e442197b7e7d56b470b02dfd37a8bc5c46 commit 4461e9e5c374f8c11fee8e4a0e3290b072cfd538 commit e55ef65510a401862b902dc979441ea10ae25c61 commit 01cc7b2e8a59fcae0c4493720561e5b33a195fe7 commit 014125c64d09e58e90dde49fbb57d802a13e2559 commit 04cf420bbc32a599aa2481725f708435ea19bf3d commit bbb05f8a9cd87f5046d05a0c596fddfb714ee457 commit b932d5ad9257f262a0bfd1bd7146120b0adc11a7 commit b86a6a57b8ad1699ba8b1c270a79678383baf632 commit a08d75927f99e57c793f3a5d11260c22893fc0e9 commit 3d054c40766024d9d8fb051d017ceacf2b795f1c commit 5d666496c24129edeb2bcb500498b87cc64e7f07 commit f0b7dcf25834afd17df316367dfe5d4c890c713c commit 949237a34dba3f0218857f5afa0dde2076dd8c82 commit 6dcc304f85898b099b35c63748c5e11ba56d0c8a commit 87d23164d89c3898a0acb4ec0b431e787c27a91e commit 6692982582a54e7ecc80d7b0dae5db6cd47e2567 commit e565b6b0b5eee112db803bd955fb0387ce952d54 commit 4437936c6b696b98f3fe1d8679a2788c41b4df77 commit 9793a4a6e5eb8764c7410c361984ed01722bab9f commit 6efc0ab3b05de0d7bab8ec0597214e4788251071 commit b4148dc2fa062cdb94b5165d39827bcb1a3daa28 commit 1b0ce903fe747d72e9eab86a06c79fb2c7ba2bab commit 469a486541b6eb0d695a5558e68851fef35c16f7 commit 38d6f7e27d318cf41c2376980a105d02ac6e8b16 commit 3715112c1b35036039e8c4f75868a0b56a71a51d commit ff95eabe57368d641589441e8f638b4d59f79a82 commit e45a3933bb3ebd9a2ac95b6b60da029ee3a9f4e7 commit c50fe289ed7207f71df3b5f1720512a9620e84fb commit 97c6efb3649724e6163774f0e7405c5ca8b1097a commit c66f4711f79c937832b6c0e0b1805061667d99ea commit 727eb1e3f014e66dcdec53afc6f5bfe0d8c0871d commit 7546a8201ba288530ed1bbf2a8bdcce5e034a234 commit 789e51597d33ec0053b029127d797d86c0d857eb commit 379cad69bdfe522e840ed5f5c01ac8769006d53e commit aec8485f226c36eb4eea1d489772cd6f2c40144d commit bad928d2cae5d4d5ec1474ae7428a797fb34c111 commit c72084163cd22ebf59d936669ec25b1fc2b7494c commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335 commit aeb4ae66cb50faddf60be9297d0d5d392aacdd3e commit a7f657097e96d8fa745c74bb1a239ebd5a8c971c commit 87d8ecf015444c51ea9d9154f633f98b7748a724 commit 33929707b808ba7839c40c15d3e68cbc51070b31 commit 4548f10bf4c67b569b7c9fbc6746340a558faab9 commit b71ccff68ef1a5bd1c02d0fca01ddb3d9088329a commit 175d648be98bae22eb22444377dd9a0c497c9d46 commit e0cb0c785250d0565c19ba17fc95bd7ab97670ba commit 076403a69837c1f8454ceced3ed6f0465835f4d1 commit bfbdf72d6c145e008805f0745ff79f9b8e301e0e commit 33eca84db6e31091cef63584158ab64704f78462 commit 84addde447fd9d713e101437db0d4924855eff4f commit 81a1c37c8b52eff636e77a794d0f0620c3a40af0 commit 21bb04152a18ac2314ef4186b6dcd46f1b847354 commit 70a65a5de23337c0c0251c482520224ac80bdeb5 commit eb4556f25fb4cb3a005a93dcc6dcc4b0c024f5f7 commit a69dcaf9310ab09ed97711e0fee08e59218ed8a6 commit 8d5ac8efb6d94efda53f604fd9c072b4754a3d85 commit 2039809783d630c1022bb3debe648abced7861c4 commit 06358ccecd75bfcd988f347f79592e23159aaaa2 commit 51e039542b87cb649d50ea3b5cf90847be32a30b commit 44378f6ef2efee3ccfa87de5860662f2356bdde8 commit 07226d09a200b92797afabd3a5131a0b504344c1 commit b5d4657e192ba7a3f21fc397cf5d169982b4ec0c commit b2fcb48214980adf6687dda84fa33f01e9a47e28 commit a74549dd55d21612171334fb70e45241d0ce0487 commit 2160f6f6e3cf6893a83357c3b82ff8589bdc0f08 commit 7293859c51e1d7f923073aa46e2072333b3e143d commit f7c2ea682d8ba17bfd37abd1e734348e0cf46c99 commit 5ee2d63ca1201ed23c6595cb2fc927222215bce3 commit 7745a1dee0a687044888179e6e7fcd6d704992a9 commit a9b67c036c7f5d187fb88eb74fe04dff1098700f commit 7c1a2d8aba6cadde0cc542b2d805edc0be667e79 commit 6122f5c72e38a88eda13c7168e2ebbd3bd80b681 commit c67db6a6a6be4bb1db1b0fd5b24040d68e461cb1 commit af76ca8e180f38a7d874c18cf810707762766627 commit 30e8f4c2bd532c44af0e0fad9c04e7d2970b91a6 commit 28d43d0895896f84c038d906d244e0a95eb243ec commit 1e487c9173ca12ae372f71a5f5c0eb57ce0ab108 commit 1125f95cd2455b51ad1c16d7f96ae39117083d20 commit 96316211eb5c4b58f34099e9e6f71fdfad7af01a commit 52491d97aadcde543986d596ed55f70bf2142851 commit 6c0a7c3c693ac84f8b50269a9088af8f37446863 commit 02a416afbe127b1c9ce85ffa340c0a32dbc53184 commit 70c33a2710cd08a4be974a1c7f9cdb5601a8806f commit 4f7d8da5e349c1126cdfcdd2ceede00382ad2ceb commit 8bdb468dd7a5d17f8556afdd4c8d046939ff965f commit 6d0ebb3904853d18eeec7af5e8b4ca351b6f9025 commit 641bb4394f405cba498b100b44541ffc0aed5be1 commit 16ba2b28df3a83443fc6b4e5491189d2e5caca64 commit 65fe9617a1256f0a36696d48f7c63a8d3ec290bc commit d69300abc2dec930fd280a013984150ae7c6a386 commit 2bd87f0fc24ae29ead9808d341497f465b339c0a commit c5f728de696caa35481fd84202dfbc9fecc18e0b commit cad08fa7760ace5e01b24c6f9e1f918fe72324bf commit 3034cc8107b8d0c7d1b56584394e215dab57f8a3 commit 20f61c1ead989e5d16f35bd0a546c6233b703b69 commit d7eafed3223af19add14b67a390ec2b983d890e0 commit 2bb3fc536d692d43cd55396ecff73c7691eeae85 commit ddc94d0b17e8ea8179ecbbefacac3fba0fb77265 commit bf758226c7e6927f1c2c34fd6eb2cb580b77f543 commit 590b9d576caec6b4c46bba49ed36223a399c3fc5 commit ccbfd2df3018e2694f750abe5e93b647a4eef5b1 commit 83e5af5997554115e198c2e9e97564702eac04a6 commit 6a2161a155f92985b21e38a9e8b9217f620d606f commit 14ee9fa87d8c96b23d77397b684fb431c5bc2677 commit 3eac4684ecb5ea696bd283bd7f35e4829973f4f8 commit b1aa0491fad27f030c94ed42c873c3f46f5e7364 commit 8906064715c16571e691f67c2746ed1bf1bda6b9 commit 390fa93e6efef330baa2785edc2a484f7ce0b292 commit ad17b124c3a08241da36eb94a6f076446432743b commit 6f4835f9df2df7eee0af74c850d0a06166c199eb commit c66db9e9a025006d729c87143c3f43b5873b4a1f commit 988fe2862635c1b1b40e41c85c24db44ab337c13 commit 0ba3cb8e7cf08223a9246ded3c1bee25a74d1f7f commit b3e9bfd86658b562a33b1ee8563d59a593327aaf commit c24538c4aa352b68bd5c429b7fd3ccf4d4407143 commit 8a060e9c17d0fd7a182e335a52dcb5fe327e3d86 commit 6e8410944767381524544390ce030c86f07399da commit efaf15752d113e81a5e9f25f57dc203f7c3007ab commit fc5da5c00c0a4880220f6f539293e49c766fb93d commit 29d3d6af43135de7bec677f334292ca8dab53d67 commit 9888773753333ee7bed1697abd6fd9c84239cc4a commit f2ea269bd2a55c4a28a9b825424b059a20259793 commit 072b4414784524b6debda1b3b2ffbf10d66095e9 commit 7d8e9e65f23040b2f9e9670bc971d3ec8fa69d47 commit a10c93931b61b22ff6601f74192151d548b0b14b commit 1741281a157fcfacf46dbb6ce39c13bf2699d371 commit 2f3806f781421ce6dfa60471eb2116627c0eb893 commit 097af47d3cfb99ee02afbdd7e0d9596eb012c65a commit d1f214432110748603dd310fbe6099df875e6f04 commit 2480599890296b386839bc53367c10f19d97716d commit 8fe4fde381a103114903f823c6d18457b4b891e4 commit 8b2429a13feaee01d62bc248417343586f6fa489 commit 01b4ae38e5dc6798c6cd477be9c363c5ae45fa7f commit 178ad0e280c088f5abfa61793cb992fa120d1830 commit 4d5ddfa4b1b2bf1e936b8d38735910480f9545ed commit 01163079e136e6d6ce4474b964b8a7ec954cac81 commit 1a1995b1dc948d471854360ec0fd3306f54dfbae commit bcee4c3f89879e15ef57f3217ded97f00b1334d3 commit 01d05521f7e2523045d3ff7b857dd68db276d31d commit f8eee864ba5cbe1447a68949883f69228e53b138 commit 21818f39beda2e843199e5d8d9e3f9e43c8080a3 commit 3f2d35c325534c1b7ac5072173f0dc7ca969dec2 commit ead60e9c4e29c8574cae1be4fe3af1d9a978fb0f commit a1498ab229ca16dfc35331dfb309f8e28b84bb5d commit da6ec743397702e0b551bcacfeaa48829d303a29 commit b3b91369908ac63be6f64905448b8ba5cd151875 commit fcba2ed66b39252210f4e739722ebcc5398c2197 commit 9f6b47907e2d01bfa90c3003e42b6dfeefd8d03a commit 059f6fc89968f4f4527f1b706de8017d368ad9dd commit 1138137c2c48f036b87e80cf3905c1acbff6b0de commit b34b43f9cb45ac15b0e48b5570af9e074959dc68 commit a954e0a26146c465934f4944d49cc03324747917 commit f70e43763e6a550f5b50ba4f6a0d6aef5121ecba commit 402bd11a5394636b2bc9712a58b97bc3cbca69df commit 631ef2e6adb0aec8d639dbea17c5ed08c8364df7 commit 8a37cd4dc50e8f29168dd5bc766ba40a1968724a commit 41a46296214fa07cf5140c9ac9254e095bdcb960 commit 7134cc23fe73f4ddeeaaab9284399cebfd826c51 commit 963ed4efe0c6416f5a2f61e107ee3a27f0bb757d commit bc947d9a8c3ebd207e52c0e35cfc88f3e1abe54f commit 8da19441d0a02b53e362df81843bb20db3a8006a commit 34bb7b813ab398106f700b0a6b218509bb0b904c commit 7a199557643e993d4e7357860624b8aa5d8f4340 commit 596a7f1084e49cc65072c458c348861e9b9ceab9 commit eb7205b7cbff5f9ddafedf82b62590aae0a72dc0 commit 4da5a95bf125fd682249f60e296455c6413b4e10 commit 4453808d9eab0461dea338e89372ffc4a3c50acc commit 4c4e9cb58dd75c87300ca63307ef7d4f9656eda0 commit 7b17e8f3a074ff4558527f6c595f49444a2c6fa0 commit 0126c0ae11e8b52ecfde9d1b174ee2f32d6c3a5d commit 2c7795e245d993bcba2f716a8c93a5891ef910c9 commit 6fbbb660b1d423a777d7567b7475a6a01aa7fd91 commit 760e3c8b3288279841aa8a71e6d65c67a3934d01 commit a3cc326a43bdc48fbdf53443e1027a03e309b643 commit 0607a50c004798a96e62c089a4c34c220179dcb5 commit 4481df364d2038eb4a8f5150367b47955940f027 commit 5359d5bc975466e8791d7f870ea4a96f1b0973bf commit f5a972dfe3e993f09cf12bd36389a942ecd23350 commit 2578487ebe6ca34fe9cd950bf68e8158639ddb1b commit 559a285816af5b72284a6ed65eb82a68ee497d60 commit e146a7ab218626827b7c06e189e69cd2abcd1d37 commit e8397d327e7b0d6132197c9d8fd7977f84f3dbd9 commit 01be2b62c0f3c66832472ed3e48e61d631094606 commit 101025e94b537e8b5426c73a985b26fc95c199cb commit 7eafe7a730bad6f0efb62b2d260f1ae3f2d09b95 commit 663b0f1e141dc60ce6c09ae6afc5f213b22d13ca commit 27f9dcb9cc067d40077e116ac062e185ccd7a0d8 commit 7ccde2e6c0a5e50e11b74353b456bfe602efe6aa commit 0df8ef6e1b5dc7a6edc6242a95f47a257ffecff0 commit af04e65f6b66339080fba0d5f44a759647371652 commit bd7c8ff9fef4b21a97f9b30a7364845ee6eaaf23 commit 2ef8d63da81d9e89cbc1eb4867d638f88bf5dc78 commit 2f7eedca6cecbfad52d5b52c1550066d9252c947 commit 578aab4ecc73476393389440724b7a391cc0cea9 commit aa47fe8d3595365a935921a90d00bc33ee374728 commit 25d48f2eb0af1f0e6f09f54a1a1716f48c0722c9 commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24 commit 88dcad2d07c8d82e6a097c8e74239eb67333bcf7 commit b8faa981a7e62848ca4ba1c77282dfdc71d0edf5 commit b2d4da31a1f40b05a61076efd4c79b88439003b7 commit 6c6ca71bc1653d00623702ae031d0f9bde06a6fc commit a4500b82bc85f7a15cff0729315c96015849e9e8 commit 4c3140fea6277e1478ba206e8f45b9cf7a128cb9 commit 32bd3eb5fbab954e68adba8c0b6a43cf03605c93 commit 741d73f587d5cc86db5e65cc107e031263302616 commit b615b9c36cae0468491547206406a909a9a37f26 commit f7e3885aa80559d5e497eec18e6909d594497c13 commit 0289507609dcb7690e45e79fbcc3680d9298ec77 commit 0c8c5bdd7eaf291b6f727e98506fb68acee3a4cc commit 70a6587dca37a3cf12ab323f7fd73266abfc274f commit 83dcf232cc7919725a331359a300fb3929651b6e commit ad92f52312614b0ef6eee07ee64f1e7661072a49 commit 457ca96d04f599d2f95bd61144851f2181ccacc4 commit 2efba0c095419f93f8913f1cbae8bf3fb030db20 commit 70b4ab5489da0fe5b699a8466aa4f73ea304ae65 commit da9a73b7b25eab574cb9c984fcce0b5e240bdd2c commit f1a4dceeb2bd4b4478e4f0c77dac55569d153fb3 commit bf05aeac230e390a5aee4bd3dc978b0c4d7e745f commit d92b90f9a54d9300a6e883258e79f36dab53bfae commit 9498f2e24ee0133d486667c9fa4c27ecdaadc272 commit fcd33d434d31a210bc9f209b5bfd92f3b91a2dda commit ec2231b8dd2dc515912ff7816c420153b4a95e92 commit 8f72c31f45a575d156cfe964099b4cfcc02e03eb commit 2775df6e5e324be9dc375f7db2c8d3042df72bbf commit 26df39de93bb8763bb3088db6c76eb98d4cd7213 commit ae2c6d8b3b88c176dff92028941a4023f1b4cb91 commit 9ea925c806dbb8fee6797f59148daaf7f648832e commit 21d1d72475809734a5149ecfffdc7551503b042b commit 52755373ea6197dac40b9804ce967611b5e989bf commit 0da531c82a0fcac65407d28ecdb2a1e19c833df5 commit c389a0604cfbcdb1f8f53a76560eb31e0700e206 commit 28b0ef922738b74335c20b8ed4bf8e259353a3a3 commit 2f27fce67173bbb05d5a0ee03dae5c021202c912 commit 7ab9ebc580617831355843f19224f1e31bb8e983 commit ee06c09ded3c2f722be4e240ed06287e23596bda commit 99b1f7493bfa757b03d41ee6d7f7d00f81fcba5d commit 69bbe3adf36de47315498c9384f99a1ff9171694 commit 73d10c7788f6d2b7badf9973afbdea7ca433c15d commit ddc73c465628ab3e60f7eb5b4063b644c18b6336 commit 9460f4bd5970f2e46fe190a0cb9814697bd7f21a commit 6c10ba06bb1b48acce6d4d9c1e33beb9954f1788 commit bfc00a7754c40544c7446d3b664049d6e00ee0bd commit 902b4027216aeaabe1562e1db070550c06f3ec89 commit 0110ac11952f06419d267f51a3989e989b17e67a commit c400ec6990fb04a2ec9929b253dafa7e77c7f555 commit c77a46bebe99e70600e636a3a1f285637c479f46 commit 2ed186df27f078eb75c52d09e04aa7b0f9920f57 commit 3c75518cf27aa5a7e22e1f8f33339ded3779079b commit 03b5038c0ad069380fab7e251d2bf3f1540d20f4 commit 797fb1533315571ff9e55e80154f48cd47f3dbe5 commit c1de938fb7e5edc4c71d33f73e9fc5c77feb02a0 commit 7181faaa4703705939580abffaf9cb5d6b50dbb7 commit 151b1813919d4ab932e69ca4032761ee0789b04c commit 2ae6cd583c4c86c2b7e879b07effb8ffb10756bc commit 2778701b165eda674756537054d460fb4b0cf2e2 commit c03fca619fc687338a3b6511fdbed94096abdf79 commit c2ed7002c0614c5eab6c8f62a7a76be5df5805cf commit f588da30a20cf184f150420e4098b694908a4207 commit d18a56b247f4f3f7dbdd3adeeebd05c23f1e3d3e commit 5a3d3e11349c2e298c0b6b4d37c8241f44d37e3d commit f57b77d667dc6bd2b114d08d04b03869539209f6 commit 0765b2afc1118a6ab5fee624e206c782d70db28a commit 09cb922c4e14e6531979bff4e6bb3babcd9cb188 commit 401c90c4d64f2227fc2f4c02d2ad23296bf5ca6f commit 3766a840e093d30e1a2522f650d8a6ac892a8719 commit ae5100805f98641ea4112241e350485c97936bbe commit cf4cebcec619d963fa7496018f03cb0ff00dc257 commit e79563bf5fb17d1a199c7c0f7d5a7a98c077302a commit 07bfa9cdbf3cd2daadfaaba0601f126f45951ffa commit ce83ae29f93772d604b4ea73459fb17822d6a6b0 commit ff599ef6970ee000fa5bc38d02fa5ff5f3fc7575 commit b6499840cafca25175f43ebd601913bf31d06f16 commit f510dd5c210bf8cc22e4be48cbbda3cb754219f5 commit 4bdc5b504af7de1f649004cfdd37445d36db6703 commit b74571a83fd3e50f804f090aae60c864d458187c commit 327e62f47eb57ae5ff63de82b0815557104e439a commit 199888aa25b3a3315360224bda9134a9b58c9306 commit fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317 commit 06c9aeb57fe894e6e442cd66870cd3e863bbf08c commit ef126c06a98bde1a41303970eb0fc0ac33c3cc02 commit 42ac749d5b8bf78b347ac8a52eb15cc397b157a0 commit 54b86443fd4437c051aefd3f462cfff4defd420c commit f2be7b39e43893ab5361115de2b95e7c5c86f190 commit 375b035f689735fd7a87ff31ccac3a42717252bf commit e7d4e1438533abe448813bdc45691f9c230aa307 commit 042658d17a54c9dc8c028986dfbde49f4aa01871 commit 7b6df1d73290961ff0a00fd0022f28dd19e37181 commit d5a29e6a61028887bb8480e7c4af3547d6f3862d commit 87d749a6aab73d8069d0345afaa98297816cb220 commit 6dcba0975d39b30be65dd038fed69e1aa111c73a commit 856265caa94a3c78feaa23ec1acd799fe1989201 commit 84f76408abe989809de19d02e476b044fd985adc commit de848da12f752170c2ebe114804a985314fd5a6a commit 617a814f14b8914271f7a70366d72c6196d17663 commit 7856a565416e0cf091f825b0e25c7a1b7abb650e commit cac075706f298948898b1f63e81709df42afa75d commit f8ffbc365f703d74ecca8ca787318d05bbee2bf7 commit 3a37872316c2e3288e09a1322221c83e5929768d commit 440d52b370b03b366fd26ace36bab20552116145 commit f0fa69b5011a45394554fb8061d74fee4d7cd72c commit 338aae5478befee9e0e66afb78c2ad1e8d69825c commit d7126c0cfc137a580eba92bd82b6d288bd43961d commit e860513f56d8428fcb2bd0282ac8ab691a53fc6c commit 8b0d2f61545545ab5eef923ed6e59fc3be2385e0 commit 4771d2ecb7b9e4c2c73ede2908d7e7c989460981 commit 126be9b2bef9c7068fdd464790d82e6d70f9d8e6 commit e1d27f7a9cea1e0c06699164e3b177862e7b4096 commit 6ae9e1aba97e4cdaa31a0bfdc07497ad0e915c84 commit e45b011d2c4146442a388113657b70f0c7cad09b commit 8048e5ade8224969023902b0b3f64470f9c250a7 commit d52ac79053a2f3eba04c1e7b56334df84d1d289f commit 4286cc2c953983d44d248c9de1c81d3a9643345c commit cbc8764e29c2318229261a679b2aafd0f9072885 commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5 commit 3cb576bc6dfb8940228b8130638860b631dd428a commit a8387ddc0d15a365dd04baaa325a863d3612e020 commit 34ad56a467c320d07db22146cfb99ee01704a5de commit d7d2688bf4ea58734d73e18edcbf4684b1496d30 commit cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 commit e7268dd9bb9953a9eb0df9948abf5195bf474538 commit 994aeacbb3c039b4f3e02e76e6d39407920e76c6 commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8 commit 43102a2012c2e2f8424d7eef52aede8e73cf2fed commit 394b52462020b6cceff1f7f47fdebd03589574f3 commit 2cd86f02c017bf9733e5cd891381b7d40f6f37ad commit 2b55639a4e25ff02ee496368b03456bd28ebdc0b commit fa998a9eac8809da4f219aad49836fcad2a9bf5c commit 282864cc5d3f144af0cdea1868ee2dc2c5110f0d commit 7a1f30afe97294281a2ba05977688385744f9844 commit f9e7ac6e2e9986c2ee63224992cb5c8276e46b2a commit d51160ab00969ee6758ed2dcbc0f81dd476a181c commit c36df0f5f5e5acec5d78f23c4725cc500df28843 commit 05af800704ee7187d9edd461ec90f3679b1c4aba commit ef785ca7f7c80891580cafd36c8dd86375684310 commit 52d4e3fb3d340447dcdac0e14ff21a764f326907 commit 34f50cc6441b7fee4a86495d5ef43da5d254bad9 commit 9286a191abe2ea01b34be577e8a09a412dcbb644 commit 5f60d5f6bbc12e782fac78110b0ee62698f3b576 commit 156cc376a200aa9890c1f71c5e3d2fec874a7d07 commit 475be5144459b502d8aa987637dd4d9f38422786 commit 240ebf1c9d4ce1576f58e10365fdd3bed8aba7dc commit cffa8e83df9fe525afad1e1099097413f9174f57 commit 790533e44bfc7af929842fccd9674c9f424d4627 commit 2d2be279f1ca9e7288282d4214f16eea8a727cdb commit cb58977016d1b25781743e5fbe6a545493785e37 commit d1ef967126e295d36201e79ec64efdba31710353 commit 0f18ac78aa974660a948dafcc45f4dc6e2c5858d commit 7929ffce0f8b9c76cb5c2a67d1966beaed20ab61 commit 3bf90935aafc750c838c8831e96c3ac36cfd48d5 commit 6ef5a04221aaeb858d1a825b2ecb7e200cac80f8 commit 1b30f87e088b499eb74298db256da5c98e8276e2 commit 9e3c85ddea7a473ed57b6cdfef2dfd468356fc91 commit 74231870cf4976f69e83aa24f48edb16619f652f commit 67801fa67b94ebd0e4da7a77ac2d9f321b75fbe0 commit 8135f1c09dd2eecee7cb637f7ec9a29e57300eb8 commit 7257d9c9a3c6cfe26c428e9b7ae21d61f2f55a79 commit a6f3b2527375c786f2eff77d3ee8b805bcfe026d commit 301d194d01f3074efcf3a10eae116fcddb76788a commit 5b272bf7dcf969eb4f19ef994b6e60458ee6300f commit fe6fceceaecf4c7488832be18a37ddf9213782bc commit 4cc2718f621a6a57a02581125bb6d914ce74d23b commit d7d7b947a4fa6d0a82ff2bf0db413edc63738e3a commit 8e82d1199564ea0baab7be31f6558406bab4fe1d commit d6b9f492e229be1d1bd360c3ac5bee4635bacf99 commit 0a9906cc45d21e21ca8bb2b98b79fd7c05420fda commit 79bc412ef787cf25773d0ece93f8739ce0e6ac1e commit 04e0481526e30ab8c7e7580033d2f88b7ef2da3f commit 835745a377a4519decd1a36d6b926e369b3033e2 commit 32fda5650625065b8ae6dbd9967fb572d3835c35 commit db7f92af626178ba59dbbcdd5dee9ec24a987a88 commit e863781abe4fe430406dd075ca0cab99165b4e63 commit 42465603a31089a89b5fe25966ecedb841eeaa0f commit 3fd76be868ae5c7e9f905f3bcc2ce0e3d8f5aa08 commit 1badf482816417dca71f8120b4c540cdc82aa03c commit fc4d262721705f2a7b860946504e7b8a313f06e1 commit fcddc71ec7ecf15b4df3c41288c9cf0b8e886111 commit 28a5dfd4f615539fb22fb6d5c219c199c14e6eb6 commit 4809a017a2bc42ff239d53ade4b2e70f2fe81348 commit 512a9721cae0d88d34ff441f2f5917cd149af8af commit 26498b8d54373d31a621d7dec95c4bd842563b3b commit fe4a435bd0c20beb6d7caf87b49bc49a2233b18b commit b634acb2a070c072900c56154aa43e2ec2d45b2d commit f07fd958a49264eebc1db9c946eb5d2e91c470fd commit ac44ff7cec33d5c2d4b72d52603552ec64c1a8bf commit fcf38bc321fbc87dfcd829f42e64e541f17599f7 commit d2c72d96dff5ba408bb107193b53e3134a516c4b commit c0ec082f10b7a1fd25e8c1e2a686440da913b7a3 commit 7760d7f93c764625fedca176891238675fd06d62 commit e7457532cb7167516263150ceae86f36d6ef9683 commit 68d26c10ef503175df3142db6fcd75dd94860592 commit 7a1613e47e65ba6967085ad99dee95420346a0ce commit 28127dba64d8ae1a0b737b973d6d029908599611 commit cb07c8338fc2b9d5f949a19d4a07ee4d5ecf8793 commit 69b3d87212676c4c22aa4660435e2066dc7d1311 commit 2f54e71359eb2abc0bdf6619cd356e5e350ff27b commit 4ceead37ca9f5e555fe46e8528bd14dd1d2728e8 commit 03a86c24aea0920a1ca20a0d7771d5e176db538d commit 761f916af44279a99db4e78c5f5ee839b31107ea commit ed931fb40e353586f26c3327813d142f782f5f78 commit 82926f52d7a09c65d916c0ef8d4305fc95d68c0c commit 477d665e9b6a1369968383f50c688d56b692a155 commit e7518276e9388d36f103e8c1c7e99898a30d11f5 commit 4e8b5a165160e2f521cc10bae58ce0b72b2e22b5 commit 816b186ce2e87df7c7ead4ad44f70f3b10a04c91 commit 6df106e93f79fb7dc90546a2d93bb3776b42863e commit ffafd12696d1a4c8eeb7386d798d75e1fafb4e01 commit ec1aab7816b06c32f42935e34ce3a3040c778afb commit e5a3c24bcaf7bc1c3c2647395aae5de4660c1c64 commit 5b3c0209e88a67a8d029ed8b6e30bca383cbdc55 commit c09c4f2a972ca7cd9c8926594aa2099bcbcd3b79 commit 7626b4e96bdbbadca046a775c6b8e02b842c05e7 commit 49ff3e79a7f49e269b0278e75d35d6421f5538a2 commit 83f000784844cb9d4669ef1a3366479db3197b33 commit 338b655a1178900ac05aca7ac66dc28b05100430 commit 85e444a68126a631221ae32c63fce882bb18a262 commit 5c23878252515b8d2b86839bd4cb7dea7088aacd commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 commit 9515e74d756b6825f6119823d41b437832d89355 commit f888e3d34b8641a551eba8e0fa26209c5392eec8 commit f67644b219d458d4b314e78f2304b73985390311 commit 23d16ede33a4db4973468bf6652a09da5efd1468 commit 63feb35cd26557572ad95fc062ede344bb61d9ad commit 108bc59fe817686a59d2008f217bad38a5cf4427 commit ba1959f71117b27f3099ee789e0815360b4081dd commit 7c210ca5a2d72868e5a052fc533d5dcb7e070f89 commit c8fb95e7a54315460b45090f0968167a332e1657 commit 22ef43c78647dd37b0dafe2182b8650b99dbbe59 commit 69418db678567bdf9a4992c83d448da462ffa78c commit 9c1813b3253480b30604c680026c7dc721ce86d1 commit cdc21021f0351226a4845715564afd5dc50ed44b commit 2ba1f81ec7cbb2a9920cd3435c515247863b32a6 commit e3e1cfe33f932860e070eafec8df8780e3b889a8 commit 4d95a12beba146b0ca2de59c7ce905bc0aadfd0c commit 746ae46c11137ba21f0c0c68f082a9d8c1222c78 commit 4aa923a6e6406b43566ef6ac35a3d9a3197fa3e8 commit 935abb86a95def8c20dbb184ce30051db168e541 commit 25f2ff53838ccbd5ce558b5d23fac8a5d7f86655 commit dcb6c1d071712186c213c26b245779f7859b9cec commit 6a9d2e2988fa3ef9b03ddd9ba9aaa54dc23635e6 commit 5d01b56f0518d80211812420a8907ca0b6c6e4e3 commit 412a2a8fdd4eb89b263623c7a59b77dbfcf8f215 commit 4700fd3e050da8302e60ebd4850d008250fa7204 commit caa714f86699bcfb01aa2d698db12d91af7d0d81 commit 926163342a2e7595d950e84c17c693b1272bd491 commit add4163aca0d4a86e9fe4aa513865e4237db8aef commit 993ca0eccec65a2cacc3cefb15d35ffadc6f00fb commit fe05cee4d9533892210e1ee90147175d87e7c053 commit 8594a2d8d72d86b70b8bace607100d88111aedf6 commit f99c7cca2f712d11a67148cfbe463fdefeb82dc5 commit b0ef514bc6bbdeb8cc7492c0f473e14cb06b14d4 commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 commit 7fd3fa006fa56c0ec299c61ecf5c572c723adad5 commit 4b468a92ddb2985da66823910a1643349fe6447d commit 55e8a3f37e54eb1c7b914d6d5565a37282ec1978 commit 7d1e2580ed166f36949b468373b468d188880cd3 commit 1491efb39acee3848b61fcb3e5cc4be8de304352 commit 4f26c95ffc21a91281429ed60180619bae19ae92 commit 694c79769cb384bca8b1ec1d1e84156e726bd106 commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e commit 1356bfc54c8d4c8e7c9fb8553dc8c28e9714b07b commit 74e1006430a5377228e49310f6d915628609929e commit e301aea030d60da760f85f854a82ce788d5cf6e7 commit 3ce3f85787352fa48fc02ef6cbd7a5e5aba93347 commit b46dadf7e3cfe26d0b109c9c3d81b278d6c75361 commit f790a2c494c4ef587eeeb9fca20124de76a1646f commit 4d75b9468021c73108b4439794d69e892b1d24e3 commit af797b831d8975cb4610f396dcb7f03f4b9908e7 commit 64a2b6ed4bfd890a0e91955dd8ef8422a3944ed9 commit a353c78459f4d116216393cc29032ef5fe1472d2 commit 514447a1219021298329ce586536598c3b4b2dc0 commit 052ef642bd6c108a24f375f9ad174b97b425a50b commit 444fa5b100e5c90550d6bccfe4476efb0391b3ca commit f432a1621f049bb207e78363d9d0e3c6fa2da5db commit 9b984a71c240ed9287d6358109f6a0c6ab5bba32 commit 1a6bbc4d9e55d6c9df2dfe7d4f2705a544d8ca13 commit b8d9d5fef4915a383b4ce4d0f418352aa4701a87 commit bd8a9576617439bdc907c9ce0875909aea4221cb commit 6825cb07b79ffeb1d90ffaa7a1227462cdca34ae commit 9fc0cbcb6e45d6fc96ffd3bb7b6d6d28d693ff4d commit 16dd2825c23530f2259fc671960a3a65d2af69bd commit d641a151fcaf0d043075b214b469a14abab25af2 commit df0279e2a1c0735e8ca80c5df8d9f8f9fc120b4a commit 0e5ac88fb918297a7484b67f2b484d43bed3fbbe commit 79365ea70714427b4dff89b43234ad7c3233d7ba commit db0fc586edde83ff7ff65fea56c4f72dae511764 commit 67e023b93d69e5a21b16f9602656a803d314e825 commit 5a67c31669a3aca814a99428328d2be40d82b333 commit 4bb2f52ac01b8d45d64c7c04881207722e5e6fe4 commit 5f77ee21eb44e37e371bcea195ea9403b95d1399 commit 7013a8268d311fded6c7a6528fc1de82668e75f6 commit 3387e043918e154ca08d83954966a8b087fe2835 commit ce0d6970231903f43572a6998020fdc8b3a8f455 commit dd886a63d6e2ce5c16e662c07547c067ad7d91f5 commit 46f1f4b0f3c2a2dff9887de7c66ccc7ef482bd83 commit be7eeaba2a11d7c16a9dc034a25f224f1343f303 commit c0403e4ceecaefbeaf78263dffcd3e3f06a19f6b commit 21ec425eaf2cb7c0371f7683f81ad7d9679b6eb5 commit b6ad7debf5ab3e581b5cb0f5c94e404ec968bd5b commit 9776c0a75a1a86b753b2dc7c1ecc3baa048a8dec commit 93d1f41a82de382845af460bf03bcb17dcbf08c5 commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d commit 99d051c4b33cfb451dca0c30e28da25db2ce4d7f commit 1eb0de899b1eafe2c3aca8763c99e5c5ed791561 commit 21c1c6c7d732c2f6f4c5ffc77e103aa3ae8bff1d commit 44f392fbf628a7ff2d8bb8e83ca1851261f81a6f commit f48ab0a39f12fd83fae13bf81152531565cd5e75 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:41 +00:00
}
EXPORT_SYMBOL(dma_fence_array_init);
/**
* dma_fence_array_create - Create a custom fence array
* @num_fences: [in] number of fences to add in the array
* @fences: [in] array containing the fences
* @context: [in] fence context to use
* @seqno: [in] sequence number to use
* @signal_on_any: [in] signal on any fence in the array
*
* Allocate a dma_fence_array object and initialize the base fence with
* dma_fence_init().
* In case of error it returns NULL.
*
* The caller should allocate the fences array with num_fences size
* and fill it with the fences it wants to add to the object. Ownership of this
* array is taken and dma_fence_put() is used on each fence on release.
*
* If @signal_on_any is true the fence array signals if any fence in the array
* signals, otherwise it signals when all fences in the array signal.
*/
struct dma_fence_array *dma_fence_array_create(int num_fences,
struct dma_fence **fences,
u64 context, unsigned seqno,
bool signal_on_any)
{
struct dma_fence_array *array;
array = dma_fence_array_alloc(num_fences);
if (!array)
return NULL;
dma_fence_array_init(array, num_fences, fences,
context, seqno, signal_on_any);
Merge DRM changes from upstream v5.17..v5.18 This commit was generated using: rhdrm-merge-drm v5.18 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/drm_cache.c drivers/gpu/drm/drm_gem.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 301a44dc18e3,308c302c58e9..c2ef5f9fce54 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -134,4 -132,9 +132,5 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-y += solomon/ obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit cce936f4fff736927ffd53a61d7b2c6a1064e0c5 commit a908db6d98782e8d9a8d545dcc74937db5bfac04 commit ae361eb07e9b498bc224db81113118fd28e35f6e commit c2a9682d2214e834b493c454e38809e571bb3045 commit b8ca477e51318d28f7514abfb5a369e11848a8cf commit e74c6aa955caedd06b5ade58e31e33338e4efde6 commit 637088a21e204b129a03dbd59bc0cd80d0292651 commit d0c0cf22d7071e9ba8d30be91723e1d997a07970 commit 49d535d64d52945e2c874f380705675e20a02b6a commit 11343099d5ae6c7411da1425b6b162c89fb5bf10 commit 60c9ecd705be3a28f79d70ea21c3939db668bf46 commit a36e7dc0af1cc7e5eaa89136c35a5305fd693731 commit 007354597d5c12a8d44a34c66a2e1a089bc7d3d8 commit be5b6985fbbe6ba9580351b3c9168c84e51bee5c commit b96a1d8c5189452d80551f2c38ef50c533c19669 commit 3edcd504077c02c9e6e7b687a43849eacbb8088d commit 9543e3c0511da64a77b1af3ab1f7199c39226e1b commit f21e5fa191be05616e3250723c5c4cadc9baf84a commit 405d5382ba083e6e54df354909b1583f1e3cb0db commit 70704fbf67ddc07ffc81073a3af1f7b2171697eb commit 943e6a8beeac1b676265f2dd81a69d7bede5e41d commit 7e28d0b26759846485978ada860ef4a427e06c8f commit 5995aef006698bb639547a439f47492de5c37f05 commit 5664e3c907e20523cda622268716867e77648d0c commit 6844a28885183a5a2af92a8d315a59f7a0e668b9 commit 825ca9ed1c9f5516b30292bb1c7ab648c2a01b92 commit 980f42e7d57464af190d05b9cc0bc21846734f48 commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d commit 249af7242af72a826dbe93f7058237eee4fac1d6 commit a88afcfa258672601eda5966439d2fc310a34cb7 commit c3c2ac4c77ee2191ae2f1e8d140a59e852104e3b commit cbffbac9c14220b8716b0a9c29d72243f6b14ef3 commit 62eeb9ae1364cd96991ccc6e3c5c69d66b8c64df commit f7747be1410321de8a92e340c5ca6c18a59770e9 commit e35d8762b04f89f9f5a188d0c440d3a2c1d010ed commit 0b464ca3e0dd3cec65f28bc6d396d82f19080f69 commit 6edf615618b8259f16eeb1df98f0ba0d2312c22e commit 5f4f958a0d9dfd7a569c56e76840e39b0c434378 commit 3b26a2916844cf2680de10206e193e1d13f0eb88 commit 50d76e3d3ec0c18dbe2c801af676f7e7cbedbff0 commit 7c442e76c06cb1bef16a6c523487438175584eea commit 7020449b8f5ac0f7444a584645edec02f7168f1a commit f5f05ddc37e0445567e4a2369b73ecf9ee2e187d commit 816e3be74f16f3064e74acb3e6ed69e27f14231b commit 80dfdeb75028084f42a81a4151a986c56aeec1c1 commit 9294914dd5507eca56566c470c56327f46dfd4fa commit 96211b7c56b109a52768e6cc5e23a1f79316eca0 commit b146e343a9e05605b491b1bf4a2b62a39d5638d8 commit 848915c35e22d36614f2b0aeca6ebf7361e8e204 commit 204129a211fc486164c25e6082941e4fe3ba889d commit 5c24c9d227e9bbcba509752a32b3da5faa149aec commit 59dc4632e35becca1186dbab83ac7cf8603afaa9 commit 17190a3492bb20ce1cc695fdadc7e4f7ad5b44ff commit cdeea858d8df9891ed75415f377b3564f899a659 commit d14f0c205302648df29c494a1a81ec3d897a2552 commit 91d8531393be96b4a088290cc67233b2e6ab072f commit 506d9d7414cfbdce02b7126fc8644f04ef234680 commit 59a39fcc21c56845e74bf60c1177925bb0255de4 commit 5313fb2c779f74bc5083e9d3738d9b2c2ebe0aa4 commit 814d5c51f8966895bb20b51c886bd3961f76f3f4 commit 5edaa2b9748979b08fcdb2f65781aac39e6ae011 commit df2d385cb4132e945d5bc17d387d0fb6f5d4d66e commit 9354417750e51c3d120cb6040b1b69f70d9ef43f commit ffa3fe080c77630f87436a9410475fed1e684612 commit 191be00229ef61f9ca0cfa39a09dc71eaf90e78d commit cd1637c7e48043503f8ca6d441568e3889998965 commit 607a264ea7016b0f811f82c33094a3c2eda5968c commit 3dbc84a595d17f64f14fcea00120d31e33e98880 commit 658a0c632625e1db51837ff754fe18a6a7f2ccf8 commit f3cb4a2de5410147b53e53416a3af0ffe26b5f4e commit 903e0387270eef14a711c0feb23b7bf62d2480df commit ab4911b7d411ab2ef3b38322178b9138e156c393 commit 30598d925d466c53c4c218a58f80e043cfe9b085 commit 0af2e827b6acfd22b7794c148943a3ddfe5fbb65 commit 2564c35df5b81a88efce965bbfdcf32c1a1bc834 commit 23d639d7b6df487d59ed23b0c9c04dfd3f909fc3 commit 2ef97818d3aae3c89a6cb1e6b8cd204156434aae commit db583eea5a820ab4afce6420aae61be9be55d05c commit 386e75a41478d8d70889f0d1856e782d610353c0 commit 7e470f103d7579836a536c15862b70118379f7f4 commit b4435717f53b776b770e7a025fd84688e53dcd5f commit a9e4fb51425f680f191bb65c2778cea31bf058c7 commit e1a4bbb6e837d4f4605dffa9eccce722fc59b9cc commit e8c1f36157ce0bf8c150059c3f9f573c13a186df commit 583998c5e8cb3e7a151dca22303b68cbe65c64b5 commit 39a2bd34c933b00f7c7ada923c212b3ff826fb5d commit ebf3c361f43b1c1fd254be5a6d12bd37b922e6b7 commit 2f6b90da919208621725d1703c0391f63724fa62 commit 950505cabe517ad40759cae6f88f33f0bdfbb7c8 commit 60dc43d1190db1bf80c696ab4561ed53f8f42f33 commit 55a9c00021e2393393a26e0833fd66e73d630117 commit f199f71f20916ddaf2bfc4dceea33c776d414428 commit 53c8283ba9b46559c12fb9fd679cbaf72424649e commit 77b6f79df66ed2919dedb834edea630f40079f12 commit afd088ac05f120d22e06f8404b2672f5841d0da0 commit e9f9bcd598e2b6f3cfa617f8e38f83a59738d19c commit cd5d2fdb045fb31a152cbb257e10da78fa4f06ac commit e0d47fcff1f4df458b9c8824a5204adcbf624ae7 commit 3e5cbecb9aa88f00016b61200d4126f727fc71e6 commit ab076d8d79e1e5eb3960e0a489f7a11d729c03bd commit 2b25a93bf07c6b68dd9e2ee427e228cb961f7961 commit 202b1f4c1234b34c15e51acc9c43e613f509f587 commit aa1d6068a460dcb21e69f6d65fa7d3ab483d547a commit d0864ee4f81fd8c782fbb382f80d6c9c531f2967 commit 24ce4d6d2ca626a733f70b578c4a298b200a69de commit 43571e15c057f69734d0ee3be45fdf9e4adee614 commit 919606f5e7d8cfbdef47ab7e24bf37cf86dd1512 commit 3e1f4c491559998615cc8ee287c673f0f7e66534 commit c41aadd26496db9c21deb612445801f3e44ee8b2 commit 5512445c9b64a2fd78f37c41796745d72c02e9a3 commit 1b277c892940af1d06c2433f3f3a39d4bd146c89 commit 4642077775a65566c0d25e63bf918fb5e5235163 commit ca1777797ad84cba3a72b73f74bd80092a7aa220 commit 0b782e669298e30853e235b963fdebfdedf45383 commit b17639c7f7fc1fbb23b761c38ba3233cd5d082d9 commit 38bd13a0b151093f5f26c95ee106659008896995 commit 3f8bd465a6f083a4112d82c18f4a85c9052d2132 commit e592dc320559ebc8166c1dce609faa7e4f3d6da1 commit 9d31993451f6bb4059a9b9eec4856b2225e36df0 commit 0f5d32617246810d00dae08c51069873a77b60d1 commit 7b1534188c25948f4ce56dc4af9d8e9234e97592 commit cd6e4c2fbb004f06d9c552761c171fed82ab5225 commit 2616be2eac4b1c361ece55dfd8f942dcecb25de2 commit 6650ebcbea1314bf91bf161802ecaddbb72651b5 commit 5ec7baef52c367cdbda964aa662f7135c25bab1f commit 5ff59dddacd4738edcbd01847d9df7682348cf86 commit 93e97b05d5816ec96bf209a50023cdf9fa750a55 commit 1500296576464dd4f8f7ba409069591648f4e98c commit 3a5d604f90f90a09e35ccfdeeedbadfd06b606db commit 6a8cf6349c7cae12f072889991a2aa0a1ba0bd32 commit de05abe6b9d0fe08f65d744f7f75a4cba4df27ad commit 8c2d34eb53b96755b33a125c65c3e807dbe430a1 commit bc143d8b8387ff0a22e4ef8e2375e63aa24bc311 commit 79c65f3fcbb1288b84473d45e6d001820a971d54 commit 13f5dbd6e3d9a4ea0a8d061bb2a2f19bb21cdacc commit d448157665870bfbf9b6baa5991cd9d6bc98c7e6 commit a79110f2dc0194326d2e8c2cf83db6c784c37e97 commit 28a31774b050261371953401e8072ae15200c91e commit 84176663e70d93836d30d2a480a4201c7f790b42 commit d698a2c4859de2d4d42d2f3c3806d6dce821d663 commit 6ddbd37f10749830e0a6ddf839ca4313a007d3f5 commit a627967e803e58c5525ac92a4af0d15379189a32 commit 7689dab48259073ea13d64d32365b77860b84e7f commit ebfc253335af81db2e40e6e8ed17cd76edf9080f commit 837d542a09cd533055423dfca7e621a9c1d13c5b commit 3bce90bfbaa8de63bc500bc5a4dd262ed8e548ca commit 61d7d0d5adc705f833d8a5dbb596253842486220 commit 3712e7a494596b26861f4dc9b81676d1d0272eaf commit 1a408c710d9e273a22050b0b7b0c131f92847918 commit bcf19fdd507fb679bb6e1b8a119961f32b6cbb95 commit 54c73b51df2958f564b144ce86f15a85e227db90 commit 685fae24d94fd615b7058832fcb437eb588f4860 commit 6492e1b07c03397f85bd6dc0e230ea6cd9394635 commit 7cab2124058d2f5f048f435a4631e176dcd1430d commit 8b0fb0e967c1700bd729ae54b6f229501b8587ec commit 6c2453861f48e4e779cafa01c09e78ddc2c23c6b commit 6d76e9049ad92be32704106668c34493c3e4c0d4 commit 5e67bba301156c85251f49df19f5c695875814d1 commit 2e54fe5d056e7dc82988ef64ded3dca0ef954f0a commit efe17d5a217e6b7dfd16c80dab522abcf2edf1bc commit bdc4292bd3b4337985f716be789b08eef921f7a6 commit b0e2062dc8978869c1dd96d92027f74b361d5eb7 commit 22d4ba53b1c10de6832e588f01d916e24306f6a1 commit 7389a5b837cde5e5cd771619e9f006ae102f5d7d commit cb5cc4f573e18deb7d9143de0ccb62c08181bc85 commit 400ef298f400854544e062023671e927965bc9b0 commit 20c5e425d36a59529f2e6a77ba21d009cdfa8ffa commit c4381d0ee81930097e94e55d1c23f85798ffd093 commit df01fe73ee98daf00c94189967550bd2d2098912 commit df4f0041c6ef497e598a67e367db835489162754 commit 69f91d32c6632e09f0954e690d61ac4921dacbd3 commit ab3b9de65bfeded1d4646c9f66897c163e89abd8 commit 954ea6aa1545a13036851327b4ed251fa7ab2f22 commit e3d833f41c46b8c59c4af53897a6619bf667ebe5 commit 1613f346f86b25121aceb941d03ca927e57af20c commit a85d70a8b4813a955d45b062440fedb9be701421 commit fb825b651de98cafef13e07673eb72d5e2ceb4a9 commit 31425abeda7130e66e61dbd8468502061413631f commit b3523c457380c23cf28d4ee1ef60da337a0a45c0 commit 06cf9bd61a7452df375f212881d9bb6b3c52c3ec commit 5f0754ab2751d1935818459e8e71a8fe26f6403c commit a8e6398ffe171c84b1c03a17eb6d432dc5f703a4 commit e8521d0cd984897b4fa58e7837afebd04e44f0b3 commit b0641cb8a1deae38990cea783d2a1117255f59f5 commit 803abfd8dda540b94ea3c754a70cba69d3825995 commit f4319f72a9bc37c948832c0ef121460ad7c1573f commit dfacce59553b2a65f4357ba6019827eb4b9a0eed commit 3681eb24a9f14e001d05f8d15d2e07a96abef8b3 commit adb9d5a2cc77e8aefe98fe4c11656c5b7025c248 commit 5b529e8d9c387a34ca2b8008dc65f55d539b3ef6 commit 032a125904995985334766911de9e26ee2bbd646 commit 269332997a160b3785690a32d2c5496bce7dae51 commit 71b59439aa03e8de022c31ccbf9aa9bea4578971 commit 12d7d858e63d0769a91aab218828e0526c0ab49d commit 2f609faf5bda9d828ce0229689227ba2edb1918b commit f6bb74e07705579f83252f9c3cbd462d8084bb4d commit 348abd4cf353abb3aca8dc6ebb80ee84acc4f64e commit 366714b0883f0411a4b142b1f7cefc6b184183eb commit 4682a6d99638bb8ae62f00b9466849065c91fd1f commit fee076019d0a3634aeea8df55c1f7ae35ca31d18 commit 2b6dd600dd72573c23ea180b5b0b2f1813405882 commit 6b79f96f4a23846516e5e6e4dd37fc06f43a60dd commit 647bfd26bf054313305ea9c2c4a1c71f3bbfee63 commit e849f7e708600a9d7567ae22f945b5b01d7f7401 commit 6945c53bc712cf4a28a46fe46c2bd8526ea261d1 commit 7e00897be8bf13ef9c68c95a8e386b714c29ad95 commit 0f341974cbc2a4efe074dd24c153e439b8430afe commit 294996a98a641254b72732f3cb36d51f12a6f3d9 commit b5cfe6f7a6e17c6bc7c802d382cf22c4dc405477 commit 83f2726cd9c3b92589f850cd4935ebbc35eee840 commit c34242eea16f7d973501267142dd340cad3caeec commit 3ddd0c90bafd9f2ae1ac9f1e67581537273dfed6 commit 79c0462159a1fa3810ae1869a5fc9fd7782b6b70 commit e475986f182156496fa2991012ca51956fe90bf7 commit 03f6fb84bd0e98a7b929aef5f308b8e3f2f24a0d commit b6efdb02d23ef615464cd0077c211b40a1faca26 commit 4f64ccf4f27c89089f3206446e2158833bda4795 commit d622c094f8fe7a77fda613964ffdd9a248d2550a commit 8697a19ee955e32fe298b00feb0c61fc75cb5261 commit 71b6c4a277dbb2594c260ccedcafaef5154b0da0 commit 22c16d251a79c3156d17627810557878e600dc6a commit f3527a6483fbccbf569f91d9ee9c561b14d86a9f commit 47f29ac1cbae6e18329f0066f7c8d5d2346a5bce commit 7aba117ac9e01dc58afe29490f50025add9d388b commit fd9048dd4425a9dc252153c8b72369f1969a35b3 commit b4c55e525461a9a091421e952d1e052127d558a8 commit 82dcd8eb357caf4b16e6a201f6578b6e8795e541 commit f369e4eba89a6fc1cac619db86c00a964d1fc0a2 commit c1a20f707ac33b1fec1d78bab74e07656c237801 commit 6421c49567d55b1ba8d9389e5832297398a51a1c commit 58c69b53aee24f47741b150e309567d9b38ecd6c commit 9338cb719f0f0b43ee1ab39d17214f9b388c7fbf commit 047db281c026de5971cedb5bb486aa29bd16a39d commit 56ca49cf6004ff328458954dd3d0fcf0189a96a4 commit ce0bdc62e80d40caa346ac4840a20769d5bd1ae6 commit 552b7cb0eed12c184b3bdfcc262e96a954a2bc86 commit 4bd8dd0d61f961e6c13cc118d4ebbdba57f8561f commit dfd6879b98999867ac860a51348b00b5c0c2cafd commit a5e7ffa11974d90d36f818ee34fc170722ec3098 commit 4e68354667716e62089ce3032a3c7e1b6c07e669 commit 41f8aa5d6a8aace5d33e2d908bf5fdc833456a5f commit 6387a3c4b0c45a3932cc06daaf15727e7f83be43 commit acde6234f65bad89a2e27d3e8dd2daf680862545 commit 75ab2b3633ccddd8f7bdf6c76f9ab3f9b2fc5d9d commit d7e3ea83bba81d6d9c8f80c62a99b018165f5808 commit d39bc5c5e10a648c7de9558592816474f45a374d commit cc37b88b02fb590d08dd922ef1c0f7ef3125bba8 commit 028a73e10705af1ffd51f2537460f616dc58680e commit bcc77411e8a65929655cef7b63a36000724cdc4b commit ba3a5ddcf1e5df31f2291006d5297ca62035584f commit 8172375ea95ab8b7f7ea0dda617ad87c439a14ee commit 52506b099e1baa204b56b170f40f680ffcabb4c1 commit 8638b4d8ddc944ef3c1899cb774cb07de0b416f6 commit 54e67e5a2326b99c1461e29eb022e9d07a419abd commit a32762d1db4c13db53ab9005a24fe5465ab511f1 commit 2075a734ed990c50b6c544c6256b0dc0b74b82ea commit 09f137c320633d08b263c54c0782e91d55a6c09f commit b90b6e41379789ed595236113779e0793a63bf18 commit eb9fcf63857556d5eacd67f5c96078e643a8d15a commit 594c504d33343657ad3b24ff8e4ef032cd4de25e commit a868a1e57e3afca98509345d5a8f747a4d745cb1 commit 044cbc7a74c136f12a80c855cadd1b085084aef1 commit c26962803d044a7668e9ea4d5313117ac5b878c8 commit 479e3b02b73a2de2b19df2950863149c59d57bfe commit 86700a402694db56030a74481d09f35520332736 commit 8eb53bb2aa8afa170ba40f9460f2de4d4d138764 commit 33cd016e600ac3417aff7c85f59b9a4b70a947e9 commit 5904e4135f3b3e6cc7bed46bda71118d55a56681 commit 1b08dfb889b2c584b444538c9500af24ba0a6dc7 commit 590e86fe3462da81f1cbc4fc8d4cbf8b16b4f968 commit f61c40c0757a79bcf744314df606c2bc8ae6a729 commit f548f4291e89e6144d3c5b8a9ada66c7dbaa1639 commit 6d1d72fb4fcf85ff0a96de1c16c46162b3baf9a6 commit 6f043b5969a4d6d385ca429388ded37e30e0d179 commit 27535f1d94318f34fd6d41fd01bfa4a970e73bd9 commit 5de6a3de999d0cfeea94f1d3932b78892f3d69e8 commit 198bca93403d04f43c07c5c87c7b75a54f4bcb54 commit 26950f2968e873301c8c536ba0615ba04c17a0de commit 603801d0f2f418941d2524ffc43fa6d8c95873b3 commit 34ed3e83475eab0c8fe6bbb126165a3ff2f2ff90 commit 1358139bdefdb07bb402efb3164c1c51db99e8a5 commit 1d50942dc9304db488d1b3978274b851e890a33b commit b4a1c675d256bfa1d399490847d086b8b463b5d4 commit 784a2ec00904999fccfca12eaf7c63ac3fde5f48 commit 37ff945f804c2d40d030713fc8692e793a81eff8 commit a357dca964e0c77c479075dd65ef86199078d82f commit 4f72fc3c7f3d9f29a438bb0e17c7773f2fc8242a commit 1f73a367420c954f5cae2f899ebb9515be093645 commit 5fe0fdd23e3379833f4346b49fa791733c22ed29 commit cb935c4618bd2ff9058feee4af7088446da6a763 commit 428cb15d5b003102bc33d49f2ab31a6e4e785157 commit b4d775775877453b44834a621eb410aed7891875 commit fe6959a680a4c50f12dbb362c90f9d7157fea334 commit 7305f5b3a5d62d1ce1405e91fa367e6a9126090c commit b3bddb7a3806f26ba3eacb4f77834102ed344b9d commit 70b42b5845c84f33ed2b79a0fa96134710c652f2 commit 17dd7b896abd2c81bbc76ed55899314b1c285677 commit c5274e86da5fe7297fc28a4e12bd29defed1f435 commit 51f2d00909c6153d23edf2344f6b57d45e391945 commit 0bd6c4a1310336af511519a8a853ecff2120d11d commit 9d0bfa7ac97c629542caa860bca903af62b86326 commit 5acbdcd1b12ecba04f1481004b6ce5b40c64b211 commit eb8d73aa63cde11e43ab0619308a5356a691850b commit 15d641c41796fa1e8c8965ea457aac737a28a88e commit 140f70aeef07e4516a338b275e36eb5f8cfb463a commit c9b06cc26f1daace605238adb4720560078b0eb6 commit 2869f599c0d8c9c6492bec40d062951be8caae04 commit 50dc95d561a2552b0d76a9f91b38005195bf2974 commit ce99534e978d4a36787dbe5e5c57749d12e6bf4a commit 8b250cd3b5da18bd90f34ecb04c01661213b65ba commit ff3aeb34deb24f40626c171ce1cfd447a2edafc8 commit cf5b64f7f10b28bebb9b7c9d25e7aee5cbe43918 commit 4fd5e720b709b87f67809a871fde9fb6cb910f28 commit 4a46e5d251a39e7c10493743ac89a31f6f3ce5b5 commit 75478b3b393bcbdca4e6da76fe3a9f1a4133ec5d commit 4adc33f36d80489339f1b43dfeee96bb9ea8e459 commit c03d0b52ff71d580ee235463c7ca9eac31351dcd commit 80ecb5d7c0f224218fdf956faec0ebe73d79f53d commit 85e97b1dd5d29b66a249406624734843b71c0a0c commit 2343bcdb4747d4f418a4daf2e898b94f86c24a59 commit 901abf367d3eecd54f21829ced48c20f53c74c57 commit 828904660a2e0a31d5c8a2ce75711f7123896bd5 commit 6a6c2ab687c8eabaec4a55a4f13eb5ee68181403 commit 239d6de307b0dd1d48ec9b935b57531f07f6db11 commit e0638c7abc4d3d3c46e8f2fc07e02c3877c3c402 commit 974d5ef0dd9d251dd4571e30d5e79e7e4940d424 commit da11407f066c28c49bb7a4ff6a6b742b7a18d7ca commit 56383e8f4d296a33cc5b2a11864025d8205e9438 commit 1c4dba5e14c0085d412429d50cbcf8e9e2a18924 commit 1f2cf08aa010594036ccfb19d207e5b80b5bb7a0 commit a746c77e5ee86829c03dfaf718e18b589f849be3 commit 83a3766b147053e542f3c91c121cb9594239e644 commit f9130b81aea2de3fb6d356e9495a384b2d35b1d1 commit a685572c91b08e2e5143e52f4c5bbdd3d22271b3 commit 25c6aefceee60850bf78e16ae9d7fcc4a9d20884 commit 5e0c8ddf029e0a8533bfb04e4542b46356cbcade commit 0fc2549d55a238da5e4c1b1ae20ebc3856922334 commit dfced44f122c500004a48ecc8db516bb6a295a1b commit 1418b9c38270f4c7843627cb0e9047b19eb3365a commit 5d5c6dba2b43e28845d7d7ed32a36802329a5f52 commit 5bb1465fbdc291593a7c385cede0416ff6873280 commit 29dbcac82f96d06608f3658aacd3e14efb7ac0cd commit 97d1a3b967a3cbeb0dd29a8b5bcd4ac1fd9ccd9b commit 7bbe43f8a4e7775daf6ca62807e0023b0642a20b commit b12252b0538183d8b88bd4a8d8d05a808c46472c commit 4819732f5986ed8b3d88bf4272d2d5bf1ccff9da commit f8f96b17f0fa302b246e35773074f39e43add023 commit 5d447e296701484f3df5b31a7a078cbf1e3a9cc9 commit 1b2dc99e2dc6f35f55f0487e12fc9166fbd023ed commit 381519dff88845bbe522e7446ec1e32e351c670d commit 04022982fc5ddac6cc783d66846f2464fe4985fb commit d6dac2bc12bd968acfcec7a0c92c59d2e19dacc9 commit 1f33bd18d703ecdf7b664168d640439e867d1605 commit e9287ef8d46cee538c9a71bb8978b2f7e975c452 commit d435c1ed56b9f9347189924395588cfdf7489af5 commit 5b680dbfbf6899afaf8bbe59b859509149d59129 commit c282d9512cdd167384fe0d233d13deea538658f2 commit 31d64b8219e057705d7a9debffcf6abbccb7781e commit d9eb8fea6862e63421f7b9c93e32bef348488c41 commit 5279e091616b74ff0e4a24e220e0552b10d88d46 commit ccba4e5bc856471ed009d92747376ee506fcc6ad commit 3ea07c89fbb777669c668452e94275a98dc8afbe commit 1f6c40d5c0095959a260c014a6251a0ac124c721 commit 09ece5ac397f8e3539ea9ffb776e1cc6702acb9a commit d715c9a2cbd4b5dbf72bec82b033698db3c6eca5 commit 9506b8d9626f4fbc230dad30cea1b3b095f1e4d4 commit 2eee829ed48747181b17f3f8d458b23981f2bb7b commit e2d8ea4320c6fcf9f042e432232240f858ae9ed8 commit 1210b17dd4ece454d68a9283f391e3b036aeb010 commit 87e298d6e3a2169831a2f4a29e35575ee5747036 commit b80ddeb29d9df449f875f0b6f5de08d7537c02b8 commit 4a3ad932b2c538c62e4a60dd4b7411f802e018ec commit 2ca97adccdc90247c907541089e85101b2d87574 commit 09db246ceef70bc6bd9c3e0d02b3c855f8fc25fb commit 9cc370435cde6b672b6e2221115c2f535e8bd4ec commit 5f2c1192eba42f6926253a1f2c9b18da05b3c31f commit 72b90723b3760c69721b04f59436f38cd215e2df commit 0c5a0bbb7379625eb2a5b6a931415c008b7a1a16 commit 5cef7e8e2fcc6f9e8d2134668848a31b15c523b8 commit d52e77a3ffcf2da2be1a7892bc8fa67b0e907058 commit 53a35edfd0a767dbd04537596d95f56e94582f50 commit d063e70c6acad14987242f266e9448669db4624e commit f6a3795d35c69bd34a556e1d93000057aed78599 commit 0015cce5cf04d3bd7b2ae4f62d5cea5d35383e8c commit 05d6aea36a69e65b071e6ba897bf83a4aebaeab2 commit 85b8f62b564120943cc0db1e754d6649037e6c7a commit b5d9a483685c37a480420cfe2d41a03d529bc0a5 commit f2bde8349c35d01d7c50456ea06a5c7d5e0e5ed0 commit b9610edcfec216d7a2a5ea2c942734b3e5e26ffc commit 212021297eafe23b79ac117db9b5159d1df2ff30 commit 901e2be20dc55079997ea1885ea77fc72e6826e7 commit d0d66b8c66d04363eff3a5b09da4074fc1dfc758 commit 243c719e872a1322b22efccff80776353357b296 commit 82c3a7a5edbf5f6feae9602d19567d2b5b55121f commit 153a9529d7f372ce7ceb5eae7e2c312c0cd64d41 commit 588a70177df3b1777484267584ef38ab2ca899a2 commit 94ca070cd3737dd5c3b98f615bd4cc950f82a597 commit 5e6d72c643e1262ff02e057620b9f87d7d81141a commit 430e6a0212b2a0eb1de5e9d47a016fa79edf3978 commit ee2016b4b5bb70483e1c06218e7b6288704284cb commit e6f62afe9b2731b7a94b31fe59ef2c5134ad426b commit d726d43c20e744bab1e346c1f77b7a71eff0c40c commit 37d6b1506b80a5cf76238b6b00926070ab544058 commit 3b36f50d3a69ed720e4c464bc9c5fa2c3fadc750 commit 29c52ab2711f0e8ce506c120fbecb30e83f83339 commit 721fd84ea1fe957453587efad5fdc44dfba58e04 commit d8f7f8831bce9ef6a1f562037e137f57b5951501 commit 41e096da18b357ff1d2108c514b9634d67364c41 commit 20f6ac2d5e00d8ff154d9617a5c0b52ff12f3320 commit c3639f3be480529ac82b592e627fa7dd712de83e commit 6a4d8cc6bbbfea4469a063bff0ff0114507df524 commit cec49bce6e0cdf916433a248402bfdecbf6589b0 commit 9f807822abf5e210d8656fb5304f662bee64ca80 commit df216b37333cf2ddb0db86b966e86a53d239a013 commit c20b5d41e9de40a51b7e5516198c08a906fb7770 commit 1d894ce88eca35ef8627901c47c3881cb1f3e74a commit bc1ce503769c51c1c06f5ed126b07a545996d697 commit 8f4f9a3b3a0b733f8fd102f9e0843cad8d055c83 commit de3688e469b08be958914674e8b01cb0cea42388 commit 3f268ef06f8cf3c481dbd5843d564f5170c6df54 commit fda8d552c9c7783d4b29aeb6350d7404b31cdbff commit b889d89ad45f9957ea3eac8f61cb8884c2010940 commit 4be990af2f7ed8bf209cce3b86e1abac33742763 commit d05824796d9cf6c0e59a0aa86333584bde8b51c6 commit bf172a01ea485e630f28b6ad525fb277d73d3e3d commit 96e4c3c0ed4eb85e02bfa438c6b4ef7cea78bd8a commit 8295524a2d5550b56e800ac779a183b7f4d8c33c commit d083c232fe2dc4720d8f0e337613f88909ff9d2a commit 7e31ce581bf034cdcb1a94f84ffcf3cc983988e9 commit 6a6d914de30f15472b2dc36e8ac6bf016cfbaed5 commit e93a590c79faa4aaa4d7eadacdef9240e1e823a1 commit 62236df23d018fc977d2871744440efe6a08a6cc commit db3b3f3e62279b914e1958e93e057fc4d8dee263 commit b229712b26b58d043cd7386827f41ab022a4d109 commit 8ec6a72da65bbc4d341253e5a641a51bb1c0d967 commit a5d092d37eb5d25520d283985082e977bda68eb7 commit 516b33460c5bee78b2055637b0547bdb0e6af754 commit a0f25a6bb319aa05e04dcf51707c97c2881b4f47 commit a7b23fd90c804e79d1edb478b42935848bcd7e36 commit 66755b4871782cb95e3584c9e88b6ed6c52c9022 commit 10dcc8317f6063806ce1d34235af23da5e2fdd7a commit ccecfd013a39d8b8ea837e90f7f907e4ed5abe17 commit df8d1d0abd9439479ae1a0d8812ed57debe48a86 commit 94afe983b5aa56a841f208a6b455691a44eafc7e commit d5410d6974acd0aaea6742ecd8e3f7bdedbddf4b commit fdb5713c7d6f6d60bf23596eafb1ada154869ae9 commit 1439e3bea7b1201a9461ffbff2a9d59f3e65dc1e commit 8acd15a0c8c647ed4cb07c53c3ea4a8768c974ce commit ba4a28bb168aefa98ee422be8e04a0c964256f95 commit 5f825973b491a457c7233e808ecf64726abbeb86 commit 5e66e818e0358fe42704404580b70e1ffc7afb6a commit 9d6bf794084d9258dadf2754d911fcfeb13ea8fc commit 039cacd2393971fe11f855118eea6c83c8f506fa commit 1790b649b01ba7e44af7c08ffcfc0eaa9d4f5ac6 commit b6dca949b88ee69561fc4ed853ab7a2ae13d842f commit ac7c48c0cce00d03b3c95fddcccb0a45257e33e3 commit 367c9b0f1b8750a704070e7ae85234d591290434 commit 6225bb3a88d22594aacea2485dc28ca12d596721 commit a154bf6eda9881aa3dd74cea83dcff6de3ce9680 commit f4e2a66dae996b4fa2cc21b1904798ad1dc83049 commit 75513bf5d72cd1a81401866642f4a8052b2d4420 commit 7270e8957eb9aacf5914605d04865f3829a14bce commit fc6ea4bee130710a77ec16a86d2013e964602503 commit 9a17696049889550ce76a987562e679535943c96 commit 400013b268cb666a44c0827b136bfd4bb741b13d commit 498d46fe7aa7eda5807352d62af133a2f432b814 commit e63fa4dcea2f7afcbf8f2d013dfae23a61a273d8 commit bee7f8d09268dc80da0e841ca99d79f500d03b84 commit 7367540b26214ba5f7236e0f212fd60ec6d07c3f commit 4e13b063d2e510b54e3ffc2e975315d08d14c5af commit f06d9e4eec7320f5a560e49ed652e785c8ab5c45 commit 2f60dd50769efcd6eedd0dc6b3f419cdd1f1f1fa commit 3ed893396b0132fa5a4d3fe3f9ba358678c6dba3 commit e281d5940ae7f2ceff99d5e001a69b5f0884d2f0 commit 8cda7a4f96e435be2fd074009d69521d973d7d31 commit ded81d5b2b67e6e6fce0a1e8b73e4565a28dbfd8 commit 1ec5a44331af283b1cd3b0f0981cf65f0903ec8f commit c57f5ba2c8febe944ddebae53730667d5af179e5 commit c36846f3917962a1f7586a3d39a423e6679df3d7 commit 512712a824de9b856a4e61343e3e4390eba2c391 commit bc1922e5d349db4be14c55513102c024c2ae8a50 commit d29c9930279df7c10348772f812154d3c41562f5 commit c65b3affc6737c99c09925b910c7471d3db26b54 commit 5f721a5d1bb2e3ada83f04a119908b66d909300a commit 14683babf8ee356a232ee76b0acd332aef51fdc4 commit 7a05c5a0c883ed6353f82699dff8d789dae6b673 commit a594525c82e0b8d677a7e5fd13c7c115d41e9722 commit 270677026261ad8d1ea8ed60c3327d37aeb5f372 commit 46f47807738441e354873546dde0b000106c068a commit 9987151a90567785beebcbd5c8ac58d05f254137 commit ef6e871af3126850b429f68e8bd5b657042139f0 commit 063565aca3734de4e73639a0e460a58d9418b3cd commit 2af104290da5e4858e8caefa068827d7392c6a09 commit 8be576837b6e62b2ad0de2f9ba31cef618fa2891 commit 3d082157a24216ca084082ce421a37d14ecfcfad commit d80976d9ffd9d7f89a26134a299b236910477f3b commit f588a1bbfce781042196e68f8e200f08b3d9e8c4 commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc commit 751a9d69b19702af35b0fedfb8ff362027c1cf0c commit c50df701d49e78bea6410b4b111c7be71e2a7c2b commit 8023d3bef18bafe54708faca0c4206e1a36ca155 commit 6149cb68a5be127909ee39f4d40b8f5ba0d047cf commit cc954cfa6fe47579aa8eceaed00677feda0a95b6 commit be0c94ee215043c0a5cdbffc5c45b5073054e125 commit 5cd0664483c1be4a71bcf4ec643f5d3c782e0319 commit 0adc41de818c1a051c18732db57b9ee95b30898e commit a68819cc557cf0a37b7fce50d412abdb73bd69d8 commit 8de5df3b07efd1a04c549e59e0d72e2b3e2c517f commit a35eca01c372dc0f1a3ad663c6a93604c603a782 commit f0d4ce59f4d48622044933054a0e0cefa91ba15e commit c3e27f4307fed7b963d8e99c18dc51682b3431e7 commit 6d6c932daef5c5b3cd5e3692e79507d2a3306031 commit 1d06c820b2b7ceb38bdf0775fac495db4ad4d10e commit 23015f6f900b8b158f6811b85de1f96769be4dc7 commit 00dd7f953b9b1d85e97da8065cc2887a5477008f commit 2efb4adf489dd29526c412c4593d12e08076c68a commit 19d36cfafad0395d1b8a9db7a85d64282c42ae94 commit b5c84a9edcd418cd055becad6a22439e7c5e3bf8 commit 657b15d672f4d89cf0750793473b8963429f8ae3 commit 29b9702ffe70d83b9970abbccaeb287dfda4409f commit 363c4c3811db330dee9ce27dd3cee6f590d44e4c commit 2bf68bbdb6f5a445b26a0e8fe14af229ffcc7f9e commit 86df4141869350edaa53fb994b3db2c2cca5065d commit cd9f7f7ac5932129fe81b4c7559cfcb226ec7c5c commit 70c0b80d0bbb97c072c4a9c3e8b0f68a9e22d7d2 commit f0bb41fad02e0310fa7b222c7254a3603ecaca1b commit 72be4584ae7e23f64c292171cde6c8fd887aefa1 commit 3f1a31ff8e3f6654d2b03a34095ca1658e4cfd77 commit 2ef6d3bf426218440b156d392cf95e830990e0e4 commit 66a19a3a0e2d200121f30a48d13b80532582f1a5 commit 7d296f369d38e12b1f9c552d8635eb0caef71095 commit e71a74122863fd8acd23ab772ab4f7c3a378aa66 commit 0d6419e9c855dea476300e2bb81d29105fe76d38 commit ce2fce2513c5c1076f2a2d6e977c0ac523aad5e3 commit 22ba60f617bd1cfbfae72f73c93ef9507a305c59 commit 18b66ace6b3acb01b645d2fbbd571f66b2705c71 commit d2a197a45daacd4ab3221161405768a6d1d11086 commit d2895ec4ca6c67c5a9c8ce74bd5deba76ea77f6c commit 6a77bce58c6b29167bce2f548559c75326bbaf03 commit f89154b6525c7ca394ca68adc90e6a0d5b3872fa commit 1ca489fc60e2713a9acba4294c6fad66d85961b2 commit 90c44207cdd18091ac9aa7cab8a3e7b0ef00e847 commit a2170b4af62fd347c699ae3cd9ec0a8096466f9d commit 889f84798c5b975125f5f7de910ed222ca8b2677 commit 274b924c3ed18f7d46d237810dd59d3bc89cb4b4 commit 241a074fc1342b8f6a88af4b7bdc014692ebcde7 commit d389eafa3f50944ca272e0ec865143a9fb948e78 commit 219fa961e12497fe6beef478cc0de0da47b3a3e6 commit 88839870c3060a04a2e085ef1efccde4b0d1d440 commit 702f8dd8319fa6e3fe9d90115426202e6ee5d06e commit 9d8033d6beca43e9d8eb952adfa8bf08642a357f commit 2426d71c52876a5558b40af06143688b3978ddb2 commit e8702d0b97dc9fa825715fb28f116c199bbebc87 commit b9d3d50adbc79c3131ff3c5ac35bb9a57442f08f commit 8788e0668f4fd8815f82c982879252aebfa708db commit dfabe59797799bb500897ab4064f8a76aae4026a commit 2750caffa7a9ae82824d7ac3ab0fee65181c4126 commit fd24926676801dd68afa1f39647a858cf4f6ae50 commit 2412d339b30e66f86d9430aec26f5c6a44908b15 commit 05f8c2a87aa01d1000cf148213560117e39a48f6 commit bd682a788c1f4fbefe17b3ee9e0e3debdefeec6d commit dd4dabe4b3c2425878a49ae8d5817d5c5958c6db commit 33413ef964b8cdbb25a23aaf0b4aa8f0a330c4cf commit fcd6b0e270a9dd849981df34051ee6dcbdbb1c0d commit e0a4459d45425fabd5f020a2117d350c5a07477b commit 6927913d700749a4b9550f87f294778df2a7faa4 commit 22f7cc7524081bb2bfb2720e43ab9889e2ed5b00 commit 9308a49d8ee2f0f372fb7f18b8f4a97d9ec676c7 commit 4f860edecdafeb2e5fb29fecc6428090997936fe commit 5d64f9bbb6281a5a89a2266b9d39daa1fca1d6b4 commit 7e2ec174945fa98048b39baf2a87973eddca3241 commit 876f7a438e4247a948268ad77b67c494f709cc30 commit d30b9ae93bf57414160503d3cc62735adeb61557 commit 377c675f3c17ffaefd023ee283bb366bbd6bbcea commit d946bc44aa0bf03ff5c2888e8c3be8646e14467a commit dca384a3bf5af1c781cfa6aec63904bdb5018c36 commit 9277b75675113d64a74ec01a1219973f3720d9a7 commit eea89dff4c39a106f98d1cb5e4d626f8c63908b9 commit a3574119826d9a4ef807fb973cf5150c3b90da43 commit cf1c7fee7ef37cfc09b5e704eb52d9466ca49012 commit eef173954432fe0612acb63421a95deb41155cdc commit b3dcc6dc0f32612d04839c2fb32e94d0ebf92c98 commit 15512021eb3975a8c2366e3883337e252bb0eee5 commit ccbeca4ca04302d129602093c8d611065e3f7958 commit 542898c5aa5c6a3179dffb1d1606884a63f75fed commit 722b717d8e2759d943dc1f55a2f6fe19c55080aa commit 972aa1a161d8eb61bc588c31bf568bd69c7c231b commit 7994369fd3e758ea1fde269ff7c3984a8ab52b59 commit b8c75bd9746e3f1bdb5a1b6288b50dc2fdfec0ef commit 2d022081b333a7f15ba27607696d4a41a7a2b5f9 commit e56694f718f0f6694c18d7595e61533a2663335e commit afa37315917bbc9e71a4359f921eb887470c008c commit 3698807094ecae945436921325f5c309d1123f11 commit f185381b64814bb483416e4dd83d85891018a7c5 commit 5ccbb057c0a1282b39192a346f963fa989ddbc92 commit 73fa13b6a5112b59d09e58b8075973769a15814c commit 011bbb03024f5a22dc04eba370f9296f0cb83502 commit cd9f79103003599e58f9f394c07cb4045883a51e commit 626f7b3190b4c07917f0262162cb7fef7272c34d commit 8668dfc30d3eee695233ce83944abaf5546a5017 commit 2485c12c980a36bb9e23ababb07d73c4ac6a45af commit 5bb6a8fa75fcfda93592bee0a4910420ceab15f3 commit 42c6c48214b726c30918e8dc80e2168607d13ae4 commit 3a9822d7bd623be9000cef8101ecf8479fa53f2c commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 commit bef153b70c6e3594b849d44a23f806328b9c68d4 commit be072b06c7397004e6464b4225e13c31ed0b9ca3 commit 4717fe3d8dec42bc951a44f41efc95d635d26325 commit d1289b41ec4db347794abfed7525e33dd2d9503b commit d763d8030f440441177d9638ffb0be39cba32a03 commit 08a987a8a02b073c620b5f3f363714ccd98c0bc0 commit 9d5dabfeff3ca63925cfc9c427f2d1fe8929402b commit c2db32ce77adf82dd2a4193abc709ec51474f84e commit 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba commit 692996f2bef7aa1737e07554255ba0d9a73fb750 commit 3f1e2e9d9993a3b1e33661fee26566f091e01b2b commit 3f3a24a0a3a58677d2b4f3c442d7a1be05afb123 commit 00b14ce075732edb2935d738de990e9aa96f1e08 commit 447c7997b62a5115ba4da846dcdee4fc12298a6a commit 00d6936dbd5486bd5c0a07870d5747eed6f799ec commit d5e8ff5f7b2a41d503914d4896ed3c6b3befe933 commit a50b048276c4e1bc6f7e869c99b6bdc91b4e237f commit 4e781873fa1359c9a85559b6da6548ac5b07ceb5 commit 29ba7b16b907a1f915aab8b83ef901e209146938 commit de95753cce66582b0c710dc31592cf15d317118b commit bd42571168ed54d309480856fadea3eb99821253 commit 5af779adc3ab0245b94187a3fad6d10f60013c1b commit 2d282665d2613fc7be9dde557811a7783ac01735 commit 7ade3ca9cdb547eac2cdb661c91a481235e21ae8 commit 3c6591e947f5c23c13dec67da3dbff12ccd6e209 commit a89ef0448c9b59c524499663eeb92a43c8bc67fd commit f69c15e15e74fb0250049c5532d8322c75f423ad commit a423746305d41c1e2767b832742cb572ab173af3 commit 6d33f0e820bfbc4f0b9b2f23d0d30df4bd6c3001 commit 3084488a49d6d58005d6ac1b5457b3f13bad1ed3 commit 77a35bb579827216d911ece7a6b909e4ac8e1626 commit b65007590911ad558999073dbffa413cf4861df3 commit ca7f9d0aba9940f4d3e759f44c414c3707a94b21 commit 98ea24e6c563241814abcb1d22ec207a7ec2fd9b commit 559e2655220d56f939a9fbc6212992345025392c commit 39da460fd4c0f8e7290dcc9cbfc9375de9d0eeca commit e8dd130bfdc627d935d4eda4654059a24864a493 commit ed3a56f9c638a4ee42031eac748664c834fe245d commit 66d58bf73ba17ac45fca79f2e5e26870cc224ee3 commit d7d7ddc15672940be0dbbe03e016c5bb617256b8 commit b6fba4ecf3554c515aa5354c54dfdf70d7526ff1 commit 6cbdf12b87356827d35975dfb3030d116782737c commit f54b6bdf4248b1e26ff66932231e1d6a2f16adc0 commit 3786a9bc0455ca58d953319f62daf96b6eb95490 commit bcfab8e35ce81e2fd3230c1575024bfde0d28c8b commit 120cc6e67a5e34069693cf1711ea222b8c414685 commit 68550cbc6129159b7a6434796b721e8b66ee12f6 commit 4a5dc6c73dbec54648fe01af2f1818dc3ae90d5d commit 7938f4218168ae9fc4bdddb15976f9ebbae41999 commit 976b6d97c62347df3e686f60a5f455bb8ed6ea23 commit 0fd9803b985e5d94e2b9f1848a12756b7848b62d commit 270b48bb8da7452b4357d8726933beba72652310 commit 68129f431faab376c1dd1c701f2fb999eea53383 commit 18f5fad275efef015226ee4f90eae34d8f44aa5e commit e09b9aef6807474d6964a2513321e174f5162e8e commit 9285f09e8f96496604cf0755a3d7e91478120609 commit 6abbad2c00bd26531c203f29190d14ad9eebfc0e commit 042ddf6663a86be98b306e6cc9e7048ea4c835c0 commit 84d826c8fb84a57716b44b721591a0fffe4ea1ca commit b20384d9196788dfed70aa7cfb2b3dc458217918 commit a59b026419f33040d7d28b8e3b1cea681b9ce7a7 commit f665147cda30928ce79045a13953eb709fa3dcbc commit 3ab26eddc67a67579a2b52f908b69cbc253f5ff3 commit 5e78d59a1ead969669f64dde4245cfa65b7cc4a9 commit a28fde308c3c1c174249ff9559b57f24e6850086 commit 053f2b85631316a9226f6340c1c0fd95634f7a5b commit 2a3950c43e2ead47ed7456b04da5d4afde58c4b2 commit 6b0076540faffd47f5a899bf12f3528c4f0e726b commit b21a142fd2055d8276169efcc95b624ff908a341 commit f4044ca1967098b44bd2d569ddb99352b599551e commit bf8900406e9e5c928ba578c8fd932b4bc72556be commit 2ecf64a0d26699f5f7458e87bfc873a47a2945bf commit 6e007c3bc97024853e3397cbbf37377fe8cf2b5b commit 7e97596c743c978e81ac67a59940071aa292b2a9 commit 91cb1e11786c4d5cfd8bf32e891232fa42b03cc6 commit 11a1d09c974fd58b8de0474081d6e97bebf4b619 commit a3de31d55b2a9fb672007aaf2b070cf90ac7dac6 commit edbb9242478d3aed8b4d3cb197032e9ded26b3e7 commit a0386bba70934d42f586eaf68b21d5eeaffa7bd0 commit a4c63cafa58b4bd9e15511bab77a4752b93d3aa0 commit 5fd8518d187ed03403a4d4f7f56f52c00b11c148 commit 54f329cc7a7a7ea265c45b206d45e3d09192aba7 commit 02599bc7f7047f2b316ab499f41d72ca14e3b3d3 commit 681260df4dad45337b14ba762f94b402204e9ac3 commit f287a3c5b03f51efa8d8f3e141a79177f91047e0 commit cfbb6b0047448e2d986160d9f30d60f604d9ad0f commit d0fb18b535679a28b1f55a312b7454563b9bb36e commit 89a7a87093d67e2c633e1ed400ba00ffd15bdae5 commit e923be9934a9c54a94e443f9e77bda5b9fbd1ce5 commit 3675c2f26f33ab4928859fb8950a4697a16be5c9 commit 03e5b167bd2020053f3d10b61a361de8b17c5936 commit b1c87b0874a4a2045dc78a8d3d3a77ef61536711 commit 803ec96319eec2897d3828e87bd38180295d0dcc commit efbb7c98f5fa5a547c4bc0369f825c930aed8918 commit 2feb6b0f06b1221b2841ca61b721b1d608bafa79 commit f3b603de2ff41eb915d75163f7212bbf177950d1 commit 28f5f8884e7cb9cff5375db487a8ca7cd3fd599f commit 98476876b837069e4582565fee63e70810c880b2 commit 40f1dc5223ae9b98458124bbeabbabc74c2bccf6 commit de7fbd020d959708282ac0916be3e5498086d9aa commit 6c1a7867734bc6f54e8442f47790c90d3afa07a2 commit 5bdd3eb253544b1e80f904e1205699d0a126d2d6 commit a439b890dbd17457f071e41777aa1d17916258d6 commit 1cbbc8d4f788af4c260ef3cae05902ef7b191197 commit db7b81545f5abdfd1f13b7f0a3f995994701cf92 commit 3b99e8e37d0ffaa0ef95598b9b83c49c89bc0ea2 commit 63b5fa9dbb711e245e59cc14eaae0106eb716447 commit df62ae6fc9b49a9a401afa2efd3f36c0f82ad663 commit f5666d482305900b9622a2c9dd73a864a3b0d281 commit 24524e3f43cf77dfdff7187f76d967b3175f68bf commit ba2c5d15022a565da187d90e2fe44768e33e5034 commit a3c286dcef7f8bc576a20f5d1e80624f6b4b93ee commit aa15c677cc34e626789cb65b8e7375180851c03b commit 67b723f5b74254d27962b1b59bddfee1584575ff commit fe23b56f56532dcc5e49e83e20333b97919dec53 commit ded74cafeea9311c1eaf6fccce963de2516145f7 commit 1528038385c0a706aac9ac165eeb24044fef6825 commit e7a09cea6483b44ea0c82f07145fcbd8a918bf96 commit 24a644ebbfd3b13cda702f98907f9dd123e34bf9 commit 73144c0ce4e9d69c8d0de4078b6bcdbc55f79db8 commit 66b09ddd8b323547e24871ec05fc63c44a557877 commit 69898171829d6fb92e366a989f2f14d8b5b15e21 commit a391e06958b2fe3f53171ba04f60dadf17b09d5b commit f7bc440bc79ae5dcf648b90209910ea8dba6ef0c commit 0f4b58423f3500ee3e3159fbbd6c41a6e6f920d4 commit 0192c25c03cd2feaeaadae375fe6aadff788939a commit 427153ef63a82a4d51c6046e2457787127f4d6d7 commit 92e438619d1603995ecb9f1fb2c322cc304b759d commit a421d8a99216d46926609611cdcf260fdf900645 commit 3ee7fab0f3d2c1f9c2bfe6d4fb8c58106a52e840 commit 420f63cb6d2a691b94662f50e07dc3c9a851bc69 commit 721255b52700b320c4ae2e23d57f7d9ad1db50b9 commit b508d01fa577e21a8f574dec09a16e5f2f6c7d3d commit f3392b85130fdc9e17bf6abe362d5e9e4bc9b8b1 commit 985a0256df3290d318bf937db7ef0633f7654490 commit 88d23eda3c7f8bb560ae93b00d03688ff7920cdd commit 165bbfba34cb4c8f31d1e643abd2d5cb6eba1b90 commit 2528b396d5304a711d28f08047a8fe60daebc3ae commit 154cfae6158141b18d65abb0db679bb51a8294e7 commit c8eb426d47abfffb0713dfba8d25d99ff091f3ab commit be137d791b5067fd5f290a593336f93019ed25c4 commit d21b3be8e14445fbd06109b4831c4fa8f9adad2d commit 8a84e7a176c0a02a97f64ace508c1f2546c30bf6 commit 759d4fff3d2d70d6b689a9f1f7eb4488df337fbd commit 63b81e6063200d01592cc2cf9b3a87dbade2e149 commit 04d4e167522fa9b60c83e04c4a74041b36b2327f commit cad3fab413efbfdb1c64a08808aa3a59fa288457 commit 5d488786a3a18d48bcbd1d215ba9dc6811b7d639 commit 0c63fd3d962525d3eb1001ebc31537206f66720e commit 1a7a8d93db9b8c7ee9cba983fc6aa8576da237ea commit 6148f3653bba417488e0d289bbe60c6fc7c4e711 commit 2b1466ea19182551ceffcd6deed2b22377cb2a53 commit aeb47df35742376f2fa13ee39039f1873daee626 commit 02cae05ec4b6d6f1a1a07c98a34e69ebc1b8f7d7 commit c7703ce38c1ecdeeea6791b54fbee29a08816ea9 commit cc188a73addc8188d73ad11901b697acdc7fd0b0 commit e5af61ffaaef0e952e248de895454cd339080035 commit 5aa71bd773c390891974b1bcbdb3b12aa17c781d commit 574ff46f10102f65c40d24729197033a80458238 commit fd22013a098baca78679656d55f8fd0becb99a8d commit d8a25e48585773afc573e835a52f9cbf409215bc commit f9ed188d5a08cfacb945b21976764f57c0ea9ebd commit 69f915cc97c4bb82b34105a47abf613f7c87215d commit b06b48d7ddae440f3393e5c1ddda4d2537b3a7cc commit c8cb19c7b26d78434ec563088d5d377ec2caf616 commit 60aac460ed97852f620529f43fd58dd05e41644b commit 816d61d51a31bd16d0fec75526462dc987f09114 commit 8bbd4d83a68beaf54ae01b2e2aa2024ff1dfc0ba commit 461fa7b0ac565ef25c1da0ced31005dd437883a7 commit f3986e86b2d861a2ed2d336bafe53b5c404cb995 commit 1915a433954262ac7466469d1a4684ac54218af4 commit b010a46bd3abb161409afe147a73fe58c115858d commit 24992ab0b8b0d2521caa9c3dcbed0e2a56cbe3d0 commit 7f161df1a513e2961f4e3c96a8355c8ce93ad175 commit 123db17ddff007080d464e785689fb14f94cbc7a commit b9c7babe2c2e37a50aa42401b38d597ea78f506e commit d315bdbfebd517cf5efabf666c8099e027ef666f commit c6fc836488c2ca45c06d21213f5281d668b42b95 commit 9a8e720fd064193ef5112dcb221192fd4d0f7809 commit 74fc595465a0f8e54a71a9b2fc8552a1ccaaf5e2 commit d83d5298ba188a829558ebcc395469e39ffdc2b3 commit f9bf77df111a16d00cffc4ed6b7e374956290dc1 commit 5472b3f2d9ae65d809d0443dd8f5cc7e1b20b1af commit 5f2ec9095ce8439614ac289819a44e02f52a5415 commit 82508de228bafb2ea8f048f7bf11bb5547354d62 commit 01b94a9361680d6582dcc2a73a9eb464e0e40888 commit 14da21cc4671dbedfbe3854e495f24adac7866c7 commit 4feb2e9eb95f785ea39d5a7e69b845354c2691b3 commit 548b512e144f890a7ba4aad71985cf4a81611f5b commit 57bfb34a51c7c655335010b3168c1061b5eba354 commit adca62ec370c131ca676ea4fb2e4e450f999fb9e commit 90d4aa20c8cc76f5baecd423b5dc289b899ebc42 commit 0e05fc49c358cb49e59ce8d6ecda652951335e1e commit cecece2ca505dcd47359ae21e3b37ca1f57c08e4 commit 8668658aebb0a19d877d5a81c004baf716c4aaa6 commit 73792e6e66be1225837cc1a40f1e39b1d077751c commit dfa714b88eb0a9d763eba9e5720b089a58dc9496 commit 3fc2b087df2ce87dc11abe4a5e7a02b75b5bb82e commit 7db47b838896ec2bb57e3d0b329804b84f32626c commit d5c6f647aec9ed524aedd04a3aec5ebc21d39007 commit 77608faa77196cb0f7af3fd0e3e26051f3de1db9 commit a6c40b178092f41b9d6cc8615697c14b1e5a1c3a commit d87f36a0635edc58430e322f9e04fdf9aae6641f commit 2243f4937ace91437fb39f9b67d309c3d0d7aed4 commit 71579346991927687c76ff76084bcb1f9da410a2 commit 22b1df28c009aaf78e77b20a9cc8d8bf98e698c8 commit bdb3489cfca16815e9a737359e9e90a4af5d0ff3 commit 311065086ee15b4d5d544fba44b66349fa7cd246 commit 634b56b0f88bda4a20f88af2f3d8bb212ed53027 commit 88bc3cd8450b73ad37c9de4b48c315e6c8002f03 commit cb9561d0e3f4393a31fab2034c33c6cf2162513a commit 80ed77f971c3911d6a6f7c537540b4ee62859455 commit 683bac6b00e1158bf3c56dfd9f55ea34acebcf90 commit a3ace75cdb6979e18ec9ad00862445ff71bb8a71 commit 892a57a975c3bd51834ddb0afa5f27baa19a785b commit 9252d33df597a60416f3718b9b41457657c8540c commit 563285c85ecaa1fcecf304dabf87cbeee1ddbc3f commit 2fbdbe958a15e735a24ce33751671e9bf221e70d commit 1ec1944eb50c8de2d96de1188eec9f8b22d03366 commit 7258fa31eabd882f6c8ed4d6d281f6657a33ef94 commit d2cb0b21b8f809ae04a5c30468d3ccff2b23eec6 commit 009e9a1585059ed517b8e02d0afe11128af5ddca commit 3b853c316c9321e195414a6fb121d1c2d45b1e87 commit b60668cb4c57a7cc451de781ae49f5e9cc375eaf commit df529053590d59ca3e06d5b3232586987b61525e commit f461ea5d8dc425325f4c478dfcddc4de8e24fea2 commit 7e2aa820ac24f9d5c1fc39ef5a2ba7baf3384596 commit 208f6265d519643f380c504ee1c1ef925f2c7d5f commit a6e7a006f5d551ee0827059300148e1c9cf4f9a3 commit a32ba6bdca21fd82cacfca2aa4708cbfdac6bc49 commit e283820cbf8092c87a8d6461260d5bc525da72c9 commit 2509969a9862b522d2208e8663057fb227556687 commit 6ed19359d6bd62e993b09a7a565d7a5ce5e114c3 commit b3d9f59f69289569133730e1be019adcd9e06611 commit 4a564e59bfb7732ec168f66ee77bf1eb81ff9319 commit bcf8b616deb8794179e3e9c6233a53f42664afb2 commit a61732e808672cfa8c8c6028bcf9feacb953ef40 commit d12dd1db809a3f298b4ef6cc02ca64fe3038391d commit c17897428e1d25975da5d45d40f53bfb19d8fdcc commit 3358e2ca0ebd6454307bfb8affab35d26cedb9db commit f12dc0d8431e1fa36a3496f6a0a34edba1fea2f9 commit be78311eaa92f71d2f4c0861defaf185d799e19c commit a19c1d00b0d350fb7b75c6c4da91887f66114a7d commit 4895b90dd510b217852b3d118910f57f3f333b2e commit a874aba8bbc529517ed154d88b08e3c437564c88 commit 93cc7aa0b037f34d9a55c58fb4ab6bbd802fa47c commit ab9e00a3509ab7868cc3d4641f45ff926467b38c commit 680a5cd10b9cf4922e182f768d3a534b1a4427dd commit bd3de31950aecc29abc6e554e3b3f6883080c5be commit 0d53879faada6278209883a9eebf39b9e3a8ba10 commit 573ca6fb97c617eef263b15d982dac2f85fd2854 commit e30e6c7b82a18256a1e4ca2f067ce2b05bbc8871 commit 5f1d00420f46774fea45244effc6dbcd53cb6bdf commit 783782a52340e850840c11d823b649e6ba83a700 commit eed1a5c74216907f79f7b1af725e570e95bab0ea commit 92ede25eceb251ec31e1599065b98d681a419046 commit b874c6671b911ffab69f70b298d074a1897b8aff commit e610941c45bad75aa839af015c27d236ab6749e5 commit 7e2a4cfc62d35a7c567e7d85b0af2651cc6b05c2 commit c85bf88ba5100249451151fb1b76d2ed9e40b634 commit e506db5905d18b014aead347e37b7311858e2750 commit 951be8be7d66fc7c69fc2e2f42664bdbedb48c32 commit ed7208706448953c6f15009cf139135776c15713 commit c5365554514178840400b801787bedb567811064 commit 8639bd70497ac96a83ff26b8118afcdc45f1cfaf commit 4d7ba312dd1f94cce23f1f93f33bdf92db090688 commit d9f2303004581f767f3f4acfa3faba205c9991d9 commit 128f8ed5902a287a6bb4afe0ffdae8a80b2a64ec commit c25badd59cb4978bb702e52ee4c5b5ed1cd03910 commit 43d15db1d067e4cdceb0aebd10b9210b97899789 commit fa39f936dbb96626d3345fd8d66af6be6f47ff9e commit aa79d3808e8cf1f5fd0f1c20c2e6a6865b5b940c commit 17ce8a6907f77b7ac97ddaa071d8a1f6e06ce85b commit d5c831566d34924f62082f8b675d35c078f9b45c commit 29b440d20456033091a0376cecdc23c6875d51c3 commit fdda8f3406f98fd087784f9516b3825bb4b5f6ad commit dfcc3e8c24cc1fcdf9e14ef98803e295b5e4f721 commit 01cbf049e10f2cc4cda5570ca8ad3d0334cebae1 commit d9f8a22aaf84be5640e0fd8e2adf0ace61ee3703 commit 2019bf7cd2135bf4633dcde8357c63fdf1ae87d7 commit 2fbc5086975679a5c2ba1bac3ecc5942cf7726c5 commit b67f00e06f36192da513ac80148b000fbc5b2717 commit 35c27d9578356762e7421f16d61b91ab46dfabee commit 97437f475c5be7804592bc258e3936aa318895a8 commit f99a7eb2d11b00a20c9fd6e724c60151b74b6ce9 commit db090ff8f98d8314fab0442a16e7b1e6a33e16be commit 967af863f23344aed4353ddbcaa8d6d6727b34fa commit 79aa0367385ceaf5351ea77ea1fb66136739ea9d commit a65dbf7cded724a5ed4a5e1a718616b048ca0c34 commit a4c260de9b6bb3c54a509d24baf871c497bca7ca commit baf682144ecacae4b98597daa636ce7b2b3143f6 commit c1c04560ac038da28694a04d71958ced32964647 commit d8b746eafc2ccedfc0d6008df7fbcd96e149ae82 commit f2ed8ef31366467930c98494535a044e33a1b3d4 commit 5224f79096170bf7b92cc8fe42a12f44b91e5f62 commit dd4821baa8b6f0abceac43840673b4556bf73175 commit 2bb116c7fd1fcd80c7727be44876070d1b3ce923 commit 64b14a184e83eb62ea0615e31a409956049d40e7 commit f3f6eff85f94e742ed9f34330993cdf91f83d579 commit de7cc1b48fde1abf13324e800cecc0aad5078ade commit 868f4357ed0d1e2f96bbd67d4ac862aa6335effe commit c477eaa6a79da6af7e59f74e69af7d6b3af52a23 commit f83e14011e042adc196f1dac7cb235c70798c231 commit 4e9b1fa5a2757d11a5c40eed2b2b4837dcb2f12e commit 72b3588e27feef96be6993d493c8c76a13bf8eba commit 068001b711e820184553e90f9bf2ae18fb4c2c06 commit 20c43547add3a60c553c90b730e6cbd39c4d5c16 commit caae42f00924498e78da8a960561936aa7eba503 commit 867e24ca4945249baf34ea07ae6b27ca927210a1 commit 418abce203fc2e936bf8c7632a9a429e861f6283 commit cba07cce39ace4c719e63b0410a53480aee6aaee commit f0d540989597d04905253b54d4d0ee53cfe70a42 commit 0ab5d711ec74d9e60673900974806b7688857947 commit d01899d3db2a553268dd4bc03641d9e80e41d67a commit 8f74f68d907d2a41be211e61aaa7c9268f5532e1 commit 6b5033831febbe1c009b6713338cc9e417b45ceb commit 779596ce6a79e187995f04f143fc5ea44a565ea9 commit 91aa9c8f5282922b2890227724467de2f32fbf84 commit 1957f27de290cde5a0d6e1df46a2c8b3e9c77046 commit 50e14a62ac3a56c62c5676bbb8b39245212e0567 commit a142606d5433c9bfc68c0f40ba32c2e05ad75d09 commit 874bfdfa4735cbb1b0d6e0c6157c712a312371a1 commit b63c54d978236dd6014cf2ffba96d626e97c915c commit edf176f48d87fa25ca93f09362707cf5314bf7ee commit 84073e568eec7b586b2f6fd5fb2fb08f59edec54 commit b71a4a2542e1b092b4f11ce6318eaf82619312e4 commit 9b43698af7c36361c340b95c9601c54523da4f2a commit 7f088bef6b0cd976b5d39eee5a4046ddc920ff29 commit 77f4ec2a4111f1dce0c5903d6db7887413a0a750 commit ed0ccf349ffd9c80e7376d4d8c608643de990e86 commit b70ad01a22176b6d903e9cb2f2184c2aa67ecee0 commit ab597bb3760ce2e7a5c48755cacf7df8abfcda6b commit 79af2404e537e0f74798faa0a26bbd374ece27f8 commit f470b218b0bb7c9bae8aa2b4859d9a6bf97d98d1 commit 61b3b2da10dba0ac1633c699c9d305c702b43720 commit c94d13e9d99bc0432cbcc2371060acf5e10cd7ca commit 48bb92d91ae9331138656f369e66b5cab8f0fa7e commit 89bfcd82b3452b6e47ddd9d573add43dd7de54be commit 93afe1583758105ec390ed130681bc7b70371b7b commit afc2f276057ea1eb165c4249d15cfbc1954411f0 commit 87b5e77f02da9444c630b1860b9f384e805eeba7 commit 935ad3a74c7d231b82e7fca15899a5cab4195b95 commit ec3ca078850a3310c9a393866418c85b7e6d40f8 commit d7fd297cb0f19a87c1eab63fdb90f8ce8f03a533 commit e8c487a6b70f060cfeabf3e155c9daafd627617b commit cec24112e125a228d5077eb05ca793398de619e3 commit 068ea8bdc0aacb3bba3d1392ed41cc1116a671b8 commit 62640f251f4777cbed654e59827fccd3b4c94bce commit 5b723b12301272ed3c6c99c4ad8b43a520f880ea commit 574dce2d2414f7d782536fbbef7d20d1cf027e69 commit f9490399614050a47472ff127c67830cb4e311f4 commit b9d7eb6a31be296ca0af95641a23c4c758703c0a commit 92d0c2ebe564f492ea71bf2ca81de5d95d58d6de commit 5559c7ba93fa6adcfe6a39ed80081466d8165e5d commit 9cc57625a6f374174f716f87af3bb5df87118ca8 commit f9806a172070c2d6094b0a9e488c8c172a6f35ab commit 0b208d60adffb6b3dde41841ee423fb5be0d01e4 commit 501867d0d2a6bee3ec18a6471ad99a7a1af47e08 commit b5b8ed444a7fcbf5229f0469f85c752b5192a9b1 commit 181ebed7dcfce21dc152c3b473e3d44e7e94bf27 commit 8dd8ffb824ca7b897ce9f2082ffa7e64831c22dc commit 6b728595ffa51c087343c716bccbfc260f120e72 commit f257879182867979e64ea8940cccd52e9a01759f commit 1d82ef6552b5b3e8450c49fda90a82621fdb8142 commit d1af7b6f91a56081165bf1c1220bf1e0d9699d29 commit 9b693453a4eba392bbb62169243f9513366a253e commit 2f8a6699c90df7616e5dd03cc0c6ea22d589eba2 commit 8c26491f58538ffc647b813070ba493e35a48984 commit cccd73d607fee52f35b4b030408fa5f6c21ef503 commit e62f25e8b3cdd29224c27938addba817aedd4b54 commit 132aaaf01788d5603a1358cd53a95e5367fd612b commit 87bd701ee268a13babdfddea53894a416209123b commit 5189e3126eb136a2cffacc708f08ca4fe86ebcf4 commit a413c99fc1e49db4db27f4bf0f7791011b4e2132 commit 2cff4b9ed6171c61cc50c38b25534f7c3d30db3c commit 6f84aa1cd47cc0feb38da76999626051491316d7 commit 00e27ad85bc9842e2a775765597e6fe4b6beb584 commit caa574ffc4aaf4f29b890223878c63e2e7772f62 commit 5e3094cfd9fb313be3b8fbf9f91e92a30483bc28 commit 4b31b8e34460af9b2eff0d389a6caefcb694a1bc commit 994ea402c767e54af60f1d01f0c16520480466ed commit e78089da45093e0f421b933849c56b7bc21108c0 commit de45f0a3bef63a754839f008bb0cae86d8f501c1 commit 8f0991cccec93665dd6ecd88dbefd7db2b28c85e commit 72935696f516e3d587838a9f0e1f82d251925840 commit 2b72a38c6f9b9809cb09df4fa5aa886aab6bf05a commit 3c0deb1485c49fb282010d1add65514906ed8928 commit 602e604a899a0d06afcd69c693f15c5fd91742d8 commit 55223c3bedcffcb81400db7f1ed1f207d523eaba commit afea229fe10282da14595870b44f82792451dfb2 commit 476e4063022787b5720758239ee4c22fa2495e82 commit 95ee2a8b4b3cd1fb25f7e14e2202da4045030173 commit 64b2a6a054c40c04a4e48fd70002570654381f9c commit 9648f1c3739505557d94ff749a4f32192ea81fe3 commit 0591ee6a5c428c2309f5fefcdbe40d9eb669634a commit 757f9e4dd51644729d27c9b5e56f75681e8f17d0 commit 22804e03f7a5ed35d86721d037bbf52fbfd0369f commit d4a7eac27ec2e6b5fdb64066e967fc7767cd4574 commit 7342bf6530a78ae80b27d9a13bb10a409fdc20ad commit f141e251474d673f75e8c16dbdabeb4da3939d7e commit e1dd4bbf86d5e1e6ca2eedf9ef9ac680dbdb3132 commit cec2cc7b1c4a31c0facfdd0ee7c2ffb7d6a76556 commit 9dff13f9edf755a15f6507874185a3290c1ae8bb commit 091cd9c3abeb68981552557676985eec761d6fe5 commit 9bc34b4d0f3cb368241684cc5e0445d435dded44 commit 02ed904261481460e6084769416e7ca31bbb92eb commit 390a1f8beb879359359ef38d30a0b0ccf392148e commit 8ab62eda177bc350f34fea4fcea23603b8184bfd commit 3d515ba9ead046a0c06a461697a8d5211298aadc commit cb8f00f27ae7a1e8d047f1e2c96acc257f09d51b commit 92937f170d3f49f41d7acb86243ee691a98eb2be commit 4010ce9fb634c6368ebb9dead9ef83d49c4dde96 commit fe93feb5ab0f6eb1a08295dee51b814bf7227799 commit e6ff5ef81170e11dc0f196b0391f708f04fa8c87 commit f915686bd97a9c234602426e6d132b74a112a8d6 commit 94eb6b244c7cb0fd955f712d38a8ad9bfc7740a3 commit 03a62c40544c057a4b0df86b7c4f17da7f7bb2ac commit 7d7007686b0f999f90690d27eb013aba2eb8dc30 commit d95c25668f2379c807e1fa6328954f494c4e2454 commit d5b8da37c017b182e121e6143979bb969833f482 commit 6d8ebef53c2ccea482ed77769b7b5cbb453b7715 commit 94fa115f7b28a3f02611499175e134f0a823b686 commit b9ef89392c2ac694a3e5624cde8f848fbf393818 commit bbd57d16d5ddeb9d8995a6ded81a6879be6af928 commit e460f244fbe847904abd767e4ae093bad699f218 commit b887d5f9b9232b556fa324e77edb92039e626f66 commit f113cc32e35b5503b268f0bd891fa2b7d6d12137 commit 8f7519b2f3a93f6eae76912be66188366cc47aed commit a0c5fd46b2510cb054bd4e1fa6c2f207424c97e5 commit e7c4723103dc58c3d86fc7bc4e03c2ab500ef8b5 commit 0b1a63487b0fe45750528f89ea688eda2862dfa6 commit b784f42cf78b08932b837b5aa15d620520cd4d95 commit fd546bc5ad909f7ee67f90d91d4882f0fabc7edd commit a7f520bfd0551f9fd672b45b9b3cc56ab4275128 commit 5a82b018230b3947a736f45afa95cab434455248 commit 4683af148fe8f94383ed867ac986fe793381e362 commit d41ff22a4eefe2b933a82c0d3ce8ff47fa86e212 commit 78be946dad6d9f888726fbbb5de81b521f156c01 commit 23da6e0f7d5ebdba2b18ffcc228130a33d5411cc commit cf51c8bc5c0085e77ed956306ec7adbdb7bf5ab0 commit 3679b8518cd213c25d555553ef212e233faf698c commit 3a4bfa509eb0f73daa2e30e409ed907f2a7db82b commit f3067604b8de052c6a1c65eed3305cb6f3f9eb18 commit 2bdcb12ff69df5e42eeebb297ddfc110ee8af203 commit f11d9373b61598f6a231dbcc74829c2f11dd567b commit e0adbe73d75e46e3665cf0fb30f2cfc00dd78c04 commit 2e6e14c9e47dac61e341d4b8128184e3e0eb3568 commit 3e6084aee08b108f5cc489be46c68ba56b13e52e commit 10a9accd4842e6098cc27d79d43d7542254003bc commit 9ff28ab43af4cd9f1771779b502cac1bd0aa4264 commit dfd9be42344d9d3c1ff23778923210301ec5f372 commit c595fb05e392a5cd17c70c4fd996b8cc9735f20e commit aa34ca52a325d9a547158cdc8644f4c21d68562a commit 301306a90ed3b2311f7f2eee6fad239d3a65fac6 commit 5ac34ff1a41b05c3b22f8b4ce4bf7181246c8bc2 commit 0c41b9b561dbd81dd3955c4c8b59d55244a80100 commit 29c9b6cd581de79ef848a50d1c9f06cf567bfd78 commit 504390602444a209a52bfdcc59f539e9832079e3 commit a1235a01e0b208d424c5e72ff2e794dd356f74e4 commit 9e148e8ce29dba471d4812c6a60a3e843f3b6270 commit db749b769ff61a42480c377c30df70b8b722041e commit b74e2476efc40b1a4d895befc31fa05bced5f3b8 commit 5ce5a584cb826f1c1f0625a336134feb4e1142cd commit 15fd09a05a66216a9ad772728e51290f6dea1eb0 commit e2573d5f2a5cebe789bbf415e484b589d8eebad7 commit 5b45b1c8b89f84d01fea8939b672631b51cdf95b commit b51178d6edddbfc8cb4da5b5e9c924f2d24bbcac commit 203bcac9bf2c5676bfb0b33c7f2403ea5d6ed332 commit e776a755abf0dbe14001e4db22aa1ee70290c1dc commit 30424ebae8df0f786835e7a31ad790fa00764f35 commit 24c6bedefbe71de94455032f82cdff2694c002b3 commit 7f44571b53fd07e36ae4d2537a6fb40d79b39462 commit 54f43c17d681f6d9523fcfaeefc9df77993802e1 commit d814833f9e0e1fec2286e7d65c386583139c6a74 commit 4f0f1b58fbacc3d4f60e0cf17b01a6273df1d415 commit 45f0ff404cc92cc97569333314b47e1654a0491a commit 0bb319e7a1146e15f1919cfbffe44831c29e8f82 commit 158a05a0b885f456a86720b9b6b4571943d2e307 commit 2656fd230d21ab765eaea24f6b264a744919f13a commit ce075e75e5e3b1274735118f0a417e79d68f426a commit 8054e2f01c2cd287a3872baa02e30ea836ec8070 commit b3e8239882d9f5870bcd78baa342b0cc42c1fbb3 commit b83e1ba9395dd39f6336358dd0cbc8ca6ced21e7 commit f728eb3a5028aa87ec85f0de5c03daee78fdc544 commit d4da1f27396fb1dde079447a3612f4f512caed07 commit a2151490cc6c57b368d7974ffd447a8b36ade639 commit 0904b83e0cbb3dc1b8d5c0b1a5daeca725600eee commit 11ef5c77abc29d78ccedc26d01deb0bf0b2130f4 commit ab011ab6b007378132b242e6a70813aab3afc2c8 commit b8986c889e7ac26c57cb548f8f344456fa925a2f commit db927686e43ffebfc5d1693c1cb4fd74f462d99b commit 8fbf28934acfdac08073a2d5697c7cacae8d3997 commit 80253168dbfd256bca97cf7f13312863c5a7f2e5 commit cefbe724960bb6b40c019569bc42e02327a09ff9 commit 111aeed25ec6bf4d5b4a7b4cb5654f002ba9f795 commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 commit ef0a04a010e2a521c927b071d6025c12a415747a commit 9a48ab11714c955456fefdd4ab532d324fbef563 commit 1be6b46f731392267eeebef9d59600ff9999a987 commit 9659dd2b308bde4143855f5b57b0412be466eb8a commit 1c0b1175e6f3729c91835f179eb9c97b5067bb3a commit 91a33f7e20700d58941b38bcf8eca0d0b281ddb0 commit 219aada263f909d61443a8d1196592797c6e0281 commit 2dce68fa325ecf5be7007b9e8b13174262a185cf commit 4801b99588a2e022da50e43ec5f768707de3f862 commit 98529e950d4cd25c05643f9811e2387df58bc6be commit d9a5696e7d52edf68776599f2a38b9aee1382be9 commit 58fb284c52b6262b9bd43420aa39124c39e2342a commit c723b8ee3864bdf41cc560da958b7ef7f6138f0b commit f3d45c9d556bf6174258507e0e10519ab7f5679f commit 5fc83950572a65d33ccd661cd9d8be7ab885d446 commit 691ebb1109c97da2943e2d753add9ad5fc63200c commit 0df0c76cc3fd99d72bc1b18eae25ee3e8fb9d1f7 commit d2cc01e1794bd13199f7568298614f1bdcea1683 commit 6c64ae228f0826859c56711ce133aff037d6205f commit 4a248f85b3dd8e010ff8335755c927130e9b0764 commit 235582ca96214b50fa03ea77a5e85e59d94cf358 commit 3312a4ac8a464daa66b97452ec148b69c5959bec commit 30b9d1b3ef374403652fc10fa36b9a5f32cc274d commit 26ffcbbef712f6fb52f16e6f7d5cde736b80d8c4 commit f9eb742988e20fb86926de8ad18d7e93b53d1a62 commit f199bf55104d480370515bc736418808e5cfa6b9 commit 2d45f66887055e169173345a7e6249ecf3ee7e21 commit 5558d6c23d18f2143f60d7bb387e43a5d8216fa5 commit 95ae342dc939a220b7afbd3a65f7106258f67cad commit 1e7e8e18db0fdd4da4e91597cf4d59265b8f351f commit 0e65e2e6abb09d84a75c51999e3a6cf80f30c929 commit ffb5c099aaa13ab7f73c29ea6ae26bce8d7575ae commit f85b3f806e4d43a0e3e5c042f40b7fe5faf2f6cf commit 7eef7f670086f06b3a461f1b4d1e84f793ed4861 commit c03d982670335d732e5d623af31c126387ae126a commit e22dfdb63df36427067fad6b9bfdc8c08371ab38 commit 38a15ad9488e21cad8f42d3befca20f91e5b2874 commit 9373505967ffc1b7b8331a21ba86ea436c09b981 commit 503725c2d9865533b2894f7363be16c762260b7e commit 6e0c5bf0cc1369df0057bccb3fc1af3b38d07e32 commit fb87550d2517878ebcd112f080865a2dc38e9bae commit beac7709e40ba85e0827ffe0c6f3d6840588db31 commit c803ae6d826e441b65b96133ac573c0062740bc2 commit eee5215bd784eee5f8520f2deebf437c3fa95abb commit e068ef3fd5a3574359b80ff823089ca59057f9c8 commit e2a1e7abaee128020fde54d386ec8959b1e9eb61 commit a8b2b8b06e10224c547d90ea97c483b4de511b22 commit c0bbed9051b6eb293be6128d060bb49e999ef7d4 commit 150430366b2dcb170d309952143e32eb814fe7f8 commit 944823c9463916dd53f365e9aa07f23360968080 commit 4b88ad503d6d2ea11891a355e656bf428ec815e6 commit 505c4857fb13fb0ea88a42b843c91d0b9f8231fe commit 803efd297e315859ac7830445699f01eeb1f7822 commit c674c5b9342e5cb0f3d9e9bcaf37dbe2087845e5 commit f4c1fdb93992ffc55899f38ddebcc0e1c390226e commit adfadb5638bf32e97326ec05ae379be561e13677 commit 87cb6d80f2d196427e64d2e6179ee9b1a3609dce commit ea4ca894a160002f4488324ec39083d992cc7163 commit e393e2aa0ad7ae0d187de93f4cbcfc480d28b5f6 commit 88ed07cb2737e15b7ea412dd8ab37de2397cccdf commit ff6b19d3a0f939465b1e40040c4c4869154bf516 commit b2006061ae28fe7e84af6c9757ee89c4e505e92b commit 5e2421ce79703b969eeb9684cedaa76be5305ddd commit e41d27eaf5485df99f366bf7c5382375bb2c19ca commit 52e8da704d8d3ca8b951fbc39cf8d6bce5c33db8 commit b8cb6ab68674d7889c0dcfac2d542a63b9e36d82 commit e433d6843310a259f0be18c80de26d75b9f7fd35 commit 38abd56bed580c98e4284a578380f5f70634a0fd commit d58b8a99cbb84c1eb3b3613d23c1a328695a9455 commit 1e242bf8bc1b37c74619403d0dd59d0f862af943 commit 6dc0fded62806373855350ec8c3ccb1567ddd465 commit 4affb123033851381dcff4887982f6c7bad938af commit ca6fcfa8d4461c889636ef5dd51bdec96c6122bd commit 91dcfe5fd9d3a59aec4a40031c1eef00b41b8f74 commit b51759661e2987993fb49eadcc262d6a2ab2a698 commit 01d468d9a420152e4a1270992e69a37ea0c98e04 commit 667c7091a39e8b360d34f37aed5f8dd85bdc45f7 commit 1f211a827cbda87bd0ec145a1f44f2615c3f56d3 commit 35366481d0941e9b470ccf09d85407381b5d6135 commit 9dad47c50f9bf19153c092a73eb4721344f4a78d commit f578a37d19c65361e141735cdcb691d3930b8647 commit 0dca257d6dc5526c4c293f306b7b47765987de22 commit f148c143ef3f6e897f4a1012d1bcae3aa240bd8a commit aa8e65dfc75f684cd46d49f71453ea3512a1e770 commit 149d7ba1f8fe515a2a36ff95fa659720e72fe4ed commit 30e58102d5164ce5df10bbff4c9d05acbd12a5fe commit 80e0c2cb37b6e00ec0b41c7670e24f72b2d54ceb commit 957b0787ee5d5c0848e2dde625c09850e1ada22e commit 7d4108e4ceb30a89c63ae62bea284cf42985cf31 commit 57230f0ce6eda6d47a2029b7b3a39cc5bb63fe32 commit 5aa061474b1e0cc9605877190e23a880cf1551e4 commit e6fac6a9c9eb42a9362f9f093dcb8862f2b38383 commit b6901d93cc126bbfbdc6caf5f0c03b82945e43f2 commit 00bfab4457c2b57897ea710a423684979c5b0239 commit 9a1358bb2ce3738826bce0799d47d6963ccb51bf commit fabe1753851c62d0292a39d89a4a8d7f15c96794 commit d7709eb6a197171715f370227173e817a3da85c8 commit 7952fa0d3e187504d509aa32f46d4d430e4eb634 commit fe5e8f07fc25c850e4f46967699a9b29b0ef647d commit 45a3e06be4d351af8f81b43407b3eafa5c75827d commit 1b537e64105dd8f04c8e7d5fbd8e97f9dda2dadd commit 31f5f46043c7e7fa453b0b64ea12073d524e2150 commit 825e0af0d453f18bb84feb40bff447cf59d61979 commit 3192f1d9b61a59d7c82fef187bffa7281fbdc9f5 commit 701920ca9822eb63b420b3bcb627f2c1ec759903 commit 730ff52194cdb324b7680e5054c546f7b52de8a2 commit dc90f0846df4870b6cc8528c31e5c60f18fb68be commit 27674ef6c73f0c9096a9827dc5d6ba9fc7808422 commit c9e9ce0b6f85ac330adee912745048a0af5f315d commit 2ab82efeeed885c0210a0029df93bb95a316e8c7 commit 863fa85e6a01c8b239009825dd9de1f64d7d020a commit f70b88b994a35755f1a065ba4b43d2ad4b401e15 commit 7a1bae874b5ec07ac97f02018dfad73fb9bae567 commit 5f5d08b7eb0ab09700b22bec2adcecb8a1de1120 commit 575d0df6dae46f1b5d26a35ce0ccbc5aafd40e1d commit 36b362f5af1ee23ef502b519c2a8e2d273b2f156 commit 493a7508d737a03b620bb0806e222bd39a9ebca0 commit 90d282582aa709eeadaf33db71e92718c9471e31 commit 9e08564727fc7770b30715fb81348aee54fa50c3 commit 24bf9fd19740df5aedb3bc801206f81dcb4acc4f commit 811c04dbb3dc43304b35688d4009117e28c1e9ce commit b6065ebf55ff2fe3dae98e7cedb6ec4aa3c33f91 commit 11eb648d014eb9e80bf553004551dd6694dfb5a0 commit c8b0507f40deea3d5014b5b4989b6a06ffedde70 commit b664a56e8626264276ee27edf949e748f6be52de commit d18b8eadd83e3d8d63a45f9479478640dbcfca02 commit 8c7442f026d2e36e1185b9dd79db51601d875b7b commit a190f8dc4aaf6064527bb81c07f7cff1904dc927 commit cdc7893fc93f1969038ed333b33eac1452c8d255 commit 6103b2f24e4a9716ca3f5de654964f2a083086be commit 48e9fbd1a28480caf2ac5ec6fcb79ac221735c5d commit f7ddbf5581b474fe4a0a29244acaa1bf72234675 commit 90f45c42d7d7b0ec0fd797485c07fc421c474e12 commit 17154addc5c1a175bcf3441ff0d9598efa1f05cd commit 43d26c4fc6c446d766253d546f0083d78023d34a commit 53b97af4a44abd21344cc9f13986ba53051287bb commit 4fe4ed07c815044755075eaad5fe1815436a060f commit 117f5bb31c8cdb1e8f0b443f2a0ac761bf54694c commit 176c0b55d9bfe6e2a7c8ccf3edaec7c92d856b2e commit 5c8107dc9a9f33a88a380aea79be564597d00663 commit 4546281e8ab215b2beaba8e79975c99859a84a56 commit e17c6debd4b2d2d474074f83946f8c6522587566 commit 5e7f44b5c2c035fe2e5458193c2bbee56db6a090 commit d55957fb299b74829c438f77fe29896e3aed39fc commit 96a2f0f2c8006d338a9647e068a15c6eb299f864 commit 482d7b582d7f9688a5f64ed2424157a76a17f2a7 commit 955ad0c8ba93256c9eeeefde5644b3480c1ddedd commit 1d38fe6ee6a874675ca3bba6b48e69a0e6176ffc commit c1593ddd894d0518fc96fe7f531f3a5c919b8463 commit 60a9bac8ab48ddbf68dc280cd26879583e9d72ba commit dfe3da812d99b40f99ce018152db4b3a87bd86c4 commit f8d81df285a2fa2e739a9e4774e413ac778d282c commit e96902eb8c69fdcc55fa6beee796c6b34613e0fc commit 37114e4d1547ed230706d07edaee2d2b4b3215a4 commit dc593fd48abbea1e840c847c464eabc9c6bca180 commit 4e6c91847a7fa94a6a0caeeb388718b8ae005d56 commit d5109fe4d1ecba04d3f6903ab0421188d1420d22 commit f321c35feaee8dbde551775210ae3d41534b7a20 commit f6d790e5a7fe42706756c7fa1686d08d230610fc commit 1344794a59db2bd44b4919d2d75300fd3b1c2cd7 commit 3886a86e7e6cc6ce2ce93c440fecd8f42aed0ce7 commit bb7c3e9ce2d43a37b699ca379876089e03a756e3 commit 7c916f95f58df401fef4f8c7549aa80a5739b0dd commit 3b8b44a431b76be2645806cfa0494399c3dbbd85 commit df5a07c45c68fd85cd4d1a4ad7892d3a717a4ccf commit 4984e3aae6fa4f42fc24f2745b74509bf2cb0b03 commit 4189f2938d49d4d6b2e2191c86000c2e04ca7305 commit dbede77ce38df760bcdcbc53287e8673fa65982a commit 3741584519dcb780c38df502dd5e4cf7cea4d9f2 commit d8ff38d8fcd0a7bb66d17ec689135239aca78532 commit 53923e62afad6f52b2b931a74d2ee10274051b28 commit 5fed53c7983654b1658c49a030ac86bba7965fde commit 305f098020920f9ea6ff9162ee46392f4d67e67f commit 76a52f36b636cdff6b5b18f13daf05005e4b0b57 commit 4a897de1d607c15ebb9aa11a424ec3f3243304a3 commit 4185f99094d50a2f402153ff8922bc694f5f6d96 commit e7145aaedd55b19ae4e8bd25cbd4ef8f415b6b89 commit 6e899860f557fc60135506242cc3fb705e64b718 commit 9c1e260e97606330518a78422ae28d9d56ac87d6 commit 84ce38c7bf7a19fb1f9cc61181e830b7e04dd51d commit 32685b32d825ca08c5dec826477332df886c4743 commit 44ca49f046f89a97ad319372b4fdbde67da1b6b3 commit cf689e869cf0339c387397c7a6805e387594656d commit 22f87d99832650d9389b0b3d08f3c970afc53f10 commit 6e6faf7a8364c77f4021f44043a5a5cee91f7025 commit d510eccfa51e09f5e65621a2e8d41f58a8dbd3ba commit 69691c823531c36c7283ecaa040e99e9c12ece07 commit 8718ca1dbf497c302df989afaeb82f05f5a3d961 commit 2e9fda82c98b1e417b90ff5a2f8b8b96cac06fc5 commit 67a359d85ec2679cc8e11b16844df960e3b27c24 commit b38c074b2b07349097d824e3c6c49b5ac8d98910 commit 65722ff6181aa52c3d5b0929004af22a3a63e148 commit e7031d8258f1b4d6d50e5e5b5d92ba16f66eb8b4 commit 0fe382fb82dc6cc6eaba6534d038dc381e2b17b9 commit 6f172ae59a7577dbb73e2a8da18697ba8dc56341 commit a03b288650abf2a92d5ecdaa737e3d04a2a77984 commit a29d44aea1aef0bc58d4951f2ddbe5b22d9a2e94 commit 85ac2021fe3ace59cc0afd6edf005abad35625b0 commit 72a98763b473890e6605604bfcaf71fc212b4720 commit 436afdfa35dc8aaf43959593f6c433d0ad29abc3 commit a0248d543bbf2a977e7e6d9966ce8d96f6e5c358 commit 10499e4055949e4682d2e7c428365175e99e0800 commit a18112ae72d693bd4eb79f2ec09b536eeacb902b commit d853419f5fcce39553ce0f6837fa122f113b15b6 commit c791d75a64f5c628a9c9a7d9b9ec01ef0357e6a3 commit 906fbba2c9d48678fd182d0de4dd193d9dd0cc9c commit 3a0625813bacf12bf188f8242b42b508af28baa0 commit 2716bc822e2325efed0731d6a6a7dff755dc34d7 commit dd15640bcee5a5fa74fc52557dd6220f48b01116 commit a91b402d50072e4801b231925f33574f90e562ce commit cfe7c679412f14811cb3c4119c8025cb97564c48 commit fdf0ece6309d90dc0f9388001239cb2d12671af3 commit 8476269f758221863c01a0a6cccb0d75ec5d60c3 commit 8c0f11ff3895ec96c9523ac607dd51f812ab69a8 commit 4e2f50e2306fdd0e5fc7db3d9a452ba1327b787e commit 9527b9caf82b040e794fba2667f6d8a85a793bb7 commit 3f543552846b9ae47c8442af1c506207bdcc00d2 commit faad5ccac1eaae584f9ac2ea66278bd137edcbe3 commit bd4b9bb77956639e6d9618ed306cb2264c69ba49 commit 58398727e6f4955f2781e93517b8f0a3e8f22e75 commit 28b7382621f0a83f1db795f36ee0fee6f66c10e9 commit 508a47d434bffde45ca3cdb8ece186f28f9d84bf commit 1cbd78879b5f889355b2a6343ea5db7e633438b0 commit 07d01469325c87aef4ab02ad4ec31d73321665ee commit 606d5877592b0a6f945a68399c870ba9d2a9ff7f commit 426c89aa203bcec9d9cf6eea36735eafa1b1f099 commit c94b731da21f10086a9e52d63c21c730e3f6c939 commit 3a84fd1ed53582b31e843a152ee3219e9e4ccb8c commit 278da06c03655c2bb9bc36ebdf45b90a079b3bfd commit f11de8611fd6bb15bd979bbe5de0c4d59452f8d4 commit d14eb80e27795b7b20060f7b151cdfe39722a813 commit c6e90a1c660874736bd09c1fec6312b4b4c2ff7b commit 1d204ee10817aed6666e020ef1b4c643d68bef11 commit a860f266a0e19f271b839451d291a6acf6ddcfe8 commit 9cddf03b2af07443bebdc73cba21acb360c079e8 commit 1937f3feb0e84089ae4065e09c871b8ab4676f01 commit 3ef8b5e19ead5a79600ea55f9549658281415893 commit 00f4150d27d2c01eaeffe1091fc311a7c0872c69 commit ad9c6ee642a61adae93dfa35582b5af16dc5173a commit c5c948aa894a831f96fccd025e47186b1ee41615 commit 9030fb0bb9d607908d51f9ee02efdbe01da355ee commit 5662abf6e21338be6d085d6375d3732ac6147fd2 commit 7344bad7fb6daa4877a1c064b52c7d5f9182c41b commit 3ce62cf4dc3b01d1cbee1293049ca5d4c7d6d749 commit b14ffae378aa1db993e62b01392e70d1e585fb23 commit 21050a39a3b676fbaed4ad6c5871b917a91abe9d commit c73c3576a2227492b448f9be41428ce6a0b5855a commit 34af78c4e616c359ed428d79fe4758a35d2c5473 commit caaf2ae712b7cc3c7717898fe267dbf882a502ef commit 64a8f92fd783e750cdb81af75942dcd53bbf61bd commit 519f490db07e1a539490612f376487f61e48e39c commit 32f90e65251981f061eec883b0fe9e75d74e9665 commit 2d505453f38e18d42ba7d5428aaa17aaa7752c65 commit 60d61f4ed6ead43ad2de31ebb8d1d27c57290529 commit 1647b54ed55d4d48c7199d439f8834626576cbe9 commit b818a5d374542ccec73dcfe578a081574029820e commit 0d8e4eb337644cab528ff3844675d58496ec22db commit 93dde6ccd66d29502506e95f568fd0f49d575d27 commit 3107e1a7ae088ee94323fe9ab05dbefd65b3077f commit 5e8a71cf13bc9184fee915b2220be71b4c6cac74 commit 6bf528ec91fb96e186461215c8f76265c5a35250 commit 7d56a154e22ffb3613fdebf83ec34d5225a22993 commit bd219322dbb41cc7c753da3a6936ce09d502f113 commit c9fbf6435162ed5fb7201d1d4adf6585c6a8c327 commit 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 commit e5fc78252ccd8dfc260f87d83905e9dffff6d975 commit a572f7055067d95455850fd242d8b54ff5786cac commit b7dfbd2e601f3fee545bc158feceba4f340fe7cf commit c5650327aba02d15cbd6a1846dcde9231493d549 commit 6ea239adc2a712eb318f04f5c29b018ba65ea38a commit ebbb7bb9e80305820dc2328a371c1b35679f2667 commit 5f3854f1f4e211f494018160b348a1c16e58013f commit 7057c81773ac32fd0dba00e2bb869928f008d3e2 commit 609910db56e72e87755d9745442bfdfa009dc61b commit 0dc386add50b07e1cf9341b4e6e4fea77295c98a commit 15f9cd4334c83716fa32647652a609e3ba6c998d commit 50560ce6a0bdab2fc37384c52aa02c7043909d2c commit 148a650476955705482dd57e7ffcf105d8b65440 commit cb7cbaae7fd9cee64f19cdfd89d097d807b884f5 commit 266d17a8c0d857a579813ad185cd1640b0d6ccac commit a701f370b521b2ed0654a9da7cf424b3ff8fa73d commit 21d139d73f776aed1e86f3175a1e9fb8a10930c7 commit c42ee39c1e78224d3a81bdbe0600abe4581226ed commit 67bae5f28c895f8737a1974c3f31cf12b9170b14 commit f444b2d15f7a025416ace9ec298f0b93ef68be68 commit 38d4e5cf5b08798f093374e53c2f4609d5382dd5 commit cf5c5763eb531ff5120111ad300126e926fb5a56 commit 13043d1a12c54d8b6605bbead5e177e9fb98a287 commit 945da79e6dd058be70bc47442dce319844e14daa commit dda81d9761d07541c404dd5fa93e773a8eda5ddc commit 862a876c3a6372f2fa9d0c6510f1976ac94fc857 commit 95707203407c4cf0b7e520a99d6f46d8aed4b57f commit 58e16c752e9540b28a873c44c3bee83e022007c1 commit 83e9faac9a387894e945e7f33c2bb7a9c348257c commit 2944dbedc7e167221fdb99531f7b0cdbac9ac696 commit b2075fce104b88b789c15ef1ed2b91dc94198e26 commit f4346fb3edf7720db3f7f5e1cab1f667cd024280 commit 4052287a75eb3fc0f487fcc5f768a38bede455c8 commit 96f2b7a3571618a1c8aed694c9e668014c70898b commit ef1a0808a2e20c58d166c5707864fba515832bd7 commit e79a2398e1b2d47060474dca291542368183bc0f commit ca1198849ab0e7af5efb392ef6baf1138f6fc086 commit ebc002e3ee78409c42156e62e4e27ad1d09c5a75 commit 7e8906dc2689cbf562ce520cf4a8ba5b495db0f6 commit 6e93d5b0333279d8968a2972065f47a899fb58b9 commit 879791ad8bf3dc5453061cad74776a617b6e3319 commit 28c25238898a242c58bfaff3f46a006585c2dd94 commit 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb commit 72cfb835e56f0eec18f934095fc1a52df1815f0c commit 691b592abb9a5f2b331969393bc06fcc8b564d3c commit dc7d19d27d019d223e74f2f47ef47e778781cb52 commit 995f74807329c97e0aa7449c7a8345fce978a2c4 commit 88711fa9a14f6f473f4a7645155ca51386e36c21 commit 1acb34e7dd7720a1fff00cbd4d000ec3219dc9d6 commit 022074918042465668db9b0f768e2260b1e39c59 commit f8e6b7babfeb40987e946bc1427609a9976017fa commit e4f1541caf60fcbe5a59e9d25805c0b5865e546a commit e3cf2e05441a2c5107fbffadb5b7943113ee11dd commit 887f75cfd0da44c19dda93b2ff9e70ca8792cdc1 commit 4593c1b6d159f1e5c35c07a7f125e79e5a864302 commit aadaeca46ce54af9f8f494792a1ba47a6fbda7ba commit 8e401ff5380a921c309d4c73cacf27b0bdb5f168 commit 9df1e3ff60241ce3fb26db75933970dd1b871213 commit bb02330408a7bde33b5f46aa14fd5d7bfe6093b7 commit f92055ae0acb035891e988ce345d6b81a0316423 commit 5f18c0782b99e26121efa93d20b76c19e17aa1dd commit 298799a28264ce400d9ff95c51b7adcb123d866e commit 169466d4e59ca204683998b7f45673ebf0eb2de6 commit b089c0a9b14c354a0c3a421e09af3208cb7c232c commit 94f4c4965e5513ba624488f4b601d6b385635aec commit c18a2a280c073f70569a91ef0d7434d12e66e200 commit ed911c9f9dcb26849fa688225f002ef2f2c50cf4 commit c05d8332f5d23fa3b521911cbe55a2b67fb21248 commit 4ae4dd2e26fdfebf0b8c6af6c325383eadfefdb4 commit f7e1089f43761ca221914aea9a755b23dc7cbc33 commit 7c6b6e18c890f30965b0589b0a57645e1dbccfde commit f567656f8ab82e43815d8d071d9864941b613a82 commit f95af4a9236695caed24fe6401256bb974e8f2a7 commit 65e54987508b6f0771f56bdfa3ee1926d52785ae commit a71849cdeaec4579696e5e1c45d9279f7b7484bd commit fb8cc3318e47e1a0ced4025ef614317b541147e7 commit 9d9f720733b7e8d11e4cc53b53f461b117dab839 commit 841e512ffb64898db6322c0619f6bbc41266d86f commit 19965d8259fdabc6806da92adda49684f5bcbec5 commit 3dfe85fa87b2a26bdbd292b66653bba065cf9941 commit ca5e2f4d6b677efa3f43a6790777e46dcf806e4d commit aa482ddca85a3485be0e7b83a0789dc4d987670b commit 9b9bd3f640640f94272a461b2dfe558f91b322c5 commit 87fd2b091fb33871a7f812658a0971e8e26f903f commit ab244be47a8f111bc82496a8a20c907236e37f95 commit 3220c3b2115102bb35f8f07d90d2989a3f5eb452 commit ef3a6b70507a2add2cd2e01f5eb9b54d561bacb9 commit a56f445f807b0276fc0660c330bf93a9ea78e8ea commit c65b364c52ba352177dde6944f5efaa29bd40b52 commit b7c15a3ce6fea5da3aa836c897a78ac628467d54 commit 5005e9814698f47c5a3698fcc56c9f5e6f1d4644 commit 370704e707a5f2d3c9a1d4ed8bd8cd67507d7bb5 commit 1d6595b4cd47acfd824550f48f10b54a6f0e93ee commit 3059d9b9f6aa433a55b9d0d21b566396d5497c33 commit 21d1d192890ced87f2f04f8f4dea92406e0b162a commit eb7bac3973d209e5227d1783676362ee5a8a7127 commit 54395a33718af1c04b5098203335b25382291a16 commit 89e96d822bd51f7afe2d3e95a34099480b5c3d55 commit 6e03b13cc7d9427c2c77feed1549191015615202 commit 7123d39dc24dcd21ff23d75f46f926b15269b9da commit 7b1d6924f27ba24b9e47abb9bd53d0bbc430a835 commit 6e4a61cd39685476f7ea74e75fb66666d541050b commit 64eea6805ecf7092a113bdb4cb73860430d39de6 Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:17:03 +00:00
dma-buf/fence: add fence_array fences v6 struct fence_array inherits from struct fence and carries a collection of fences that needs to be waited together. It is useful to translate a sync_file to a fence to remove the complexity of dealing with sync_files on DRM drivers. So even if there are many fences in the sync_file that needs to waited for a commit to happen, they all get added to the fence_collection and passed for DRM use as a standard struct fence. That means that no changes needed to any driver besides supporting fences. To avoid fence_array's fence allocates a new timeline if needed (when combining fences from different timelines). v2: Comments by Daniel Vetter: - merge fence_collection_init() and fence_collection_add() - only add callbacks at ->enable_signalling() - remove fence_collection_put() - check for type on to_fence_collection() - adjust fence_is_later() and fence_later() to WARN_ON() if they are used with collection fences. v3: - Initialize fence_cb.node at fence init. Comments by Chris Wilson: - return "unbound" on fence_collection_get_timeline_name() - don't stop adding callbacks if one fails - remove redundant !! on fence_collection_enable_signaling() - remove redundant () on fence_collection_signaled - use fence_default_wait() instead v4 (chk): Rework, simplification and cleanup: - Drop FENCE_NO_CONTEXT handling, always allocate a context. - Rename to fence_array. - Return fixed driver name. - Register only one callback at a time. - Document that create function takes ownership of array. v5 (chk): More work and fixes: - Avoid deadlocks by adding all callbacks at once again. - Stop trying to remove the callbacks. - Provide context and sequence number for the array fence. v6 (chk): Fixes found during testing - Fix stupid typo in _enable_signaling(). Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> [danvet: Improve commit message as suggested by Gustavo.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-01 13:10:03 +00:00
return array;
}
dma-buf: Rename struct fence to dma_fence I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
2016-10-25 12:00:45 +00:00
EXPORT_SYMBOL(dma_fence_array_create);
/**
* dma_fence_match_context - Check if all fences are from the given context
* @fence: [in] fence or fence array
* @context: [in] fence context to check all fences against
*
* Checks the provided fence or, for a fence array, all fences in the array
* against the given context. Returns false if any fence is from a different
* context.
*/
bool dma_fence_match_context(struct dma_fence *fence, u64 context)
{
struct dma_fence_array *array = to_dma_fence_array(fence);
unsigned i;
if (!dma_fence_is_array(fence))
return fence->context == context;
for (i = 0; i < array->num_fences; i++) {
if (array->fences[i]->context != context)
return false;
}
return true;
}
EXPORT_SYMBOL(dma_fence_match_context);
Merge DRM changes from upstream v5.17..v5.18 This commit was generated using: rhdrm-merge-drm v5.18 2043115 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043115 Conflicts: drivers/gpu/drm/drm_cache.c drivers/gpu/drm/drm_gem.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 301a44dc18e3,308c302c58e9..c2ef5f9fce54 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -134,4 -132,9 +132,5 @@@ obj-$(CONFIG_DRM_TIDSS) += tidss obj-y += xlnx/ obj-y += gud/ obj-$(CONFIG_DRM_HYPERV) += hyperv/ + obj-y += solomon/ obj-$(CONFIG_DRM_SPRD) += sprd/ - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o Commit list: commit cce936f4fff736927ffd53a61d7b2c6a1064e0c5 commit a908db6d98782e8d9a8d545dcc74937db5bfac04 commit ae361eb07e9b498bc224db81113118fd28e35f6e commit c2a9682d2214e834b493c454e38809e571bb3045 commit b8ca477e51318d28f7514abfb5a369e11848a8cf commit e74c6aa955caedd06b5ade58e31e33338e4efde6 commit 637088a21e204b129a03dbd59bc0cd80d0292651 commit d0c0cf22d7071e9ba8d30be91723e1d997a07970 commit 49d535d64d52945e2c874f380705675e20a02b6a commit 11343099d5ae6c7411da1425b6b162c89fb5bf10 commit 60c9ecd705be3a28f79d70ea21c3939db668bf46 commit a36e7dc0af1cc7e5eaa89136c35a5305fd693731 commit 007354597d5c12a8d44a34c66a2e1a089bc7d3d8 commit be5b6985fbbe6ba9580351b3c9168c84e51bee5c commit b96a1d8c5189452d80551f2c38ef50c533c19669 commit 3edcd504077c02c9e6e7b687a43849eacbb8088d commit 9543e3c0511da64a77b1af3ab1f7199c39226e1b commit f21e5fa191be05616e3250723c5c4cadc9baf84a commit 405d5382ba083e6e54df354909b1583f1e3cb0db commit 70704fbf67ddc07ffc81073a3af1f7b2171697eb commit 943e6a8beeac1b676265f2dd81a69d7bede5e41d commit 7e28d0b26759846485978ada860ef4a427e06c8f commit 5995aef006698bb639547a439f47492de5c37f05 commit 5664e3c907e20523cda622268716867e77648d0c commit 6844a28885183a5a2af92a8d315a59f7a0e668b9 commit 825ca9ed1c9f5516b30292bb1c7ab648c2a01b92 commit 980f42e7d57464af190d05b9cc0bc21846734f48 commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d commit 249af7242af72a826dbe93f7058237eee4fac1d6 commit a88afcfa258672601eda5966439d2fc310a34cb7 commit c3c2ac4c77ee2191ae2f1e8d140a59e852104e3b commit cbffbac9c14220b8716b0a9c29d72243f6b14ef3 commit 62eeb9ae1364cd96991ccc6e3c5c69d66b8c64df commit f7747be1410321de8a92e340c5ca6c18a59770e9 commit e35d8762b04f89f9f5a188d0c440d3a2c1d010ed commit 0b464ca3e0dd3cec65f28bc6d396d82f19080f69 commit 6edf615618b8259f16eeb1df98f0ba0d2312c22e commit 5f4f958a0d9dfd7a569c56e76840e39b0c434378 commit 3b26a2916844cf2680de10206e193e1d13f0eb88 commit 50d76e3d3ec0c18dbe2c801af676f7e7cbedbff0 commit 7c442e76c06cb1bef16a6c523487438175584eea commit 7020449b8f5ac0f7444a584645edec02f7168f1a commit f5f05ddc37e0445567e4a2369b73ecf9ee2e187d commit 816e3be74f16f3064e74acb3e6ed69e27f14231b commit 80dfdeb75028084f42a81a4151a986c56aeec1c1 commit 9294914dd5507eca56566c470c56327f46dfd4fa commit 96211b7c56b109a52768e6cc5e23a1f79316eca0 commit b146e343a9e05605b491b1bf4a2b62a39d5638d8 commit 848915c35e22d36614f2b0aeca6ebf7361e8e204 commit 204129a211fc486164c25e6082941e4fe3ba889d commit 5c24c9d227e9bbcba509752a32b3da5faa149aec commit 59dc4632e35becca1186dbab83ac7cf8603afaa9 commit 17190a3492bb20ce1cc695fdadc7e4f7ad5b44ff commit cdeea858d8df9891ed75415f377b3564f899a659 commit d14f0c205302648df29c494a1a81ec3d897a2552 commit 91d8531393be96b4a088290cc67233b2e6ab072f commit 506d9d7414cfbdce02b7126fc8644f04ef234680 commit 59a39fcc21c56845e74bf60c1177925bb0255de4 commit 5313fb2c779f74bc5083e9d3738d9b2c2ebe0aa4 commit 814d5c51f8966895bb20b51c886bd3961f76f3f4 commit 5edaa2b9748979b08fcdb2f65781aac39e6ae011 commit df2d385cb4132e945d5bc17d387d0fb6f5d4d66e commit 9354417750e51c3d120cb6040b1b69f70d9ef43f commit ffa3fe080c77630f87436a9410475fed1e684612 commit 191be00229ef61f9ca0cfa39a09dc71eaf90e78d commit cd1637c7e48043503f8ca6d441568e3889998965 commit 607a264ea7016b0f811f82c33094a3c2eda5968c commit 3dbc84a595d17f64f14fcea00120d31e33e98880 commit 658a0c632625e1db51837ff754fe18a6a7f2ccf8 commit f3cb4a2de5410147b53e53416a3af0ffe26b5f4e commit 903e0387270eef14a711c0feb23b7bf62d2480df commit ab4911b7d411ab2ef3b38322178b9138e156c393 commit 30598d925d466c53c4c218a58f80e043cfe9b085 commit 0af2e827b6acfd22b7794c148943a3ddfe5fbb65 commit 2564c35df5b81a88efce965bbfdcf32c1a1bc834 commit 23d639d7b6df487d59ed23b0c9c04dfd3f909fc3 commit 2ef97818d3aae3c89a6cb1e6b8cd204156434aae commit db583eea5a820ab4afce6420aae61be9be55d05c commit 386e75a41478d8d70889f0d1856e782d610353c0 commit 7e470f103d7579836a536c15862b70118379f7f4 commit b4435717f53b776b770e7a025fd84688e53dcd5f commit a9e4fb51425f680f191bb65c2778cea31bf058c7 commit e1a4bbb6e837d4f4605dffa9eccce722fc59b9cc commit e8c1f36157ce0bf8c150059c3f9f573c13a186df commit 583998c5e8cb3e7a151dca22303b68cbe65c64b5 commit 39a2bd34c933b00f7c7ada923c212b3ff826fb5d commit ebf3c361f43b1c1fd254be5a6d12bd37b922e6b7 commit 2f6b90da919208621725d1703c0391f63724fa62 commit 950505cabe517ad40759cae6f88f33f0bdfbb7c8 commit 60dc43d1190db1bf80c696ab4561ed53f8f42f33 commit 55a9c00021e2393393a26e0833fd66e73d630117 commit f199f71f20916ddaf2bfc4dceea33c776d414428 commit 53c8283ba9b46559c12fb9fd679cbaf72424649e commit 77b6f79df66ed2919dedb834edea630f40079f12 commit afd088ac05f120d22e06f8404b2672f5841d0da0 commit e9f9bcd598e2b6f3cfa617f8e38f83a59738d19c commit cd5d2fdb045fb31a152cbb257e10da78fa4f06ac commit e0d47fcff1f4df458b9c8824a5204adcbf624ae7 commit 3e5cbecb9aa88f00016b61200d4126f727fc71e6 commit ab076d8d79e1e5eb3960e0a489f7a11d729c03bd commit 2b25a93bf07c6b68dd9e2ee427e228cb961f7961 commit 202b1f4c1234b34c15e51acc9c43e613f509f587 commit aa1d6068a460dcb21e69f6d65fa7d3ab483d547a commit d0864ee4f81fd8c782fbb382f80d6c9c531f2967 commit 24ce4d6d2ca626a733f70b578c4a298b200a69de commit 43571e15c057f69734d0ee3be45fdf9e4adee614 commit 919606f5e7d8cfbdef47ab7e24bf37cf86dd1512 commit 3e1f4c491559998615cc8ee287c673f0f7e66534 commit c41aadd26496db9c21deb612445801f3e44ee8b2 commit 5512445c9b64a2fd78f37c41796745d72c02e9a3 commit 1b277c892940af1d06c2433f3f3a39d4bd146c89 commit 4642077775a65566c0d25e63bf918fb5e5235163 commit ca1777797ad84cba3a72b73f74bd80092a7aa220 commit 0b782e669298e30853e235b963fdebfdedf45383 commit b17639c7f7fc1fbb23b761c38ba3233cd5d082d9 commit 38bd13a0b151093f5f26c95ee106659008896995 commit 3f8bd465a6f083a4112d82c18f4a85c9052d2132 commit e592dc320559ebc8166c1dce609faa7e4f3d6da1 commit 9d31993451f6bb4059a9b9eec4856b2225e36df0 commit 0f5d32617246810d00dae08c51069873a77b60d1 commit 7b1534188c25948f4ce56dc4af9d8e9234e97592 commit cd6e4c2fbb004f06d9c552761c171fed82ab5225 commit 2616be2eac4b1c361ece55dfd8f942dcecb25de2 commit 6650ebcbea1314bf91bf161802ecaddbb72651b5 commit 5ec7baef52c367cdbda964aa662f7135c25bab1f commit 5ff59dddacd4738edcbd01847d9df7682348cf86 commit 93e97b05d5816ec96bf209a50023cdf9fa750a55 commit 1500296576464dd4f8f7ba409069591648f4e98c commit 3a5d604f90f90a09e35ccfdeeedbadfd06b606db commit 6a8cf6349c7cae12f072889991a2aa0a1ba0bd32 commit de05abe6b9d0fe08f65d744f7f75a4cba4df27ad commit 8c2d34eb53b96755b33a125c65c3e807dbe430a1 commit bc143d8b8387ff0a22e4ef8e2375e63aa24bc311 commit 79c65f3fcbb1288b84473d45e6d001820a971d54 commit 13f5dbd6e3d9a4ea0a8d061bb2a2f19bb21cdacc commit d448157665870bfbf9b6baa5991cd9d6bc98c7e6 commit a79110f2dc0194326d2e8c2cf83db6c784c37e97 commit 28a31774b050261371953401e8072ae15200c91e commit 84176663e70d93836d30d2a480a4201c7f790b42 commit d698a2c4859de2d4d42d2f3c3806d6dce821d663 commit 6ddbd37f10749830e0a6ddf839ca4313a007d3f5 commit a627967e803e58c5525ac92a4af0d15379189a32 commit 7689dab48259073ea13d64d32365b77860b84e7f commit ebfc253335af81db2e40e6e8ed17cd76edf9080f commit 837d542a09cd533055423dfca7e621a9c1d13c5b commit 3bce90bfbaa8de63bc500bc5a4dd262ed8e548ca commit 61d7d0d5adc705f833d8a5dbb596253842486220 commit 3712e7a494596b26861f4dc9b81676d1d0272eaf commit 1a408c710d9e273a22050b0b7b0c131f92847918 commit bcf19fdd507fb679bb6e1b8a119961f32b6cbb95 commit 54c73b51df2958f564b144ce86f15a85e227db90 commit 685fae24d94fd615b7058832fcb437eb588f4860 commit 6492e1b07c03397f85bd6dc0e230ea6cd9394635 commit 7cab2124058d2f5f048f435a4631e176dcd1430d commit 8b0fb0e967c1700bd729ae54b6f229501b8587ec commit 6c2453861f48e4e779cafa01c09e78ddc2c23c6b commit 6d76e9049ad92be32704106668c34493c3e4c0d4 commit 5e67bba301156c85251f49df19f5c695875814d1 commit 2e54fe5d056e7dc82988ef64ded3dca0ef954f0a commit efe17d5a217e6b7dfd16c80dab522abcf2edf1bc commit bdc4292bd3b4337985f716be789b08eef921f7a6 commit b0e2062dc8978869c1dd96d92027f74b361d5eb7 commit 22d4ba53b1c10de6832e588f01d916e24306f6a1 commit 7389a5b837cde5e5cd771619e9f006ae102f5d7d commit cb5cc4f573e18deb7d9143de0ccb62c08181bc85 commit 400ef298f400854544e062023671e927965bc9b0 commit 20c5e425d36a59529f2e6a77ba21d009cdfa8ffa commit c4381d0ee81930097e94e55d1c23f85798ffd093 commit df01fe73ee98daf00c94189967550bd2d2098912 commit df4f0041c6ef497e598a67e367db835489162754 commit 69f91d32c6632e09f0954e690d61ac4921dacbd3 commit ab3b9de65bfeded1d4646c9f66897c163e89abd8 commit 954ea6aa1545a13036851327b4ed251fa7ab2f22 commit e3d833f41c46b8c59c4af53897a6619bf667ebe5 commit 1613f346f86b25121aceb941d03ca927e57af20c commit a85d70a8b4813a955d45b062440fedb9be701421 commit fb825b651de98cafef13e07673eb72d5e2ceb4a9 commit 31425abeda7130e66e61dbd8468502061413631f commit b3523c457380c23cf28d4ee1ef60da337a0a45c0 commit 06cf9bd61a7452df375f212881d9bb6b3c52c3ec commit 5f0754ab2751d1935818459e8e71a8fe26f6403c commit a8e6398ffe171c84b1c03a17eb6d432dc5f703a4 commit e8521d0cd984897b4fa58e7837afebd04e44f0b3 commit b0641cb8a1deae38990cea783d2a1117255f59f5 commit 803abfd8dda540b94ea3c754a70cba69d3825995 commit f4319f72a9bc37c948832c0ef121460ad7c1573f commit dfacce59553b2a65f4357ba6019827eb4b9a0eed commit 3681eb24a9f14e001d05f8d15d2e07a96abef8b3 commit adb9d5a2cc77e8aefe98fe4c11656c5b7025c248 commit 5b529e8d9c387a34ca2b8008dc65f55d539b3ef6 commit 032a125904995985334766911de9e26ee2bbd646 commit 269332997a160b3785690a32d2c5496bce7dae51 commit 71b59439aa03e8de022c31ccbf9aa9bea4578971 commit 12d7d858e63d0769a91aab218828e0526c0ab49d commit 2f609faf5bda9d828ce0229689227ba2edb1918b commit f6bb74e07705579f83252f9c3cbd462d8084bb4d commit 348abd4cf353abb3aca8dc6ebb80ee84acc4f64e commit 366714b0883f0411a4b142b1f7cefc6b184183eb commit 4682a6d99638bb8ae62f00b9466849065c91fd1f commit fee076019d0a3634aeea8df55c1f7ae35ca31d18 commit 2b6dd600dd72573c23ea180b5b0b2f1813405882 commit 6b79f96f4a23846516e5e6e4dd37fc06f43a60dd commit 647bfd26bf054313305ea9c2c4a1c71f3bbfee63 commit e849f7e708600a9d7567ae22f945b5b01d7f7401 commit 6945c53bc712cf4a28a46fe46c2bd8526ea261d1 commit 7e00897be8bf13ef9c68c95a8e386b714c29ad95 commit 0f341974cbc2a4efe074dd24c153e439b8430afe commit 294996a98a641254b72732f3cb36d51f12a6f3d9 commit b5cfe6f7a6e17c6bc7c802d382cf22c4dc405477 commit 83f2726cd9c3b92589f850cd4935ebbc35eee840 commit c34242eea16f7d973501267142dd340cad3caeec commit 3ddd0c90bafd9f2ae1ac9f1e67581537273dfed6 commit 79c0462159a1fa3810ae1869a5fc9fd7782b6b70 commit e475986f182156496fa2991012ca51956fe90bf7 commit 03f6fb84bd0e98a7b929aef5f308b8e3f2f24a0d commit b6efdb02d23ef615464cd0077c211b40a1faca26 commit 4f64ccf4f27c89089f3206446e2158833bda4795 commit d622c094f8fe7a77fda613964ffdd9a248d2550a commit 8697a19ee955e32fe298b00feb0c61fc75cb5261 commit 71b6c4a277dbb2594c260ccedcafaef5154b0da0 commit 22c16d251a79c3156d17627810557878e600dc6a commit f3527a6483fbccbf569f91d9ee9c561b14d86a9f commit 47f29ac1cbae6e18329f0066f7c8d5d2346a5bce commit 7aba117ac9e01dc58afe29490f50025add9d388b commit fd9048dd4425a9dc252153c8b72369f1969a35b3 commit b4c55e525461a9a091421e952d1e052127d558a8 commit 82dcd8eb357caf4b16e6a201f6578b6e8795e541 commit f369e4eba89a6fc1cac619db86c00a964d1fc0a2 commit c1a20f707ac33b1fec1d78bab74e07656c237801 commit 6421c49567d55b1ba8d9389e5832297398a51a1c commit 58c69b53aee24f47741b150e309567d9b38ecd6c commit 9338cb719f0f0b43ee1ab39d17214f9b388c7fbf commit 047db281c026de5971cedb5bb486aa29bd16a39d commit 56ca49cf6004ff328458954dd3d0fcf0189a96a4 commit ce0bdc62e80d40caa346ac4840a20769d5bd1ae6 commit 552b7cb0eed12c184b3bdfcc262e96a954a2bc86 commit 4bd8dd0d61f961e6c13cc118d4ebbdba57f8561f commit dfd6879b98999867ac860a51348b00b5c0c2cafd commit a5e7ffa11974d90d36f818ee34fc170722ec3098 commit 4e68354667716e62089ce3032a3c7e1b6c07e669 commit 41f8aa5d6a8aace5d33e2d908bf5fdc833456a5f commit 6387a3c4b0c45a3932cc06daaf15727e7f83be43 commit acde6234f65bad89a2e27d3e8dd2daf680862545 commit 75ab2b3633ccddd8f7bdf6c76f9ab3f9b2fc5d9d commit d7e3ea83bba81d6d9c8f80c62a99b018165f5808 commit d39bc5c5e10a648c7de9558592816474f45a374d commit cc37b88b02fb590d08dd922ef1c0f7ef3125bba8 commit 028a73e10705af1ffd51f2537460f616dc58680e commit bcc77411e8a65929655cef7b63a36000724cdc4b commit ba3a5ddcf1e5df31f2291006d5297ca62035584f commit 8172375ea95ab8b7f7ea0dda617ad87c439a14ee commit 52506b099e1baa204b56b170f40f680ffcabb4c1 commit 8638b4d8ddc944ef3c1899cb774cb07de0b416f6 commit 54e67e5a2326b99c1461e29eb022e9d07a419abd commit a32762d1db4c13db53ab9005a24fe5465ab511f1 commit 2075a734ed990c50b6c544c6256b0dc0b74b82ea commit 09f137c320633d08b263c54c0782e91d55a6c09f commit b90b6e41379789ed595236113779e0793a63bf18 commit eb9fcf63857556d5eacd67f5c96078e643a8d15a commit 594c504d33343657ad3b24ff8e4ef032cd4de25e commit a868a1e57e3afca98509345d5a8f747a4d745cb1 commit 044cbc7a74c136f12a80c855cadd1b085084aef1 commit c26962803d044a7668e9ea4d5313117ac5b878c8 commit 479e3b02b73a2de2b19df2950863149c59d57bfe commit 86700a402694db56030a74481d09f35520332736 commit 8eb53bb2aa8afa170ba40f9460f2de4d4d138764 commit 33cd016e600ac3417aff7c85f59b9a4b70a947e9 commit 5904e4135f3b3e6cc7bed46bda71118d55a56681 commit 1b08dfb889b2c584b444538c9500af24ba0a6dc7 commit 590e86fe3462da81f1cbc4fc8d4cbf8b16b4f968 commit f61c40c0757a79bcf744314df606c2bc8ae6a729 commit f548f4291e89e6144d3c5b8a9ada66c7dbaa1639 commit 6d1d72fb4fcf85ff0a96de1c16c46162b3baf9a6 commit 6f043b5969a4d6d385ca429388ded37e30e0d179 commit 27535f1d94318f34fd6d41fd01bfa4a970e73bd9 commit 5de6a3de999d0cfeea94f1d3932b78892f3d69e8 commit 198bca93403d04f43c07c5c87c7b75a54f4bcb54 commit 26950f2968e873301c8c536ba0615ba04c17a0de commit 603801d0f2f418941d2524ffc43fa6d8c95873b3 commit 34ed3e83475eab0c8fe6bbb126165a3ff2f2ff90 commit 1358139bdefdb07bb402efb3164c1c51db99e8a5 commit 1d50942dc9304db488d1b3978274b851e890a33b commit b4a1c675d256bfa1d399490847d086b8b463b5d4 commit 784a2ec00904999fccfca12eaf7c63ac3fde5f48 commit 37ff945f804c2d40d030713fc8692e793a81eff8 commit a357dca964e0c77c479075dd65ef86199078d82f commit 4f72fc3c7f3d9f29a438bb0e17c7773f2fc8242a commit 1f73a367420c954f5cae2f899ebb9515be093645 commit 5fe0fdd23e3379833f4346b49fa791733c22ed29 commit cb935c4618bd2ff9058feee4af7088446da6a763 commit 428cb15d5b003102bc33d49f2ab31a6e4e785157 commit b4d775775877453b44834a621eb410aed7891875 commit fe6959a680a4c50f12dbb362c90f9d7157fea334 commit 7305f5b3a5d62d1ce1405e91fa367e6a9126090c commit b3bddb7a3806f26ba3eacb4f77834102ed344b9d commit 70b42b5845c84f33ed2b79a0fa96134710c652f2 commit 17dd7b896abd2c81bbc76ed55899314b1c285677 commit c5274e86da5fe7297fc28a4e12bd29defed1f435 commit 51f2d00909c6153d23edf2344f6b57d45e391945 commit 0bd6c4a1310336af511519a8a853ecff2120d11d commit 9d0bfa7ac97c629542caa860bca903af62b86326 commit 5acbdcd1b12ecba04f1481004b6ce5b40c64b211 commit eb8d73aa63cde11e43ab0619308a5356a691850b commit 15d641c41796fa1e8c8965ea457aac737a28a88e commit 140f70aeef07e4516a338b275e36eb5f8cfb463a commit c9b06cc26f1daace605238adb4720560078b0eb6 commit 2869f599c0d8c9c6492bec40d062951be8caae04 commit 50dc95d561a2552b0d76a9f91b38005195bf2974 commit ce99534e978d4a36787dbe5e5c57749d12e6bf4a commit 8b250cd3b5da18bd90f34ecb04c01661213b65ba commit ff3aeb34deb24f40626c171ce1cfd447a2edafc8 commit cf5b64f7f10b28bebb9b7c9d25e7aee5cbe43918 commit 4fd5e720b709b87f67809a871fde9fb6cb910f28 commit 4a46e5d251a39e7c10493743ac89a31f6f3ce5b5 commit 75478b3b393bcbdca4e6da76fe3a9f1a4133ec5d commit 4adc33f36d80489339f1b43dfeee96bb9ea8e459 commit c03d0b52ff71d580ee235463c7ca9eac31351dcd commit 80ecb5d7c0f224218fdf956faec0ebe73d79f53d commit 85e97b1dd5d29b66a249406624734843b71c0a0c commit 2343bcdb4747d4f418a4daf2e898b94f86c24a59 commit 901abf367d3eecd54f21829ced48c20f53c74c57 commit 828904660a2e0a31d5c8a2ce75711f7123896bd5 commit 6a6c2ab687c8eabaec4a55a4f13eb5ee68181403 commit 239d6de307b0dd1d48ec9b935b57531f07f6db11 commit e0638c7abc4d3d3c46e8f2fc07e02c3877c3c402 commit 974d5ef0dd9d251dd4571e30d5e79e7e4940d424 commit da11407f066c28c49bb7a4ff6a6b742b7a18d7ca commit 56383e8f4d296a33cc5b2a11864025d8205e9438 commit 1c4dba5e14c0085d412429d50cbcf8e9e2a18924 commit 1f2cf08aa010594036ccfb19d207e5b80b5bb7a0 commit a746c77e5ee86829c03dfaf718e18b589f849be3 commit 83a3766b147053e542f3c91c121cb9594239e644 commit f9130b81aea2de3fb6d356e9495a384b2d35b1d1 commit a685572c91b08e2e5143e52f4c5bbdd3d22271b3 commit 25c6aefceee60850bf78e16ae9d7fcc4a9d20884 commit 5e0c8ddf029e0a8533bfb04e4542b46356cbcade commit 0fc2549d55a238da5e4c1b1ae20ebc3856922334 commit dfced44f122c500004a48ecc8db516bb6a295a1b commit 1418b9c38270f4c7843627cb0e9047b19eb3365a commit 5d5c6dba2b43e28845d7d7ed32a36802329a5f52 commit 5bb1465fbdc291593a7c385cede0416ff6873280 commit 29dbcac82f96d06608f3658aacd3e14efb7ac0cd commit 97d1a3b967a3cbeb0dd29a8b5bcd4ac1fd9ccd9b commit 7bbe43f8a4e7775daf6ca62807e0023b0642a20b commit b12252b0538183d8b88bd4a8d8d05a808c46472c commit 4819732f5986ed8b3d88bf4272d2d5bf1ccff9da commit f8f96b17f0fa302b246e35773074f39e43add023 commit 5d447e296701484f3df5b31a7a078cbf1e3a9cc9 commit 1b2dc99e2dc6f35f55f0487e12fc9166fbd023ed commit 381519dff88845bbe522e7446ec1e32e351c670d commit 04022982fc5ddac6cc783d66846f2464fe4985fb commit d6dac2bc12bd968acfcec7a0c92c59d2e19dacc9 commit 1f33bd18d703ecdf7b664168d640439e867d1605 commit e9287ef8d46cee538c9a71bb8978b2f7e975c452 commit d435c1ed56b9f9347189924395588cfdf7489af5 commit 5b680dbfbf6899afaf8bbe59b859509149d59129 commit c282d9512cdd167384fe0d233d13deea538658f2 commit 31d64b8219e057705d7a9debffcf6abbccb7781e commit d9eb8fea6862e63421f7b9c93e32bef348488c41 commit 5279e091616b74ff0e4a24e220e0552b10d88d46 commit ccba4e5bc856471ed009d92747376ee506fcc6ad commit 3ea07c89fbb777669c668452e94275a98dc8afbe commit 1f6c40d5c0095959a260c014a6251a0ac124c721 commit 09ece5ac397f8e3539ea9ffb776e1cc6702acb9a commit d715c9a2cbd4b5dbf72bec82b033698db3c6eca5 commit 9506b8d9626f4fbc230dad30cea1b3b095f1e4d4 commit 2eee829ed48747181b17f3f8d458b23981f2bb7b commit e2d8ea4320c6fcf9f042e432232240f858ae9ed8 commit 1210b17dd4ece454d68a9283f391e3b036aeb010 commit 87e298d6e3a2169831a2f4a29e35575ee5747036 commit b80ddeb29d9df449f875f0b6f5de08d7537c02b8 commit 4a3ad932b2c538c62e4a60dd4b7411f802e018ec commit 2ca97adccdc90247c907541089e85101b2d87574 commit 09db246ceef70bc6bd9c3e0d02b3c855f8fc25fb commit 9cc370435cde6b672b6e2221115c2f535e8bd4ec commit 5f2c1192eba42f6926253a1f2c9b18da05b3c31f commit 72b90723b3760c69721b04f59436f38cd215e2df commit 0c5a0bbb7379625eb2a5b6a931415c008b7a1a16 commit 5cef7e8e2fcc6f9e8d2134668848a31b15c523b8 commit d52e77a3ffcf2da2be1a7892bc8fa67b0e907058 commit 53a35edfd0a767dbd04537596d95f56e94582f50 commit d063e70c6acad14987242f266e9448669db4624e commit f6a3795d35c69bd34a556e1d93000057aed78599 commit 0015cce5cf04d3bd7b2ae4f62d5cea5d35383e8c commit 05d6aea36a69e65b071e6ba897bf83a4aebaeab2 commit 85b8f62b564120943cc0db1e754d6649037e6c7a commit b5d9a483685c37a480420cfe2d41a03d529bc0a5 commit f2bde8349c35d01d7c50456ea06a5c7d5e0e5ed0 commit b9610edcfec216d7a2a5ea2c942734b3e5e26ffc commit 212021297eafe23b79ac117db9b5159d1df2ff30 commit 901e2be20dc55079997ea1885ea77fc72e6826e7 commit d0d66b8c66d04363eff3a5b09da4074fc1dfc758 commit 243c719e872a1322b22efccff80776353357b296 commit 82c3a7a5edbf5f6feae9602d19567d2b5b55121f commit 153a9529d7f372ce7ceb5eae7e2c312c0cd64d41 commit 588a70177df3b1777484267584ef38ab2ca899a2 commit 94ca070cd3737dd5c3b98f615bd4cc950f82a597 commit 5e6d72c643e1262ff02e057620b9f87d7d81141a commit 430e6a0212b2a0eb1de5e9d47a016fa79edf3978 commit ee2016b4b5bb70483e1c06218e7b6288704284cb commit e6f62afe9b2731b7a94b31fe59ef2c5134ad426b commit d726d43c20e744bab1e346c1f77b7a71eff0c40c commit 37d6b1506b80a5cf76238b6b00926070ab544058 commit 3b36f50d3a69ed720e4c464bc9c5fa2c3fadc750 commit 29c52ab2711f0e8ce506c120fbecb30e83f83339 commit 721fd84ea1fe957453587efad5fdc44dfba58e04 commit d8f7f8831bce9ef6a1f562037e137f57b5951501 commit 41e096da18b357ff1d2108c514b9634d67364c41 commit 20f6ac2d5e00d8ff154d9617a5c0b52ff12f3320 commit c3639f3be480529ac82b592e627fa7dd712de83e commit 6a4d8cc6bbbfea4469a063bff0ff0114507df524 commit cec49bce6e0cdf916433a248402bfdecbf6589b0 commit 9f807822abf5e210d8656fb5304f662bee64ca80 commit df216b37333cf2ddb0db86b966e86a53d239a013 commit c20b5d41e9de40a51b7e5516198c08a906fb7770 commit 1d894ce88eca35ef8627901c47c3881cb1f3e74a commit bc1ce503769c51c1c06f5ed126b07a545996d697 commit 8f4f9a3b3a0b733f8fd102f9e0843cad8d055c83 commit de3688e469b08be958914674e8b01cb0cea42388 commit 3f268ef06f8cf3c481dbd5843d564f5170c6df54 commit fda8d552c9c7783d4b29aeb6350d7404b31cdbff commit b889d89ad45f9957ea3eac8f61cb8884c2010940 commit 4be990af2f7ed8bf209cce3b86e1abac33742763 commit d05824796d9cf6c0e59a0aa86333584bde8b51c6 commit bf172a01ea485e630f28b6ad525fb277d73d3e3d commit 96e4c3c0ed4eb85e02bfa438c6b4ef7cea78bd8a commit 8295524a2d5550b56e800ac779a183b7f4d8c33c commit d083c232fe2dc4720d8f0e337613f88909ff9d2a commit 7e31ce581bf034cdcb1a94f84ffcf3cc983988e9 commit 6a6d914de30f15472b2dc36e8ac6bf016cfbaed5 commit e93a590c79faa4aaa4d7eadacdef9240e1e823a1 commit 62236df23d018fc977d2871744440efe6a08a6cc commit db3b3f3e62279b914e1958e93e057fc4d8dee263 commit b229712b26b58d043cd7386827f41ab022a4d109 commit 8ec6a72da65bbc4d341253e5a641a51bb1c0d967 commit a5d092d37eb5d25520d283985082e977bda68eb7 commit 516b33460c5bee78b2055637b0547bdb0e6af754 commit a0f25a6bb319aa05e04dcf51707c97c2881b4f47 commit a7b23fd90c804e79d1edb478b42935848bcd7e36 commit 66755b4871782cb95e3584c9e88b6ed6c52c9022 commit 10dcc8317f6063806ce1d34235af23da5e2fdd7a commit ccecfd013a39d8b8ea837e90f7f907e4ed5abe17 commit df8d1d0abd9439479ae1a0d8812ed57debe48a86 commit 94afe983b5aa56a841f208a6b455691a44eafc7e commit d5410d6974acd0aaea6742ecd8e3f7bdedbddf4b commit fdb5713c7d6f6d60bf23596eafb1ada154869ae9 commit 1439e3bea7b1201a9461ffbff2a9d59f3e65dc1e commit 8acd15a0c8c647ed4cb07c53c3ea4a8768c974ce commit ba4a28bb168aefa98ee422be8e04a0c964256f95 commit 5f825973b491a457c7233e808ecf64726abbeb86 commit 5e66e818e0358fe42704404580b70e1ffc7afb6a commit 9d6bf794084d9258dadf2754d911fcfeb13ea8fc commit 039cacd2393971fe11f855118eea6c83c8f506fa commit 1790b649b01ba7e44af7c08ffcfc0eaa9d4f5ac6 commit b6dca949b88ee69561fc4ed853ab7a2ae13d842f commit ac7c48c0cce00d03b3c95fddcccb0a45257e33e3 commit 367c9b0f1b8750a704070e7ae85234d591290434 commit 6225bb3a88d22594aacea2485dc28ca12d596721 commit a154bf6eda9881aa3dd74cea83dcff6de3ce9680 commit f4e2a66dae996b4fa2cc21b1904798ad1dc83049 commit 75513bf5d72cd1a81401866642f4a8052b2d4420 commit 7270e8957eb9aacf5914605d04865f3829a14bce commit fc6ea4bee130710a77ec16a86d2013e964602503 commit 9a17696049889550ce76a987562e679535943c96 commit 400013b268cb666a44c0827b136bfd4bb741b13d commit 498d46fe7aa7eda5807352d62af133a2f432b814 commit e63fa4dcea2f7afcbf8f2d013dfae23a61a273d8 commit bee7f8d09268dc80da0e841ca99d79f500d03b84 commit 7367540b26214ba5f7236e0f212fd60ec6d07c3f commit 4e13b063d2e510b54e3ffc2e975315d08d14c5af commit f06d9e4eec7320f5a560e49ed652e785c8ab5c45 commit 2f60dd50769efcd6eedd0dc6b3f419cdd1f1f1fa commit 3ed893396b0132fa5a4d3fe3f9ba358678c6dba3 commit e281d5940ae7f2ceff99d5e001a69b5f0884d2f0 commit 8cda7a4f96e435be2fd074009d69521d973d7d31 commit ded81d5b2b67e6e6fce0a1e8b73e4565a28dbfd8 commit 1ec5a44331af283b1cd3b0f0981cf65f0903ec8f commit c57f5ba2c8febe944ddebae53730667d5af179e5 commit c36846f3917962a1f7586a3d39a423e6679df3d7 commit 512712a824de9b856a4e61343e3e4390eba2c391 commit bc1922e5d349db4be14c55513102c024c2ae8a50 commit d29c9930279df7c10348772f812154d3c41562f5 commit c65b3affc6737c99c09925b910c7471d3db26b54 commit 5f721a5d1bb2e3ada83f04a119908b66d909300a commit 14683babf8ee356a232ee76b0acd332aef51fdc4 commit 7a05c5a0c883ed6353f82699dff8d789dae6b673 commit a594525c82e0b8d677a7e5fd13c7c115d41e9722 commit 270677026261ad8d1ea8ed60c3327d37aeb5f372 commit 46f47807738441e354873546dde0b000106c068a commit 9987151a90567785beebcbd5c8ac58d05f254137 commit ef6e871af3126850b429f68e8bd5b657042139f0 commit 063565aca3734de4e73639a0e460a58d9418b3cd commit 2af104290da5e4858e8caefa068827d7392c6a09 commit 8be576837b6e62b2ad0de2f9ba31cef618fa2891 commit 3d082157a24216ca084082ce421a37d14ecfcfad commit d80976d9ffd9d7f89a26134a299b236910477f3b commit f588a1bbfce781042196e68f8e200f08b3d9e8c4 commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc commit 751a9d69b19702af35b0fedfb8ff362027c1cf0c commit c50df701d49e78bea6410b4b111c7be71e2a7c2b commit 8023d3bef18bafe54708faca0c4206e1a36ca155 commit 6149cb68a5be127909ee39f4d40b8f5ba0d047cf commit cc954cfa6fe47579aa8eceaed00677feda0a95b6 commit be0c94ee215043c0a5cdbffc5c45b5073054e125 commit 5cd0664483c1be4a71bcf4ec643f5d3c782e0319 commit 0adc41de818c1a051c18732db57b9ee95b30898e commit a68819cc557cf0a37b7fce50d412abdb73bd69d8 commit 8de5df3b07efd1a04c549e59e0d72e2b3e2c517f commit a35eca01c372dc0f1a3ad663c6a93604c603a782 commit f0d4ce59f4d48622044933054a0e0cefa91ba15e commit c3e27f4307fed7b963d8e99c18dc51682b3431e7 commit 6d6c932daef5c5b3cd5e3692e79507d2a3306031 commit 1d06c820b2b7ceb38bdf0775fac495db4ad4d10e commit 23015f6f900b8b158f6811b85de1f96769be4dc7 commit 00dd7f953b9b1d85e97da8065cc2887a5477008f commit 2efb4adf489dd29526c412c4593d12e08076c68a commit 19d36cfafad0395d1b8a9db7a85d64282c42ae94 commit b5c84a9edcd418cd055becad6a22439e7c5e3bf8 commit 657b15d672f4d89cf0750793473b8963429f8ae3 commit 29b9702ffe70d83b9970abbccaeb287dfda4409f commit 363c4c3811db330dee9ce27dd3cee6f590d44e4c commit 2bf68bbdb6f5a445b26a0e8fe14af229ffcc7f9e commit 86df4141869350edaa53fb994b3db2c2cca5065d commit cd9f7f7ac5932129fe81b4c7559cfcb226ec7c5c commit 70c0b80d0bbb97c072c4a9c3e8b0f68a9e22d7d2 commit f0bb41fad02e0310fa7b222c7254a3603ecaca1b commit 72be4584ae7e23f64c292171cde6c8fd887aefa1 commit 3f1a31ff8e3f6654d2b03a34095ca1658e4cfd77 commit 2ef6d3bf426218440b156d392cf95e830990e0e4 commit 66a19a3a0e2d200121f30a48d13b80532582f1a5 commit 7d296f369d38e12b1f9c552d8635eb0caef71095 commit e71a74122863fd8acd23ab772ab4f7c3a378aa66 commit 0d6419e9c855dea476300e2bb81d29105fe76d38 commit ce2fce2513c5c1076f2a2d6e977c0ac523aad5e3 commit 22ba60f617bd1cfbfae72f73c93ef9507a305c59 commit 18b66ace6b3acb01b645d2fbbd571f66b2705c71 commit d2a197a45daacd4ab3221161405768a6d1d11086 commit d2895ec4ca6c67c5a9c8ce74bd5deba76ea77f6c commit 6a77bce58c6b29167bce2f548559c75326bbaf03 commit f89154b6525c7ca394ca68adc90e6a0d5b3872fa commit 1ca489fc60e2713a9acba4294c6fad66d85961b2 commit 90c44207cdd18091ac9aa7cab8a3e7b0ef00e847 commit a2170b4af62fd347c699ae3cd9ec0a8096466f9d commit 889f84798c5b975125f5f7de910ed222ca8b2677 commit 274b924c3ed18f7d46d237810dd59d3bc89cb4b4 commit 241a074fc1342b8f6a88af4b7bdc014692ebcde7 commit d389eafa3f50944ca272e0ec865143a9fb948e78 commit 219fa961e12497fe6beef478cc0de0da47b3a3e6 commit 88839870c3060a04a2e085ef1efccde4b0d1d440 commit 702f8dd8319fa6e3fe9d90115426202e6ee5d06e commit 9d8033d6beca43e9d8eb952adfa8bf08642a357f commit 2426d71c52876a5558b40af06143688b3978ddb2 commit e8702d0b97dc9fa825715fb28f116c199bbebc87 commit b9d3d50adbc79c3131ff3c5ac35bb9a57442f08f commit 8788e0668f4fd8815f82c982879252aebfa708db commit dfabe59797799bb500897ab4064f8a76aae4026a commit 2750caffa7a9ae82824d7ac3ab0fee65181c4126 commit fd24926676801dd68afa1f39647a858cf4f6ae50 commit 2412d339b30e66f86d9430aec26f5c6a44908b15 commit 05f8c2a87aa01d1000cf148213560117e39a48f6 commit bd682a788c1f4fbefe17b3ee9e0e3debdefeec6d commit dd4dabe4b3c2425878a49ae8d5817d5c5958c6db commit 33413ef964b8cdbb25a23aaf0b4aa8f0a330c4cf commit fcd6b0e270a9dd849981df34051ee6dcbdbb1c0d commit e0a4459d45425fabd5f020a2117d350c5a07477b commit 6927913d700749a4b9550f87f294778df2a7faa4 commit 22f7cc7524081bb2bfb2720e43ab9889e2ed5b00 commit 9308a49d8ee2f0f372fb7f18b8f4a97d9ec676c7 commit 4f860edecdafeb2e5fb29fecc6428090997936fe commit 5d64f9bbb6281a5a89a2266b9d39daa1fca1d6b4 commit 7e2ec174945fa98048b39baf2a87973eddca3241 commit 876f7a438e4247a948268ad77b67c494f709cc30 commit d30b9ae93bf57414160503d3cc62735adeb61557 commit 377c675f3c17ffaefd023ee283bb366bbd6bbcea commit d946bc44aa0bf03ff5c2888e8c3be8646e14467a commit dca384a3bf5af1c781cfa6aec63904bdb5018c36 commit 9277b75675113d64a74ec01a1219973f3720d9a7 commit eea89dff4c39a106f98d1cb5e4d626f8c63908b9 commit a3574119826d9a4ef807fb973cf5150c3b90da43 commit cf1c7fee7ef37cfc09b5e704eb52d9466ca49012 commit eef173954432fe0612acb63421a95deb41155cdc commit b3dcc6dc0f32612d04839c2fb32e94d0ebf92c98 commit 15512021eb3975a8c2366e3883337e252bb0eee5 commit ccbeca4ca04302d129602093c8d611065e3f7958 commit 542898c5aa5c6a3179dffb1d1606884a63f75fed commit 722b717d8e2759d943dc1f55a2f6fe19c55080aa commit 972aa1a161d8eb61bc588c31bf568bd69c7c231b commit 7994369fd3e758ea1fde269ff7c3984a8ab52b59 commit b8c75bd9746e3f1bdb5a1b6288b50dc2fdfec0ef commit 2d022081b333a7f15ba27607696d4a41a7a2b5f9 commit e56694f718f0f6694c18d7595e61533a2663335e commit afa37315917bbc9e71a4359f921eb887470c008c commit 3698807094ecae945436921325f5c309d1123f11 commit f185381b64814bb483416e4dd83d85891018a7c5 commit 5ccbb057c0a1282b39192a346f963fa989ddbc92 commit 73fa13b6a5112b59d09e58b8075973769a15814c commit 011bbb03024f5a22dc04eba370f9296f0cb83502 commit cd9f79103003599e58f9f394c07cb4045883a51e commit 626f7b3190b4c07917f0262162cb7fef7272c34d commit 8668dfc30d3eee695233ce83944abaf5546a5017 commit 2485c12c980a36bb9e23ababb07d73c4ac6a45af commit 5bb6a8fa75fcfda93592bee0a4910420ceab15f3 commit 42c6c48214b726c30918e8dc80e2168607d13ae4 commit 3a9822d7bd623be9000cef8101ecf8479fa53f2c commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 commit bef153b70c6e3594b849d44a23f806328b9c68d4 commit be072b06c7397004e6464b4225e13c31ed0b9ca3 commit 4717fe3d8dec42bc951a44f41efc95d635d26325 commit d1289b41ec4db347794abfed7525e33dd2d9503b commit d763d8030f440441177d9638ffb0be39cba32a03 commit 08a987a8a02b073c620b5f3f363714ccd98c0bc0 commit 9d5dabfeff3ca63925cfc9c427f2d1fe8929402b commit c2db32ce77adf82dd2a4193abc709ec51474f84e commit 2a909ae718715b3bac75d945e38dc0a5e4a0f1ba commit 692996f2bef7aa1737e07554255ba0d9a73fb750 commit 3f1e2e9d9993a3b1e33661fee26566f091e01b2b commit 3f3a24a0a3a58677d2b4f3c442d7a1be05afb123 commit 00b14ce075732edb2935d738de990e9aa96f1e08 commit 447c7997b62a5115ba4da846dcdee4fc12298a6a commit 00d6936dbd5486bd5c0a07870d5747eed6f799ec commit d5e8ff5f7b2a41d503914d4896ed3c6b3befe933 commit a50b048276c4e1bc6f7e869c99b6bdc91b4e237f commit 4e781873fa1359c9a85559b6da6548ac5b07ceb5 commit 29ba7b16b907a1f915aab8b83ef901e209146938 commit de95753cce66582b0c710dc31592cf15d317118b commit bd42571168ed54d309480856fadea3eb99821253 commit 5af779adc3ab0245b94187a3fad6d10f60013c1b commit 2d282665d2613fc7be9dde557811a7783ac01735 commit 7ade3ca9cdb547eac2cdb661c91a481235e21ae8 commit 3c6591e947f5c23c13dec67da3dbff12ccd6e209 commit a89ef0448c9b59c524499663eeb92a43c8bc67fd commit f69c15e15e74fb0250049c5532d8322c75f423ad commit a423746305d41c1e2767b832742cb572ab173af3 commit 6d33f0e820bfbc4f0b9b2f23d0d30df4bd6c3001 commit 3084488a49d6d58005d6ac1b5457b3f13bad1ed3 commit 77a35bb579827216d911ece7a6b909e4ac8e1626 commit b65007590911ad558999073dbffa413cf4861df3 commit ca7f9d0aba9940f4d3e759f44c414c3707a94b21 commit 98ea24e6c563241814abcb1d22ec207a7ec2fd9b commit 559e2655220d56f939a9fbc6212992345025392c commit 39da460fd4c0f8e7290dcc9cbfc9375de9d0eeca commit e8dd130bfdc627d935d4eda4654059a24864a493 commit ed3a56f9c638a4ee42031eac748664c834fe245d commit 66d58bf73ba17ac45fca79f2e5e26870cc224ee3 commit d7d7ddc15672940be0dbbe03e016c5bb617256b8 commit b6fba4ecf3554c515aa5354c54dfdf70d7526ff1 commit 6cbdf12b87356827d35975dfb3030d116782737c commit f54b6bdf4248b1e26ff66932231e1d6a2f16adc0 commit 3786a9bc0455ca58d953319f62daf96b6eb95490 commit bcfab8e35ce81e2fd3230c1575024bfde0d28c8b commit 120cc6e67a5e34069693cf1711ea222b8c414685 commit 68550cbc6129159b7a6434796b721e8b66ee12f6 commit 4a5dc6c73dbec54648fe01af2f1818dc3ae90d5d commit 7938f4218168ae9fc4bdddb15976f9ebbae41999 commit 976b6d97c62347df3e686f60a5f455bb8ed6ea23 commit 0fd9803b985e5d94e2b9f1848a12756b7848b62d commit 270b48bb8da7452b4357d8726933beba72652310 commit 68129f431faab376c1dd1c701f2fb999eea53383 commit 18f5fad275efef015226ee4f90eae34d8f44aa5e commit e09b9aef6807474d6964a2513321e174f5162e8e commit 9285f09e8f96496604cf0755a3d7e91478120609 commit 6abbad2c00bd26531c203f29190d14ad9eebfc0e commit 042ddf6663a86be98b306e6cc9e7048ea4c835c0 commit 84d826c8fb84a57716b44b721591a0fffe4ea1ca commit b20384d9196788dfed70aa7cfb2b3dc458217918 commit a59b026419f33040d7d28b8e3b1cea681b9ce7a7 commit f665147cda30928ce79045a13953eb709fa3dcbc commit 3ab26eddc67a67579a2b52f908b69cbc253f5ff3 commit 5e78d59a1ead969669f64dde4245cfa65b7cc4a9 commit a28fde308c3c1c174249ff9559b57f24e6850086 commit 053f2b85631316a9226f6340c1c0fd95634f7a5b commit 2a3950c43e2ead47ed7456b04da5d4afde58c4b2 commit 6b0076540faffd47f5a899bf12f3528c4f0e726b commit b21a142fd2055d8276169efcc95b624ff908a341 commit f4044ca1967098b44bd2d569ddb99352b599551e commit bf8900406e9e5c928ba578c8fd932b4bc72556be commit 2ecf64a0d26699f5f7458e87bfc873a47a2945bf commit 6e007c3bc97024853e3397cbbf37377fe8cf2b5b commit 7e97596c743c978e81ac67a59940071aa292b2a9 commit 91cb1e11786c4d5cfd8bf32e891232fa42b03cc6 commit 11a1d09c974fd58b8de0474081d6e97bebf4b619 commit a3de31d55b2a9fb672007aaf2b070cf90ac7dac6 commit edbb9242478d3aed8b4d3cb197032e9ded26b3e7 commit a0386bba70934d42f586eaf68b21d5eeaffa7bd0 commit a4c63cafa58b4bd9e15511bab77a4752b93d3aa0 commit 5fd8518d187ed03403a4d4f7f56f52c00b11c148 commit 54f329cc7a7a7ea265c45b206d45e3d09192aba7 commit 02599bc7f7047f2b316ab499f41d72ca14e3b3d3 commit 681260df4dad45337b14ba762f94b402204e9ac3 commit f287a3c5b03f51efa8d8f3e141a79177f91047e0 commit cfbb6b0047448e2d986160d9f30d60f604d9ad0f commit d0fb18b535679a28b1f55a312b7454563b9bb36e commit 89a7a87093d67e2c633e1ed400ba00ffd15bdae5 commit e923be9934a9c54a94e443f9e77bda5b9fbd1ce5 commit 3675c2f26f33ab4928859fb8950a4697a16be5c9 commit 03e5b167bd2020053f3d10b61a361de8b17c5936 commit b1c87b0874a4a2045dc78a8d3d3a77ef61536711 commit 803ec96319eec2897d3828e87bd38180295d0dcc commit efbb7c98f5fa5a547c4bc0369f825c930aed8918 commit 2feb6b0f06b1221b2841ca61b721b1d608bafa79 commit f3b603de2ff41eb915d75163f7212bbf177950d1 commit 28f5f8884e7cb9cff5375db487a8ca7cd3fd599f commit 98476876b837069e4582565fee63e70810c880b2 commit 40f1dc5223ae9b98458124bbeabbabc74c2bccf6 commit de7fbd020d959708282ac0916be3e5498086d9aa commit 6c1a7867734bc6f54e8442f47790c90d3afa07a2 commit 5bdd3eb253544b1e80f904e1205699d0a126d2d6 commit a439b890dbd17457f071e41777aa1d17916258d6 commit 1cbbc8d4f788af4c260ef3cae05902ef7b191197 commit db7b81545f5abdfd1f13b7f0a3f995994701cf92 commit 3b99e8e37d0ffaa0ef95598b9b83c49c89bc0ea2 commit 63b5fa9dbb711e245e59cc14eaae0106eb716447 commit df62ae6fc9b49a9a401afa2efd3f36c0f82ad663 commit f5666d482305900b9622a2c9dd73a864a3b0d281 commit 24524e3f43cf77dfdff7187f76d967b3175f68bf commit ba2c5d15022a565da187d90e2fe44768e33e5034 commit a3c286dcef7f8bc576a20f5d1e80624f6b4b93ee commit aa15c677cc34e626789cb65b8e7375180851c03b commit 67b723f5b74254d27962b1b59bddfee1584575ff commit fe23b56f56532dcc5e49e83e20333b97919dec53 commit ded74cafeea9311c1eaf6fccce963de2516145f7 commit 1528038385c0a706aac9ac165eeb24044fef6825 commit e7a09cea6483b44ea0c82f07145fcbd8a918bf96 commit 24a644ebbfd3b13cda702f98907f9dd123e34bf9 commit 73144c0ce4e9d69c8d0de4078b6bcdbc55f79db8 commit 66b09ddd8b323547e24871ec05fc63c44a557877 commit 69898171829d6fb92e366a989f2f14d8b5b15e21 commit a391e06958b2fe3f53171ba04f60dadf17b09d5b commit f7bc440bc79ae5dcf648b90209910ea8dba6ef0c commit 0f4b58423f3500ee3e3159fbbd6c41a6e6f920d4 commit 0192c25c03cd2feaeaadae375fe6aadff788939a commit 427153ef63a82a4d51c6046e2457787127f4d6d7 commit 92e438619d1603995ecb9f1fb2c322cc304b759d commit a421d8a99216d46926609611cdcf260fdf900645 commit 3ee7fab0f3d2c1f9c2bfe6d4fb8c58106a52e840 commit 420f63cb6d2a691b94662f50e07dc3c9a851bc69 commit 721255b52700b320c4ae2e23d57f7d9ad1db50b9 commit b508d01fa577e21a8f574dec09a16e5f2f6c7d3d commit f3392b85130fdc9e17bf6abe362d5e9e4bc9b8b1 commit 985a0256df3290d318bf937db7ef0633f7654490 commit 88d23eda3c7f8bb560ae93b00d03688ff7920cdd commit 165bbfba34cb4c8f31d1e643abd2d5cb6eba1b90 commit 2528b396d5304a711d28f08047a8fe60daebc3ae commit 154cfae6158141b18d65abb0db679bb51a8294e7 commit c8eb426d47abfffb0713dfba8d25d99ff091f3ab commit be137d791b5067fd5f290a593336f93019ed25c4 commit d21b3be8e14445fbd06109b4831c4fa8f9adad2d commit 8a84e7a176c0a02a97f64ace508c1f2546c30bf6 commit 759d4fff3d2d70d6b689a9f1f7eb4488df337fbd commit 63b81e6063200d01592cc2cf9b3a87dbade2e149 commit 04d4e167522fa9b60c83e04c4a74041b36b2327f commit cad3fab413efbfdb1c64a08808aa3a59fa288457 commit 5d488786a3a18d48bcbd1d215ba9dc6811b7d639 commit 0c63fd3d962525d3eb1001ebc31537206f66720e commit 1a7a8d93db9b8c7ee9cba983fc6aa8576da237ea commit 6148f3653bba417488e0d289bbe60c6fc7c4e711 commit 2b1466ea19182551ceffcd6deed2b22377cb2a53 commit aeb47df35742376f2fa13ee39039f1873daee626 commit 02cae05ec4b6d6f1a1a07c98a34e69ebc1b8f7d7 commit c7703ce38c1ecdeeea6791b54fbee29a08816ea9 commit cc188a73addc8188d73ad11901b697acdc7fd0b0 commit e5af61ffaaef0e952e248de895454cd339080035 commit 5aa71bd773c390891974b1bcbdb3b12aa17c781d commit 574ff46f10102f65c40d24729197033a80458238 commit fd22013a098baca78679656d55f8fd0becb99a8d commit d8a25e48585773afc573e835a52f9cbf409215bc commit f9ed188d5a08cfacb945b21976764f57c0ea9ebd commit 69f915cc97c4bb82b34105a47abf613f7c87215d commit b06b48d7ddae440f3393e5c1ddda4d2537b3a7cc commit c8cb19c7b26d78434ec563088d5d377ec2caf616 commit 60aac460ed97852f620529f43fd58dd05e41644b commit 816d61d51a31bd16d0fec75526462dc987f09114 commit 8bbd4d83a68beaf54ae01b2e2aa2024ff1dfc0ba commit 461fa7b0ac565ef25c1da0ced31005dd437883a7 commit f3986e86b2d861a2ed2d336bafe53b5c404cb995 commit 1915a433954262ac7466469d1a4684ac54218af4 commit b010a46bd3abb161409afe147a73fe58c115858d commit 24992ab0b8b0d2521caa9c3dcbed0e2a56cbe3d0 commit 7f161df1a513e2961f4e3c96a8355c8ce93ad175 commit 123db17ddff007080d464e785689fb14f94cbc7a commit b9c7babe2c2e37a50aa42401b38d597ea78f506e commit d315bdbfebd517cf5efabf666c8099e027ef666f commit c6fc836488c2ca45c06d21213f5281d668b42b95 commit 9a8e720fd064193ef5112dcb221192fd4d0f7809 commit 74fc595465a0f8e54a71a9b2fc8552a1ccaaf5e2 commit d83d5298ba188a829558ebcc395469e39ffdc2b3 commit f9bf77df111a16d00cffc4ed6b7e374956290dc1 commit 5472b3f2d9ae65d809d0443dd8f5cc7e1b20b1af commit 5f2ec9095ce8439614ac289819a44e02f52a5415 commit 82508de228bafb2ea8f048f7bf11bb5547354d62 commit 01b94a9361680d6582dcc2a73a9eb464e0e40888 commit 14da21cc4671dbedfbe3854e495f24adac7866c7 commit 4feb2e9eb95f785ea39d5a7e69b845354c2691b3 commit 548b512e144f890a7ba4aad71985cf4a81611f5b commit 57bfb34a51c7c655335010b3168c1061b5eba354 commit adca62ec370c131ca676ea4fb2e4e450f999fb9e commit 90d4aa20c8cc76f5baecd423b5dc289b899ebc42 commit 0e05fc49c358cb49e59ce8d6ecda652951335e1e commit cecece2ca505dcd47359ae21e3b37ca1f57c08e4 commit 8668658aebb0a19d877d5a81c004baf716c4aaa6 commit 73792e6e66be1225837cc1a40f1e39b1d077751c commit dfa714b88eb0a9d763eba9e5720b089a58dc9496 commit 3fc2b087df2ce87dc11abe4a5e7a02b75b5bb82e commit 7db47b838896ec2bb57e3d0b329804b84f32626c commit d5c6f647aec9ed524aedd04a3aec5ebc21d39007 commit 77608faa77196cb0f7af3fd0e3e26051f3de1db9 commit a6c40b178092f41b9d6cc8615697c14b1e5a1c3a commit d87f36a0635edc58430e322f9e04fdf9aae6641f commit 2243f4937ace91437fb39f9b67d309c3d0d7aed4 commit 71579346991927687c76ff76084bcb1f9da410a2 commit 22b1df28c009aaf78e77b20a9cc8d8bf98e698c8 commit bdb3489cfca16815e9a737359e9e90a4af5d0ff3 commit 311065086ee15b4d5d544fba44b66349fa7cd246 commit 634b56b0f88bda4a20f88af2f3d8bb212ed53027 commit 88bc3cd8450b73ad37c9de4b48c315e6c8002f03 commit cb9561d0e3f4393a31fab2034c33c6cf2162513a commit 80ed77f971c3911d6a6f7c537540b4ee62859455 commit 683bac6b00e1158bf3c56dfd9f55ea34acebcf90 commit a3ace75cdb6979e18ec9ad00862445ff71bb8a71 commit 892a57a975c3bd51834ddb0afa5f27baa19a785b commit 9252d33df597a60416f3718b9b41457657c8540c commit 563285c85ecaa1fcecf304dabf87cbeee1ddbc3f commit 2fbdbe958a15e735a24ce33751671e9bf221e70d commit 1ec1944eb50c8de2d96de1188eec9f8b22d03366 commit 7258fa31eabd882f6c8ed4d6d281f6657a33ef94 commit d2cb0b21b8f809ae04a5c30468d3ccff2b23eec6 commit 009e9a1585059ed517b8e02d0afe11128af5ddca commit 3b853c316c9321e195414a6fb121d1c2d45b1e87 commit b60668cb4c57a7cc451de781ae49f5e9cc375eaf commit df529053590d59ca3e06d5b3232586987b61525e commit f461ea5d8dc425325f4c478dfcddc4de8e24fea2 commit 7e2aa820ac24f9d5c1fc39ef5a2ba7baf3384596 commit 208f6265d519643f380c504ee1c1ef925f2c7d5f commit a6e7a006f5d551ee0827059300148e1c9cf4f9a3 commit a32ba6bdca21fd82cacfca2aa4708cbfdac6bc49 commit e283820cbf8092c87a8d6461260d5bc525da72c9 commit 2509969a9862b522d2208e8663057fb227556687 commit 6ed19359d6bd62e993b09a7a565d7a5ce5e114c3 commit b3d9f59f69289569133730e1be019adcd9e06611 commit 4a564e59bfb7732ec168f66ee77bf1eb81ff9319 commit bcf8b616deb8794179e3e9c6233a53f42664afb2 commit a61732e808672cfa8c8c6028bcf9feacb953ef40 commit d12dd1db809a3f298b4ef6cc02ca64fe3038391d commit c17897428e1d25975da5d45d40f53bfb19d8fdcc commit 3358e2ca0ebd6454307bfb8affab35d26cedb9db commit f12dc0d8431e1fa36a3496f6a0a34edba1fea2f9 commit be78311eaa92f71d2f4c0861defaf185d799e19c commit a19c1d00b0d350fb7b75c6c4da91887f66114a7d commit 4895b90dd510b217852b3d118910f57f3f333b2e commit a874aba8bbc529517ed154d88b08e3c437564c88 commit 93cc7aa0b037f34d9a55c58fb4ab6bbd802fa47c commit ab9e00a3509ab7868cc3d4641f45ff926467b38c commit 680a5cd10b9cf4922e182f768d3a534b1a4427dd commit bd3de31950aecc29abc6e554e3b3f6883080c5be commit 0d53879faada6278209883a9eebf39b9e3a8ba10 commit 573ca6fb97c617eef263b15d982dac2f85fd2854 commit e30e6c7b82a18256a1e4ca2f067ce2b05bbc8871 commit 5f1d00420f46774fea45244effc6dbcd53cb6bdf commit 783782a52340e850840c11d823b649e6ba83a700 commit eed1a5c74216907f79f7b1af725e570e95bab0ea commit 92ede25eceb251ec31e1599065b98d681a419046 commit b874c6671b911ffab69f70b298d074a1897b8aff commit e610941c45bad75aa839af015c27d236ab6749e5 commit 7e2a4cfc62d35a7c567e7d85b0af2651cc6b05c2 commit c85bf88ba5100249451151fb1b76d2ed9e40b634 commit e506db5905d18b014aead347e37b7311858e2750 commit 951be8be7d66fc7c69fc2e2f42664bdbedb48c32 commit ed7208706448953c6f15009cf139135776c15713 commit c5365554514178840400b801787bedb567811064 commit 8639bd70497ac96a83ff26b8118afcdc45f1cfaf commit 4d7ba312dd1f94cce23f1f93f33bdf92db090688 commit d9f2303004581f767f3f4acfa3faba205c9991d9 commit 128f8ed5902a287a6bb4afe0ffdae8a80b2a64ec commit c25badd59cb4978bb702e52ee4c5b5ed1cd03910 commit 43d15db1d067e4cdceb0aebd10b9210b97899789 commit fa39f936dbb96626d3345fd8d66af6be6f47ff9e commit aa79d3808e8cf1f5fd0f1c20c2e6a6865b5b940c commit 17ce8a6907f77b7ac97ddaa071d8a1f6e06ce85b commit d5c831566d34924f62082f8b675d35c078f9b45c commit 29b440d20456033091a0376cecdc23c6875d51c3 commit fdda8f3406f98fd087784f9516b3825bb4b5f6ad commit dfcc3e8c24cc1fcdf9e14ef98803e295b5e4f721 commit 01cbf049e10f2cc4cda5570ca8ad3d0334cebae1 commit d9f8a22aaf84be5640e0fd8e2adf0ace61ee3703 commit 2019bf7cd2135bf4633dcde8357c63fdf1ae87d7 commit 2fbc5086975679a5c2ba1bac3ecc5942cf7726c5 commit b67f00e06f36192da513ac80148b000fbc5b2717 commit 35c27d9578356762e7421f16d61b91ab46dfabee commit 97437f475c5be7804592bc258e3936aa318895a8 commit f99a7eb2d11b00a20c9fd6e724c60151b74b6ce9 commit db090ff8f98d8314fab0442a16e7b1e6a33e16be commit 967af863f23344aed4353ddbcaa8d6d6727b34fa commit 79aa0367385ceaf5351ea77ea1fb66136739ea9d commit a65dbf7cded724a5ed4a5e1a718616b048ca0c34 commit a4c260de9b6bb3c54a509d24baf871c497bca7ca commit baf682144ecacae4b98597daa636ce7b2b3143f6 commit c1c04560ac038da28694a04d71958ced32964647 commit d8b746eafc2ccedfc0d6008df7fbcd96e149ae82 commit f2ed8ef31366467930c98494535a044e33a1b3d4 commit 5224f79096170bf7b92cc8fe42a12f44b91e5f62 commit dd4821baa8b6f0abceac43840673b4556bf73175 commit 2bb116c7fd1fcd80c7727be44876070d1b3ce923 commit 64b14a184e83eb62ea0615e31a409956049d40e7 commit f3f6eff85f94e742ed9f34330993cdf91f83d579 commit de7cc1b48fde1abf13324e800cecc0aad5078ade commit 868f4357ed0d1e2f96bbd67d4ac862aa6335effe commit c477eaa6a79da6af7e59f74e69af7d6b3af52a23 commit f83e14011e042adc196f1dac7cb235c70798c231 commit 4e9b1fa5a2757d11a5c40eed2b2b4837dcb2f12e commit 72b3588e27feef96be6993d493c8c76a13bf8eba commit 068001b711e820184553e90f9bf2ae18fb4c2c06 commit 20c43547add3a60c553c90b730e6cbd39c4d5c16 commit caae42f00924498e78da8a960561936aa7eba503 commit 867e24ca4945249baf34ea07ae6b27ca927210a1 commit 418abce203fc2e936bf8c7632a9a429e861f6283 commit cba07cce39ace4c719e63b0410a53480aee6aaee commit f0d540989597d04905253b54d4d0ee53cfe70a42 commit 0ab5d711ec74d9e60673900974806b7688857947 commit d01899d3db2a553268dd4bc03641d9e80e41d67a commit 8f74f68d907d2a41be211e61aaa7c9268f5532e1 commit 6b5033831febbe1c009b6713338cc9e417b45ceb commit 779596ce6a79e187995f04f143fc5ea44a565ea9 commit 91aa9c8f5282922b2890227724467de2f32fbf84 commit 1957f27de290cde5a0d6e1df46a2c8b3e9c77046 commit 50e14a62ac3a56c62c5676bbb8b39245212e0567 commit a142606d5433c9bfc68c0f40ba32c2e05ad75d09 commit 874bfdfa4735cbb1b0d6e0c6157c712a312371a1 commit b63c54d978236dd6014cf2ffba96d626e97c915c commit edf176f48d87fa25ca93f09362707cf5314bf7ee commit 84073e568eec7b586b2f6fd5fb2fb08f59edec54 commit b71a4a2542e1b092b4f11ce6318eaf82619312e4 commit 9b43698af7c36361c340b95c9601c54523da4f2a commit 7f088bef6b0cd976b5d39eee5a4046ddc920ff29 commit 77f4ec2a4111f1dce0c5903d6db7887413a0a750 commit ed0ccf349ffd9c80e7376d4d8c608643de990e86 commit b70ad01a22176b6d903e9cb2f2184c2aa67ecee0 commit ab597bb3760ce2e7a5c48755cacf7df8abfcda6b commit 79af2404e537e0f74798faa0a26bbd374ece27f8 commit f470b218b0bb7c9bae8aa2b4859d9a6bf97d98d1 commit 61b3b2da10dba0ac1633c699c9d305c702b43720 commit c94d13e9d99bc0432cbcc2371060acf5e10cd7ca commit 48bb92d91ae9331138656f369e66b5cab8f0fa7e commit 89bfcd82b3452b6e47ddd9d573add43dd7de54be commit 93afe1583758105ec390ed130681bc7b70371b7b commit afc2f276057ea1eb165c4249d15cfbc1954411f0 commit 87b5e77f02da9444c630b1860b9f384e805eeba7 commit 935ad3a74c7d231b82e7fca15899a5cab4195b95 commit ec3ca078850a3310c9a393866418c85b7e6d40f8 commit d7fd297cb0f19a87c1eab63fdb90f8ce8f03a533 commit e8c487a6b70f060cfeabf3e155c9daafd627617b commit cec24112e125a228d5077eb05ca793398de619e3 commit 068ea8bdc0aacb3bba3d1392ed41cc1116a671b8 commit 62640f251f4777cbed654e59827fccd3b4c94bce commit 5b723b12301272ed3c6c99c4ad8b43a520f880ea commit 574dce2d2414f7d782536fbbef7d20d1cf027e69 commit f9490399614050a47472ff127c67830cb4e311f4 commit b9d7eb6a31be296ca0af95641a23c4c758703c0a commit 92d0c2ebe564f492ea71bf2ca81de5d95d58d6de commit 5559c7ba93fa6adcfe6a39ed80081466d8165e5d commit 9cc57625a6f374174f716f87af3bb5df87118ca8 commit f9806a172070c2d6094b0a9e488c8c172a6f35ab commit 0b208d60adffb6b3dde41841ee423fb5be0d01e4 commit 501867d0d2a6bee3ec18a6471ad99a7a1af47e08 commit b5b8ed444a7fcbf5229f0469f85c752b5192a9b1 commit 181ebed7dcfce21dc152c3b473e3d44e7e94bf27 commit 8dd8ffb824ca7b897ce9f2082ffa7e64831c22dc commit 6b728595ffa51c087343c716bccbfc260f120e72 commit f257879182867979e64ea8940cccd52e9a01759f commit 1d82ef6552b5b3e8450c49fda90a82621fdb8142 commit d1af7b6f91a56081165bf1c1220bf1e0d9699d29 commit 9b693453a4eba392bbb62169243f9513366a253e commit 2f8a6699c90df7616e5dd03cc0c6ea22d589eba2 commit 8c26491f58538ffc647b813070ba493e35a48984 commit cccd73d607fee52f35b4b030408fa5f6c21ef503 commit e62f25e8b3cdd29224c27938addba817aedd4b54 commit 132aaaf01788d5603a1358cd53a95e5367fd612b commit 87bd701ee268a13babdfddea53894a416209123b commit 5189e3126eb136a2cffacc708f08ca4fe86ebcf4 commit a413c99fc1e49db4db27f4bf0f7791011b4e2132 commit 2cff4b9ed6171c61cc50c38b25534f7c3d30db3c commit 6f84aa1cd47cc0feb38da76999626051491316d7 commit 00e27ad85bc9842e2a775765597e6fe4b6beb584 commit caa574ffc4aaf4f29b890223878c63e2e7772f62 commit 5e3094cfd9fb313be3b8fbf9f91e92a30483bc28 commit 4b31b8e34460af9b2eff0d389a6caefcb694a1bc commit 994ea402c767e54af60f1d01f0c16520480466ed commit e78089da45093e0f421b933849c56b7bc21108c0 commit de45f0a3bef63a754839f008bb0cae86d8f501c1 commit 8f0991cccec93665dd6ecd88dbefd7db2b28c85e commit 72935696f516e3d587838a9f0e1f82d251925840 commit 2b72a38c6f9b9809cb09df4fa5aa886aab6bf05a commit 3c0deb1485c49fb282010d1add65514906ed8928 commit 602e604a899a0d06afcd69c693f15c5fd91742d8 commit 55223c3bedcffcb81400db7f1ed1f207d523eaba commit afea229fe10282da14595870b44f82792451dfb2 commit 476e4063022787b5720758239ee4c22fa2495e82 commit 95ee2a8b4b3cd1fb25f7e14e2202da4045030173 commit 64b2a6a054c40c04a4e48fd70002570654381f9c commit 9648f1c3739505557d94ff749a4f32192ea81fe3 commit 0591ee6a5c428c2309f5fefcdbe40d9eb669634a commit 757f9e4dd51644729d27c9b5e56f75681e8f17d0 commit 22804e03f7a5ed35d86721d037bbf52fbfd0369f commit d4a7eac27ec2e6b5fdb64066e967fc7767cd4574 commit 7342bf6530a78ae80b27d9a13bb10a409fdc20ad commit f141e251474d673f75e8c16dbdabeb4da3939d7e commit e1dd4bbf86d5e1e6ca2eedf9ef9ac680dbdb3132 commit cec2cc7b1c4a31c0facfdd0ee7c2ffb7d6a76556 commit 9dff13f9edf755a15f6507874185a3290c1ae8bb commit 091cd9c3abeb68981552557676985eec761d6fe5 commit 9bc34b4d0f3cb368241684cc5e0445d435dded44 commit 02ed904261481460e6084769416e7ca31bbb92eb commit 390a1f8beb879359359ef38d30a0b0ccf392148e commit 8ab62eda177bc350f34fea4fcea23603b8184bfd commit 3d515ba9ead046a0c06a461697a8d5211298aadc commit cb8f00f27ae7a1e8d047f1e2c96acc257f09d51b commit 92937f170d3f49f41d7acb86243ee691a98eb2be commit 4010ce9fb634c6368ebb9dead9ef83d49c4dde96 commit fe93feb5ab0f6eb1a08295dee51b814bf7227799 commit e6ff5ef81170e11dc0f196b0391f708f04fa8c87 commit f915686bd97a9c234602426e6d132b74a112a8d6 commit 94eb6b244c7cb0fd955f712d38a8ad9bfc7740a3 commit 03a62c40544c057a4b0df86b7c4f17da7f7bb2ac commit 7d7007686b0f999f90690d27eb013aba2eb8dc30 commit d95c25668f2379c807e1fa6328954f494c4e2454 commit d5b8da37c017b182e121e6143979bb969833f482 commit 6d8ebef53c2ccea482ed77769b7b5cbb453b7715 commit 94fa115f7b28a3f02611499175e134f0a823b686 commit b9ef89392c2ac694a3e5624cde8f848fbf393818 commit bbd57d16d5ddeb9d8995a6ded81a6879be6af928 commit e460f244fbe847904abd767e4ae093bad699f218 commit b887d5f9b9232b556fa324e77edb92039e626f66 commit f113cc32e35b5503b268f0bd891fa2b7d6d12137 commit 8f7519b2f3a93f6eae76912be66188366cc47aed commit a0c5fd46b2510cb054bd4e1fa6c2f207424c97e5 commit e7c4723103dc58c3d86fc7bc4e03c2ab500ef8b5 commit 0b1a63487b0fe45750528f89ea688eda2862dfa6 commit b784f42cf78b08932b837b5aa15d620520cd4d95 commit fd546bc5ad909f7ee67f90d91d4882f0fabc7edd commit a7f520bfd0551f9fd672b45b9b3cc56ab4275128 commit 5a82b018230b3947a736f45afa95cab434455248 commit 4683af148fe8f94383ed867ac986fe793381e362 commit d41ff22a4eefe2b933a82c0d3ce8ff47fa86e212 commit 78be946dad6d9f888726fbbb5de81b521f156c01 commit 23da6e0f7d5ebdba2b18ffcc228130a33d5411cc commit cf51c8bc5c0085e77ed956306ec7adbdb7bf5ab0 commit 3679b8518cd213c25d555553ef212e233faf698c commit 3a4bfa509eb0f73daa2e30e409ed907f2a7db82b commit f3067604b8de052c6a1c65eed3305cb6f3f9eb18 commit 2bdcb12ff69df5e42eeebb297ddfc110ee8af203 commit f11d9373b61598f6a231dbcc74829c2f11dd567b commit e0adbe73d75e46e3665cf0fb30f2cfc00dd78c04 commit 2e6e14c9e47dac61e341d4b8128184e3e0eb3568 commit 3e6084aee08b108f5cc489be46c68ba56b13e52e commit 10a9accd4842e6098cc27d79d43d7542254003bc commit 9ff28ab43af4cd9f1771779b502cac1bd0aa4264 commit dfd9be42344d9d3c1ff23778923210301ec5f372 commit c595fb05e392a5cd17c70c4fd996b8cc9735f20e commit aa34ca52a325d9a547158cdc8644f4c21d68562a commit 301306a90ed3b2311f7f2eee6fad239d3a65fac6 commit 5ac34ff1a41b05c3b22f8b4ce4bf7181246c8bc2 commit 0c41b9b561dbd81dd3955c4c8b59d55244a80100 commit 29c9b6cd581de79ef848a50d1c9f06cf567bfd78 commit 504390602444a209a52bfdcc59f539e9832079e3 commit a1235a01e0b208d424c5e72ff2e794dd356f74e4 commit 9e148e8ce29dba471d4812c6a60a3e843f3b6270 commit db749b769ff61a42480c377c30df70b8b722041e commit b74e2476efc40b1a4d895befc31fa05bced5f3b8 commit 5ce5a584cb826f1c1f0625a336134feb4e1142cd commit 15fd09a05a66216a9ad772728e51290f6dea1eb0 commit e2573d5f2a5cebe789bbf415e484b589d8eebad7 commit 5b45b1c8b89f84d01fea8939b672631b51cdf95b commit b51178d6edddbfc8cb4da5b5e9c924f2d24bbcac commit 203bcac9bf2c5676bfb0b33c7f2403ea5d6ed332 commit e776a755abf0dbe14001e4db22aa1ee70290c1dc commit 30424ebae8df0f786835e7a31ad790fa00764f35 commit 24c6bedefbe71de94455032f82cdff2694c002b3 commit 7f44571b53fd07e36ae4d2537a6fb40d79b39462 commit 54f43c17d681f6d9523fcfaeefc9df77993802e1 commit d814833f9e0e1fec2286e7d65c386583139c6a74 commit 4f0f1b58fbacc3d4f60e0cf17b01a6273df1d415 commit 45f0ff404cc92cc97569333314b47e1654a0491a commit 0bb319e7a1146e15f1919cfbffe44831c29e8f82 commit 158a05a0b885f456a86720b9b6b4571943d2e307 commit 2656fd230d21ab765eaea24f6b264a744919f13a commit ce075e75e5e3b1274735118f0a417e79d68f426a commit 8054e2f01c2cd287a3872baa02e30ea836ec8070 commit b3e8239882d9f5870bcd78baa342b0cc42c1fbb3 commit b83e1ba9395dd39f6336358dd0cbc8ca6ced21e7 commit f728eb3a5028aa87ec85f0de5c03daee78fdc544 commit d4da1f27396fb1dde079447a3612f4f512caed07 commit a2151490cc6c57b368d7974ffd447a8b36ade639 commit 0904b83e0cbb3dc1b8d5c0b1a5daeca725600eee commit 11ef5c77abc29d78ccedc26d01deb0bf0b2130f4 commit ab011ab6b007378132b242e6a70813aab3afc2c8 commit b8986c889e7ac26c57cb548f8f344456fa925a2f commit db927686e43ffebfc5d1693c1cb4fd74f462d99b commit 8fbf28934acfdac08073a2d5697c7cacae8d3997 commit 80253168dbfd256bca97cf7f13312863c5a7f2e5 commit cefbe724960bb6b40c019569bc42e02327a09ff9 commit 111aeed25ec6bf4d5b4a7b4cb5654f002ba9f795 commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 commit ef0a04a010e2a521c927b071d6025c12a415747a commit 9a48ab11714c955456fefdd4ab532d324fbef563 commit 1be6b46f731392267eeebef9d59600ff9999a987 commit 9659dd2b308bde4143855f5b57b0412be466eb8a commit 1c0b1175e6f3729c91835f179eb9c97b5067bb3a commit 91a33f7e20700d58941b38bcf8eca0d0b281ddb0 commit 219aada263f909d61443a8d1196592797c6e0281 commit 2dce68fa325ecf5be7007b9e8b13174262a185cf commit 4801b99588a2e022da50e43ec5f768707de3f862 commit 98529e950d4cd25c05643f9811e2387df58bc6be commit d9a5696e7d52edf68776599f2a38b9aee1382be9 commit 58fb284c52b6262b9bd43420aa39124c39e2342a commit c723b8ee3864bdf41cc560da958b7ef7f6138f0b commit f3d45c9d556bf6174258507e0e10519ab7f5679f commit 5fc83950572a65d33ccd661cd9d8be7ab885d446 commit 691ebb1109c97da2943e2d753add9ad5fc63200c commit 0df0c76cc3fd99d72bc1b18eae25ee3e8fb9d1f7 commit d2cc01e1794bd13199f7568298614f1bdcea1683 commit 6c64ae228f0826859c56711ce133aff037d6205f commit 4a248f85b3dd8e010ff8335755c927130e9b0764 commit 235582ca96214b50fa03ea77a5e85e59d94cf358 commit 3312a4ac8a464daa66b97452ec148b69c5959bec commit 30b9d1b3ef374403652fc10fa36b9a5f32cc274d commit 26ffcbbef712f6fb52f16e6f7d5cde736b80d8c4 commit f9eb742988e20fb86926de8ad18d7e93b53d1a62 commit f199bf55104d480370515bc736418808e5cfa6b9 commit 2d45f66887055e169173345a7e6249ecf3ee7e21 commit 5558d6c23d18f2143f60d7bb387e43a5d8216fa5 commit 95ae342dc939a220b7afbd3a65f7106258f67cad commit 1e7e8e18db0fdd4da4e91597cf4d59265b8f351f commit 0e65e2e6abb09d84a75c51999e3a6cf80f30c929 commit ffb5c099aaa13ab7f73c29ea6ae26bce8d7575ae commit f85b3f806e4d43a0e3e5c042f40b7fe5faf2f6cf commit 7eef7f670086f06b3a461f1b4d1e84f793ed4861 commit c03d982670335d732e5d623af31c126387ae126a commit e22dfdb63df36427067fad6b9bfdc8c08371ab38 commit 38a15ad9488e21cad8f42d3befca20f91e5b2874 commit 9373505967ffc1b7b8331a21ba86ea436c09b981 commit 503725c2d9865533b2894f7363be16c762260b7e commit 6e0c5bf0cc1369df0057bccb3fc1af3b38d07e32 commit fb87550d2517878ebcd112f080865a2dc38e9bae commit beac7709e40ba85e0827ffe0c6f3d6840588db31 commit c803ae6d826e441b65b96133ac573c0062740bc2 commit eee5215bd784eee5f8520f2deebf437c3fa95abb commit e068ef3fd5a3574359b80ff823089ca59057f9c8 commit e2a1e7abaee128020fde54d386ec8959b1e9eb61 commit a8b2b8b06e10224c547d90ea97c483b4de511b22 commit c0bbed9051b6eb293be6128d060bb49e999ef7d4 commit 150430366b2dcb170d309952143e32eb814fe7f8 commit 944823c9463916dd53f365e9aa07f23360968080 commit 4b88ad503d6d2ea11891a355e656bf428ec815e6 commit 505c4857fb13fb0ea88a42b843c91d0b9f8231fe commit 803efd297e315859ac7830445699f01eeb1f7822 commit c674c5b9342e5cb0f3d9e9bcaf37dbe2087845e5 commit f4c1fdb93992ffc55899f38ddebcc0e1c390226e commit adfadb5638bf32e97326ec05ae379be561e13677 commit 87cb6d80f2d196427e64d2e6179ee9b1a3609dce commit ea4ca894a160002f4488324ec39083d992cc7163 commit e393e2aa0ad7ae0d187de93f4cbcfc480d28b5f6 commit 88ed07cb2737e15b7ea412dd8ab37de2397cccdf commit ff6b19d3a0f939465b1e40040c4c4869154bf516 commit b2006061ae28fe7e84af6c9757ee89c4e505e92b commit 5e2421ce79703b969eeb9684cedaa76be5305ddd commit e41d27eaf5485df99f366bf7c5382375bb2c19ca commit 52e8da704d8d3ca8b951fbc39cf8d6bce5c33db8 commit b8cb6ab68674d7889c0dcfac2d542a63b9e36d82 commit e433d6843310a259f0be18c80de26d75b9f7fd35 commit 38abd56bed580c98e4284a578380f5f70634a0fd commit d58b8a99cbb84c1eb3b3613d23c1a328695a9455 commit 1e242bf8bc1b37c74619403d0dd59d0f862af943 commit 6dc0fded62806373855350ec8c3ccb1567ddd465 commit 4affb123033851381dcff4887982f6c7bad938af commit ca6fcfa8d4461c889636ef5dd51bdec96c6122bd commit 91dcfe5fd9d3a59aec4a40031c1eef00b41b8f74 commit b51759661e2987993fb49eadcc262d6a2ab2a698 commit 01d468d9a420152e4a1270992e69a37ea0c98e04 commit 667c7091a39e8b360d34f37aed5f8dd85bdc45f7 commit 1f211a827cbda87bd0ec145a1f44f2615c3f56d3 commit 35366481d0941e9b470ccf09d85407381b5d6135 commit 9dad47c50f9bf19153c092a73eb4721344f4a78d commit f578a37d19c65361e141735cdcb691d3930b8647 commit 0dca257d6dc5526c4c293f306b7b47765987de22 commit f148c143ef3f6e897f4a1012d1bcae3aa240bd8a commit aa8e65dfc75f684cd46d49f71453ea3512a1e770 commit 149d7ba1f8fe515a2a36ff95fa659720e72fe4ed commit 30e58102d5164ce5df10bbff4c9d05acbd12a5fe commit 80e0c2cb37b6e00ec0b41c7670e24f72b2d54ceb commit 957b0787ee5d5c0848e2dde625c09850e1ada22e commit 7d4108e4ceb30a89c63ae62bea284cf42985cf31 commit 57230f0ce6eda6d47a2029b7b3a39cc5bb63fe32 commit 5aa061474b1e0cc9605877190e23a880cf1551e4 commit e6fac6a9c9eb42a9362f9f093dcb8862f2b38383 commit b6901d93cc126bbfbdc6caf5f0c03b82945e43f2 commit 00bfab4457c2b57897ea710a423684979c5b0239 commit 9a1358bb2ce3738826bce0799d47d6963ccb51bf commit fabe1753851c62d0292a39d89a4a8d7f15c96794 commit d7709eb6a197171715f370227173e817a3da85c8 commit 7952fa0d3e187504d509aa32f46d4d430e4eb634 commit fe5e8f07fc25c850e4f46967699a9b29b0ef647d commit 45a3e06be4d351af8f81b43407b3eafa5c75827d commit 1b537e64105dd8f04c8e7d5fbd8e97f9dda2dadd commit 31f5f46043c7e7fa453b0b64ea12073d524e2150 commit 825e0af0d453f18bb84feb40bff447cf59d61979 commit 3192f1d9b61a59d7c82fef187bffa7281fbdc9f5 commit 701920ca9822eb63b420b3bcb627f2c1ec759903 commit 730ff52194cdb324b7680e5054c546f7b52de8a2 commit dc90f0846df4870b6cc8528c31e5c60f18fb68be commit 27674ef6c73f0c9096a9827dc5d6ba9fc7808422 commit c9e9ce0b6f85ac330adee912745048a0af5f315d commit 2ab82efeeed885c0210a0029df93bb95a316e8c7 commit 863fa85e6a01c8b239009825dd9de1f64d7d020a commit f70b88b994a35755f1a065ba4b43d2ad4b401e15 commit 7a1bae874b5ec07ac97f02018dfad73fb9bae567 commit 5f5d08b7eb0ab09700b22bec2adcecb8a1de1120 commit 575d0df6dae46f1b5d26a35ce0ccbc5aafd40e1d commit 36b362f5af1ee23ef502b519c2a8e2d273b2f156 commit 493a7508d737a03b620bb0806e222bd39a9ebca0 commit 90d282582aa709eeadaf33db71e92718c9471e31 commit 9e08564727fc7770b30715fb81348aee54fa50c3 commit 24bf9fd19740df5aedb3bc801206f81dcb4acc4f commit 811c04dbb3dc43304b35688d4009117e28c1e9ce commit b6065ebf55ff2fe3dae98e7cedb6ec4aa3c33f91 commit 11eb648d014eb9e80bf553004551dd6694dfb5a0 commit c8b0507f40deea3d5014b5b4989b6a06ffedde70 commit b664a56e8626264276ee27edf949e748f6be52de commit d18b8eadd83e3d8d63a45f9479478640dbcfca02 commit 8c7442f026d2e36e1185b9dd79db51601d875b7b commit a190f8dc4aaf6064527bb81c07f7cff1904dc927 commit cdc7893fc93f1969038ed333b33eac1452c8d255 commit 6103b2f24e4a9716ca3f5de654964f2a083086be commit 48e9fbd1a28480caf2ac5ec6fcb79ac221735c5d commit f7ddbf5581b474fe4a0a29244acaa1bf72234675 commit 90f45c42d7d7b0ec0fd797485c07fc421c474e12 commit 17154addc5c1a175bcf3441ff0d9598efa1f05cd commit 43d26c4fc6c446d766253d546f0083d78023d34a commit 53b97af4a44abd21344cc9f13986ba53051287bb commit 4fe4ed07c815044755075eaad5fe1815436a060f commit 117f5bb31c8cdb1e8f0b443f2a0ac761bf54694c commit 176c0b55d9bfe6e2a7c8ccf3edaec7c92d856b2e commit 5c8107dc9a9f33a88a380aea79be564597d00663 commit 4546281e8ab215b2beaba8e79975c99859a84a56 commit e17c6debd4b2d2d474074f83946f8c6522587566 commit 5e7f44b5c2c035fe2e5458193c2bbee56db6a090 commit d55957fb299b74829c438f77fe29896e3aed39fc commit 96a2f0f2c8006d338a9647e068a15c6eb299f864 commit 482d7b582d7f9688a5f64ed2424157a76a17f2a7 commit 955ad0c8ba93256c9eeeefde5644b3480c1ddedd commit 1d38fe6ee6a874675ca3bba6b48e69a0e6176ffc commit c1593ddd894d0518fc96fe7f531f3a5c919b8463 commit 60a9bac8ab48ddbf68dc280cd26879583e9d72ba commit dfe3da812d99b40f99ce018152db4b3a87bd86c4 commit f8d81df285a2fa2e739a9e4774e413ac778d282c commit e96902eb8c69fdcc55fa6beee796c6b34613e0fc commit 37114e4d1547ed230706d07edaee2d2b4b3215a4 commit dc593fd48abbea1e840c847c464eabc9c6bca180 commit 4e6c91847a7fa94a6a0caeeb388718b8ae005d56 commit d5109fe4d1ecba04d3f6903ab0421188d1420d22 commit f321c35feaee8dbde551775210ae3d41534b7a20 commit f6d790e5a7fe42706756c7fa1686d08d230610fc commit 1344794a59db2bd44b4919d2d75300fd3b1c2cd7 commit 3886a86e7e6cc6ce2ce93c440fecd8f42aed0ce7 commit bb7c3e9ce2d43a37b699ca379876089e03a756e3 commit 7c916f95f58df401fef4f8c7549aa80a5739b0dd commit 3b8b44a431b76be2645806cfa0494399c3dbbd85 commit df5a07c45c68fd85cd4d1a4ad7892d3a717a4ccf commit 4984e3aae6fa4f42fc24f2745b74509bf2cb0b03 commit 4189f2938d49d4d6b2e2191c86000c2e04ca7305 commit dbede77ce38df760bcdcbc53287e8673fa65982a commit 3741584519dcb780c38df502dd5e4cf7cea4d9f2 commit d8ff38d8fcd0a7bb66d17ec689135239aca78532 commit 53923e62afad6f52b2b931a74d2ee10274051b28 commit 5fed53c7983654b1658c49a030ac86bba7965fde commit 305f098020920f9ea6ff9162ee46392f4d67e67f commit 76a52f36b636cdff6b5b18f13daf05005e4b0b57 commit 4a897de1d607c15ebb9aa11a424ec3f3243304a3 commit 4185f99094d50a2f402153ff8922bc694f5f6d96 commit e7145aaedd55b19ae4e8bd25cbd4ef8f415b6b89 commit 6e899860f557fc60135506242cc3fb705e64b718 commit 9c1e260e97606330518a78422ae28d9d56ac87d6 commit 84ce38c7bf7a19fb1f9cc61181e830b7e04dd51d commit 32685b32d825ca08c5dec826477332df886c4743 commit 44ca49f046f89a97ad319372b4fdbde67da1b6b3 commit cf689e869cf0339c387397c7a6805e387594656d commit 22f87d99832650d9389b0b3d08f3c970afc53f10 commit 6e6faf7a8364c77f4021f44043a5a5cee91f7025 commit d510eccfa51e09f5e65621a2e8d41f58a8dbd3ba commit 69691c823531c36c7283ecaa040e99e9c12ece07 commit 8718ca1dbf497c302df989afaeb82f05f5a3d961 commit 2e9fda82c98b1e417b90ff5a2f8b8b96cac06fc5 commit 67a359d85ec2679cc8e11b16844df960e3b27c24 commit b38c074b2b07349097d824e3c6c49b5ac8d98910 commit 65722ff6181aa52c3d5b0929004af22a3a63e148 commit e7031d8258f1b4d6d50e5e5b5d92ba16f66eb8b4 commit 0fe382fb82dc6cc6eaba6534d038dc381e2b17b9 commit 6f172ae59a7577dbb73e2a8da18697ba8dc56341 commit a03b288650abf2a92d5ecdaa737e3d04a2a77984 commit a29d44aea1aef0bc58d4951f2ddbe5b22d9a2e94 commit 85ac2021fe3ace59cc0afd6edf005abad35625b0 commit 72a98763b473890e6605604bfcaf71fc212b4720 commit 436afdfa35dc8aaf43959593f6c433d0ad29abc3 commit a0248d543bbf2a977e7e6d9966ce8d96f6e5c358 commit 10499e4055949e4682d2e7c428365175e99e0800 commit a18112ae72d693bd4eb79f2ec09b536eeacb902b commit d853419f5fcce39553ce0f6837fa122f113b15b6 commit c791d75a64f5c628a9c9a7d9b9ec01ef0357e6a3 commit 906fbba2c9d48678fd182d0de4dd193d9dd0cc9c commit 3a0625813bacf12bf188f8242b42b508af28baa0 commit 2716bc822e2325efed0731d6a6a7dff755dc34d7 commit dd15640bcee5a5fa74fc52557dd6220f48b01116 commit a91b402d50072e4801b231925f33574f90e562ce commit cfe7c679412f14811cb3c4119c8025cb97564c48 commit fdf0ece6309d90dc0f9388001239cb2d12671af3 commit 8476269f758221863c01a0a6cccb0d75ec5d60c3 commit 8c0f11ff3895ec96c9523ac607dd51f812ab69a8 commit 4e2f50e2306fdd0e5fc7db3d9a452ba1327b787e commit 9527b9caf82b040e794fba2667f6d8a85a793bb7 commit 3f543552846b9ae47c8442af1c506207bdcc00d2 commit faad5ccac1eaae584f9ac2ea66278bd137edcbe3 commit bd4b9bb77956639e6d9618ed306cb2264c69ba49 commit 58398727e6f4955f2781e93517b8f0a3e8f22e75 commit 28b7382621f0a83f1db795f36ee0fee6f66c10e9 commit 508a47d434bffde45ca3cdb8ece186f28f9d84bf commit 1cbd78879b5f889355b2a6343ea5db7e633438b0 commit 07d01469325c87aef4ab02ad4ec31d73321665ee commit 606d5877592b0a6f945a68399c870ba9d2a9ff7f commit 426c89aa203bcec9d9cf6eea36735eafa1b1f099 commit c94b731da21f10086a9e52d63c21c730e3f6c939 commit 3a84fd1ed53582b31e843a152ee3219e9e4ccb8c commit 278da06c03655c2bb9bc36ebdf45b90a079b3bfd commit f11de8611fd6bb15bd979bbe5de0c4d59452f8d4 commit d14eb80e27795b7b20060f7b151cdfe39722a813 commit c6e90a1c660874736bd09c1fec6312b4b4c2ff7b commit 1d204ee10817aed6666e020ef1b4c643d68bef11 commit a860f266a0e19f271b839451d291a6acf6ddcfe8 commit 9cddf03b2af07443bebdc73cba21acb360c079e8 commit 1937f3feb0e84089ae4065e09c871b8ab4676f01 commit 3ef8b5e19ead5a79600ea55f9549658281415893 commit 00f4150d27d2c01eaeffe1091fc311a7c0872c69 commit ad9c6ee642a61adae93dfa35582b5af16dc5173a commit c5c948aa894a831f96fccd025e47186b1ee41615 commit 9030fb0bb9d607908d51f9ee02efdbe01da355ee commit 5662abf6e21338be6d085d6375d3732ac6147fd2 commit 7344bad7fb6daa4877a1c064b52c7d5f9182c41b commit 3ce62cf4dc3b01d1cbee1293049ca5d4c7d6d749 commit b14ffae378aa1db993e62b01392e70d1e585fb23 commit 21050a39a3b676fbaed4ad6c5871b917a91abe9d commit c73c3576a2227492b448f9be41428ce6a0b5855a commit 34af78c4e616c359ed428d79fe4758a35d2c5473 commit caaf2ae712b7cc3c7717898fe267dbf882a502ef commit 64a8f92fd783e750cdb81af75942dcd53bbf61bd commit 519f490db07e1a539490612f376487f61e48e39c commit 32f90e65251981f061eec883b0fe9e75d74e9665 commit 2d505453f38e18d42ba7d5428aaa17aaa7752c65 commit 60d61f4ed6ead43ad2de31ebb8d1d27c57290529 commit 1647b54ed55d4d48c7199d439f8834626576cbe9 commit b818a5d374542ccec73dcfe578a081574029820e commit 0d8e4eb337644cab528ff3844675d58496ec22db commit 93dde6ccd66d29502506e95f568fd0f49d575d27 commit 3107e1a7ae088ee94323fe9ab05dbefd65b3077f commit 5e8a71cf13bc9184fee915b2220be71b4c6cac74 commit 6bf528ec91fb96e186461215c8f76265c5a35250 commit 7d56a154e22ffb3613fdebf83ec34d5225a22993 commit bd219322dbb41cc7c753da3a6936ce09d502f113 commit c9fbf6435162ed5fb7201d1d4adf6585c6a8c327 commit 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 commit e5fc78252ccd8dfc260f87d83905e9dffff6d975 commit a572f7055067d95455850fd242d8b54ff5786cac commit b7dfbd2e601f3fee545bc158feceba4f340fe7cf commit c5650327aba02d15cbd6a1846dcde9231493d549 commit 6ea239adc2a712eb318f04f5c29b018ba65ea38a commit ebbb7bb9e80305820dc2328a371c1b35679f2667 commit 5f3854f1f4e211f494018160b348a1c16e58013f commit 7057c81773ac32fd0dba00e2bb869928f008d3e2 commit 609910db56e72e87755d9745442bfdfa009dc61b commit 0dc386add50b07e1cf9341b4e6e4fea77295c98a commit 15f9cd4334c83716fa32647652a609e3ba6c998d commit 50560ce6a0bdab2fc37384c52aa02c7043909d2c commit 148a650476955705482dd57e7ffcf105d8b65440 commit cb7cbaae7fd9cee64f19cdfd89d097d807b884f5 commit 266d17a8c0d857a579813ad185cd1640b0d6ccac commit a701f370b521b2ed0654a9da7cf424b3ff8fa73d commit 21d139d73f776aed1e86f3175a1e9fb8a10930c7 commit c42ee39c1e78224d3a81bdbe0600abe4581226ed commit 67bae5f28c895f8737a1974c3f31cf12b9170b14 commit f444b2d15f7a025416ace9ec298f0b93ef68be68 commit 38d4e5cf5b08798f093374e53c2f4609d5382dd5 commit cf5c5763eb531ff5120111ad300126e926fb5a56 commit 13043d1a12c54d8b6605bbead5e177e9fb98a287 commit 945da79e6dd058be70bc47442dce319844e14daa commit dda81d9761d07541c404dd5fa93e773a8eda5ddc commit 862a876c3a6372f2fa9d0c6510f1976ac94fc857 commit 95707203407c4cf0b7e520a99d6f46d8aed4b57f commit 58e16c752e9540b28a873c44c3bee83e022007c1 commit 83e9faac9a387894e945e7f33c2bb7a9c348257c commit 2944dbedc7e167221fdb99531f7b0cdbac9ac696 commit b2075fce104b88b789c15ef1ed2b91dc94198e26 commit f4346fb3edf7720db3f7f5e1cab1f667cd024280 commit 4052287a75eb3fc0f487fcc5f768a38bede455c8 commit 96f2b7a3571618a1c8aed694c9e668014c70898b commit ef1a0808a2e20c58d166c5707864fba515832bd7 commit e79a2398e1b2d47060474dca291542368183bc0f commit ca1198849ab0e7af5efb392ef6baf1138f6fc086 commit ebc002e3ee78409c42156e62e4e27ad1d09c5a75 commit 7e8906dc2689cbf562ce520cf4a8ba5b495db0f6 commit 6e93d5b0333279d8968a2972065f47a899fb58b9 commit 879791ad8bf3dc5453061cad74776a617b6e3319 commit 28c25238898a242c58bfaff3f46a006585c2dd94 commit 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb commit 72cfb835e56f0eec18f934095fc1a52df1815f0c commit 691b592abb9a5f2b331969393bc06fcc8b564d3c commit dc7d19d27d019d223e74f2f47ef47e778781cb52 commit 995f74807329c97e0aa7449c7a8345fce978a2c4 commit 88711fa9a14f6f473f4a7645155ca51386e36c21 commit 1acb34e7dd7720a1fff00cbd4d000ec3219dc9d6 commit 022074918042465668db9b0f768e2260b1e39c59 commit f8e6b7babfeb40987e946bc1427609a9976017fa commit e4f1541caf60fcbe5a59e9d25805c0b5865e546a commit e3cf2e05441a2c5107fbffadb5b7943113ee11dd commit 887f75cfd0da44c19dda93b2ff9e70ca8792cdc1 commit 4593c1b6d159f1e5c35c07a7f125e79e5a864302 commit aadaeca46ce54af9f8f494792a1ba47a6fbda7ba commit 8e401ff5380a921c309d4c73cacf27b0bdb5f168 commit 9df1e3ff60241ce3fb26db75933970dd1b871213 commit bb02330408a7bde33b5f46aa14fd5d7bfe6093b7 commit f92055ae0acb035891e988ce345d6b81a0316423 commit 5f18c0782b99e26121efa93d20b76c19e17aa1dd commit 298799a28264ce400d9ff95c51b7adcb123d866e commit 169466d4e59ca204683998b7f45673ebf0eb2de6 commit b089c0a9b14c354a0c3a421e09af3208cb7c232c commit 94f4c4965e5513ba624488f4b601d6b385635aec commit c18a2a280c073f70569a91ef0d7434d12e66e200 commit ed911c9f9dcb26849fa688225f002ef2f2c50cf4 commit c05d8332f5d23fa3b521911cbe55a2b67fb21248 commit 4ae4dd2e26fdfebf0b8c6af6c325383eadfefdb4 commit f7e1089f43761ca221914aea9a755b23dc7cbc33 commit 7c6b6e18c890f30965b0589b0a57645e1dbccfde commit f567656f8ab82e43815d8d071d9864941b613a82 commit f95af4a9236695caed24fe6401256bb974e8f2a7 commit 65e54987508b6f0771f56bdfa3ee1926d52785ae commit a71849cdeaec4579696e5e1c45d9279f7b7484bd commit fb8cc3318e47e1a0ced4025ef614317b541147e7 commit 9d9f720733b7e8d11e4cc53b53f461b117dab839 commit 841e512ffb64898db6322c0619f6bbc41266d86f commit 19965d8259fdabc6806da92adda49684f5bcbec5 commit 3dfe85fa87b2a26bdbd292b66653bba065cf9941 commit ca5e2f4d6b677efa3f43a6790777e46dcf806e4d commit aa482ddca85a3485be0e7b83a0789dc4d987670b commit 9b9bd3f640640f94272a461b2dfe558f91b322c5 commit 87fd2b091fb33871a7f812658a0971e8e26f903f commit ab244be47a8f111bc82496a8a20c907236e37f95 commit 3220c3b2115102bb35f8f07d90d2989a3f5eb452 commit ef3a6b70507a2add2cd2e01f5eb9b54d561bacb9 commit a56f445f807b0276fc0660c330bf93a9ea78e8ea commit c65b364c52ba352177dde6944f5efaa29bd40b52 commit b7c15a3ce6fea5da3aa836c897a78ac628467d54 commit 5005e9814698f47c5a3698fcc56c9f5e6f1d4644 commit 370704e707a5f2d3c9a1d4ed8bd8cd67507d7bb5 commit 1d6595b4cd47acfd824550f48f10b54a6f0e93ee commit 3059d9b9f6aa433a55b9d0d21b566396d5497c33 commit 21d1d192890ced87f2f04f8f4dea92406e0b162a commit eb7bac3973d209e5227d1783676362ee5a8a7127 commit 54395a33718af1c04b5098203335b25382291a16 commit 89e96d822bd51f7afe2d3e95a34099480b5c3d55 commit 6e03b13cc7d9427c2c77feed1549191015615202 commit 7123d39dc24dcd21ff23d75f46f926b15269b9da commit 7b1d6924f27ba24b9e47abb9bd53d0bbc430a835 commit 6e4a61cd39685476f7ea74e75fb66666d541050b commit 64eea6805ecf7092a113bdb4cb73860430d39de6 Signed-off-by: Karol Herbst <kherbst@redhat.com>
2022-05-23 17:17:03 +00:00
struct dma_fence *dma_fence_array_first(struct dma_fence *head)
{
struct dma_fence_array *array;
if (!head)
return NULL;
array = to_dma_fence_array(head);
if (!array)
return head;
if (!array->num_fences)
return NULL;
return array->fences[0];
}
EXPORT_SYMBOL(dma_fence_array_first);
struct dma_fence *dma_fence_array_next(struct dma_fence *head,
unsigned int index)
{
struct dma_fence_array *array = to_dma_fence_array(head);
if (!array || index >= array->num_fences)
return NULL;
return array->fences[index];
}
EXPORT_SYMBOL(dma_fence_array_next);