<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>174198</bug_id>
          
          <creation_ts>2017-07-06 01:36:53 -0700</creation_ts>
          <short_desc>Enabling uploading archives to S3</short_desc>
          <delta_ts>2019-05-15 07:21:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=197914</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lucas Forschler">lforschler</reporter>
          <assigned_to name="Lucas Forschler">lforschler</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kocsen_chung</cc>
    
    <cc>lforschler</cc>
    
    <cc>ossy</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1325970</commentid>
    <comment_count>0</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 01:36:53 -0700</bug_when>
    <thetext>Teach buildbot to use S3 for archive storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325971</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-06 01:38:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/33152999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325972</commentid>
    <comment_count>2</comment_count>
      <attachid>314710</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 01:41:56 -0700</bug_when>
    <thetext>Created attachment 314710
v1 patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326167</commentid>
    <comment_count>3</comment_count>
      <attachid>314753</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 13:48:18 -0700</bug_when>
    <thetext>Created attachment 314753
v2 patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326170</commentid>
    <comment_count>4</comment_count>
      <attachid>314754</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 13:52:19 -0700</bug_when>
    <thetext>Created attachment 314754
v3 patch for review

had a search/replace error in the last one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326173</commentid>
    <comment_count>5</comment_count>
      <attachid>314754</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 13:57:32 -0700</bug_when>
    <thetext>Comment on attachment 314754
v3 patch for review

View in context: https://bugs.webkit.org/attachment.cgi?id=314754&amp;action=review

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:790
&gt; +    haltOnFailure = True

This should be transferring and transferred</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326192</commentid>
    <comment_count>6</comment_count>
      <attachid>314754</attachid>
    <who name="Kocsen Chung">kocsen_chung</who>
    <bug_when>2017-07-06 14:29:52 -0700</bug_when>
    <thetext>Comment on attachment 314754
v3 patch for review

View in context: https://bugs.webkit.org/attachment.cgi?id=314754&amp;action=review

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:265
&gt; +class ArchiveMinifiedBuiltProduct(ArchiveBuiltProduct):

Nit: ArchiveMinifiedBuildProduct
(Build instead of Built)

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:294
&gt; +    

Nit: add extra whitespace for a total of two newlines between class bodies.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:787
&gt; +    name = &quot;transfer-to-s3&quot;

I think it would be nice to adhere to other steps when it comes to the order of these variables.

Usually (from immediate context above) I see name, description,  descriptionDone and command declared first and succeed in that order.
The rest can go below those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326202</commentid>
    <comment_count>7</comment_count>
      <attachid>314754</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 14:53:56 -0700</bug_when>
    <thetext>Comment on attachment 314754
v3 patch for review

View in context: https://bugs.webkit.org/attachment.cgi?id=314754&amp;action=review

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:265
&gt;&gt; +class ArchiveMinifiedBuiltProduct(ArchiveBuiltProduct):
&gt; 
&gt; Nit: ArchiveMinifiedBuildProduct
&gt; (Build instead of Built)

I&apos;m following the convention of the parent class, which is &quot;ArchiveBuiltProduct&quot;.
I think we should stay consistent here.

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:294
&gt;&gt; +    
&gt; 
&gt; Nit: add extra whitespace for a total of two newlines between class bodies.

I went back and forth on this... this file is NOT consistent... about half of the classes have one space, there other two between them.
Let&apos;s do a follow-up patch which adds two spaces everywhere.

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg:787
&gt;&gt; +    name = &quot;transfer-to-s3&quot;
&gt; 
&gt; I think it would be nice to adhere to other steps when it comes to the order of these variables.
&gt; 
&gt; Usually (from immediate context above) I see name, description,  descriptionDone and command declared first and succeed in that order.
&gt; The rest can go below those.

sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326205</commentid>
    <comment_count>8</comment_count>
      <attachid>314759</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 15:00:46 -0700</bug_when>
    <thetext>Created attachment 314759
v4 patch with feedback applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326291</commentid>
    <comment_count>9</comment_count>
      <attachid>314759</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 18:40:41 -0700</bug_when>
    <thetext>Comment on attachment 314759
v4 patch with feedback applied

Rejecting attachment 314759 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 314759, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
.webkit.org/git/WebKit
   f7690be..bffe022  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 219228 = f7690bed686173d0f489bfe42db410ad8803373f
r219229 = bffe0225c245062649b98d0475077cff818f4b6b
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4066537</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326338</commentid>
    <comment_count>10</comment_count>
      <attachid>314804</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-07-06 20:35:20 -0700</bug_when>
    <thetext>Created attachment 314804
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326360</commentid>
    <comment_count>11</comment_count>
      <attachid>314804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 21:13:39 -0700</bug_when>
    <thetext>Comment on attachment 314804
patch for landing

Clearing flags on attachment: 314804

Committed r219235: &lt;http://trac.webkit.org/changeset/219235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326361</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 21:13:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333544</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-07-31 14:38:54 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #11)
&gt; Comment on attachment 314804 [details]
&gt; patch for landing
&gt; 
&gt; Clearing flags on attachment: 314804
&gt; 
&gt; Committed r219235: &lt;http://trac.webkit.org/changeset/219235&gt;

It broke the mastercfg_unittest.py build step list test, please update it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334140</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-01 23:45:59 -0700</bug_when>
    <thetext>unit test fix landed in https://trac.webkit.org/changeset/220125/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314710</attachid>
            <date>2017-07-06 01:41:56 -0700</date>
            <delta_ts>2017-07-06 13:48:18 -0700</delta_ts>
            <desc>v1 patch for review</desc>
            <filename>174198.patch</filename>
            <type>text/plain</type>
            <size>3353</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21h
c3Rlci5jZmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkocmV2aXNpb24gMjE5MTkxKQorKysgVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkod29ya2lu
ZyBjb3B5KQpAQCAtMjYyLDYgKzI2Miw5IEBAIGNsYXNzIEFyY2hpdmVCdWlsdFByb2R1Y3Qoc2hl
bGwuU2hlbGxDb20KICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbImFyY2hpdmVkIGJ1aWx0IHByb2R1
Y3QiXQogICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCiAKK2NsYXNzIEFyY2hpdmVNaW5pZmllZEJ1
aWx0UHJvZHVjdChBcmNoaXZlQnVpbHRQcm9kdWN0KToKKyAgICBjb21tYW5kID0gWyJweXRob24i
LCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUiLAorICAg
ICAgICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShmdWxsUGxhdGZvcm0pcyIp
LCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAiYXJjaGl2ZSIsICItLW1p
bmlmeSJdCiAKIGNsYXNzIEV4dHJhY3RCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDb21tYW5kKToK
ICAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
dC1wcm9kdWN0LWFyY2hpdmUiLApAQCAtMjg1LDYgKzI4OCwxMCBAQCBjbGFzcyBVcGxvYWRCdWls
dFByb2R1Y3QodHJhbnNmZXIuRmlsZVVwCiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19p
bml0X18oc2VsZiwgKiprd2FyZ3MpCiAKIAorY2xhc3MgVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1
Y3QoVXBsb2FkQnVpbHRQcm9kdWN0KToKKyAgICBzbGF2ZXNyYyA9IFdpdGhQcm9wZXJ0aWVzKCJX
ZWJLaXRCdWlsZC9taW5pZmllZC0lKGNvbmZpZ3VyYXRpb24pcy56aXAiKQorICAgIG1hc3RlcmRl
c3QgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVj
dHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290X3JldmlzaW9uKXMuemlwIikK
KyAgICAKIGNsYXNzIERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAg
ICAgY29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZG93bmxv
YWQtYnVpbHQtcHJvZHVjdCIsCiAgICAgICAgIFdpdGhQcm9wZXJ0aWVzKCItLXBsYXRmb3JtPSUo
cGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLApAQCAt
NzcxLDYgKzc3OCwyOCBAQCBjbGFzcyBVcGxvYWRUZXN0UmVzdWx0cyh0cmFuc2Zlci5GaWxlVXBs
CiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAK
IAorY2xhc3MgVHJhbnNmZXJUb0FtYXpvblMzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgor
ICAgIGFyY2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0l
KGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzLyUoZ290X3JldmlzaW9uKXMuemlwIikK
KyAgICBtaW5pZmllZEFyY2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxh
dGZvcm0pcy0lKGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290
X3JldmlzaW9uKXMuemlwIikKKyAgICBpZGVudGlmaWVyID0gV2l0aFByb3BlcnRpZXMoIiUoZnVs
bFBsYXRmb3JtKXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcyIpCisgICAgcmV2
aXNpb24gPSBXaXRoUHJvcGVydGllcygiJShnb3RfcmV2aXNpb24pcyIpCisgICAgY29tbWFuZCA9
IFsicHl0aG9uIiwgIi4vdHJhbnNmZXItYXJjaGl2ZS10by1zMyIsICItLXJldmlzaW9uIiwgcmV2
aXNpb24sICItLWlkZW50aWZpZXIiLCBpZGVudGlmaWVyLCAiLS1hcmNoaXZlIiwgYXJjaGl2ZV0K
KyAgICBuYW1lID0gInRyYW5zZmVyLXRvLWFtYXpvbi1zMyIKKyAgICBkZXNjcmlwdGlvbiA9IFsi
dHJhbnNmZXJpbmcgdG8gczMiXQorICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsidHJhbnNmZXJlZCB0
byBzMyJdCisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCAqKmt3YXJncyk6CisgICAgICAgIGt3YXJnc1snY29tbWFuZCddID0gc2VsZi5jb21tYW5kIAor
ICAgICAgICBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLl9faW5pdF9fKHNlbGYsICoqa3dhcmdz
KQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICByZXR1cm4gbWFzdGVyLk1hc3RlclNo
ZWxsQ29tbWFuZC5zdGFydChzZWxmKQorCisgICAgZGVmIGZpbmlzaGVkKHNlbGYsIHJlc3VsdCk6
CisgICAgICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLmZpbmlzaGVkKHNlbGYs
IHJlc3VsdCkKKworICAKIGNsYXNzIEV4dHJhY3RUZXN0UmVzdWx0cyhtYXN0ZXIuTWFzdGVyU2hl
bGxDb21tYW5kKToKICAgICB6aXBGaWxlID0gV2l0aFByb3BlcnRpZXMoInB1YmxpY19odG1sL3Jl
c3VsdHMvJShidWlsZGVybmFtZSlzL3IlKGdvdF9yZXZpc2lvbilzICglKGJ1aWxkbnVtYmVyKXMp
LnppcCIpCiAgICAgcmVzdWx0RGlyZWN0b3J5ID0gV2l0aFByb3BlcnRpZXMoInB1YmxpY19odG1s
L3Jlc3VsdHMvJShidWlsZGVybmFtZSlzL3IlKGdvdF9yZXZpc2lvbilzICglKGJ1aWxkbnVtYmVy
KXMpIikKQEAgLTgzNCw2ICs4NjMsMTAgQEAgY2xhc3MgQnVpbGRGYWN0b3J5KEZhY3RvcnkpOgog
ICAgICAgICBpZiB0cmlnZ2VyczoKICAgICAgICAgICAgIHNlbGYuYWRkU3RlcChBcmNoaXZlQnVp
bHRQcm9kdWN0KCkpCiAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAoVXBsb2FkQnVpbHRQcm9kdWN0
KCkpCisgICAgICAgICAgICBpZiBwbGF0Zm9ybS5zdGFydHN3aXRoKCdtYWMnKToKKyAgICAgICAg
ICAgICAgICBzZWxmLmFkZFN0ZXAoQXJjaGl2ZU1pbmlmaWVkQnVpbHRQcm9kdWN0KCkpCisgICAg
ICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFVwbG9hZE1pbmlmaWVkQnVpbHRQcm9kdWN0KCkpCisg
ICAgICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFRyYW5zZmVyVG9BbWF6b25TMygpKQogICAgICAg
ICAgICAgc2VsZi5hZGRTdGVwKHRyaWdnZXIuVHJpZ2dlcihzY2hlZHVsZXJOYW1lcz10cmlnZ2Vy
cykpCiAKIGRlZiBwaWNrTGF0ZXN0QnVpbGQoYnVpbGRlciwgcmVxdWVzdHMpOgo=
</data>
<flag name="commit-queue"
          id="335570"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314753</attachid>
            <date>2017-07-06 13:48:18 -0700</date>
            <delta_ts>2017-07-06 13:52:19 -0700</delta_ts>
            <desc>v2 patch for review</desc>
            <filename>174198v2.patch</filename>
            <type>text/plain</type>
            <size>3438</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21h
c3Rlci5jZmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkocmV2aXNpb24gMjE5MTkxKQorKysgVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkod29ya2lu
ZyBjb3B5KQpAQCAtMjYyLDYgKzI2Miw5IEBAIGNsYXNzIEFyY2hpdmVCdWlsdFByb2R1Y3Qoc2hl
bGwuU2hlbGxDb20KICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbImFyY2hpdmVkIGJ1aWx0IHByb2R1
Y3QiXQogICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCiAKK2NsYXNzIEFyY2hpdmVNaW5pZmllZEJ1
aWx0UHJvZHVjdChBcmNoaXZlQnVpbHRQcm9kdWN0KToKKyAgICBjb21tYW5kID0gWyJweXRob24i
LCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUiLAorICAg
ICAgICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShmdWxsUGxhdGZvcm0pcyIp
LCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAiYXJjaGl2ZSIsICItLW1p
bmlmeSJdCiAKIGNsYXNzIEV4dHJhY3RCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDb21tYW5kKToK
ICAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
dC1wcm9kdWN0LWFyY2hpdmUiLApAQCAtMjg1LDYgKzI4OCwxMCBAQCBjbGFzcyBVcGxvYWRCdWls
dFByb2R1Y3QodHJhbnNmZXIuRmlsZVVwCiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19p
bml0X18oc2VsZiwgKiprd2FyZ3MpCiAKIAorY2xhc3MgVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1
Y3QoVXBsb2FkQnVpbHRQcm9kdWN0KToKKyAgICBzbGF2ZXNyYyA9IFdpdGhQcm9wZXJ0aWVzKCJX
ZWJLaXRCdWlsZC9taW5pZmllZC0lKGNvbmZpZ3VyYXRpb24pcy56aXAiKQorICAgIG1hc3RlcmRl
c3QgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVj
dHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290X3JldmlzaW9uKXMuemlwIikK
KyAgICAKIGNsYXNzIERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAg
ICAgY29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZG93bmxv
YWQtYnVpbHQtcHJvZHVjdCIsCiAgICAgICAgIFdpdGhQcm9wZXJ0aWVzKCItLXBsYXRmb3JtPSUo
cGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLApAQCAt
NzcxLDcgKzc3OCwzMCBAQCBjbGFzcyBVcGxvYWRUZXN0UmVzdWx0cyh0cmFuc2Zlci5GaWxlVXBs
CiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAK
IAotY2xhc3MgRXh0cmFjdFRlc3RSZXN1bHRzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgor
Y2xhc3MgVHJhbnNmZXJUb1MzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgorICAgIGFyY2hp
dmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVj
dHVyZSlzLSUoY29uZmlndXJhdGlvbilzLyUoZ290X3JldmlzaW9uKXMuemlwIikKKyAgICBtaW5p
ZmllZEFyY2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0l
KGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290X3JldmlzaW9u
KXMuemlwIikKKyAgICBpZGVudGlmaWVyID0gV2l0aFByb3BlcnRpZXMoIiUoZnVsbFBsYXRmb3Jt
KXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcyIpCisgICAgcmV2aXNpb24gPSBX
aXRoUHJvcGVydGllcygiJShnb3RfcmV2aXNpb24pcyIpCisgICAgY29tbWFuZCA9IFsicHl0aG9u
IiwgIi4vdHJhbnNmZXItYXJjaGl2ZS10by1zMyIsICItLXJldmlzaW9uIiwgcmV2aXNpb24sICIt
LWlkZW50aWZpZXIiLCBpZGVudGlmaWVyLCAiLS1hcmNoaXZlIiwgYXJjaGl2ZV0KKyAgICBuYW1l
ID0gInRyYW5zZmVyLXRvLXMzIgorICAgIGRlc2NyaXB0aW9uID0gWyJ0cmFuc2ZlcmluZyB0byBz
MyJdCisgICAgZGVzY3JpcHRpb25Eb25lID0gWyJ0cmFuc2ZlcmVkIHRvIHMzIl0KKyAgICBoYWx0
T25GYWlsdXJlID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAg
ICAgICAga3dhcmdzWydjb21tYW5kJ10gPSBzZWxmLmNvbW1hbmQgCisgICAgICAgIG1hc3Rlci5N
YXN0ZXJTaGVsbENvbW1hbmQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisKKyAgICBkZWYgc3Rh
cnQoc2VsZik6CisgICAgICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLnN0YXJ0
KHNlbGYpCisKKyAgICBkZWYgZmluaXNoZWQoc2VsZiwgcmVzdWx0KToKKyAgICAgICAgcmV0dXJu
IG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQuZmluaXNoZWQoc2VsZiwgcmVzdWx0KQorCisgIAor
Y2xhc3MgRXh0cmFjdFRlc3RSZXN1bHRzKG1hc3Rlci4vd2luCitNYXN0ZXJTaGVsbENvbW1hbmQp
OgogICAgIHppcEZpbGUgPSBXaXRoUHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1
aWxkZXJuYW1lKXMvciUoZ290X3JldmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykuemlwIikKICAg
ICByZXN1bHREaXJlY3RvcnkgPSBXaXRoUHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8l
KGJ1aWxkZXJuYW1lKXMvciUoZ290X3JldmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykiKQogICAg
IGRlc2NyaXB0aW9uRG9uZSA9IFsidXBsb2FkZWQgcmVzdWx0cyJdCkBAIC04MzQsNiArODY0LDEw
IEBAIGNsYXNzIEJ1aWxkRmFjdG9yeShGYWN0b3J5KToKICAgICAgICAgaWYgdHJpZ2dlcnM6CiAg
ICAgICAgICAgICBzZWxmLmFkZFN0ZXAoQXJjaGl2ZUJ1aWx0UHJvZHVjdCgpKQogICAgICAgICAg
ICAgc2VsZi5hZGRTdGVwKFVwbG9hZEJ1aWx0UHJvZHVjdCgpKQorICAgICAgICAgICAgaWYgcGxh
dGZvcm0uc3RhcnRzd2l0aCgnbWFjJyk6CisgICAgICAgICAgICAgICAgc2VsZi5hZGRTdGVwKEFy
Y2hpdmVNaW5pZmllZEJ1aWx0UHJvZHVjdCgpKQorICAgICAgICAgICAgICAgIHNlbGYuYWRkU3Rl
cChVcGxvYWRNaW5pZmllZEJ1aWx0UHJvZHVjdCgpKQorICAgICAgICAgICAgICAgIHNlbGYuYWRk
U3RlcChUcmFuc2ZlclRvUzMoKSkKICAgICAgICAgICAgIHNlbGYuYWRkU3RlcCh0cmlnZ2VyLlRy
aWdnZXIoc2NoZWR1bGVyTmFtZXM9dHJpZ2dlcnMpKQogCiBkZWYgcGlja0xhdGVzdEJ1aWxkKGJ1
aWxkZXIsIHJlcXVlc3RzKToK
</data>
<flag name="commit-queue"
          id="335610"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314754</attachid>
            <date>2017-07-06 13:52:19 -0700</date>
            <delta_ts>2017-07-06 15:00:46 -0700</delta_ts>
            <desc>v3 patch for review</desc>
            <filename>174198v3.patch</filename>
            <type>text/plain</type>
            <size>3334</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21h
c3Rlci5jZmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkocmV2aXNpb24gMjE5MTkxKQorKysgVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkod29ya2lu
ZyBjb3B5KQpAQCAtMjYyLDYgKzI2Miw5IEBAIGNsYXNzIEFyY2hpdmVCdWlsdFByb2R1Y3Qoc2hl
bGwuU2hlbGxDb20KICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbImFyY2hpdmVkIGJ1aWx0IHByb2R1
Y3QiXQogICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCiAKK2NsYXNzIEFyY2hpdmVNaW5pZmllZEJ1
aWx0UHJvZHVjdChBcmNoaXZlQnVpbHRQcm9kdWN0KToKKyAgICBjb21tYW5kID0gWyJweXRob24i
LCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUiLAorICAg
ICAgICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShmdWxsUGxhdGZvcm0pcyIp
LCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAiYXJjaGl2ZSIsICItLW1p
bmlmeSJdCiAKIGNsYXNzIEV4dHJhY3RCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDb21tYW5kKToK
ICAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
dC1wcm9kdWN0LWFyY2hpdmUiLApAQCAtMjg1LDYgKzI4OCwxMCBAQCBjbGFzcyBVcGxvYWRCdWls
dFByb2R1Y3QodHJhbnNmZXIuRmlsZVVwCiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19p
bml0X18oc2VsZiwgKiprd2FyZ3MpCiAKIAorY2xhc3MgVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1
Y3QoVXBsb2FkQnVpbHRQcm9kdWN0KToKKyAgICBzbGF2ZXNyYyA9IFdpdGhQcm9wZXJ0aWVzKCJX
ZWJLaXRCdWlsZC9taW5pZmllZC0lKGNvbmZpZ3VyYXRpb24pcy56aXAiKQorICAgIG1hc3RlcmRl
c3QgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVj
dHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290X3JldmlzaW9uKXMuemlwIikK
KyAgICAKIGNsYXNzIERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAg
ICAgY29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZG93bmxv
YWQtYnVpbHQtcHJvZHVjdCIsCiAgICAgICAgIFdpdGhQcm9wZXJ0aWVzKCItLXBsYXRmb3JtPSUo
cGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLApAQCAt
NzcxLDYgKzc3OCwyOCBAQCBjbGFzcyBVcGxvYWRUZXN0UmVzdWx0cyh0cmFuc2Zlci5GaWxlVXBs
CiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAK
IAorY2xhc3MgVHJhbnNmZXJUb1MzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgorICAgIGFy
Y2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hp
dGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzLyUoZ290X3JldmlzaW9uKXMuemlwIikKKyAgICBt
aW5pZmllZEFyY2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0p
cy0lKGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVkLSUoZ290X3Jldmlz
aW9uKXMuemlwIikKKyAgICBpZGVudGlmaWVyID0gV2l0aFByb3BlcnRpZXMoIiUoZnVsbFBsYXRm
b3JtKXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcyIpCisgICAgcmV2aXNpb24g
PSBXaXRoUHJvcGVydGllcygiJShnb3RfcmV2aXNpb24pcyIpCisgICAgY29tbWFuZCA9IFsicHl0
aG9uIiwgIi4vdHJhbnNmZXItYXJjaGl2ZS10by1zMyIsICItLXJldmlzaW9uIiwgcmV2aXNpb24s
ICItLWlkZW50aWZpZXIiLCBpZGVudGlmaWVyLCAiLS1hcmNoaXZlIiwgYXJjaGl2ZV0KKyAgICBu
YW1lID0gInRyYW5zZmVyLXRvLXMzIgorICAgIGRlc2NyaXB0aW9uID0gWyJ0cmFuc2ZlcmluZyB0
byBzMyJdCisgICAgZGVzY3JpcHRpb25Eb25lID0gWyJ0cmFuc2ZlcmVkIHRvIHMzIl0KKyAgICBo
YWx0T25GYWlsdXJlID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToK
KyAgICAgICAga3dhcmdzWydjb21tYW5kJ10gPSBzZWxmLmNvbW1hbmQgCisgICAgICAgIG1hc3Rl
ci5NYXN0ZXJTaGVsbENvbW1hbmQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisKKyAgICBkZWYg
c3RhcnQoc2VsZik6CisgICAgICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLnN0
YXJ0KHNlbGYpCisKKyAgICBkZWYgZmluaXNoZWQoc2VsZiwgcmVzdWx0KToKKyAgICAgICAgcmV0
dXJuIG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQuZmluaXNoZWQoc2VsZiwgcmVzdWx0KQorCisg
IAogY2xhc3MgRXh0cmFjdFRlc3RSZXN1bHRzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgog
ICAgIHppcEZpbGUgPSBXaXRoUHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1aWxk
ZXJuYW1lKXMvciUoZ290X3JldmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykuemlwIikKICAgICBy
ZXN1bHREaXJlY3RvcnkgPSBXaXRoUHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1
aWxkZXJuYW1lKXMvciUoZ290X3JldmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykiKQpAQCAtODM0
LDYgKzg2MywxMCBAQCBjbGFzcyBCdWlsZEZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIGlmIHRy
aWdnZXJzOgogICAgICAgICAgICAgc2VsZi5hZGRTdGVwKEFyY2hpdmVCdWlsdFByb2R1Y3QoKSkK
ICAgICAgICAgICAgIHNlbGYuYWRkU3RlcChVcGxvYWRCdWlsdFByb2R1Y3QoKSkKKyAgICAgICAg
ICAgIGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ21hYycpOgorICAgICAgICAgICAgICAgIHNlbGYu
YWRkU3RlcChBcmNoaXZlTWluaWZpZWRCdWlsdFByb2R1Y3QoKSkKKyAgICAgICAgICAgICAgICBz
ZWxmLmFkZFN0ZXAoVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1Y3QoKSkKKyAgICAgICAgICAgICAg
ICBzZWxmLmFkZFN0ZXAoVHJhbnNmZXJUb1MzKCkpCiAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAo
dHJpZ2dlci5UcmlnZ2VyKHNjaGVkdWxlck5hbWVzPXRyaWdnZXJzKSkKIAogZGVmIHBpY2tMYXRl
c3RCdWlsZChidWlsZGVyLCByZXF1ZXN0cyk6Cg==
</data>
<flag name="commit-queue"
          id="335612"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314759</attachid>
            <date>2017-07-06 15:00:46 -0700</date>
            <delta_ts>2017-07-06 20:35:20 -0700</delta_ts>
            <desc>v4 patch with feedback applied</desc>
            <filename>174198v4.patch</filename>
            <type>text/plain</type>
            <size>11867</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21h
c3Rlci5jZmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkocmV2aXNpb24gMjE5MTkxKQorKysgVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwkod29ya2lu
ZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3IEBAIGNsYXNzIENoZWNrT3V0U291cmNlKHNvdXJjZS5T
Vk4pOgogICAgICAgICBzb3VyY2UuU1ZOLl9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQogICAgICAg
ICBzZWxmLmFkZEZhY3RvcnlBcmd1bWVudHMoU1ZOTWlycm9yPVNWTk1pcnJvcikKIAorCiBjbGFz
cyBXYWl0Rm9yU1ZOU2VydmVyKHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJ3YWl0
LWZvci1zdm4tc2VydmVyIgogICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICIuL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L3dhaXQtZm9yLVNWTi1zZXJ2ZXIucHkiLCAiLXIiLCBXaXRoUHJvcGVydGll
cygiJShyZXZpc2lvbilzIiksICItcyIsIFdpdGhQcm9wZXJ0aWVzKCIlKFNWTk1pcnJvcilzIild
CkBAIC0xNDEsMTcgKzE0MiwyMCBAQCBjbGFzcyBXYWl0Rm9yU1ZOU2VydmVyKHNoZWxsLlNoZWxs
Q29tbWFuCiAgICAgICAgICAgICByZXR1cm4gV0FSTklOR1MKICAgICAgICAgcmV0dXJuIFNVQ0NF
U1MKIAorCiBjbGFzcyBJbnN0YWxsV2luMzJEZXBlbmRlbmNpZXMoc2hlbGwuQ29tcGlsZSk6CiAg
ICAgZGVzY3JpcHRpb24gPSBbImluc3RhbGxpbmcgZGVwZW5kZW5jaWVzIl0KICAgICBkZXNjcmlw
dGlvbkRvbmUgPSBbImluc3RhbGxlZCBkZXBlbmRlbmNpZXMiXQogICAgIGNvbW1hbmQgPSBbInBl
cmwiLCAiLi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMiXQogCisK
IGNsYXNzIEtpbGxPbGRQcm9jZXNzZXMoc2hlbGwuQ29tcGlsZSk6CiAgICAgbmFtZSA9ICJraWxs
IG9sZCBwcm9jZXNzZXMiCiAgICAgZGVzY3JpcHRpb24gPSBbImtpbGxpbmcgb2xkIHByb2Nlc3Nl
cyJdCiAgICAgZGVzY3JpcHRpb25Eb25lID0gWyJraWxsZWQgb2xkIHByb2Nlc3NlcyJdCiAgICAg
Y29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQva2lsbC1vbGQt
cHJvY2Vzc2VzIiwgImJ1aWxkYm90Il0KIAorCiBjbGFzcyBDbGVhbkJ1aWxkSWZTY2hlZHVsZWQo
c2hlbGwuQ29tcGlsZSk6CiAgICAgbmFtZSA9ICJkZWxldGUgV2ViS2l0QnVpbGQgZGlyZWN0b3J5
IgogICAgIGRlc2NyaXB0aW9uID0gWyJkZWxldGluZyBXZWJLaXRCdWlsZCBkaXJlY3RvcnkiXQpA
QCAtMTY0LDYgKzE2OCw3IEBAIGNsYXNzIENsZWFuQnVpbGRJZlNjaGVkdWxlZChzaGVsbC5Db21w
aWwKICAgICAgICAgICAgIHJldHVybiBTS0lQUEVECiAgICAgICAgIHJldHVybiBzaGVsbC5Db21w
aWxlLnN0YXJ0KHNlbGYpCiAKKwogY2xhc3MgRGVsZXRlU3RhbGVCdWlsZEZpbGVzKHNoZWxsLkNv
bXBpbGUpOgogICAgIG5hbWUgPSAiZGVsZXRlIHN0YWxlIGJ1aWxkIGZpbGVzIgogICAgIGRlc2Ny
aXB0aW9uID0gWyJkZWxldGluZyBzdGFsZSBidWlsZCBmaWxlcyJdCkBAIC0xNzYsNiArMTgxLDcg
QEAgY2xhc3MgRGVsZXRlU3RhbGVCdWlsZEZpbGVzKHNoZWxsLkNvbXBpbAogICAgICAgICAgICAg
cmV0dXJuIFNLSVBQRUQKICAgICAgICAgcmV0dXJuIHNoZWxsLkNvbXBpbGUuc3RhcnQoc2VsZikK
IAorCiBjbGFzcyBJbnN0YWxsR3RrRGVwZW5kZW5jaWVzKHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAg
ICAgbmFtZSA9ICJqaGJ1aWxkIgogICAgIGRlc2NyaXB0aW9uID0gWyJ1cGRhdGluZyBndGsgZGVw
ZW5kZW5jaWVzIl0KQEAgLTE4Myw2ICsxODksNyBAQCBjbGFzcyBJbnN0YWxsR3RrRGVwZW5kZW5j
aWVzKHNoZWxsLlNoZWxsCiAgICAgY29tbWFuZCA9IFsicGVybCIsICIuL1Rvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmtpdGd0ay1saWJzIl0KICAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQogCisKIGNs
YXNzIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBuYW1l
ID0gImpoYnVpbGQiCiAgICAgZGVzY3JpcHRpb24gPSBbInVwZGF0aW5nIHdwZSBkZXBlbmRlbmNp
ZXMiXQpAQCAtMTk5LDYgKzIwNiw3IEBAIGRlZiBhcHBlbmRDdXN0b21CdWlsZEZsYWdzKHN0ZXAs
IHBsYXRmb3IKICAgICAgICAgcGxhdGZvcm0gPSAnZGV2aWNlJwogICAgIHN0ZXAuc2V0Q29tbWFu
ZChzdGVwLmNvbW1hbmQgKyBbJy0tJyArIHBsYXRmb3JtXSkKIAorCiBjbGFzcyBDb21waWxlV2Vi
S2l0KHNoZWxsLkNvbXBpbGUpOgogICAgIGNvbW1hbmQgPSBbInBlcmwiLCAiLi9Ub29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdCIsIFdpdGhQcm9wZXJ0aWVzKCItLSUoY29uZmlndXJhdGlvbilzIild
CiAgICAgZW52ID0geydNRkxBR1MnOicnfQpAQCAtMjQ4LDEyICsyNTYsMTUgQEAgY2xhc3MgQ29t
cGlsZVdlYktpdChzaGVsbC5Db21waWxlKToKIGNsYXNzIENvbXBpbGVMTElOVENMb29wKENvbXBp
bGVXZWJLaXQpOgogICAgIGNvbW1hbmQgPSBbInBlcmwiLCAiLi9Ub29scy9TY3JpcHRzL2J1aWxk
LWpzYyIsICItLWNsb29wIiwgV2l0aFByb3BlcnRpZXMoIi0tJShjb25maWd1cmF0aW9uKXMiKV0K
IAorCiBjbGFzcyBDb21waWxlMzJiaXRKU0MoQ29tcGlsZVdlYktpdCk6CiAgICAgY29tbWFuZCA9
IFsicGVybCIsICIuL1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjIiwgIi0tMzItYml0IiwgV2l0aFBy
b3BlcnRpZXMoIi0tJShjb25maWd1cmF0aW9uKXMiKV0KIAorCiBjbGFzcyBDb21waWxlSlNDT25s
eShDb21waWxlV2ViS2l0KToKICAgICBjb21tYW5kID0gWyJwZXJsIiwgIi4vVG9vbHMvU2NyaXB0
cy9idWlsZC1qc2MiLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpXQogCisK
IGNsYXNzIEFyY2hpdmVCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBjb21t
YW5kID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0
LWFyY2hpdmUiLAogICAgICAgICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShm
dWxsUGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAi
YXJjaGl2ZSJdCkBAIC0yNjMsNiArMjc0LDExIEBAIGNsYXNzIEFyY2hpdmVCdWlsdFByb2R1Y3Qo
c2hlbGwuU2hlbGxDb20KICAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQogCiAKK2NsYXNzIEFyY2hp
dmVNaW5pZmllZEJ1aWx0UHJvZHVjdChBcmNoaXZlQnVpbHRQcm9kdWN0KToKKyAgICBjb21tYW5k
ID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFy
Y2hpdmUiLAorICAgICAgICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShmdWxs
UGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAiYXJj
aGl2ZSIsICItLW1pbmlmeSJdCisKKwogY2xhc3MgRXh0cmFjdEJ1aWx0UHJvZHVjdChzaGVsbC5T
aGVsbENvbW1hbmQpOgogICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICIuL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSIsCiAgICAgICAgICAgICAgICBXaXRoUHJv
cGVydGllcygiLS1wbGF0Zm9ybT0lKGZ1bGxQbGF0Zm9ybSlzIiksIFdpdGhQcm9wZXJ0aWVzKCIt
LSUoY29uZmlndXJhdGlvbilzIiksICJleHRyYWN0Il0KQEAgLTI4NSw2ICszMDEsMTEgQEAgY2xh
c3MgVXBsb2FkQnVpbHRQcm9kdWN0KHRyYW5zZmVyLkZpbGVVcAogICAgICAgICB0cmFuc2Zlci5G
aWxlVXBsb2FkLl9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQogCiAKK2NsYXNzIFVwbG9hZE1pbmlm
aWVkQnVpbHRQcm9kdWN0KFVwbG9hZEJ1aWx0UHJvZHVjdCk6CisgICAgc2xhdmVzcmMgPSBXaXRo
UHJvcGVydGllcygiV2ViS2l0QnVpbGQvbWluaWZpZWQtJShjb25maWd1cmF0aW9uKXMuemlwIikK
KyAgICBtYXN0ZXJkZXN0ID0gV2l0aFByb3BlcnRpZXMoImFyY2hpdmVzLyUoZnVsbFBsYXRmb3Jt
KXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcy9taW5pZmllZC0lKGdvdF9yZXZp
c2lvbilzLnppcCIpCisgICAgCisKIGNsYXNzIERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNo
ZWxsQ29tbWFuZCk6CiAgICAgY29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvZG93bmxvYWQtYnVpbHQtcHJvZHVjdCIsCiAgICAgICAgIFdpdGhQcm9wZXJ0aWVz
KCItLXBsYXRmb3JtPSUocGxhdGZvcm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3Vy
YXRpb24pcyIpLApAQCAtNjY3LDEyICs2ODgsMTQgQEAgY2xhc3MgUnVuR3RrQVBJVGVzdHMoc2hl
bGwuVGVzdCk6CiAKICAgICAgICAgcmV0dXJuIFtzZWxmLm5hbWVdCiAKKwogY2xhc3MgUnVuV2Vi
S2l0MVRlc3RzKFJ1bldlYktpdFRlc3RzKToKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAg
IHNlbGYuc2V0Q29tbWFuZChzZWxmLmNvbW1hbmQgKyBbIi0tZHVtcC1yZW5kZXItdHJlZSJdKQog
CiAgICAgICAgIHJldHVybiBSdW5XZWJLaXRUZXN0cy5zdGFydChzZWxmKQogCisKIGNsYXNzIFJ1
bldlYktpdDFMZWFrVGVzdHMoUnVuV2ViS2l0MVRlc3RzKToKICAgICB3YW50X3N0ZG91dCA9IEZh
bHNlCiAgICAgd2FudF9zdGRlcnIgPSBGYWxzZQpAQCAtNjgxLDYgKzcwNCw3IEBAIGNsYXNzIFJ1
bldlYktpdDFMZWFrVGVzdHMoUnVuV2ViS2l0MVRlc3QKICAgICAgICAgc2VsZi5zZXRDb21tYW5k
KHNlbGYuY29tbWFuZCArIFsiLS1sZWFrcyJdKQogICAgICAgICByZXR1cm4gUnVuV2ViS2l0MVRl
c3RzLnN0YXJ0KHNlbGYpCiAKKwogY2xhc3MgUnVuQW5kVXBsb2FkUGVyZlRlc3RzKHNoZWxsLlRl
c3QpOgogICAgIG5hbWUgPSAicGVyZi10ZXN0IgogICAgIGRlc2NyaXB0aW9uID0gWyJwZXJmLXRl
c3RzIHJ1bm5pbmciXQpAQCAtNzI2LDYgKzc1MCw3IEBAIGNsYXNzIFJ1bkFuZFVwbG9hZFBlcmZU
ZXN0cyhzaGVsbC5UZXN0KToKIAogICAgICAgICByZXR1cm4gW3NlbGYubmFtZV0KIAorCiBjbGFz
cyBSdW5CZW5jaG1hcmtUZXN0cyhzaGVsbC5UZXN0KToKICAgICBuYW1lID0gImJlbmNobWFyay10
ZXN0IgogICAgIGRlc2NyaXB0aW9uID0gWyJiZW5jaG1hcmsgdGVzdHMgcnVubmluZyJdCkBAIC03
NTEsNiArNzc2LDcgQEAgY2xhc3MgUnVuQmVuY2htYXJrVGVzdHMoc2hlbGwuVGVzdCk6CiAgICAg
ICAgICAgICByZXR1cm4gWyIlZCBiZW5jaG1hcmsgdGVzdHMgZmFpbGVkIiAlIGNtZC5yY10KICAg
ICAgICAgcmV0dXJuIFtzZWxmLm5hbWVdCiAKKwogY2xhc3MgQXJjaGl2ZVRlc3RSZXN1bHRzKHNo
ZWxsLlNoZWxsQ29tbWFuZCk6CiAgICAgY29tbWFuZCA9IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZSIsCiAgICAgICAgICAgICAgICBXaXRo
UHJvcGVydGllcygiLS1wbGF0Zm9ybT0lKHBsYXRmb3JtKXMiKSwgV2l0aFByb3BlcnRpZXMoIi0t
JShjb25maWd1cmF0aW9uKXMiKSwgImFyY2hpdmUiXQpAQCAtNzcxLDYgKzc5NywyOCBAQCBjbGFz
cyBVcGxvYWRUZXN0UmVzdWx0cyh0cmFuc2Zlci5GaWxlVXBsCiAgICAgICAgIHRyYW5zZmVyLkZp
bGVVcGxvYWQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAKIAorY2xhc3MgVHJhbnNmZXJUb1Mz
KG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgorICAgIG5hbWUgPSAidHJhbnNmZXItdG8tczMi
CisgICAgZGVzY3JpcHRpb24gPSBbInRyYW5zZmVycmluZyB0byBzMyJdCisgICAgZGVzY3JpcHRp
b25Eb25lID0gWyJ0cmFuc2ZlcnJlZCB0byBzMyJdCisgICAgYXJjaGl2ZSA9IFdpdGhQcm9wZXJ0
aWVzKCJhcmNoaXZlcy8lKGZ1bGxQbGF0Zm9ybSlzLSUoYXJjaGl0ZWN0dXJlKXMtJShjb25maWd1
cmF0aW9uKXMvJShnb3RfcmV2aXNpb24pcy56aXAiKQorICAgIG1pbmlmaWVkQXJjaGl2ZSA9IFdp
dGhQcm9wZXJ0aWVzKCJhcmNoaXZlcy8lKGZ1bGxQbGF0Zm9ybSlzLSUoYXJjaGl0ZWN0dXJlKXMt
JShjb25maWd1cmF0aW9uKXMvbWluaWZpZWQtJShnb3RfcmV2aXNpb24pcy56aXAiKQorICAgIGlk
ZW50aWZpZXIgPSBXaXRoUHJvcGVydGllcygiJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVjdHVy
ZSlzLSUoY29uZmlndXJhdGlvbilzIikKKyAgICByZXZpc2lvbiA9IFdpdGhQcm9wZXJ0aWVzKCIl
KGdvdF9yZXZpc2lvbilzIikKKyAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi90cmFuc2Zlci1h
cmNoaXZlLXRvLXMzIiwgIi0tcmV2aXNpb24iLCByZXZpc2lvbiwgIi0taWRlbnRpZmllciIsIGlk
ZW50aWZpZXIsICItLWFyY2hpdmUiLCBhcmNoaXZlXQorICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVl
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBrd2FyZ3NbJ2Nv
bW1hbmQnXSA9IHNlbGYuY29tbWFuZCAKKyAgICAgICAgbWFzdGVyLk1hc3RlclNoZWxsQ29tbWFu
ZC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKworICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQuc3RhcnQoc2VsZikKKworICAgIGRl
ZiBmaW5pc2hlZChzZWxmLCByZXN1bHQpOgorICAgICAgICByZXR1cm4gbWFzdGVyLk1hc3RlclNo
ZWxsQ29tbWFuZC5maW5pc2hlZChzZWxmLCByZXN1bHQpCisKKwogY2xhc3MgRXh0cmFjdFRlc3RS
ZXN1bHRzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgogICAgIHppcEZpbGUgPSBXaXRoUHJv
cGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1aWxkZXJuYW1lKXMvciUoZ290X3Jldmlz
aW9uKXMgKCUoYnVpbGRudW1iZXIpcykuemlwIikKICAgICByZXN1bHREaXJlY3RvcnkgPSBXaXRo
UHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1aWxkZXJuYW1lKXMvciUoZ290X3Jl
dmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykiKQpAQCAtODM0LDExICs4ODIsMTYgQEAgY2xhc3Mg
QnVpbGRGYWN0b3J5KEZhY3RvcnkpOgogICAgICAgICBpZiB0cmlnZ2VyczoKICAgICAgICAgICAg
IHNlbGYuYWRkU3RlcChBcmNoaXZlQnVpbHRQcm9kdWN0KCkpCiAgICAgICAgICAgICBzZWxmLmFk
ZFN0ZXAoVXBsb2FkQnVpbHRQcm9kdWN0KCkpCisgICAgICAgICAgICBpZiBwbGF0Zm9ybS5zdGFy
dHN3aXRoKCdtYWMnKToKKyAgICAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAoQXJjaGl2ZU1pbmlm
aWVkQnVpbHRQcm9kdWN0KCkpCisgICAgICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFVwbG9hZE1p
bmlmaWVkQnVpbHRQcm9kdWN0KCkpCisgICAgICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFRyYW5z
ZmVyVG9TMygpKQogICAgICAgICAgICAgc2VsZi5hZGRTdGVwKHRyaWdnZXIuVHJpZ2dlcihzY2hl
ZHVsZXJOYW1lcz10cmlnZ2VycykpCiAKIGRlZiBwaWNrTGF0ZXN0QnVpbGQoYnVpbGRlciwgcmVx
dWVzdHMpOgogICAgIHJldHVybiBtYXgocmVxdWVzdHMsIGtleT1vcGVyYXRvci5hdHRyZ2V0dGVy
KCJzdWJtaXR0ZWRBdCIpKQogCisKIGNsYXNzIFRlc3RGYWN0b3J5KEZhY3RvcnkpOgogICAgIEpT
Q1Rlc3RDbGFzcyA9IFJ1bkphdmFTY3JpcHRDb3JlVGVzdHMKICAgICBMYXlvdXRUZXN0Q2xhc3Mg
PSBSdW5XZWJLaXRUZXN0cwpAQCAtODY5LDYgKzkyMiw3IEBAIGNsYXNzIFRlc3RGYWN0b3J5KEZh
Y3RvcnkpOgogICAgICAgICBpZiBwbGF0Zm9ybSA9PSAiZ3RrIjoKICAgICAgICAgICAgIHNlbGYu
YWRkU3RlcChSdW5HdGtBUElUZXN0cygpKQogCisKIGNsYXNzIEJ1aWxkQW5kVGVzdEZhY3Rvcnko
VGVzdEZhY3RvcnkpOgogICAgIGRlZiBnZXRQcm9kdWN0KHNlbGYpOgogICAgICAgICBzZWxmLmFk
ZFN0ZXAoQ29tcGlsZVdlYktpdCgpKQpAQCAtODgwLDI3ICs5MzQsMzIgQEAgY2xhc3MgQnVpbGRB
bmRUZXN0RmFjdG9yeShUZXN0RmFjdG9yeSk6CiAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAoVXBs
b2FkQnVpbHRQcm9kdWN0KCkpCiAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAodHJpZ2dlci5Ucmln
Z2VyKHNjaGVkdWxlck5hbWVzPXRyaWdnZXJzKSkKIAorCiBjbGFzcyBCdWlsZEFuZFRlc3RMTElO
VENMb29wRmFjdG9yeShGYWN0b3J5KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGxhdGZvcm0s
IGNvbmZpZ3VyYXRpb24sIGFyY2hpdGVjdHVyZXMsIHRyaWdnZXJzPU5vbmUsIGFkZGl0aW9uYWxB
cmd1bWVudHM9Tm9uZSwgU1ZOTWlycm9yPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgRmFjdG9y
eS5fX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywg
RmFsc2UsIGFkZGl0aW9uYWxBcmd1bWVudHMsIFNWTk1pcnJvciwgKiprd2FyZ3MpCiAgICAgICAg
IHNlbGYuYWRkU3RlcChDb21waWxlTExJTlRDTG9vcCgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAo
UnVuTExJTlRDTG9vcFRlc3RzKCkpCiAKKwogY2xhc3MgQnVpbGRBbmRUZXN0MzJiaXRKU0NGYWN0
b3J5KEZhY3RvcnkpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJh
dGlvbiwgYXJjaGl0ZWN0dXJlcywgdHJpZ2dlcnM9Tm9uZSwgYWRkaXRpb25hbEFyZ3VtZW50cz1O
b25lLCBTVk5NaXJyb3I9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBGYWN0b3J5Ll9faW5pdF9f
KHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCBGYWxzZSwgYWRk
aXRpb25hbEFyZ3VtZW50cywgU1ZOTWlycm9yLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5hZGRT
dGVwKENvbXBpbGUzMmJpdEpTQygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuMzJiaXRKU0NU
ZXN0cygpKQogCisKIGNsYXNzIEJ1aWxkQW5kTm9uTGF5b3V0VGVzdEZhY3RvcnkoQnVpbGRBbmRU
ZXN0RmFjdG9yeSk6CiAgICAgTGF5b3V0VGVzdENsYXNzID0gTm9uZQogCisKIGNsYXNzIEJ1aWxk
QW5kUmVtb3RlSlNDVGVzdHNGYWN0b3J5KEZhY3RvcnkpOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgdHJpZ2dlcnM9Tm9uZSwg
YWRkaXRpb25hbEFyZ3VtZW50cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSk6CiAgICAgICAgIEZhY3Rv
cnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24sIGFyY2hpdGVjdHVyZXMs
IEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3IpCiAgICAgICAgIHNlbGYuYWRk
U3RlcChDb21waWxlSlNDT25seSgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuUmVtb3RlSmF2
YVNjcmlwdENvcmVUZXN0cygpKQogCisKIGNsYXNzIFRlc3RXZWJLaXQxTGVha3NGYWN0b3J5KEZh
Y3RvcnkpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwg
YXJjaGl0ZWN0dXJlcywgYWRkaXRpb25hbEFyZ3VtZW50cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSk6
CiAgICAgICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24s
IGFyY2hpdGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3IpCkBA
IC05MTEsOSArOTcwLDExIEBAIGNsYXNzIFRlc3RXZWJLaXQxTGVha3NGYWN0b3J5KEZhY3Rvcnkp
OgogICAgICAgICBzZWxmLmFkZFN0ZXAoVXBsb2FkVGVzdFJlc3VsdHMoKSkKICAgICAgICAgc2Vs
Zi5hZGRTdGVwKEV4dHJhY3RUZXN0UmVzdWx0c0FuZExlYWtzKCkpCiAKKwogY2xhc3MgVGVzdEFs
bEJ1dEpTQ0ZhY3RvcnkoVGVzdEZhY3RvcnkpOgogICAgIEpTQ1Rlc3RDbGFzcyA9IE5vbmUKIAor
CiBjbGFzcyBUZXN0SlNDRmFjdG9yeShGYWN0b3J5KToKICAgICBkZWYgX19pbml0X18oc2VsZiwg
cGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24sIGFyY2hpdGVjdHVyZXMsIGFkZGl0aW9uYWxBcmd1bWVu
dHM9Tm9uZSwgU1ZOTWlycm9yPU5vbmUpOgogICAgICAgICBGYWN0b3J5Ll9faW5pdF9fKHNlbGYs
IHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCBGYWxzZSwgYWRkaXRpb25h
bEFyZ3VtZW50cywgU1ZOTWlycm9yKQpAQCAtOTIxLDYgKzk4Miw3IEBAIGNsYXNzIFRlc3RKU0NG
YWN0b3J5KEZhY3RvcnkpOgogICAgICAgICBzZWxmLmFkZFN0ZXAoRXh0cmFjdEJ1aWx0UHJvZHVj
dCgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuSmF2YVNjcmlwdENvcmVUZXN0cygpKQogCisK
IGNsYXNzIFRlc3QyNjJGYWN0b3J5KEZhY3RvcnkpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
bGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgYWRkaXRpb25hbEFyZ3VtZW50
cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSk6CiAgICAgICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwg
cGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24sIGFyY2hpdGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFs
QXJndW1lbnRzLCBTVk5NaXJyb3IpCkBAIC05MjgsMTIgKzk5MCwxNSBAQCBjbGFzcyBUZXN0MjYy
RmFjdG9yeShGYWN0b3J5KToKICAgICAgICAgc2VsZi5hZGRTdGVwKEV4dHJhY3RCdWlsdFByb2R1
Y3QoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFJ1blRlc3QyNjJUZXN0cygpKQogCisKIGNsYXNz
IFRlc3RXZWJLaXQxRmFjdG9yeShUZXN0RmFjdG9yeSk6CiAgICAgTGF5b3V0VGVzdENsYXNzID0g
UnVuV2ViS2l0MVRlc3RzCiAKKwogY2xhc3MgVGVzdFdlYktpdDFBbGxCdXRKU0NGYWN0b3J5KFRl
c3RXZWJLaXQxRmFjdG9yeSk6CiAgICAgSlNDVGVzdENsYXNzID0gTm9uZQogCisKIGNsYXNzIEJ1
aWxkQW5kUGVyZlRlc3RGYWN0b3J5KEZhY3RvcnkpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
bGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgYWRkaXRpb25hbEFyZ3VtZW50
cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBGYWN0b3J5Ll9faW5p
dF9fKHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCBGYWxzZSwg
YWRkaXRpb25hbEFyZ3VtZW50cywgU1ZOTWlycm9yLCAqKmt3YXJncykKQEAgLTk0Miw2ICsxMDA3
LDcgQEAgY2xhc3MgQnVpbGRBbmRQZXJmVGVzdEZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIGlm
IHBsYXRmb3JtID09ICJndGsiOgogICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFJ1bkJlbmNobWFy
a1Rlc3RzKCkpCiAKKwogY2xhc3MgRG93bmxvYWRBbmRQZXJmVGVzdEZhY3RvcnkoRmFjdG9yeSk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRl
Y3R1cmVzLCBhZGRpdGlvbmFsQXJndW1lbnRzPU5vbmUsIFNWTk1pcnJvcj1Ob25lLCAqKmt3YXJn
cyk6CiAgICAgICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRp
b24sIGFyY2hpdGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3Is
ICoqa3dhcmdzKQpAQCAtOTUxLDYgKzEwMTcsNyBAQCBjbGFzcyBEb3dubG9hZEFuZFBlcmZUZXN0
RmFjdG9yeShGYWN0b3J5CiAgICAgICAgIGlmIHBsYXRmb3JtID09ICJndGsiOgogICAgICAgICAg
ICAgc2VsZi5hZGRTdGVwKFJ1bkJlbmNobWFya1Rlc3RzKCkpCiAKKwogY2xhc3MgUGxhdGZvcm1T
cGVjaWZpY1NjaGVkdWxlcihBbnlCcmFuY2hTY2hlZHVsZXIpOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwbGF0Zm9ybSwgYnJhbmNoLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYucGxhdGZvcm0g
PSBwbGF0Zm9ybQo=
</data>
<flag name="review"
          id="335618"
          type_id="1"
          status="+"
          setter="slewis"
    />
    <flag name="commit-queue"
          id="335619"
          type_id="3"
          status="+"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314804</attachid>
            <date>2017-07-06 20:35:20 -0700</date>
            <delta_ts>2017-07-06 21:13:39 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>174198.patch</filename>
            <type>text/plain</type>
            <size>12691</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxOTIzMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTA3LTA2ICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBFbmFibGluZyB1cGxvYWRpbmcgYXJjaGl2ZXMgdG8gUzMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQxOTgKKyAgICAg
ICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZzoKKyAgICAg
ICAgKEFyY2hpdmVNaW5pZmllZEJ1aWx0UHJvZHVjdCk6IENyZWF0ZSBhIG1pbmlmaWVkIGFyY2hp
dmUgZnJvbSBhIGZ1bGwgYXJjaGl2ZQorICAgICAgICAoVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1
Y3QpOiBVcGxvYWQgbWluaWZpZWQgYXJjaGl2ZSB0byBidWlsZCBtYXN0ZXIKKyAgICAgICAgKFRy
YW5zZmVyVG9TMyk6IFRyYW5zZmVyIGZ1bGwgYW5kIG1pbmlmaWVkIGFyY2hpdmVzIHRvIFMzCisK
IDIwMTctMDctMDYgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUS11bV1BFXSBraWxsLW9sZC1wcm9jZXNzIHNob3VsZCBraWxsIG1v
cmUgd2Via2l0IHJlbGF0ZWQgcHJvY2VzcwpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9tYXN0ZXIuY2ZnCShyZXZp
c2lvbiAyMTkyMjEpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9tYXN0ZXIuY2ZnCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAgY2xh
c3MgQ2hlY2tPdXRTb3VyY2Uoc291cmNlLlNWTik6CiAgICAgICAgIHNvdXJjZS5TVk4uX19pbml0
X18oc2VsZiwgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuYWRkRmFjdG9yeUFyZ3VtZW50cyhTVk5N
aXJyb3I9U1ZOTWlycm9yKQogCisKIGNsYXNzIFdhaXRGb3JTVk5TZXJ2ZXIoc2hlbGwuU2hlbGxD
b21tYW5kKToKICAgICBuYW1lID0gIndhaXQtZm9yLXN2bi1zZXJ2ZXIiCiAgICAgY29tbWFuZCA9
IFsicHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvd2FpdC1mb3ItU1ZOLXNlcnZl
ci5weSIsICItciIsIFdpdGhQcm9wZXJ0aWVzKCIlKHJldmlzaW9uKXMiKSwgIi1zIiwgV2l0aFBy
b3BlcnRpZXMoIiUoU1ZOTWlycm9yKXMiKV0KQEAgLTE0MSwxNyArMTQyLDIwIEBAIGNsYXNzIFdh
aXRGb3JTVk5TZXJ2ZXIoc2hlbGwuU2hlbGxDb21tYW4KICAgICAgICAgICAgIHJldHVybiBXQVJO
SU5HUwogICAgICAgICByZXR1cm4gU1VDQ0VTUwogCisKIGNsYXNzIEluc3RhbGxXaW4zMkRlcGVu
ZGVuY2llcyhzaGVsbC5Db21waWxlKToKICAgICBkZXNjcmlwdGlvbiA9IFsiaW5zdGFsbGluZyBk
ZXBlbmRlbmNpZXMiXQogICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsiaW5zdGFsbGVkIGRlcGVuZGVu
Y2llcyJdCiAgICAgY29tbWFuZCA9IFsicGVybCIsICIuL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1hdXhpbGlhcnktbGlicyJdCiAKKwogY2xhc3MgS2lsbE9sZFByb2Nlc3NlcyhzaGVsbC5D
b21waWxlKToKICAgICBuYW1lID0gImtpbGwgb2xkIHByb2Nlc3NlcyIKICAgICBkZXNjcmlwdGlv
biA9IFsia2lsbGluZyBvbGQgcHJvY2Vzc2VzIl0KICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbImtp
bGxlZCBvbGQgcHJvY2Vzc2VzIl0KICAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC9raWxsLW9sZC1wcm9jZXNzZXMiLCAiYnVpbGRib3QiXQogCisKIGNs
YXNzIENsZWFuQnVpbGRJZlNjaGVkdWxlZChzaGVsbC5Db21waWxlKToKICAgICBuYW1lID0gImRl
bGV0ZSBXZWJLaXRCdWlsZCBkaXJlY3RvcnkiCiAgICAgZGVzY3JpcHRpb24gPSBbImRlbGV0aW5n
IFdlYktpdEJ1aWxkIGRpcmVjdG9yeSJdCkBAIC0xNjQsNiArMTY4LDcgQEAgY2xhc3MgQ2xlYW5C
dWlsZElmU2NoZWR1bGVkKHNoZWxsLkNvbXBpbAogICAgICAgICAgICAgcmV0dXJuIFNLSVBQRUQK
ICAgICAgICAgcmV0dXJuIHNoZWxsLkNvbXBpbGUuc3RhcnQoc2VsZikKIAorCiBjbGFzcyBEZWxl
dGVTdGFsZUJ1aWxkRmlsZXMoc2hlbGwuQ29tcGlsZSk6CiAgICAgbmFtZSA9ICJkZWxldGUgc3Rh
bGUgYnVpbGQgZmlsZXMiCiAgICAgZGVzY3JpcHRpb24gPSBbImRlbGV0aW5nIHN0YWxlIGJ1aWxk
IGZpbGVzIl0KQEAgLTE3Niw2ICsxODEsNyBAQCBjbGFzcyBEZWxldGVTdGFsZUJ1aWxkRmlsZXMo
c2hlbGwuQ29tcGlsCiAgICAgICAgICAgICByZXR1cm4gU0tJUFBFRAogICAgICAgICByZXR1cm4g
c2hlbGwuQ29tcGlsZS5zdGFydChzZWxmKQogCisKIGNsYXNzIEluc3RhbGxHdGtEZXBlbmRlbmNp
ZXMoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBuYW1lID0gImpoYnVpbGQiCiAgICAgZGVzY3Jp
cHRpb24gPSBbInVwZGF0aW5nIGd0ayBkZXBlbmRlbmNpZXMiXQpAQCAtMTgzLDYgKzE4OSw3IEBA
IGNsYXNzIEluc3RhbGxHdGtEZXBlbmRlbmNpZXMoc2hlbGwuU2hlbGwKICAgICBjb21tYW5kID0g
WyJwZXJsIiwgIi4vVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0Z3RrLWxpYnMiXQogICAgIGhh
bHRPbkZhaWx1cmUgPSBUcnVlCiAKKwogY2xhc3MgSW5zdGFsbFdwZURlcGVuZGVuY2llcyhzaGVs
bC5TaGVsbENvbW1hbmQpOgogICAgIG5hbWUgPSAiamhidWlsZCIKICAgICBkZXNjcmlwdGlvbiA9
IFsidXBkYXRpbmcgd3BlIGRlcGVuZGVuY2llcyJdCkBAIC0xOTksNiArMjA2LDcgQEAgZGVmIGFw
cGVuZEN1c3RvbUJ1aWxkRmxhZ3Moc3RlcCwgcGxhdGZvcgogICAgICAgICBwbGF0Zm9ybSA9ICdk
ZXZpY2UnCiAgICAgc3RlcC5zZXRDb21tYW5kKHN0ZXAuY29tbWFuZCArIFsnLS0nICsgcGxhdGZv
cm1dKQogCisKIGNsYXNzIENvbXBpbGVXZWJLaXQoc2hlbGwuQ29tcGlsZSk6CiAgICAgY29tbWFu
ZCA9IFsicGVybCIsICIuL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IiwgV2l0aFByb3BlcnRp
ZXMoIi0tJShjb25maWd1cmF0aW9uKXMiKV0KICAgICBlbnYgPSB7J01GTEFHUyc6Jyd9CkBAIC0y
NDgsMTIgKzI1NiwxNSBAQCBjbGFzcyBDb21waWxlV2ViS2l0KHNoZWxsLkNvbXBpbGUpOgogY2xh
c3MgQ29tcGlsZUxMSU5UQ0xvb3AoQ29tcGlsZVdlYktpdCk6CiAgICAgY29tbWFuZCA9IFsicGVy
bCIsICIuL1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjIiwgIi0tY2xvb3AiLCBXaXRoUHJvcGVydGll
cygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpXQogCisKIGNsYXNzIENvbXBpbGUzMmJpdEpTQyhDb21w
aWxlV2ViS2l0KToKICAgICBjb21tYW5kID0gWyJwZXJsIiwgIi4vVG9vbHMvU2NyaXB0cy9idWls
ZC1qc2MiLCAiLS0zMi1iaXQiLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIp
XQogCisKIGNsYXNzIENvbXBpbGVKU0NPbmx5KENvbXBpbGVXZWJLaXQpOgogICAgIGNvbW1hbmQg
PSBbInBlcmwiLCAiLi9Ub29scy9TY3JpcHRzL2J1aWxkLWpzYyIsIFdpdGhQcm9wZXJ0aWVzKCIt
LSUoY29uZmlndXJhdGlvbilzIildCiAKKwogY2xhc3MgQXJjaGl2ZUJ1aWx0UHJvZHVjdChzaGVs
bC5TaGVsbENvbW1hbmQpOgogICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICIuL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSIsCiAgICAgICAgICAgICAgICBXaXRo
UHJvcGVydGllcygiLS1wbGF0Zm9ybT0lKGZ1bGxQbGF0Zm9ybSlzIiksIFdpdGhQcm9wZXJ0aWVz
KCItLSUoY29uZmlndXJhdGlvbilzIiksICJhcmNoaXZlIl0KQEAgLTI2Myw2ICsyNzQsMTEgQEAg
Y2xhc3MgQXJjaGl2ZUJ1aWx0UHJvZHVjdChzaGVsbC5TaGVsbENvbQogICAgIGhhbHRPbkZhaWx1
cmUgPSBUcnVlCiAKIAorY2xhc3MgQXJjaGl2ZU1pbmlmaWVkQnVpbHRQcm9kdWN0KEFyY2hpdmVC
dWlsdFByb2R1Y3QpOgorICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICIuL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSIsCisgICAgICAgICAgICAgICBXaXRoUHJv
cGVydGllcygiLS1wbGF0Zm9ybT0lKGZ1bGxQbGF0Zm9ybSlzIiksIFdpdGhQcm9wZXJ0aWVzKCIt
LSUoY29uZmlndXJhdGlvbilzIiksICJhcmNoaXZlIiwgIi0tbWluaWZ5Il0KKworCiBjbGFzcyBF
eHRyYWN0QnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAgICAgY29tbWFuZCA9IFsi
cHl0aG9uIiwgIi4vVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZl
IiwKICAgICAgICAgICAgICAgIFdpdGhQcm9wZXJ0aWVzKCItLXBsYXRmb3JtPSUoZnVsbFBsYXRm
b3JtKXMiKSwgV2l0aFByb3BlcnRpZXMoIi0tJShjb25maWd1cmF0aW9uKXMiKSwgImV4dHJhY3Qi
XQpAQCAtMjg1LDYgKzMwMSwxMSBAQCBjbGFzcyBVcGxvYWRCdWlsdFByb2R1Y3QodHJhbnNmZXIu
RmlsZVVwCiAgICAgICAgIHRyYW5zZmVyLkZpbGVVcGxvYWQuX19pbml0X18oc2VsZiwgKiprd2Fy
Z3MpCiAKIAorY2xhc3MgVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1Y3QoVXBsb2FkQnVpbHRQcm9k
dWN0KToKKyAgICBzbGF2ZXNyYyA9IFdpdGhQcm9wZXJ0aWVzKCJXZWJLaXRCdWlsZC9taW5pZmll
ZC0lKGNvbmZpZ3VyYXRpb24pcy56aXAiKQorICAgIG1hc3RlcmRlc3QgPSBXaXRoUHJvcGVydGll
cygiYXJjaGl2ZXMvJShmdWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJh
dGlvbilzL21pbmlmaWVkLSUoZ290X3JldmlzaW9uKXMuemlwIikKKyAgICAKKwogY2xhc3MgRG93
bmxvYWRCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBjb21tYW5kID0gWyJw
eXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9kb3dubG9hZC1idWlsdC1wcm9kdWN0
IiwKICAgICAgICAgV2l0aFByb3BlcnRpZXMoIi0tcGxhdGZvcm09JShwbGF0Zm9ybSlzIiksIFdp
dGhQcm9wZXJ0aWVzKCItLSUoY29uZmlndXJhdGlvbilzIiksCkBAIC02NjcsMTIgKzY4OCwxNCBA
QCBjbGFzcyBSdW5HdGtBUElUZXN0cyhzaGVsbC5UZXN0KToKIAogICAgICAgICByZXR1cm4gW3Nl
bGYubmFtZV0KIAorCiBjbGFzcyBSdW5XZWJLaXQxVGVzdHMoUnVuV2ViS2l0VGVzdHMpOgogICAg
IGRlZiBzdGFydChzZWxmKToKICAgICAgICAgc2VsZi5zZXRDb21tYW5kKHNlbGYuY29tbWFuZCAr
IFsiLS1kdW1wLXJlbmRlci10cmVlIl0pCiAKICAgICAgICAgcmV0dXJuIFJ1bldlYktpdFRlc3Rz
LnN0YXJ0KHNlbGYpCiAKKwogY2xhc3MgUnVuV2ViS2l0MUxlYWtUZXN0cyhSdW5XZWJLaXQxVGVz
dHMpOgogICAgIHdhbnRfc3Rkb3V0ID0gRmFsc2UKICAgICB3YW50X3N0ZGVyciA9IEZhbHNlCkBA
IC02ODEsNiArNzA0LDcgQEAgY2xhc3MgUnVuV2ViS2l0MUxlYWtUZXN0cyhSdW5XZWJLaXQxVGVz
dAogICAgICAgICBzZWxmLnNldENvbW1hbmQoc2VsZi5jb21tYW5kICsgWyItLWxlYWtzIl0pCiAg
ICAgICAgIHJldHVybiBSdW5XZWJLaXQxVGVzdHMuc3RhcnQoc2VsZikKIAorCiBjbGFzcyBSdW5B
bmRVcGxvYWRQZXJmVGVzdHMoc2hlbGwuVGVzdCk6CiAgICAgbmFtZSA9ICJwZXJmLXRlc3QiCiAg
ICAgZGVzY3JpcHRpb24gPSBbInBlcmYtdGVzdHMgcnVubmluZyJdCkBAIC03MjYsNiArNzUwLDcg
QEAgY2xhc3MgUnVuQW5kVXBsb2FkUGVyZlRlc3RzKHNoZWxsLlRlc3QpOgogCiAgICAgICAgIHJl
dHVybiBbc2VsZi5uYW1lXQogCisKIGNsYXNzIFJ1bkJlbmNobWFya1Rlc3RzKHNoZWxsLlRlc3Qp
OgogICAgIG5hbWUgPSAiYmVuY2htYXJrLXRlc3QiCiAgICAgZGVzY3JpcHRpb24gPSBbImJlbmNo
bWFyayB0ZXN0cyBydW5uaW5nIl0KQEAgLTc1MSw2ICs3NzYsNyBAQCBjbGFzcyBSdW5CZW5jaG1h
cmtUZXN0cyhzaGVsbC5UZXN0KToKICAgICAgICAgICAgIHJldHVybiBbIiVkIGJlbmNobWFyayB0
ZXN0cyBmYWlsZWQiICUgY21kLnJjXQogICAgICAgICByZXR1cm4gW3NlbGYubmFtZV0KIAorCiBj
bGFzcyBBcmNoaXZlVGVzdFJlc3VsdHMoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBjb21tYW5k
ID0gWyJweXRob24iLCAiLi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNo
aXZlIiwKICAgICAgICAgICAgICAgIFdpdGhQcm9wZXJ0aWVzKCItLXBsYXRmb3JtPSUocGxhdGZv
cm0pcyIpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpLCAiYXJjaGl2ZSJd
CkBAIC03NzEsNiArNzk3LDI4IEBAIGNsYXNzIFVwbG9hZFRlc3RSZXN1bHRzKHRyYW5zZmVyLkZp
bGVVcGwKICAgICAgICAgdHJhbnNmZXIuRmlsZVVwbG9hZC5fX2luaXRfXyhzZWxmLCAqKmt3YXJn
cykKIAogCitjbGFzcyBUcmFuc2ZlclRvUzMobWFzdGVyLk1hc3RlclNoZWxsQ29tbWFuZCk6Cisg
ICAgbmFtZSA9ICJ0cmFuc2Zlci10by1zMyIKKyAgICBkZXNjcmlwdGlvbiA9IFsidHJhbnNmZXJy
aW5nIHRvIHMzIl0KKyAgICBkZXNjcmlwdGlvbkRvbmUgPSBbInRyYW5zZmVycmVkIHRvIHMzIl0K
KyAgICBhcmNoaXZlID0gV2l0aFByb3BlcnRpZXMoImFyY2hpdmVzLyUoZnVsbFBsYXRmb3JtKXMt
JShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcy8lKGdvdF9yZXZpc2lvbilzLnppcCIp
CisgICAgbWluaWZpZWRBcmNoaXZlID0gV2l0aFByb3BlcnRpZXMoImFyY2hpdmVzLyUoZnVsbFBs
YXRmb3JtKXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcy9taW5pZmllZC0lKGdv
dF9yZXZpc2lvbilzLnppcCIpCisgICAgaWRlbnRpZmllciA9IFdpdGhQcm9wZXJ0aWVzKCIlKGZ1
bGxQbGF0Zm9ybSlzLSUoYXJjaGl0ZWN0dXJlKXMtJShjb25maWd1cmF0aW9uKXMiKQorICAgIHJl
dmlzaW9uID0gV2l0aFByb3BlcnRpZXMoIiUoZ290X3JldmlzaW9uKXMiKQorICAgIGNvbW1hbmQg
PSBbInB5dGhvbiIsICIuL3RyYW5zZmVyLWFyY2hpdmUtdG8tczMiLCAiLS1yZXZpc2lvbiIsIHJl
dmlzaW9uLCAiLS1pZGVudGlmaWVyIiwgaWRlbnRpZmllciwgIi0tYXJjaGl2ZSIsIGFyY2hpdmVd
CisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3
YXJncyk6CisgICAgICAgIGt3YXJnc1snY29tbWFuZCddID0gc2VsZi5jb21tYW5kIAorICAgICAg
ICBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLl9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQorCisg
ICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICByZXR1cm4gbWFzdGVyLk1hc3RlclNoZWxsQ29t
bWFuZC5zdGFydChzZWxmKQorCisgICAgZGVmIGZpbmlzaGVkKHNlbGYsIHJlc3VsdCk6CisgICAg
ICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLmZpbmlzaGVkKHNlbGYsIHJlc3Vs
dCkKKworCiBjbGFzcyBFeHRyYWN0VGVzdFJlc3VsdHMobWFzdGVyLk1hc3RlclNoZWxsQ29tbWFu
ZCk6CiAgICAgemlwRmlsZSA9IFdpdGhQcm9wZXJ0aWVzKCJwdWJsaWNfaHRtbC9yZXN1bHRzLyUo
YnVpbGRlcm5hbWUpcy9yJShnb3RfcmV2aXNpb24pcyAoJShidWlsZG51bWJlcilzKS56aXAiKQog
ICAgIHJlc3VsdERpcmVjdG9yeSA9IFdpdGhQcm9wZXJ0aWVzKCJwdWJsaWNfaHRtbC9yZXN1bHRz
LyUoYnVpbGRlcm5hbWUpcy9yJShnb3RfcmV2aXNpb24pcyAoJShidWlsZG51bWJlcilzKSIpCkBA
IC04MzQsMTEgKzg4MiwxNiBAQCBjbGFzcyBCdWlsZEZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAg
IGlmIHRyaWdnZXJzOgogICAgICAgICAgICAgc2VsZi5hZGRTdGVwKEFyY2hpdmVCdWlsdFByb2R1
Y3QoKSkKICAgICAgICAgICAgIHNlbGYuYWRkU3RlcChVcGxvYWRCdWlsdFByb2R1Y3QoKSkKKyAg
ICAgICAgICAgIGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ21hYycpOgorICAgICAgICAgICAgICAg
IHNlbGYuYWRkU3RlcChBcmNoaXZlTWluaWZpZWRCdWlsdFByb2R1Y3QoKSkKKyAgICAgICAgICAg
ICAgICBzZWxmLmFkZFN0ZXAoVXBsb2FkTWluaWZpZWRCdWlsdFByb2R1Y3QoKSkKKyAgICAgICAg
ICAgICAgICBzZWxmLmFkZFN0ZXAoVHJhbnNmZXJUb1MzKCkpCiAgICAgICAgICAgICBzZWxmLmFk
ZFN0ZXAodHJpZ2dlci5UcmlnZ2VyKHNjaGVkdWxlck5hbWVzPXRyaWdnZXJzKSkKIAogZGVmIHBp
Y2tMYXRlc3RCdWlsZChidWlsZGVyLCByZXF1ZXN0cyk6CiAgICAgcmV0dXJuIG1heChyZXF1ZXN0
cywga2V5PW9wZXJhdG9yLmF0dHJnZXR0ZXIoInN1Ym1pdHRlZEF0IikpCiAKKwogY2xhc3MgVGVz
dEZhY3RvcnkoRmFjdG9yeSk6CiAgICAgSlNDVGVzdENsYXNzID0gUnVuSmF2YVNjcmlwdENvcmVU
ZXN0cwogICAgIExheW91dFRlc3RDbGFzcyA9IFJ1bldlYktpdFRlc3RzCkBAIC04NjksNiArOTIy
LDcgQEAgY2xhc3MgVGVzdEZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIGlmIHBsYXRmb3JtID09
ICJndGsiOgogICAgICAgICAgICAgc2VsZi5hZGRTdGVwKFJ1bkd0a0FQSVRlc3RzKCkpCiAKKwog
Y2xhc3MgQnVpbGRBbmRUZXN0RmFjdG9yeShUZXN0RmFjdG9yeSk6CiAgICAgZGVmIGdldFByb2R1
Y3Qoc2VsZik6CiAgICAgICAgIHNlbGYuYWRkU3RlcChDb21waWxlV2ViS2l0KCkpCkBAIC04ODAs
MjcgKzkzNCwzMiBAQCBjbGFzcyBCdWlsZEFuZFRlc3RGYWN0b3J5KFRlc3RGYWN0b3J5KToKICAg
ICAgICAgICAgIHNlbGYuYWRkU3RlcChVcGxvYWRCdWlsdFByb2R1Y3QoKSkKICAgICAgICAgICAg
IHNlbGYuYWRkU3RlcCh0cmlnZ2VyLlRyaWdnZXIoc2NoZWR1bGVyTmFtZXM9dHJpZ2dlcnMpKQog
CisKIGNsYXNzIEJ1aWxkQW5kVGVzdExMSU5UQ0xvb3BGYWN0b3J5KEZhY3RvcnkpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywg
dHJpZ2dlcnM9Tm9uZSwgYWRkaXRpb25hbEFyZ3VtZW50cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSwg
Kiprd2FyZ3MpOgogICAgICAgICBGYWN0b3J5Ll9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBjb25m
aWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCBGYWxzZSwgYWRkaXRpb25hbEFyZ3VtZW50cywgU1ZO
TWlycm9yLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5hZGRTdGVwKENvbXBpbGVMTElOVENMb29w
KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChSdW5MTElOVENMb29wVGVzdHMoKSkKIAorCiBjbGFz
cyBCdWlsZEFuZFRlc3QzMmJpdEpTQ0ZhY3RvcnkoRmFjdG9yeSk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCB0cmlnZ2Vycz1O
b25lLCBhZGRpdGlvbmFsQXJndW1lbnRzPU5vbmUsIFNWTk1pcnJvcj1Ob25lLCAqKmt3YXJncyk6
CiAgICAgICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24s
IGFyY2hpdGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3IsICoq
a3dhcmdzKQogICAgICAgICBzZWxmLmFkZFN0ZXAoQ29tcGlsZTMyYml0SlNDKCkpCiAgICAgICAg
IHNlbGYuYWRkU3RlcChSdW4zMmJpdEpTQ1Rlc3RzKCkpCiAKKwogY2xhc3MgQnVpbGRBbmROb25M
YXlvdXRUZXN0RmFjdG9yeShCdWlsZEFuZFRlc3RGYWN0b3J5KToKICAgICBMYXlvdXRUZXN0Q2xh
c3MgPSBOb25lCiAKKwogY2xhc3MgQnVpbGRBbmRSZW1vdGVKU0NUZXN0c0ZhY3RvcnkoRmFjdG9y
eSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNo
aXRlY3R1cmVzLCB0cmlnZ2Vycz1Ob25lLCBhZGRpdGlvbmFsQXJndW1lbnRzPU5vbmUsIFNWTk1p
cnJvcj1Ob25lKToKICAgICAgICAgRmFjdG9yeS5fX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29u
ZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgRmFsc2UsIGFkZGl0aW9uYWxBcmd1bWVudHMsIFNW
Tk1pcnJvcikKICAgICAgICAgc2VsZi5hZGRTdGVwKENvbXBpbGVKU0NPbmx5KCkpCiAgICAgICAg
IHNlbGYuYWRkU3RlcChSdW5SZW1vdGVKYXZhU2NyaXB0Q29yZVRlc3RzKCkpCiAKKwogY2xhc3Mg
VGVzdFdlYktpdDFMZWFrc0ZhY3RvcnkoRmFjdG9yeSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmVzLCBhZGRpdGlvbmFsQXJndW1l
bnRzPU5vbmUsIFNWTk1pcnJvcj1Ob25lKToKICAgICAgICAgRmFjdG9yeS5fX2luaXRfXyhzZWxm
LCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgRmFsc2UsIGFkZGl0aW9u
YWxBcmd1bWVudHMsIFNWTk1pcnJvcikKQEAgLTkxMSw5ICs5NzAsMTEgQEAgY2xhc3MgVGVzdFdl
YktpdDFMZWFrc0ZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIHNlbGYuYWRkU3RlcChVcGxvYWRU
ZXN0UmVzdWx0cygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoRXh0cmFjdFRlc3RSZXN1bHRzQW5k
TGVha3MoKSkKIAorCiBjbGFzcyBUZXN0QWxsQnV0SlNDRmFjdG9yeShUZXN0RmFjdG9yeSk6CiAg
ICAgSlNDVGVzdENsYXNzID0gTm9uZQogCisKIGNsYXNzIFRlc3RKU0NGYWN0b3J5KEZhY3Rvcnkp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0
ZWN0dXJlcywgYWRkaXRpb25hbEFyZ3VtZW50cz1Ob25lLCBTVk5NaXJyb3I9Tm9uZSk6CiAgICAg
ICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRpb24sIGFyY2hp
dGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3IpCkBAIC05MjEs
NiArOTgyLDcgQEAgY2xhc3MgVGVzdEpTQ0ZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIHNlbGYu
YWRkU3RlcChFeHRyYWN0QnVpbHRQcm9kdWN0KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChSdW5K
YXZhU2NyaXB0Q29yZVRlc3RzKCkpCiAKKwogY2xhc3MgVGVzdDI2MkZhY3RvcnkoRmFjdG9yeSk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRl
Y3R1cmVzLCBhZGRpdGlvbmFsQXJndW1lbnRzPU5vbmUsIFNWTk1pcnJvcj1Ob25lKToKICAgICAg
ICAgRmFjdG9yeS5fX2luaXRfXyhzZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0
ZWN0dXJlcywgRmFsc2UsIGFkZGl0aW9uYWxBcmd1bWVudHMsIFNWTk1pcnJvcikKQEAgLTkyOCwx
MiArOTkwLDE1IEBAIGNsYXNzIFRlc3QyNjJGYWN0b3J5KEZhY3RvcnkpOgogICAgICAgICBzZWxm
LmFkZFN0ZXAoRXh0cmFjdEJ1aWx0UHJvZHVjdCgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVu
VGVzdDI2MlRlc3RzKCkpCiAKKwogY2xhc3MgVGVzdFdlYktpdDFGYWN0b3J5KFRlc3RGYWN0b3J5
KToKICAgICBMYXlvdXRUZXN0Q2xhc3MgPSBSdW5XZWJLaXQxVGVzdHMKIAorCiBjbGFzcyBUZXN0
V2ViS2l0MUFsbEJ1dEpTQ0ZhY3RvcnkoVGVzdFdlYktpdDFGYWN0b3J5KToKICAgICBKU0NUZXN0
Q2xhc3MgPSBOb25lCiAKKwogY2xhc3MgQnVpbGRBbmRQZXJmVGVzdEZhY3RvcnkoRmFjdG9yeSk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBjb25maWd1cmF0aW9uLCBhcmNoaXRl
Y3R1cmVzLCBhZGRpdGlvbmFsQXJndW1lbnRzPU5vbmUsIFNWTk1pcnJvcj1Ob25lLCAqKmt3YXJn
cyk6CiAgICAgICAgIEZhY3RvcnkuX19pbml0X18oc2VsZiwgcGxhdGZvcm0sIGNvbmZpZ3VyYXRp
b24sIGFyY2hpdGVjdHVyZXMsIEZhbHNlLCBhZGRpdGlvbmFsQXJndW1lbnRzLCBTVk5NaXJyb3Is
ICoqa3dhcmdzKQpAQCAtOTQyLDYgKzEwMDcsNyBAQCBjbGFzcyBCdWlsZEFuZFBlcmZUZXN0RmFj
dG9yeShGYWN0b3J5KToKICAgICAgICAgaWYgcGxhdGZvcm0gPT0gImd0ayI6CiAgICAgICAgICAg
ICBzZWxmLmFkZFN0ZXAoUnVuQmVuY2htYXJrVGVzdHMoKSkKIAorCiBjbGFzcyBEb3dubG9hZEFu
ZFBlcmZUZXN0RmFjdG9yeShGYWN0b3J5KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGxhdGZv
cm0sIGNvbmZpZ3VyYXRpb24sIGFyY2hpdGVjdHVyZXMsIGFkZGl0aW9uYWxBcmd1bWVudHM9Tm9u
ZSwgU1ZOTWlycm9yPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgRmFjdG9yeS5fX2luaXRfXyhz
ZWxmLCBwbGF0Zm9ybSwgY29uZmlndXJhdGlvbiwgYXJjaGl0ZWN0dXJlcywgRmFsc2UsIGFkZGl0
aW9uYWxBcmd1bWVudHMsIFNWTk1pcnJvciwgKiprd2FyZ3MpCkBAIC05NTEsNiArMTAxNyw3IEBA
IGNsYXNzIERvd25sb2FkQW5kUGVyZlRlc3RGYWN0b3J5KEZhY3RvcnkKICAgICAgICAgaWYgcGxh
dGZvcm0gPT0gImd0ayI6CiAgICAgICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuQmVuY2htYXJrVGVz
dHMoKSkKIAorCiBjbGFzcyBQbGF0Zm9ybVNwZWNpZmljU2NoZWR1bGVyKEFueUJyYW5jaFNjaGVk
dWxlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtLCBicmFuY2gsICoqa3dhcmdz
KToKICAgICAgICAgc2VsZi5wbGF0Zm9ybSA9IHBsYXRmb3JtCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>