<?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>106629</bug_id>
          
          <creation_ts>2013-01-10 19:33:50 -0800</creation_ts>
          <short_desc>Extend sheriffbot&apos;s &quot;help&quot; command to be able to get help on individual commands</short_desc>
          <delta_ts>2013-01-15 16:03:53 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alan Cutter">alancutter</reporter>
          <assigned_to name="Alan Cutter">alancutter</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804889</commentid>
    <comment_count>0</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-10 19:33:50 -0800</bug_when>
    <thetext>Currently sheriffbot&apos;s &quot;help&quot; command only spits out a list of commands.
There is no formal way to query those commands individually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807009</commentid>
    <comment_count>1</comment_count>
      <attachid>182705</attachid>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-14 22:47:31 -0800</bug_when>
    <thetext>Created attachment 182705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807013</commentid>
    <comment_count>2</comment_count>
      <attachid>182705</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-14 22:53:32 -0800</bug_when>
    <thetext>Comment on attachment 182705
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:86
&gt; +    @staticmethod
&gt; +    def usage(nick):
&gt; +        return &quot;%s: Usage: create-bug BUG_TITLE&quot; % nick

I wouldn&apos;t make these static.  And I would instead just have a string which is used by a default impl.

// on the baseclass:
usage = None

def usage(self, nick):
    return &quot;%s: Usage: %s&quot; % self.usage_string

// on the subclass:
usage = &quot;create-bug BUG_TITLE&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807067</commentid>
    <comment_count>3</comment_count>
      <attachid>182714</attachid>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-15 00:52:30 -0800</bug_when>
    <thetext>Created attachment 182714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807078</commentid>
    <comment_count>4</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-15 01:02:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 182705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182705&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:86
&gt; &gt; +    @staticmethod
&gt; &gt; +    def usage(nick):
&gt; &gt; +        return &quot;%s: Usage: create-bug BUG_TITLE&quot; % nick
&gt; 
&gt; I wouldn&apos;t make these static.  And I would instead just have a string which is used by a default impl.
&gt; 
&gt; // on the baseclass:
&gt; usage = None
&gt; 
&gt; def usage(self, nick):
&gt;     return &quot;%s: Usage: %s&quot; % self.usage_string
&gt; 
&gt; // on the subclass:
&gt; usage = &quot;create-bug BUG_TITLE&quot;

Removed staticmethod annotation.
Good call, the subclasses look a ton nicer with two simple string members at the top.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807088</commentid>
    <comment_count>5</comment_count>
      <attachid>182714</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-15 01:15:46 -0800</bug_when>
    <thetext>Comment on attachment 182714
Patch

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

This is fantastic!  So much better than what we currently have.  We could quibble about the exact help strings, but this is also OK to land as is.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:58
&gt; +    @classmethod

I think these are OK as classmethods (definitely more easily mocked than static methods!), but still better as instance methods unless you need them to be class methods for some usage.  I used to be big on static/class methods in python, until I realized they were a huge pain to test/mock well.  BUt maybe I&apos;m just poor at testing. :)

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:124
&gt; +    help_string = &quot;Restarts sheriffbot.&quot;

I might even give a little more info. &quot;Restarts sherrifbot.  Will update its WebKit checkout, and re-join the channel momentarily.&quot;

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:171
&gt; +    help_string = &quot;Creates a patch for the reverse diff of the given revision(s) and flags it as commit-queue?.&quot;

&quot;Opens a rollout bug, CCing author + reviewer, and attaching the reverse-diff of the given revisions marked as commit-queue=?&quot; might give a little more info?

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:292
&gt; +    help_string = &quot;Searches the known contributors/committers/reviewers for additional information about them.&quot;

&quot;Searches known contributors and returns any matches with irc, email and full name.&quot;?  I&apos;m not sure that&apos;s better, but &quot;contributors&quot; implies the other two categories. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807722</commentid>
    <comment_count>6</comment_count>
      <attachid>182851</attachid>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-15 15:03:19 -0800</bug_when>
    <thetext>Created attachment 182851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807725</commentid>
    <comment_count>7</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-15 15:05:39 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:124
&gt; &gt; +    help_string = &quot;Restarts sheriffbot.&quot;
&gt; 
&gt; I might even give a little more info. &quot;Restarts sherrifbot.  Will update its WebKit checkout, and re-join the channel momentarily.&quot;
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:171
&gt; &gt; +    help_string = &quot;Creates a patch for the reverse diff of the given revision(s) and flags it as commit-queue?.&quot;
&gt; 
&gt; &quot;Opens a rollout bug, CCing author + reviewer, and attaching the reverse-diff of the given revisions marked as commit-queue=?&quot; might give a little more info?
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:292
&gt; &gt; +    help_string = &quot;Searches the known contributors/committers/reviewers for additional information about them.&quot;
&gt; 
&gt; &quot;Searches known contributors and returns any matches with irc, email and full name.&quot;?  I&apos;m not sure that&apos;s better, but &quot;contributors&quot; implies the other two categories. :)

Updated help messages.
I&apos;m glad you made these suggestions since I haven&apos;t even used most of these commands!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807728</commentid>
    <comment_count>8</comment_count>
      <attachid>182851</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-15 15:09:33 -0800</bug_when>
    <thetext>Comment on attachment 182851
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807790</commentid>
    <comment_count>9</comment_count>
      <attachid>182851</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 16:03:47 -0800</bug_when>
    <thetext>Comment on attachment 182851
Patch

Clearing flags on attachment: 182851

Committed r139805: &lt;http://trac.webkit.org/changeset/139805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807791</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 16:03:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182705</attachid>
            <date>2013-01-14 22:47:31 -0800</date>
            <delta_ts>2013-01-15 00:52:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106629-20130115174430.patch</filename>
            <type>text/plain</type>
            <size>15231</size>
            <attacher name="Alan Cutter">alancutter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmZjMDdlYWI3MTQyNmM4NjJjMjM2MGE0YWUwMWU1NTQw
NWM1YTI4MC4uMDczZDRmNDRkMjE1YTMzNTAxZGVlYWU0MDM1M2QzOWJmODY3NDFiYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDEzLTAxLTE0ICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEV4dGVuZCBzaGVyaWZmYm90J3MgImhlbHAiIGNvbW1hbmQgdG8gYmUgYWJsZSB0
byBnZXQgaGVscCBvbiBpbmRpdmlkdWFsIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBoZWxwIGNvbW1hbmQgdG8gc2hlcmlmZmJv
dC4KKyAgICAgICAgRml4ZWQgc29tZSBzdHlsZSBpc3N1ZXMgYW5kIG9yZGVyZWQgdGhlIGNvbW1h
bmRzIGFscGhhYmV0aWNhbGx5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9pcmNfY29tbWFuZC5weToKKyAgICAgICAgKElSQ0NvbW1hbmQuZXhlY3V0ZSk6CisgICAgICAg
IChJUkNDb21tYW5kKToKKyAgICAgICAgKElSQ0NvbW1hbmQudXNhZ2UpOgorICAgICAgICAoSVJD
Q29tbWFuZC5oZWxwKToKKyAgICAgICAgKENyZWF0ZUJ1Zyk6CisgICAgICAgIChDcmVhdGVCdWcu
ZXhlY3V0ZSk6CisgICAgICAgIChDcmVhdGVCdWcudXNhZ2UpOgorICAgICAgICAoQ3JlYXRlQnVn
LmhlbHApOgorICAgICAgICAoSGVscCk6CisgICAgICAgIChIZWxwLmV4ZWN1dGUpOgorICAgICAg
ICAoSGVscC5fcG9zdF9jb21tYW5kX2hlbHApOgorICAgICAgICAoSGVscC51c2FnZSk6CisgICAg
ICAgIChIZWxwLmhlbHApOgorICAgICAgICAoSGkpOgorICAgICAgICAoSGkuZXhlY3V0ZSk6Cisg
ICAgICAgIChIaS51c2FnZSk6CisgICAgICAgIChIaS5oZWxwKToKKyAgICAgICAgKFJlc3RhcnQp
OgorICAgICAgICAoUmVzdGFydC51c2FnZSk6CisgICAgICAgIChSZXN0YXJ0LmhlbHApOgorICAg
ICAgICAoUm9sbENocm9taXVtREVQUyk6CisgICAgICAgIChSb2xsQ2hyb21pdW1ERVBTLl9wYXJz
ZV9hcmdzKToKKyAgICAgICAgKFJvbGxDaHJvbWl1bURFUFMuX2V4cGFuZF9pcmNfbmlja25hbWUp
OgorICAgICAgICAoUm9sbENocm9taXVtREVQUy5leGVjdXRlKToKKyAgICAgICAgKFJvbGxDaHJv
bWl1bURFUFMudXNhZ2UpOgorICAgICAgICAoUm9sbENocm9taXVtREVQUy5oZWxwKToKKyAgICAg
ICAgKFJvbGxvdXQuZXhlY3V0ZSk6CisgICAgICAgIChSb2xsb3V0KToKKyAgICAgICAgKFJvbGxv
dXQudXNhZ2UpOgorICAgICAgICAoUm9sbG91dC5oZWxwKToKKyAgICAgICAgKFNoZXJpZmZzKToK
KyAgICAgICAgKFNoZXJpZmZzLnVzYWdlKToKKyAgICAgICAgKFNoZXJpZmZzLmhlbHApOgorICAg
ICAgICAoV2hvaXMuZXhlY3V0ZSk6CisgICAgICAgIChXaG9pcyk6CisgICAgICAgIChXaG9pcy51
c2FnZSk6CisgICAgICAgIChXaG9pcy5oZWxwKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weToKKyAgICAgICAgKElSQ0JvdFRlc3QudGVzdF9o
ZWxwKToKKwogMjAxMy0wMS0xNCAgVGltICdtaXRocm8nIEFuc2VsbCAgPG1pdGhyb0BtaXRoaXMu
Y29tPgogCiAgICAgICAgIEFkZGluZyBhbiBlcnJvciBzdHJpbmcgdG8gQW1iaWd1b3VzQ29tbWl0
RXJyb3IuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19j
b21tYW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZC5w
eQppbmRleCBiYzEzMmRhZTRiOTY0YjI1NTc0OGRiMjAwOWFiY2NhNmMyYTY3OTE4Li5mMjc1ZTUw
NTkzZWUzZDI0MTNkZTM2ZTkwMGU3MTc3ZGJmOGE2M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKQEAgLTUwLDcgKzUwLDg1IEBAIGRlZiBf
cG9zdF9lcnJvcl9hbmRfY2hlY2tfZm9yX2J1Z191cmwodG9vbCwgbmlja3Nfc3RyaW5nLCBleGNl
cHRpb24pOgogIyBGSVhNRTogTWVyZ2Ugd2l0aCBDb21tYW5kPwogY2xhc3MgSVJDQ29tbWFuZChv
YmplY3QpOgogICAgIGRlZiBleGVjdXRlKHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2wsIHNoZXJpZmYp
OgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGlt
cGxlbWVudCIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBt
dXN0IGltcGxlbWVudCIpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHVzYWdlKG5pY2sp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1w
bGVtZW50IikKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgaGVscChuaWNrKToKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIp
CisKKworY2xhc3MgQ3JlYXRlQnVnKElSQ0NvbW1hbmQpOgorICAgIGRlZiBleGVjdXRlKHNlbGYs
IG5pY2ssIGFyZ3MsIHRvb2wsIHNoZXJpZmYpOgorICAgICAgICBpZiBub3QgYXJnczoKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLnVzYWdlKG5pY2spCisKKyAgICAgICAgYnVnX3RpdGxlID0gIiAi
LmpvaW4oYXJncykKKyAgICAgICAgYnVnX2Rlc2NyaXB0aW9uID0gIiVzXG5SZXF1ZXN0ZWQgYnkg
JXMgb24gJXMuIiAlIChidWdfdGl0bGUsIG5pY2ssIGNvbmZpZ19pcmMuY2hhbm5lbCkKKworICAg
ICAgICAjIFRoZXJlIGhhcHBlbnMgdG8gYmUgYSBjb21taXR0ZXJzIGxpc3QgaHVuZyBvZmYgb2Yg
QnVnemlsbGEsIHNvCisgICAgICAgICMgcmUtdXNpbmcgdGhhdCBvbmUgbWFrZXMgdGhpbmdzIGVh
c2llc3QgZm9yIG5vdy4KKyAgICAgICAgcmVxdWVzdGVyID0gdG9vbC5idWdzLmNvbW1pdHRlcnMu
Y29udHJpYnV0b3JfYnlfaXJjX25pY2tuYW1lKG5pY2spCisgICAgICAgIHJlcXVlc3Rlcl9lbWFp
bCA9IHJlcXVlc3Rlci5idWd6aWxsYV9lbWFpbCgpIGlmIHJlcXVlc3RlciBlbHNlIE5vbmUKKwor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBidWdfaWQgPSB0b29sLmJ1Z3MuY3JlYXRlX2J1Zyhi
dWdfdGl0bGUsIGJ1Z19kZXNjcmlwdGlvbiwgY2M9cmVxdWVzdGVyX2VtYWlsLCBhc3NpZ25lZT1y
ZXF1ZXN0ZXJfZW1haWwpCisgICAgICAgICAgICBidWdfdXJsID0gdG9vbC5idWdzLmJ1Z191cmxf
Zm9yX2J1Z19pZChidWdfaWQpCisgICAgICAgICAgICByZXR1cm4gIiVzOiBDcmVhdGVkIGJ1Zzog
JXMiICUgKG5pY2ssIGJ1Z191cmwpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAg
ICAgICAgICByZXR1cm4gIiVzOiBGYWlsZWQgdG8gY3JlYXRlIGJ1ZzpcbiVzIiAlIChuaWNrLCBl
KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB1c2FnZShuaWNrKToKKyAgICAgICAgcmV0
dXJuICIlczogVXNhZ2U6IGNyZWF0ZS1idWcgQlVHX1RJVExFIiAlIG5pY2sKKworICAgIEBzdGF0
aWNtZXRob2QKKyAgICBkZWYgaGVscChuaWNrKToKKyAgICAgICAgcmV0dXJuICIlczogQ3JlYXRl
cyBhIEJ1Z3ppbGxhIGJ1ZyB3aXRoIHRoZSBnaXZlbiB0aXRsZS4iICUgbmljaworCisKK2NsYXNz
IEhlbHAoSVJDQ29tbWFuZCk6CisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9v
bCwgc2hlcmlmZik6CisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBmb3IgY29tbWFuZF9u
YW1lIGluIGFyZ3M6CisgICAgICAgICAgICAgICAgaWYgY29tbWFuZF9uYW1lIGluIGNvbW1hbmRz
OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3N0X2NvbW1hbmRfaGVscChuaWNrLCB0b29s
LCBjb21tYW5kX25hbWUsIGNvbW1hbmRzW2NvbW1hbmRfbmFtZV0pCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiBBdmFpbGFibGUgY29tbWFuZHM6ICVzIiAl
IChuaWNrLCAiLCAiLmpvaW4oc29ydGVkKHZpc2libGVfY29tbWFuZHMua2V5cygpKSkpKQorICAg
ICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCclczogVHlwZSAic2hlcmlmZmJvdDogaGVscCBDT01N
QU5EIiBmb3IgaGVscCBvbiBpbmRpdmlkdWFsIGNvbW1hbmRzLicgJSBuaWNrKQorCisgICAgZGVm
IF9wb3N0X2NvbW1hbmRfaGVscChzZWxmLCBuaWNrLCB0b29sLCBjb21tYW5kX25hbWUsIGNvbW1h
bmQpOgorICAgICAgICB0b29sLmlyYygpLnBvc3QoY29tbWFuZC51c2FnZShuaWNrKSkKKyAgICAg
ICAgdG9vbC5pcmMoKS5wb3N0KGNvbW1hbmQuaGVscChuaWNrKSkKKyAgICAgICAgYWxpYXNlcyA9
ICIgIi5qb2luKHNvcnRlZChmaWx0ZXIobGFtYmRhIGFsaWFzOiBhbGlhcyAhPSBjb21tYW5kX25h
bWUgYW5kIGNvbW1hbmRzW2FsaWFzXSA9PSBjb21tYW5kLCBjb21tYW5kcykpKQorICAgICAgICBp
ZiBhbGlhc2VzOgorICAgICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogQWxpYXNlczogJXMi
ICUgKG5pY2ssIGFsaWFzZXMpKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB1c2FnZShu
aWNrKToKKyAgICAgICAgcmV0dXJuICIlczogVXNhZ2U6IGhlbHAgQ09NTUFORCIgJSBuaWNrCisK
KyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlbHAobmljayk6CisgICAgICAgIHJldHVybiAi
JXM6IFByb3ZpZGVzIGhlbHAgb24gaW5kaXZpZHVhbCBzaGVyaWZmYm90IGNvbW1hbmRzLiIgJSBu
aWNrCisKKworY2xhc3MgSGkoSVJDQ29tbWFuZCk6CisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmlj
aywgYXJncywgdG9vbCwgc2hlcmlmZik6CisgICAgICAgIHF1aXBzID0gdG9vbC5idWdzLnF1aXBz
KCkKKyAgICAgICAgcXVpcHMuYXBwZW5kKCciT25seSB5b3UgY2FuIHByZXZlbnQgZm9yZXN0IGZp
cmVzLiIgLS0gU21va2V5IHRoZSBCZWFyJykKKyAgICAgICAgcmV0dXJuIHJhbmRvbS5jaG9pY2Uo
cXVpcHMpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHVzYWdlKG5pY2spOgorICAgICAg
ICByZXR1cm4gIiVzOiBVc2FnZTogaGkiICUgbmljaworCisgICAgQHN0YXRpY21ldGhvZAorICAg
IGRlZiBoZWxwKG5pY2spOgorICAgICAgICByZXR1cm4gIiVzOiBSZXRyaWV2ZXMgYSByYW5kb20g
cXVpcCBmcm9tIEJ1Z3ppbGxhLiIgJSBuaWNrCiAKIAogY2xhc3MgUmVzdGFydChJUkNDb21tYW5k
KToKQEAgLTU4LDEwICsxMzYsNjAgQEAgY2xhc3MgUmVzdGFydChJUkNDb21tYW5kKToKICAgICAg
ICAgdG9vbC5pcmMoKS5wb3N0KCJSZXN0YXJ0aW5nLi4uIikKICAgICAgICAgcmFpc2UgVGVybWlu
YXRlUXVldWUoKQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB1c2FnZShuaWNrKToKKyAg
ICAgICAgcmV0dXJuICIlczogVXNhZ2U6IHJlc3RhcnQiICUgbmljaworCisgICAgQHN0YXRpY21l
dGhvZAorICAgIGRlZiBoZWxwKG5pY2spOgorICAgICAgICByZXR1cm4gIiVzOiBSZXN0YXJ0cyBz
aGVyaWZmYm90LiIgJSBuaWNrCisKKworY2xhc3MgUm9sbENocm9taXVtREVQUyhJUkNDb21tYW5k
KToKKyAgICBkZWYgX3BhcnNlX2FyZ3Moc2VsZiwgYXJncyk6CisgICAgICAgIGlmIG5vdCBhcmdz
OgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJldmlzaW9uID0gYXJnc1swXS5sc3RyaXAo
InIiKQorICAgICAgICBpZiBub3QgcmV2aXNpb24uaXNkaWdpdCgpOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIHJldHVybiByZXZpc2lvbgorCisgICAgZGVmIF9leHBhbmRfaXJjX25pY2tu
YW1lKHNlbGYsIG5pY2spOgorICAgICAgICBjb250cmlidXRvciA9IENvbW1pdHRlckxpc3QoKS5j
b250cmlidXRvcl9ieV9pcmNfbmlja25hbWUobmljaykKKyAgICAgICAgaWYgY29udHJpYnV0b3I6
CisgICAgICAgICAgICByZXR1cm4gc3RyKGNvbnRyaWJ1dG9yKQorICAgICAgICByZXR1cm4gbmlj
aworCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6Cisg
ICAgICAgIHJldmlzaW9uID0gc2VsZi5fcGFyc2VfYXJncyhhcmdzKQorCisgICAgICAgIHJvbGxf
dGFyZ2V0ID0gInIlcyIgJSByZXZpc2lvbiBpZiByZXZpc2lvbiBlbHNlICJsYXN0LWtub3duIGdv
b2QgcmV2aXNpb24iCisgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6IFJvbGxpbmcgQ2hyb21p
dW0gREVQUyB0byAlcyIgJSAobmljaywgcm9sbF90YXJnZXQpKQorICAgICAgICBjaGFuZ2Vsb2df
bWVzc2FnZSA9ICJVbnJldmlld2VkLiAgUm9sbGVkIENocm9taXVtIERFUFMgdG8gJXMuICBSZXF1
ZXN0ZWQgYnkgJXMgdmlhIHNoZXJpZmZib3QuXG5cbiIgJSAocm9sbF90YXJnZXQsIHNlbGYuX2V4
cGFuZF9pcmNfbmlja25hbWUobmljaykpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYnVn
X2lkID0gc2hlcmlmZi5wb3N0X2Nocm9taXVtX2RlcHNfcm9sbChyZXZpc2lvbiwgcm9sbF90YXJn
ZXQsIGNoYW5nZWxvZ19tZXNzYWdlKQorICAgICAgICAgICAgYnVnX3VybCA9IHRvb2wuYnVncy5i
dWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQorICAgICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIl
czogQ3JlYXRlZCBERVBTIHJvbGw6ICVzIiAlIChuaWNrLCBidWdfdXJsKSkKKyAgICAgICAgZXhj
ZXB0IFNjcmlwdEVycm9yLCBlOgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2gociJDdXJy
ZW50IENocm9taXVtIERFUFMgcmV2aXNpb24gXGQrIGlzIG5ld2VyIHRoYW4gXGQrXC4iLCBlLm91
dHB1dCkKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgIHRvb2wuaXJjKCku
cG9zdCgiJXM6ICVzIiAlIChuaWNrLCBtYXRjaC5ncm91cCgwKSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiBGYWlsZWQgdG8gY3JlYXRl
IERFUFMgcm9sbDoiICUgbmljaykKKyAgICAgICAgICAgIF9wb3N0X2Vycm9yX2FuZF9jaGVja19m
b3JfYnVnX3VybCh0b29sLCBuaWNrLCBlKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB1
c2FnZShuaWNrKToKKyAgICAgICAgcmV0dXJuICIlczogVXNhZ2U6IHJvbGwtY2hyb21pdW0tZGVw
cyBbUkVWSVNJT05dIiAlIG5pY2sKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgaGVscChu
aWNrKToKKyAgICAgICAgcmV0dXJuICIlczogUm9sbHMgV2ViS2l0J3MgQ2hyb21pdW0gREVQUyB0
byB0aGUgZ2l2ZW4gcmV2aXNpb24gb3IgZGVmYXVsdHMgdG8gTEtHUi4gQ3JlYXRlcyBhIHBhdGNo
IGFuZCBwcm92aWRlcyB0aGUgYnVnIFVSTC4iICUgbmljaworCiAKIGNsYXNzIFJvbGxvdXQoSVJD
Q29tbWFuZCk6CiAgICAgZGVmIF9leHRyYWN0X3JldmlzaW9ucyhzZWxmLCBhcmcpOgotCiAgICAg
ICAgIHJldmlzaW9uX2xpc3QgPSBbXQogICAgICAgICBwb3NzaWJsZV9yZXZpc2lvbnMgPSBhcmcu
c3BsaXQoIiwiKQogICAgICAgICBmb3IgcmV2aXNpb24gaW4gcG9zc2libGVfcmV2aXNpb25zOgpA
QCAtMTE4LDggKzI0Niw3IEBAIGNsYXNzIFJvbGxvdXQoSVJDQ29tbWFuZCk6CiAgICAgICAgIHN2
bl9yZXZpc2lvbl9saXN0LCByb2xsb3V0X3JlYXNvbiA9IHNlbGYuX3BhcnNlX2FyZ3MoYXJncykK
IAogICAgICAgICBpZiAobm90IHN2bl9yZXZpc2lvbl9saXN0IG9yIG5vdCByb2xsb3V0X3JlYXNv
bik6Ci0gICAgICAgICAgICAjIHJldHVybiBpcyBlcXVpdmFsZW50IHRvIGFuIGlyYygpLnBvc3Qo
KSwgYnV0IG1ha2VzIGZvciBlYXNpZXIgdW5pdCB0ZXN0aW5nLgotICAgICAgICAgICAgcmV0dXJu
ICIlczogVXNhZ2U6IHJvbGxvdXQgU1ZOX1JFVklTSU9OIFtTVk5fUkVWSVNJT05TXSBSRUFTT04i
ICUgbmljaworICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNhZ2UobmljaykKIAogICAgICAgICBy
ZXZpc2lvbl91cmxzX3N0cmluZyA9IGpvaW5fd2l0aF9zZXBhcmF0b3JzKFt1cmxzLnZpZXdfcmV2
aXNpb25fdXJsKHJldmlzaW9uKSBmb3IgcmV2aXNpb24gaW4gc3ZuX3JldmlzaW9uX2xpc3RdKQog
ICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiBQcmVwYXJpbmcgcm9sbG91dCBmb3IgJXMgLi4u
IiAlIChuaWNrLCByZXZpc2lvbl91cmxzX3N0cmluZykpCkBAIC0xNDAsNiArMjY3LDE0IEBAIGNs
YXNzIFJvbGxvdXQoSVJDQ29tbWFuZCk6CiAgICAgICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVz
OiBGYWlsZWQgdG8gY3JlYXRlIHJvbGxvdXQgcGF0Y2g6IiAlIG5pY2tzX3N0cmluZykKICAgICAg
ICAgICAgIF9wb3N0X2Vycm9yX2FuZF9jaGVja19mb3JfYnVnX3VybCh0b29sLCBuaWNrc19zdHJp
bmcsIGUpCiAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHVzYWdlKG5pY2spOgorICAgICAg
ICByZXR1cm4gIiVzOiBVc2FnZTogcm9sbG91dCBTVk5fUkVWSVNJT04gW1NWTl9SRVZJU0lPTlNd
IFJFQVNPTiIgJSBuaWNrCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlbHAobmljayk6
CisgICAgICAgIHJldHVybiAiJXM6IENyZWF0ZXMgYSBwYXRjaCBmb3IgdGhlIHJldmVyc2UgZGlm
ZiBvZiB0aGUgZ2l2ZW4gcmV2aXNpb24ocykgYW5kIGZsYWdzIGl0IGFzIGNvbW1pdC1xdWV1ZT8u
IiAlIG5pY2sKKwogCiBjbGFzcyBTaGVyaWZmcyhJUkNDb21tYW5kKToKICAgICBkZWYgX3JldHJp
ZXZlX3dlYmtpdF9zaGVyaWZmcyhzZWxmLCB1cmwpOgpAQCAtMTc1LDUyICszMTAsMTMgQEAgY2xh
c3MgU2hlcmlmZnMoSVJDQ29tbWFuZCk6CiAgICAgICAgICAgICByZXR1cm4gIiVzOiBUaGUgY3Vy
cmVudCAlcyBpczogJXMiICUgKG5pY2ssIHNoZXJpZmZfbmFtZSwgc2hlcmlmZnMpCiAgICAgICAg
IHJldHVybiAiJXM6IFRoZSBjdXJyZW50ICVzcyBhcmU6ICVzIiAlIChuaWNrLCBzaGVyaWZmX25h
bWUsIHNoZXJpZmZzKQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB1c2FnZShuaWNrKToK
KyAgICAgICAgcmV0dXJuICIlczogVXNhZ2U6IHNoZXJpZmZzIiAlIG5pY2sKIAotY2xhc3MgUm9s
bENocm9taXVtREVQUyhJUkNDb21tYW5kKToKLSAgICBkZWYgX3BhcnNlX2FyZ3Moc2VsZiwgYXJn
cyk6Ci0gICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJl
dmlzaW9uID0gYXJnc1swXS5sc3RyaXAoInIiKQotICAgICAgICBpZiBub3QgcmV2aXNpb24uaXNk
aWdpdCgpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJldHVybiByZXZpc2lvbgotCi0g
ICAgZGVmIF9leHBhbmRfaXJjX25pY2tuYW1lKHNlbGYsIG5pY2spOgotICAgICAgICBjb250cmli
dXRvciA9IENvbW1pdHRlckxpc3QoKS5jb250cmlidXRvcl9ieV9pcmNfbmlja25hbWUobmljaykK
LSAgICAgICAgaWYgY29udHJpYnV0b3I6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKGNvbnRyaWJ1
dG9yKQotICAgICAgICByZXR1cm4gbmljawotCi0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywg
YXJncywgdG9vbCwgc2hlcmlmZik6Ci0gICAgICAgIHJldmlzaW9uID0gc2VsZi5fcGFyc2VfYXJn
cyhhcmdzKQotCi0gICAgICAgIHJvbGxfdGFyZ2V0ID0gInIlcyIgJSByZXZpc2lvbiBpZiByZXZp
c2lvbiBlbHNlICJsYXN0LWtub3duIGdvb2QgcmV2aXNpb24iCi0gICAgICAgIHRvb2wuaXJjKCku
cG9zdCgiJXM6IFJvbGxpbmcgQ2hyb21pdW0gREVQUyB0byAlcyIgJSAobmljaywgcm9sbF90YXJn
ZXQpKQotICAgICAgICBjaGFuZ2Vsb2dfbWVzc2FnZSA9ICJVbnJldmlld2VkLiAgUm9sbGVkIENo
cm9taXVtIERFUFMgdG8gJXMuICBSZXF1ZXN0ZWQgYnkgJXMgdmlhIHNoZXJpZmZib3QuXG5cbiIg
JSAocm9sbF90YXJnZXQsIHNlbGYuX2V4cGFuZF9pcmNfbmlja25hbWUobmljaykpCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgYnVnX2lkID0gc2hlcmlmZi5wb3N0X2Nocm9taXVtX2RlcHNf
cm9sbChyZXZpc2lvbiwgcm9sbF90YXJnZXQsIGNoYW5nZWxvZ19tZXNzYWdlKQotICAgICAgICAg
ICAgYnVnX3VybCA9IHRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQotICAgICAg
ICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogQ3JlYXRlZCBERVBTIHJvbGw6ICVzIiAlIChuaWNr
LCBidWdfdXJsKSkKLSAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAg
bWF0Y2ggPSByZS5zZWFyY2gociJDdXJyZW50IENocm9taXVtIERFUFMgcmV2aXNpb24gXGQrIGlz
IG5ld2VyIHRoYW4gXGQrXC4iLCBlLm91dHB1dCkKLSAgICAgICAgICAgIGlmIG1hdGNoOgotICAg
ICAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6ICVzIiAlIChuaWNrLCBtYXRjaC5ncm91
cCgwKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICB0b29sLmlyYygpLnBv
c3QoIiVzOiBGYWlsZWQgdG8gY3JlYXRlIERFUFMgcm9sbDoiICUgbmljaykKLSAgICAgICAgICAg
IF9wb3N0X2Vycm9yX2FuZF9jaGVja19mb3JfYnVnX3VybCh0b29sLCBuaWNrLCBlKQotCi0KLWNs
YXNzIEhlbHAoSVJDQ29tbWFuZCk6Ci0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywg
dG9vbCwgc2hlcmlmZik6Ci0gICAgICAgIHJldHVybiAiJXM6IEF2YWlsYWJsZSBjb21tYW5kczog
JXMiICUgKG5pY2ssICIsICIuam9pbihzb3J0ZWQodmlzaWJsZV9jb21tYW5kcy5rZXlzKCkpKSkK
LQotCi1jbGFzcyBIaShJUkNDb21tYW5kKToKLSAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBh
cmdzLCB0b29sLCBzaGVyaWZmKToKLSAgICAgICAgcXVpcHMgPSB0b29sLmJ1Z3MucXVpcHMoKQot
ICAgICAgICBxdWlwcy5hcHBlbmQoJyJPbmx5IHlvdSBjYW4gcHJldmVudCBmb3Jlc3QgZmlyZXMu
IiAtLSBTbW9rZXkgdGhlIEJlYXInKQotICAgICAgICByZXR1cm4gcmFuZG9tLmNob2ljZShxdWlw
cykKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlbHAobmljayk6CisgICAgICAgIHJldHVy
biAiJXM6IFJldHJpZXZlcyB3aG8gdGhlIGN1cnJlbnQgQ2hyb21pdW0gV2ViS2l0IHNoZXJpZmZz
IGFyZSBmcm9tOiAlcyIgJSAobmljaywgdXJscy5jaHJvbWl1bV93ZWJraXRfc2hlcmlmZl91cmwp
CiAKIAogY2xhc3MgV2hvaXMoSVJDQ29tbWFuZCk6CkBAIC0yMzEsNyArMzI3LDcgQEAgY2xhc3Mg
V2hvaXMoSVJDQ29tbWFuZCk6CiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0
b29sLCBzaGVyaWZmKToKICAgICAgICAgaWYgbGVuKGFyZ3MpICE9IDE6Ci0gICAgICAgICAgICBy
ZXR1cm4gIiVzOiBVc2FnZTogd2hvaXMgU0VBUkNIX1NUUklORyIgJSBuaWNrCisgICAgICAgICAg
ICByZXR1cm4gc2VsZi51c2FnZShuaWNrKQogICAgICAgICBzZWFyY2hfc3RyaW5nID0gYXJnc1sw
XQogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgZ2V0IHRoZSBDb250cmlidXRvckxpc3Qgb2Zm
IHRoZSB0b29sIHNvbWV3aGVyZS4KICAgICAgICAgY29udHJpYnV0b3JzID0gQ29tbWl0dGVyTGlz
dCgpLmNvbnRyaWJ1dG9yc19ieV9zZWFyY2hfc3RyaW5nKHNlYXJjaF9zdHJpbmcpCkBAIC0yNTIs
MzggKzM0OCwyNSBAQCBjbGFzcyBXaG9pcyhJUkNDb21tYW5kKToKICAgICAgICAgY29udHJpYnV0
b3JzX3N0cmluZyA9IGpvaW5fd2l0aF9zZXBhcmF0b3JzKGNvbnRyaWJ1dG9yX25pY2tzLCBvbmx5
X3R3b19zZXBhcmF0b3I9IiBvciAiLCBsYXN0X3NlcGFyYXRvcj0nLCBvciAnKQogICAgICAgICBy
ZXR1cm4gIiVzOiBJJ20gbm90IHN1cmUgd2hvIHlvdSBtZWFuPyAgJXMgY291bGQgYmUgJyVzJy4i
ICUgKG5pY2ssIGNvbnRyaWJ1dG9yc19zdHJpbmcsIHNlYXJjaF9zdHJpbmcpCiAKKyAgICBAc3Rh
dGljbWV0aG9kCisgICAgZGVmIHVzYWdlKG5pY2spOgorICAgICAgICByZXR1cm4gIiVzOiBVc2Fn
ZTogd2hvaXMgU0VBUkNIX1NUUklORyIgJSBuaWNrCiAKLWNsYXNzIENyZWF0ZUJ1ZyhJUkNDb21t
YW5kKToKLSAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToK
LSAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICByZXR1cm4gIiVzOiBVc2FnZTogY3Jl
YXRlLWJ1ZyBCVUdfVElUTEUiICUgbmljawotCi0gICAgICAgIGJ1Z190aXRsZSA9ICIgIi5qb2lu
KGFyZ3MpCi0gICAgICAgIGJ1Z19kZXNjcmlwdGlvbiA9ICIlc1xuUmVxdWVzdGVkIGJ5ICVzIG9u
ICVzLiIgJSAoYnVnX3RpdGxlLCBuaWNrLCBjb25maWdfaXJjLmNoYW5uZWwpCi0KLSAgICAgICAg
IyBUaGVyZSBoYXBwZW5zIHRvIGJlIGEgY29tbWl0dGVycyBsaXN0IGh1bmcgb2ZmIG9mIEJ1Z3pp
bGxhLCBzbwotICAgICAgICAjIHJlLXVzaW5nIHRoYXQgb25lIG1ha2VzIHRoaW5ncyBlYXNpZXN0
IGZvciBub3cuCi0gICAgICAgIHJlcXVlc3RlciA9IHRvb2wuYnVncy5jb21taXR0ZXJzLmNvbnRy
aWJ1dG9yX2J5X2lyY19uaWNrbmFtZShuaWNrKQotICAgICAgICByZXF1ZXN0ZXJfZW1haWwgPSBy
ZXF1ZXN0ZXIuYnVnemlsbGFfZW1haWwoKSBpZiByZXF1ZXN0ZXIgZWxzZSBOb25lCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgYnVnX2lkID0gdG9vbC5idWdzLmNyZWF0ZV9idWcoYnVnX3Rp
dGxlLCBidWdfZGVzY3JpcHRpb24sIGNjPXJlcXVlc3Rlcl9lbWFpbCwgYXNzaWduZWU9cmVxdWVz
dGVyX2VtYWlsKQotICAgICAgICAgICAgYnVnX3VybCA9IHRvb2wuYnVncy5idWdfdXJsX2Zvcl9i
dWdfaWQoYnVnX2lkKQotICAgICAgICAgICAgcmV0dXJuICIlczogQ3JlYXRlZCBidWc6ICVzIiAl
IChuaWNrLCBidWdfdXJsKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgcmV0dXJuICIlczogRmFpbGVkIHRvIGNyZWF0ZSBidWc6XG4lcyIgJSAobmljaywgZSkKKyAg
ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlbHAobmljayk6CisgICAgICAgIHJldHVybiAiJXM6
IFNlYXJjaGVzIHRoZSBrbm93biBjb250cmlidXRvcnMvY29tbWl0dGVycy9yZXZpZXdlcnMgZm9y
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4iICUgbmljawogCiAKICMgRklYTUU6
IExhbWUuICBXZSBzaG91bGQgaGF2ZSBhbiBhdXRvLXJlZ2lzdGVyaW5nIENvbW1hbmRDZW50ZXIu
CiB2aXNpYmxlX2NvbW1hbmRzID0geworICAgICJjcmVhdGUtYnVnIjogQ3JlYXRlQnVnLAogICAg
ICJoZWxwIjogSGVscCwKICAgICAiaGkiOiBIaSwKICAgICAicmVzdGFydCI6IFJlc3RhcnQsCisg
ICAgInJvbGwtY2hyb21pdW0tZGVwcyI6IFJvbGxDaHJvbWl1bURFUFMsCiAgICAgInJvbGxvdXQi
OiBSb2xsb3V0LAogICAgICJzaGVyaWZmcyI6IFNoZXJpZmZzLAogICAgICJ3aG9pcyI6IFdob2lz
LAotICAgICJjcmVhdGUtYnVnIjogQ3JlYXRlQnVnLAotICAgICJyb2xsLWNocm9taXVtLWRlcHMi
OiBSb2xsQ2hyb21pdW1ERVBTLAogfQogCiAjIEFkZCByZXZlcnQgYXMgYW4gImVhc3RlciBlZ2ci
IGNvbW1hbmQuIFdoeT8KQEAgLTI5NywzICszODAsNSBAQCBjb21tYW5kc1siZ2FyZGVuZXJzIl0g
PSBTaGVyaWZmcwogY29tbWFuZHNbInNoZXJyaWZmcyJdID0gU2hlcmlmZnMKIGNvbW1hbmRzWyJz
aGVyaWZzIl0gPSBTaGVyaWZmcwogY29tbWFuZHNbInNoZXJyaWZzIl0gPSBTaGVyaWZmcworIyAi
aGVsbG8iIEFsaWFzIGZvciAiaGkiIGNvbW1hbmQgZm9yIHRoZSBwdXJwb3NlcyBvZiB0ZXN0aW5n
IGFsaWFzZXMKK2NvbW1hbmRzWyJoZWxsbyJdID0gSGkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjYm90X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9pcmNib3RfdW5pdHRlc3QucHkKaW5kZXggMTZhM2NkNzVmNmZjNWJk
MDIzOGMyMDlkODBjZGZkYTAzZTBmNzZjMS4uYzc4ZWI4MGU3NmM4MTYxY2Y0NzdkOWY3ZTQ3OWM2
Yzg2ZmJkNGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9p
cmNib3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9p
cmNib3RfdW5pdHRlc3QucHkKQEAgLTg4LDggKzg4LDExIEBAIGNsYXNzIElSQ0JvdFRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgcnVuLCBhcmdzPVsiaGkiXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAg
ICAgZGVmIHRlc3RfaGVscChzZWxmKToKLSAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICJNT0NLOiBp
cmMucG9zdDogbW9ja19uaWNrOiBBdmFpbGFibGUgY29tbWFuZHM6IGNyZWF0ZS1idWcsIGhlbHAs
IGhpLCByZXN0YXJ0LCByb2xsLWNocm9taXVtLWRlcHMsIHJvbGxvdXQsIHNoZXJpZmZzLCB3aG9p
c1xuIgorICAgICAgICBleHBlY3RlZF9sb2dzID0gJ01PQ0s6IGlyYy5wb3N0OiBtb2NrX25pY2s6
IEF2YWlsYWJsZSBjb21tYW5kczogY3JlYXRlLWJ1ZywgaGVscCwgaGksIHJlc3RhcnQsIHJvbGwt
Y2hyb21pdW0tZGVwcywgcm9sbG91dCwgc2hlcmlmZnMsIHdob2lzXG5NT0NLOiBpcmMucG9zdDog
bW9ja19uaWNrOiBUeXBlICJzaGVyaWZmYm90OiBoZWxwIENPTU1BTkQiIGZvciBoZWxwIG9uIGlu
ZGl2aWR1YWwgY29tbWFuZHMuXG4nCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0
cHV0cyhzZWxmLCBydW4sIGFyZ3M9WyJoZWxwIl0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICdNT0NLOiBpcmMucG9zdDogbW9ja19uaWNrOiBV
c2FnZTogaGlcbk1PQ0s6IGlyYy5wb3N0OiBtb2NrX25pY2s6IFJldHJpZXZlcyBhIHJhbmRvbSBx
dWlwIGZyb20gQnVnemlsbGEuXG5NT0NLOiBpcmMucG9zdDogbW9ja19uaWNrOiBBbGlhc2VzOiBo
ZWxsb1xuJworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcnVu
LCBhcmdzPVsiaGVscCBoaSJdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBydW4sIGFyZ3M9WyJoZWxwIGhl
bGxvIl0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3Jlc3Rh
cnQoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiTU9DSzogaXJjLnBvc3Q6IFJlc3Rh
cnRpbmcuLi5cbiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182714</attachid>
            <date>2013-01-15 00:52:30 -0800</date>
            <delta_ts>2013-01-15 15:03:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106629-20130115194929.patch</filename>
            <type>text/plain</type>
            <size>13981</size>
            <attacher name="Alan Cutter">alancutter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmZjMDdlYWI3MTQyNmM4NjJjMjM2MGE0YWUwMWU1NTQw
NWM1YTI4MC4uZTZhMWQyYWMwM2QxNTU4N2Q3NDNmNWMyY2Y4Y2NlYTAwZWZlMDQxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEzLTAxLTE0ICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEV4dGVuZCBzaGVyaWZmYm90J3MgImhlbHAiIGNvbW1hbmQgdG8gYmUgYWJsZSB0
byBnZXQgaGVscCBvbiBpbmRpdmlkdWFsIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGhlbHAgY29tbWFuZCB0byBzaGVyaWZm
Ym90LgorICAgICAgICBGaXhlZCBzb21lIHN0eWxlIGlzc3VlcyBhbmQgb3JkZXJlZCB0aGUgY29t
bWFuZHMgYWxwaGFiZXRpY2FsbHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2lyY19jb21tYW5kLnB5OgorICAgICAgICAoSVJDQ29tbWFuZCk6CisgICAgICAgIChJUkND
b21tYW5kLmV4ZWN1dGUpOgorICAgICAgICAoSVJDQ29tbWFuZC51c2FnZSk6CisgICAgICAgIChJ
UkNDb21tYW5kLmhlbHApOgorICAgICAgICAoQ3JlYXRlQnVnKToKKyAgICAgICAgKENyZWF0ZUJ1
Zy5leGVjdXRlKToKKyAgICAgICAgKEhlbHApOgorICAgICAgICAoSGVscC5leGVjdXRlKToKKyAg
ICAgICAgKEhlbHAuX3Bvc3RfY29tbWFuZF9oZWxwKToKKyAgICAgICAgKEhpKToKKyAgICAgICAg
KEhpLmV4ZWN1dGUpOgorICAgICAgICAoUmVzdGFydCk6CisgICAgICAgIChSb2xsQ2hyb21pdW1E
RVBTKToKKyAgICAgICAgKFJvbGxDaHJvbWl1bURFUFMuX3BhcnNlX2FyZ3MpOgorICAgICAgICAo
Um9sbENocm9taXVtREVQUy5fZXhwYW5kX2lyY19uaWNrbmFtZSk6CisgICAgICAgIChSb2xsQ2hy
b21pdW1ERVBTLmV4ZWN1dGUpOgorICAgICAgICAoUm9sbG91dCk6CisgICAgICAgIChSb2xsb3V0
Ll9leHRyYWN0X3JldmlzaW9ucyk6CisgICAgICAgIChSb2xsb3V0LmV4ZWN1dGUpOgorICAgICAg
ICAoU2hlcmlmZnMpOgorICAgICAgICAoU2hlcmlmZnMuZXhlY3V0ZSk6CisgICAgICAgIChXaG9p
cyk6CisgICAgICAgIChXaG9pcy5leGVjdXRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weToKKyAgICAgICAgKElSQ0JvdFRlc3QudGVzdF9o
ZWxwKToKKwogMjAxMy0wMS0xNCAgVGltICdtaXRocm8nIEFuc2VsbCAgPG1pdGhyb0BtaXRoaXMu
Y29tPgogCiAgICAgICAgIEFkZGluZyBhbiBlcnJvciBzdHJpbmcgdG8gQW1iaWd1b3VzQ29tbWl0
RXJyb3IuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19j
b21tYW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZC5w
eQppbmRleCBiYzEzMmRhZTRiOTY0YjI1NTc0OGRiMjAwOWFiY2NhNmMyYTY3OTE4Li4zOTY4Yzkz
MjUxMTE4NDNhMjAzZmZiY2I4N2ZiMWRlYmIzY2ZjM2RjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKQEAgLTQ5LDE5ICs0OSwxMjggQEAgZGVm
IF9wb3N0X2Vycm9yX2FuZF9jaGVja19mb3JfYnVnX3VybCh0b29sLCBuaWNrc19zdHJpbmcsIGV4
Y2VwdGlvbik6CiAKICMgRklYTUU6IE1lcmdlIHdpdGggQ29tbWFuZD8KIGNsYXNzIElSQ0NvbW1h
bmQob2JqZWN0KToKKyAgICB1c2FnZV9zdHJpbmcgPSBOb25lCisgICAgaGVscF9zdHJpbmcgPSBO
b25lCisKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToK
KyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxl
bWVudCIpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdXNhZ2UoY2xzLCBuaWNrKToKKyAg
ICAgICAgcmV0dXJuICIlczogVXNhZ2U6ICVzIiAlIChuaWNrLCBjbHMudXNhZ2Vfc3RyaW5nKQor
CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGhlbHAoY2xzLCBuaWNrKToKKyAgICAgICAgcmV0
dXJuICIlczogJXMiICUgKG5pY2ssIGNscy5oZWxwX3N0cmluZykKKworCitjbGFzcyBDcmVhdGVC
dWcoSVJDQ29tbWFuZCk6CisgICAgdXNhZ2Vfc3RyaW5nID0gImNyZWF0ZS1idWcgQlVHX1RJVExF
IgorICAgIGhlbHBfc3RyaW5nID0gIkNyZWF0ZXMgYSBCdWd6aWxsYSBidWcgd2l0aCB0aGUgZ2l2
ZW4gdGl0bGUuIgorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hl
cmlmZik6CisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNh
Z2UobmljaykKKworICAgICAgICBidWdfdGl0bGUgPSAiICIuam9pbihhcmdzKQorICAgICAgICBi
dWdfZGVzY3JpcHRpb24gPSAiJXNcblJlcXVlc3RlZCBieSAlcyBvbiAlcy4iICUgKGJ1Z190aXRs
ZSwgbmljaywgY29uZmlnX2lyYy5jaGFubmVsKQorCisgICAgICAgICMgVGhlcmUgaGFwcGVucyB0
byBiZSBhIGNvbW1pdHRlcnMgbGlzdCBodW5nIG9mZiBvZiBCdWd6aWxsYSwgc28KKyAgICAgICAg
IyByZS11c2luZyB0aGF0IG9uZSBtYWtlcyB0aGluZ3MgZWFzaWVzdCBmb3Igbm93LgorICAgICAg
ICByZXF1ZXN0ZXIgPSB0b29sLmJ1Z3MuY29tbWl0dGVycy5jb250cmlidXRvcl9ieV9pcmNfbmlj
a25hbWUobmljaykKKyAgICAgICAgcmVxdWVzdGVyX2VtYWlsID0gcmVxdWVzdGVyLmJ1Z3ppbGxh
X2VtYWlsKCkgaWYgcmVxdWVzdGVyIGVsc2UgTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIGJ1Z19pZCA9IHRvb2wuYnVncy5jcmVhdGVfYnVnKGJ1Z190aXRsZSwgYnVnX2Rlc2NyaXB0
aW9uLCBjYz1yZXF1ZXN0ZXJfZW1haWwsIGFzc2lnbmVlPXJlcXVlc3Rlcl9lbWFpbCkKKyAgICAg
ICAgICAgIGJ1Z191cmwgPSB0b29sLmJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAg
ICAgICAgICAgIHJldHVybiAiJXM6IENyZWF0ZWQgYnVnOiAlcyIgJSAobmljaywgYnVnX3VybCkK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHJldHVybiAiJXM6IEZh
aWxlZCB0byBjcmVhdGUgYnVnOlxuJXMiICUgKG5pY2ssIGUpCisKKworY2xhc3MgSGVscChJUkND
b21tYW5kKToKKyAgICB1c2FnZV9zdHJpbmcgPSAiaGVscCBbQ09NTUFORF0iCisgICAgaGVscF9z
dHJpbmcgPSAiUHJvdmlkZXMgaGVscCBvbiBpbmRpdmlkdWFsIHNoZXJpZmZib3QgY29tbWFuZHMu
IgorCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6Ci0g
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVt
ZW50IgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgZm9yIGNvbW1hbmRfbmFtZSBpbiBh
cmdzOgorICAgICAgICAgICAgICAgIGlmIGNvbW1hbmRfbmFtZSBpbiBjb21tYW5kczoKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcG9zdF9jb21tYW5kX2hlbHAobmljaywgdG9vbCwgY29tbWFu
ZHNbY29tbWFuZF9uYW1lXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRvb2wuaXJjKCku
cG9zdCgiJXM6IEF2YWlsYWJsZSBjb21tYW5kczogJXMiICUgKG5pY2ssICIsICIuam9pbihzb3J0
ZWQodmlzaWJsZV9jb21tYW5kcy5rZXlzKCkpKSkpCisgICAgICAgICAgICB0b29sLmlyYygpLnBv
c3QoJyVzOiBUeXBlICJzaGVyaWZmYm90OiBoZWxwIENPTU1BTkQiIGZvciBoZWxwIG9uIGluZGl2
aWR1YWwgY29tbWFuZHMuJyAlIG5pY2spCisKKyAgICBkZWYgX3Bvc3RfY29tbWFuZF9oZWxwKHNl
bGYsIG5pY2ssIHRvb2wsIGNvbW1hbmQpOgorICAgICAgICB0b29sLmlyYygpLnBvc3QoY29tbWFu
ZC51c2FnZShuaWNrKSkKKyAgICAgICAgdG9vbC5pcmMoKS5wb3N0KGNvbW1hbmQuaGVscChuaWNr
KSkKKyAgICAgICAgYWxpYXNlcyA9ICIgIi5qb2luKHNvcnRlZChmaWx0ZXIobGFtYmRhIGFsaWFz
OiBjb21tYW5kc1thbGlhc10gPT0gY29tbWFuZCBhbmQgYWxpYXMgbm90IGluIHZpc2libGVfY29t
bWFuZHMsIGNvbW1hbmRzKSkpCisgICAgICAgIGlmIGFsaWFzZXM6CisgICAgICAgICAgICB0b29s
LmlyYygpLnBvc3QoIiVzOiBBbGlhc2VzOiAlcyIgJSAobmljaywgYWxpYXNlcykpCisKKworY2xh
c3MgSGkoSVJDQ29tbWFuZCk6CisgICAgdXNhZ2Vfc3RyaW5nID0gImhpIgorICAgIGhlbHBfc3Ry
aW5nID0gIlJldHJpZXZlcyBhIHJhbmRvbSBxdWlwIGZyb20gQnVnemlsbGEuIgorCisgICAgZGVm
IGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6CisgICAgICAgIHF1aXBz
ID0gdG9vbC5idWdzLnF1aXBzKCkKKyAgICAgICAgcXVpcHMuYXBwZW5kKCciT25seSB5b3UgY2Fu
IHByZXZlbnQgZm9yZXN0IGZpcmVzLiIgLS0gU21va2V5IHRoZSBCZWFyJykKKyAgICAgICAgcmV0
dXJuIHJhbmRvbS5jaG9pY2UocXVpcHMpCiAKIAogY2xhc3MgUmVzdGFydChJUkNDb21tYW5kKToK
KyAgICB1c2FnZV9zdHJpbmcgPSAicmVzdGFydCIKKyAgICBoZWxwX3N0cmluZyA9ICJSZXN0YXJ0
cyBzaGVyaWZmYm90LiIKKwogICAgIGRlZiBleGVjdXRlKHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2ws
IHNoZXJpZmYpOgogICAgICAgICB0b29sLmlyYygpLnBvc3QoIlJlc3RhcnRpbmcuLi4iKQogICAg
ICAgICByYWlzZSBUZXJtaW5hdGVRdWV1ZSgpCiAKIAorY2xhc3MgUm9sbENocm9taXVtREVQUyhJ
UkNDb21tYW5kKToKKyAgICB1c2FnZV9zdHJpbmcgPSAicm9sbC1jaHJvbWl1bS1kZXBzIFtSRVZJ
U0lPTl0iCisgICAgaGVscF9zdHJpbmcgPSAiUm9sbHMgV2ViS2l0J3MgQ2hyb21pdW0gREVQUyB0
byB0aGUgZ2l2ZW4gcmV2aXNpb24gb3IgZGVmYXVsdHMgdG8gTEtHUi4gQ3JlYXRlcyBhIHBhdGNo
IGFuZCBwcm92aWRlcyB0aGUgYnVnIFVSTC4iCisKKyAgICBkZWYgX3BhcnNlX2FyZ3Moc2VsZiwg
YXJncyk6CisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IHJldmlzaW9uID0gYXJnc1swXS5sc3RyaXAoInIiKQorICAgICAgICBpZiBub3QgcmV2aXNpb24u
aXNkaWdpdCgpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJldHVybiByZXZpc2lvbgor
CisgICAgZGVmIF9leHBhbmRfaXJjX25pY2tuYW1lKHNlbGYsIG5pY2spOgorICAgICAgICBjb250
cmlidXRvciA9IENvbW1pdHRlckxpc3QoKS5jb250cmlidXRvcl9ieV9pcmNfbmlja25hbWUobmlj
aykKKyAgICAgICAgaWYgY29udHJpYnV0b3I6CisgICAgICAgICAgICByZXR1cm4gc3RyKGNvbnRy
aWJ1dG9yKQorICAgICAgICByZXR1cm4gbmljaworCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmlj
aywgYXJncywgdG9vbCwgc2hlcmlmZik6CisgICAgICAgIHJldmlzaW9uID0gc2VsZi5fcGFyc2Vf
YXJncyhhcmdzKQorCisgICAgICAgIHJvbGxfdGFyZ2V0ID0gInIlcyIgJSByZXZpc2lvbiBpZiBy
ZXZpc2lvbiBlbHNlICJsYXN0LWtub3duIGdvb2QgcmV2aXNpb24iCisgICAgICAgIHRvb2wuaXJj
KCkucG9zdCgiJXM6IFJvbGxpbmcgQ2hyb21pdW0gREVQUyB0byAlcyIgJSAobmljaywgcm9sbF90
YXJnZXQpKQorICAgICAgICBjaGFuZ2Vsb2dfbWVzc2FnZSA9ICJVbnJldmlld2VkLiAgUm9sbGVk
IENocm9taXVtIERFUFMgdG8gJXMuICBSZXF1ZXN0ZWQgYnkgJXMgdmlhIHNoZXJpZmZib3QuXG5c
biIgJSAocm9sbF90YXJnZXQsIHNlbGYuX2V4cGFuZF9pcmNfbmlja25hbWUobmljaykpCisKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgYnVnX2lkID0gc2hlcmlmZi5wb3N0X2Nocm9taXVtX2Rl
cHNfcm9sbChyZXZpc2lvbiwgcm9sbF90YXJnZXQsIGNoYW5nZWxvZ19tZXNzYWdlKQorICAgICAg
ICAgICAgYnVnX3VybCA9IHRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQorICAg
ICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogQ3JlYXRlZCBERVBTIHJvbGw6ICVzIiAlIChu
aWNrLCBidWdfdXJsKSkKKyAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgorICAgICAgICAg
ICAgbWF0Y2ggPSByZS5zZWFyY2gociJDdXJyZW50IENocm9taXVtIERFUFMgcmV2aXNpb24gXGQr
IGlzIG5ld2VyIHRoYW4gXGQrXC4iLCBlLm91dHB1dCkKKyAgICAgICAgICAgIGlmIG1hdGNoOgor
ICAgICAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6ICVzIiAlIChuaWNrLCBtYXRjaC5n
cm91cCgwKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICB0b29sLmlyYygp
LnBvc3QoIiVzOiBGYWlsZWQgdG8gY3JlYXRlIERFUFMgcm9sbDoiICUgbmljaykKKyAgICAgICAg
ICAgIF9wb3N0X2Vycm9yX2FuZF9jaGVja19mb3JfYnVnX3VybCh0b29sLCBuaWNrLCBlKQorCisK
IGNsYXNzIFJvbGxvdXQoSVJDQ29tbWFuZCk6Ci0gICAgZGVmIF9leHRyYWN0X3JldmlzaW9ucyhz
ZWxmLCBhcmcpOgorICAgIHVzYWdlX3N0cmluZyA9ICJyb2xsb3V0IFNWTl9SRVZJU0lPTiBbU1ZO
X1JFVklTSU9OU10gUkVBU09OIgorICAgIGhlbHBfc3RyaW5nID0gIkNyZWF0ZXMgYSBwYXRjaCBm
b3IgdGhlIHJldmVyc2UgZGlmZiBvZiB0aGUgZ2l2ZW4gcmV2aXNpb24ocykgYW5kIGZsYWdzIGl0
IGFzIGNvbW1pdC1xdWV1ZT8uIgogCisgICAgZGVmIF9leHRyYWN0X3JldmlzaW9ucyhzZWxmLCBh
cmcpOgogICAgICAgICByZXZpc2lvbl9saXN0ID0gW10KICAgICAgICAgcG9zc2libGVfcmV2aXNp
b25zID0gYXJnLnNwbGl0KCIsIikKICAgICAgICAgZm9yIHJldmlzaW9uIGluIHBvc3NpYmxlX3Jl
dmlzaW9uczoKQEAgLTExOCw4ICsyMjcsNyBAQCBjbGFzcyBSb2xsb3V0KElSQ0NvbW1hbmQpOgog
ICAgICAgICBzdm5fcmV2aXNpb25fbGlzdCwgcm9sbG91dF9yZWFzb24gPSBzZWxmLl9wYXJzZV9h
cmdzKGFyZ3MpCiAKICAgICAgICAgaWYgKG5vdCBzdm5fcmV2aXNpb25fbGlzdCBvciBub3Qgcm9s
bG91dF9yZWFzb24pOgotICAgICAgICAgICAgIyByZXR1cm4gaXMgZXF1aXZhbGVudCB0byBhbiBp
cmMoKS5wb3N0KCksIGJ1dCBtYWtlcyBmb3IgZWFzaWVyIHVuaXQgdGVzdGluZy4KLSAgICAgICAg
ICAgIHJldHVybiAiJXM6IFVzYWdlOiByb2xsb3V0IFNWTl9SRVZJU0lPTiBbU1ZOX1JFVklTSU9O
U10gUkVBU09OIiAlIG5pY2sKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnVzYWdlKG5pY2spCiAK
ICAgICAgICAgcmV2aXNpb25fdXJsc19zdHJpbmcgPSBqb2luX3dpdGhfc2VwYXJhdG9ycyhbdXJs
cy52aWV3X3JldmlzaW9uX3VybChyZXZpc2lvbikgZm9yIHJldmlzaW9uIGluIHN2bl9yZXZpc2lv
bl9saXN0XSkKICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogUHJlcGFyaW5nIHJvbGxvdXQg
Zm9yICVzIC4uLiIgJSAobmljaywgcmV2aXNpb25fdXJsc19zdHJpbmcpKQpAQCAtMTQyLDYgKzI1
MCw5IEBAIGNsYXNzIFJvbGxvdXQoSVJDQ29tbWFuZCk6CiAKIAogY2xhc3MgU2hlcmlmZnMoSVJD
Q29tbWFuZCk6CisgICAgdXNhZ2Vfc3RyaW5nID0gInNoZXJpZmZzIgorICAgIGhlbHBfc3RyaW5n
ID0gIlJldHJpZXZlcyB3aG8gdGhlIGN1cnJlbnQgQ2hyb21pdW0gV2ViS2l0IHNoZXJpZmZzIGFy
ZSBmcm9tOiAlcyIgJSB1cmxzLmNocm9taXVtX3dlYmtpdF9zaGVyaWZmX3VybAorCiAgICAgZGVm
IF9yZXRyaWV2ZV93ZWJraXRfc2hlcmlmZnMoc2VsZiwgdXJsKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2hlcmlmZl9qcyA9IFdlYigpLmdldF9iaW5hcnkodXJsLCBUcnVlKQpAQCAtMTc2
LDU0ICsyODcsMTAgQEAgY2xhc3MgU2hlcmlmZnMoSVJDQ29tbWFuZCk6CiAgICAgICAgIHJldHVy
biAiJXM6IFRoZSBjdXJyZW50ICVzcyBhcmU6ICVzIiAlIChuaWNrLCBzaGVyaWZmX25hbWUsIHNo
ZXJpZmZzKQogCiAKLWNsYXNzIFJvbGxDaHJvbWl1bURFUFMoSVJDQ29tbWFuZCk6Ci0gICAgZGVm
IF9wYXJzZV9hcmdzKHNlbGYsIGFyZ3MpOgotICAgICAgICBpZiBub3QgYXJnczoKLSAgICAgICAg
ICAgIHJldHVybgotICAgICAgICByZXZpc2lvbiA9IGFyZ3NbMF0ubHN0cmlwKCJyIikKLSAgICAg
ICAgaWYgbm90IHJldmlzaW9uLmlzZGlnaXQoKToKLSAgICAgICAgICAgIHJldHVybgotICAgICAg
ICByZXR1cm4gcmV2aXNpb24KLQotICAgIGRlZiBfZXhwYW5kX2lyY19uaWNrbmFtZShzZWxmLCBu
aWNrKToKLSAgICAgICAgY29udHJpYnV0b3IgPSBDb21taXR0ZXJMaXN0KCkuY29udHJpYnV0b3Jf
YnlfaXJjX25pY2tuYW1lKG5pY2spCi0gICAgICAgIGlmIGNvbnRyaWJ1dG9yOgotICAgICAgICAg
ICAgcmV0dXJuIHN0cihjb250cmlidXRvcikKLSAgICAgICAgcmV0dXJuIG5pY2sKLQotICAgIGRl
ZiBleGVjdXRlKHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2wsIHNoZXJpZmYpOgotICAgICAgICByZXZp
c2lvbiA9IHNlbGYuX3BhcnNlX2FyZ3MoYXJncykKLQotICAgICAgICByb2xsX3RhcmdldCA9ICJy
JXMiICUgcmV2aXNpb24gaWYgcmV2aXNpb24gZWxzZSAibGFzdC1rbm93biBnb29kIHJldmlzaW9u
IgotICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiBSb2xsaW5nIENocm9taXVtIERFUFMgdG8g
JXMiICUgKG5pY2ssIHJvbGxfdGFyZ2V0KSkKLSAgICAgICAgY2hhbmdlbG9nX21lc3NhZ2UgPSAi
VW5yZXZpZXdlZC4gIFJvbGxlZCBDaHJvbWl1bSBERVBTIHRvICVzLiAgUmVxdWVzdGVkIGJ5ICVz
IHZpYSBzaGVyaWZmYm90LlxuXG4iICUgKHJvbGxfdGFyZ2V0LCBzZWxmLl9leHBhbmRfaXJjX25p
Y2tuYW1lKG5pY2spKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGJ1Z19pZCA9IHNoZXJp
ZmYucG9zdF9jaHJvbWl1bV9kZXBzX3JvbGwocmV2aXNpb24sIHJvbGxfdGFyZ2V0LCBjaGFuZ2Vs
b2dfbWVzc2FnZSkKLSAgICAgICAgICAgIGJ1Z191cmwgPSB0b29sLmJ1Z3MuYnVnX3VybF9mb3Jf
YnVnX2lkKGJ1Z19pZCkKLSAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6IENyZWF0ZWQg
REVQUyByb2xsOiAlcyIgJSAobmljaywgYnVnX3VybCkpCi0gICAgICAgIGV4Y2VwdCBTY3JpcHRF
cnJvciwgZToKLSAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHIiQ3VycmVudCBDaHJvbWl1
bSBERVBTIHJldmlzaW9uIFxkKyBpcyBuZXdlciB0aGFuIFxkK1wuIiwgZS5vdXRwdXQpCi0gICAg
ICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiAl
cyIgJSAobmljaywgbWF0Y2guZ3JvdXAoMCkpKQotICAgICAgICAgICAgICAgIHJldHVybgotICAg
ICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogRmFpbGVkIHRvIGNyZWF0ZSBERVBTIHJvbGw6
IiAlIG5pY2spCi0gICAgICAgICAgICBfcG9zdF9lcnJvcl9hbmRfY2hlY2tfZm9yX2J1Z191cmwo
dG9vbCwgbmljaywgZSkKLQotCi1jbGFzcyBIZWxwKElSQ0NvbW1hbmQpOgotICAgIGRlZiBleGVj
dXRlKHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2wsIHNoZXJpZmYpOgotICAgICAgICByZXR1cm4gIiVz
OiBBdmFpbGFibGUgY29tbWFuZHM6ICVzIiAlIChuaWNrLCAiLCAiLmpvaW4oc29ydGVkKHZpc2li
bGVfY29tbWFuZHMua2V5cygpKSkpCi0KLQotY2xhc3MgSGkoSVJDQ29tbWFuZCk6Ci0gICAgZGVm
IGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6Ci0gICAgICAgIHF1aXBz
ID0gdG9vbC5idWdzLnF1aXBzKCkKLSAgICAgICAgcXVpcHMuYXBwZW5kKCciT25seSB5b3UgY2Fu
IHByZXZlbnQgZm9yZXN0IGZpcmVzLiIgLS0gU21va2V5IHRoZSBCZWFyJykKLSAgICAgICAgcmV0
dXJuIHJhbmRvbS5jaG9pY2UocXVpcHMpCi0KLQogY2xhc3MgV2hvaXMoSVJDQ29tbWFuZCk6Cisg
ICAgdXNhZ2Vfc3RyaW5nID0gIndob2lzIFNFQVJDSF9TVFJJTkciCisgICAgaGVscF9zdHJpbmcg
PSAiU2VhcmNoZXMgdGhlIGtub3duIGNvbnRyaWJ1dG9ycy9jb21taXR0ZXJzL3Jldmlld2VycyBm
b3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLiIKKwogICAgIGRlZiBfbmlja19v
cl9mdWxsX3JlY29yZChzZWxmLCBjb250cmlidXRvcik6CiAgICAgICAgIGlmIGNvbnRyaWJ1dG9y
LmlyY19uaWNrbmFtZXM6CiAgICAgICAgICAgICByZXR1cm4gJywgJy5qb2luKGNvbnRyaWJ1dG9y
LmlyY19uaWNrbmFtZXMpCkBAIC0yMzEsNyArMjk4LDcgQEAgY2xhc3MgV2hvaXMoSVJDQ29tbWFu
ZCk6CiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToK
ICAgICAgICAgaWYgbGVuKGFyZ3MpICE9IDE6Ci0gICAgICAgICAgICByZXR1cm4gIiVzOiBVc2Fn
ZTogd2hvaXMgU0VBUkNIX1NUUklORyIgJSBuaWNrCisgICAgICAgICAgICByZXR1cm4gc2VsZi51
c2FnZShuaWNrKQogICAgICAgICBzZWFyY2hfc3RyaW5nID0gYXJnc1swXQogICAgICAgICAjIEZJ
WE1FOiBXZSBzaG91bGQgZ2V0IHRoZSBDb250cmlidXRvckxpc3Qgb2ZmIHRoZSB0b29sIHNvbWV3
aGVyZS4KICAgICAgICAgY29udHJpYnV0b3JzID0gQ29tbWl0dGVyTGlzdCgpLmNvbnRyaWJ1dG9y
c19ieV9zZWFyY2hfc3RyaW5nKHNlYXJjaF9zdHJpbmcpCkBAIC0yNTMsMzcgKzMyMCwxNiBAQCBj
bGFzcyBXaG9pcyhJUkNDb21tYW5kKToKICAgICAgICAgcmV0dXJuICIlczogSSdtIG5vdCBzdXJl
IHdobyB5b3UgbWVhbj8gICVzIGNvdWxkIGJlICclcycuIiAlIChuaWNrLCBjb250cmlidXRvcnNf
c3RyaW5nLCBzZWFyY2hfc3RyaW5nKQogCiAKLWNsYXNzIENyZWF0ZUJ1ZyhJUkNDb21tYW5kKToK
LSAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToKLSAgICAg
ICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICByZXR1cm4gIiVzOiBVc2FnZTogY3JlYXRlLWJ1
ZyBCVUdfVElUTEUiICUgbmljawotCi0gICAgICAgIGJ1Z190aXRsZSA9ICIgIi5qb2luKGFyZ3Mp
Ci0gICAgICAgIGJ1Z19kZXNjcmlwdGlvbiA9ICIlc1xuUmVxdWVzdGVkIGJ5ICVzIG9uICVzLiIg
JSAoYnVnX3RpdGxlLCBuaWNrLCBjb25maWdfaXJjLmNoYW5uZWwpCi0KLSAgICAgICAgIyBUaGVy
ZSBoYXBwZW5zIHRvIGJlIGEgY29tbWl0dGVycyBsaXN0IGh1bmcgb2ZmIG9mIEJ1Z3ppbGxhLCBz
bwotICAgICAgICAjIHJlLXVzaW5nIHRoYXQgb25lIG1ha2VzIHRoaW5ncyBlYXNpZXN0IGZvciBu
b3cuCi0gICAgICAgIHJlcXVlc3RlciA9IHRvb2wuYnVncy5jb21taXR0ZXJzLmNvbnRyaWJ1dG9y
X2J5X2lyY19uaWNrbmFtZShuaWNrKQotICAgICAgICByZXF1ZXN0ZXJfZW1haWwgPSByZXF1ZXN0
ZXIuYnVnemlsbGFfZW1haWwoKSBpZiByZXF1ZXN0ZXIgZWxzZSBOb25lCi0KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgYnVnX2lkID0gdG9vbC5idWdzLmNyZWF0ZV9idWcoYnVnX3RpdGxlLCBi
dWdfZGVzY3JpcHRpb24sIGNjPXJlcXVlc3Rlcl9lbWFpbCwgYXNzaWduZWU9cmVxdWVzdGVyX2Vt
YWlsKQotICAgICAgICAgICAgYnVnX3VybCA9IHRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQo
YnVnX2lkKQotICAgICAgICAgICAgcmV0dXJuICIlczogQ3JlYXRlZCBidWc6ICVzIiAlIChuaWNr
LCBidWdfdXJsKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmV0
dXJuICIlczogRmFpbGVkIHRvIGNyZWF0ZSBidWc6XG4lcyIgJSAobmljaywgZSkKLQotCiAjIEZJ
WE1FOiBMYW1lLiAgV2Ugc2hvdWxkIGhhdmUgYW4gYXV0by1yZWdpc3RlcmluZyBDb21tYW5kQ2Vu
dGVyLgogdmlzaWJsZV9jb21tYW5kcyA9IHsKKyAgICAiY3JlYXRlLWJ1ZyI6IENyZWF0ZUJ1ZywK
ICAgICAiaGVscCI6IEhlbHAsCiAgICAgImhpIjogSGksCiAgICAgInJlc3RhcnQiOiBSZXN0YXJ0
LAorICAgICJyb2xsLWNocm9taXVtLWRlcHMiOiBSb2xsQ2hyb21pdW1ERVBTLAogICAgICJyb2xs
b3V0IjogUm9sbG91dCwKICAgICAic2hlcmlmZnMiOiBTaGVyaWZmcywKICAgICAid2hvaXMiOiBX
aG9pcywKLSAgICAiY3JlYXRlLWJ1ZyI6IENyZWF0ZUJ1ZywKLSAgICAicm9sbC1jaHJvbWl1bS1k
ZXBzIjogUm9sbENocm9taXVtREVQUywKIH0KIAogIyBBZGQgcmV2ZXJ0IGFzIGFuICJlYXN0ZXIg
ZWdnIiBjb21tYW5kLiBXaHk/CkBAIC0yOTcsMyArMzQzLDUgQEAgY29tbWFuZHNbImdhcmRlbmVy
cyJdID0gU2hlcmlmZnMKIGNvbW1hbmRzWyJzaGVycmlmZnMiXSA9IFNoZXJpZmZzCiBjb21tYW5k
c1sic2hlcmlmcyJdID0gU2hlcmlmZnMKIGNvbW1hbmRzWyJzaGVycmlmcyJdID0gU2hlcmlmZnMK
KyMgImhlbGxvIiBBbGlhcyBmb3IgImhpIiBjb21tYW5kIGZvciB0aGUgcHVycG9zZXMgb2YgdGVz
dGluZyBhbGlhc2VzCitjb21tYW5kc1siaGVsbG8iXSA9IEhpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjYm90X3VuaXR0ZXN0LnB5CmluZGV4IDE2YTNjZDc1ZjZm
YzViZDAyMzhjMjA5ZDgwY2RmZGEwM2UwZjc2YzEuLmM3OGViODBlNzZjODE2MWNmNDc3ZDlmN2U0
NzljNmM4NmZiZDRkYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvaXJjYm90X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvaXJjYm90X3VuaXR0ZXN0LnB5CkBAIC04OCw4ICs4OCwxMSBAQCBjbGFzcyBJUkNCb3RUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRw
dXRzKHNlbGYsIHJ1biwgYXJncz1bImhpIl0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
IAogICAgIGRlZiB0ZXN0X2hlbHAoc2VsZik6Ci0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiTU9D
SzogaXJjLnBvc3Q6IG1vY2tfbmljazogQXZhaWxhYmxlIGNvbW1hbmRzOiBjcmVhdGUtYnVnLCBo
ZWxwLCBoaSwgcmVzdGFydCwgcm9sbC1jaHJvbWl1bS1kZXBzLCByb2xsb3V0LCBzaGVyaWZmcywg
d2hvaXNcbiIKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICdNT0NLOiBpcmMucG9zdDogbW9ja19u
aWNrOiBBdmFpbGFibGUgY29tbWFuZHM6IGNyZWF0ZS1idWcsIGhlbHAsIGhpLCByZXN0YXJ0LCBy
b2xsLWNocm9taXVtLWRlcHMsIHJvbGxvdXQsIHNoZXJpZmZzLCB3aG9pc1xuTU9DSzogaXJjLnBv
c3Q6IG1vY2tfbmljazogVHlwZSAic2hlcmlmZmJvdDogaGVscCBDT01NQU5EIiBmb3IgaGVscCBv
biBpbmRpdmlkdWFsIGNvbW1hbmRzLlxuJwogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgcnVuLCBhcmdzPVsiaGVscCJdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAnTU9DSzogaXJjLnBvc3Q6IG1vY2tfbmlj
azogVXNhZ2U6IGhpXG5NT0NLOiBpcmMucG9zdDogbW9ja19uaWNrOiBSZXRyaWV2ZXMgYSByYW5k
b20gcXVpcCBmcm9tIEJ1Z3ppbGxhLlxuTU9DSzogaXJjLnBvc3Q6IG1vY2tfbmljazogQWxpYXNl
czogaGVsbG9cbicKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IHJ1biwgYXJncz1bImhlbHAgaGkiXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcnVuLCBhcmdzPVsiaGVs
cCBoZWxsbyJdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9y
ZXN0YXJ0KHNlbGYpOgogICAgICAgICBleHBlY3RlZF9sb2dzID0gIk1PQ0s6IGlyYy5wb3N0OiBS
ZXN0YXJ0aW5nLi4uXG4iCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182851</attachid>
            <date>2013-01-15 15:03:19 -0800</date>
            <delta_ts>2013-01-15 16:03:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106629-20130116100020.patch</filename>
            <type>text/plain</type>
            <size>14111</size>
            <attacher name="Alan Cutter">alancutter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Nzk1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmMzMzEyNjJhMzAwYzhjNWQzNTNiMWU0Yzg2Y2RjYTVj
MTAwZDk0NC4uOTZhNjI0ZmZhZTMzZmM1MWRjY2JlMWJmNGRjNWYwMjUyOWZhNTNiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEzLTAxLTE1ICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEV4dGVuZCBzaGVyaWZmYm90J3MgImhlbHAiIGNvbW1hbmQgdG8gYmUgYWJsZSB0
byBnZXQgaGVscCBvbiBpbmRpdmlkdWFsIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGhlbHAgY29tbWFuZCB0byBzaGVyaWZm
Ym90LgorICAgICAgICBGaXhlZCBzb21lIHN0eWxlIGlzc3VlcyBhbmQgb3JkZXJlZCB0aGUgY29t
bWFuZHMgYWxwaGFiZXRpY2FsbHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2lyY19jb21tYW5kLnB5OgorICAgICAgICAoSVJDQ29tbWFuZCk6CisgICAgICAgIChJUkND
b21tYW5kLmV4ZWN1dGUpOgorICAgICAgICAoSVJDQ29tbWFuZC51c2FnZSk6CisgICAgICAgIChJ
UkNDb21tYW5kLmhlbHApOgorICAgICAgICAoQ3JlYXRlQnVnKToKKyAgICAgICAgKENyZWF0ZUJ1
Zy5leGVjdXRlKToKKyAgICAgICAgKEhlbHApOgorICAgICAgICAoSGVscC5leGVjdXRlKToKKyAg
ICAgICAgKEhlbHAuX3Bvc3RfY29tbWFuZF9oZWxwKToKKyAgICAgICAgKEhpKToKKyAgICAgICAg
KEhpLmV4ZWN1dGUpOgorICAgICAgICAoUmVzdGFydCk6CisgICAgICAgIChSb2xsQ2hyb21pdW1E
RVBTKToKKyAgICAgICAgKFJvbGxDaHJvbWl1bURFUFMuX3BhcnNlX2FyZ3MpOgorICAgICAgICAo
Um9sbENocm9taXVtREVQUy5fZXhwYW5kX2lyY19uaWNrbmFtZSk6CisgICAgICAgIChSb2xsQ2hy
b21pdW1ERVBTLmV4ZWN1dGUpOgorICAgICAgICAoUm9sbG91dCk6CisgICAgICAgIChSb2xsb3V0
Ll9leHRyYWN0X3JldmlzaW9ucyk6CisgICAgICAgIChSb2xsb3V0LmV4ZWN1dGUpOgorICAgICAg
ICAoU2hlcmlmZnMpOgorICAgICAgICAoU2hlcmlmZnMuZXhlY3V0ZSk6CisgICAgICAgIChXaG9p
cyk6CisgICAgICAgIChXaG9pcy5leGVjdXRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weToKKyAgICAgICAgKElSQ0JvdFRlc3QudGVzdF9o
ZWxwKToKKwogMjAxMy0wMS0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSByb3V0ZSBtb3JlIHdlYmtpdF9zdXBwb3J0IGFuZCB3ZWJ2
aWV3aG9zdCBjYWxsYmFja3MgdGhyb3VnaCBXZWJUZXN0RGVsZWdhdGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CmluZGV4IDE3YTNjMjNiNjU3YzE5
ZTQyMzIwZmRlNzc3ZWNhN2ViNTA2ZDMyMmIuLmJjNzVlMDg4YjllOTk3MzU5ODQ4MGEwOTY3OTY5
ZjAyZTFlMmJkNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
aXJjX2NvbW1hbmQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNf
Y29tbWFuZC5weQpAQCAtNDksMTkgKzQ5LDEyOCBAQCBkZWYgX3Bvc3RfZXJyb3JfYW5kX2NoZWNr
X2Zvcl9idWdfdXJsKHRvb2wsIG5pY2tzX3N0cmluZywgZXhjZXB0aW9uKToKIAogIyBGSVhNRTog
TWVyZ2Ugd2l0aCBDb21tYW5kPwogY2xhc3MgSVJDQ29tbWFuZChvYmplY3QpOgorICAgIHVzYWdl
X3N0cmluZyA9IE5vbmUKKyAgICBoZWxwX3N0cmluZyA9IE5vbmUKKworICAgIGRlZiBleGVjdXRl
KHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2wsIHNoZXJpZmYpOgorICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiB1c2FnZShjbHMsIG5pY2spOgorICAgICAgICByZXR1cm4gIiVzOiBVc2Fn
ZTogJXMiICUgKG5pY2ssIGNscy51c2FnZV9zdHJpbmcpCisKKyAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgaGVscChjbHMsIG5pY2spOgorICAgICAgICByZXR1cm4gIiVzOiAlcyIgJSAobmljaywg
Y2xzLmhlbHBfc3RyaW5nKQorCisKK2NsYXNzIENyZWF0ZUJ1ZyhJUkNDb21tYW5kKToKKyAgICB1
c2FnZV9zdHJpbmcgPSAiY3JlYXRlLWJ1ZyBCVUdfVElUTEUiCisgICAgaGVscF9zdHJpbmcgPSAi
Q3JlYXRlcyBhIEJ1Z3ppbGxhIGJ1ZyB3aXRoIHRoZSBnaXZlbiB0aXRsZS4iCisKKyAgICBkZWYg
ZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToKKyAgICAgICAgaWYgbm90
IGFyZ3M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi51c2FnZShuaWNrKQorCisgICAgICAgIGJ1
Z190aXRsZSA9ICIgIi5qb2luKGFyZ3MpCisgICAgICAgIGJ1Z19kZXNjcmlwdGlvbiA9ICIlc1xu
UmVxdWVzdGVkIGJ5ICVzIG9uICVzLiIgJSAoYnVnX3RpdGxlLCBuaWNrLCBjb25maWdfaXJjLmNo
YW5uZWwpCisKKyAgICAgICAgIyBUaGVyZSBoYXBwZW5zIHRvIGJlIGEgY29tbWl0dGVycyBsaXN0
IGh1bmcgb2ZmIG9mIEJ1Z3ppbGxhLCBzbworICAgICAgICAjIHJlLXVzaW5nIHRoYXQgb25lIG1h
a2VzIHRoaW5ncyBlYXNpZXN0IGZvciBub3cuCisgICAgICAgIHJlcXVlc3RlciA9IHRvb2wuYnVn
cy5jb21taXR0ZXJzLmNvbnRyaWJ1dG9yX2J5X2lyY19uaWNrbmFtZShuaWNrKQorICAgICAgICBy
ZXF1ZXN0ZXJfZW1haWwgPSByZXF1ZXN0ZXIuYnVnemlsbGFfZW1haWwoKSBpZiByZXF1ZXN0ZXIg
ZWxzZSBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYnVnX2lkID0gdG9vbC5idWdz
LmNyZWF0ZV9idWcoYnVnX3RpdGxlLCBidWdfZGVzY3JpcHRpb24sIGNjPXJlcXVlc3Rlcl9lbWFp
bCwgYXNzaWduZWU9cmVxdWVzdGVyX2VtYWlsKQorICAgICAgICAgICAgYnVnX3VybCA9IHRvb2wu
YnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQorICAgICAgICAgICAgcmV0dXJuICIlczog
Q3JlYXRlZCBidWc6ICVzIiAlIChuaWNrLCBidWdfdXJsKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uLCBlOgorICAgICAgICAgICAgcmV0dXJuICIlczogRmFpbGVkIHRvIGNyZWF0ZSBidWc6XG4l
cyIgJSAobmljaywgZSkKKworCitjbGFzcyBIZWxwKElSQ0NvbW1hbmQpOgorICAgIHVzYWdlX3N0
cmluZyA9ICJoZWxwIFtDT01NQU5EXSIKKyAgICBoZWxwX3N0cmluZyA9ICJQcm92aWRlcyBoZWxw
IG9uIGluZGl2aWR1YWwgc2hlcmlmZmJvdCBjb21tYW5kcy4iCisKICAgICBkZWYgZXhlY3V0ZShz
ZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZmKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCisgICAgICAgIGlmIGFyZ3M6
CisgICAgICAgICAgICBmb3IgY29tbWFuZF9uYW1lIGluIGFyZ3M6CisgICAgICAgICAgICAgICAg
aWYgY29tbWFuZF9uYW1lIGluIGNvbW1hbmRzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9w
b3N0X2NvbW1hbmRfaGVscChuaWNrLCB0b29sLCBjb21tYW5kc1tjb21tYW5kX25hbWVdKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczogQXZhaWxhYmxlIGNv
bW1hbmRzOiAlcyIgJSAobmljaywgIiwgIi5qb2luKHNvcnRlZCh2aXNpYmxlX2NvbW1hbmRzLmtl
eXMoKSkpKSkKKyAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgnJXM6IFR5cGUgInNoZXJpZmZi
b3Q6IGhlbHAgQ09NTUFORCIgZm9yIGhlbHAgb24gaW5kaXZpZHVhbCBjb21tYW5kcy4nICUgbmlj
aykKKworICAgIGRlZiBfcG9zdF9jb21tYW5kX2hlbHAoc2VsZiwgbmljaywgdG9vbCwgY29tbWFu
ZCk6CisgICAgICAgIHRvb2wuaXJjKCkucG9zdChjb21tYW5kLnVzYWdlKG5pY2spKQorICAgICAg
ICB0b29sLmlyYygpLnBvc3QoY29tbWFuZC5oZWxwKG5pY2spKQorICAgICAgICBhbGlhc2VzID0g
IiAiLmpvaW4oc29ydGVkKGZpbHRlcihsYW1iZGEgYWxpYXM6IGNvbW1hbmRzW2FsaWFzXSA9PSBj
b21tYW5kIGFuZCBhbGlhcyBub3QgaW4gdmlzaWJsZV9jb21tYW5kcywgY29tbWFuZHMpKSkKKyAg
ICAgICAgaWYgYWxpYXNlczoKKyAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6IEFsaWFz
ZXM6ICVzIiAlIChuaWNrLCBhbGlhc2VzKSkKKworCitjbGFzcyBIaShJUkNDb21tYW5kKToKKyAg
ICB1c2FnZV9zdHJpbmcgPSAiaGkiCisgICAgaGVscF9zdHJpbmcgPSAiUmV0cmlldmVzIGEgcmFu
ZG9tIHF1aXAgZnJvbSBCdWd6aWxsYS4iCisKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBh
cmdzLCB0b29sLCBzaGVyaWZmKToKKyAgICAgICAgcXVpcHMgPSB0b29sLmJ1Z3MucXVpcHMoKQor
ICAgICAgICBxdWlwcy5hcHBlbmQoJyJPbmx5IHlvdSBjYW4gcHJldmVudCBmb3Jlc3QgZmlyZXMu
IiAtLSBTbW9rZXkgdGhlIEJlYXInKQorICAgICAgICByZXR1cm4gcmFuZG9tLmNob2ljZShxdWlw
cykKIAogCiBjbGFzcyBSZXN0YXJ0KElSQ0NvbW1hbmQpOgorICAgIHVzYWdlX3N0cmluZyA9ICJy
ZXN0YXJ0IgorICAgIGhlbHBfc3RyaW5nID0gIlJlc3RhcnRzIHNoZXJyaWZib3QuICBXaWxsIHVw
ZGF0ZSBpdHMgV2ViS2l0IGNoZWNrb3V0LCBhbmQgcmUtam9pbiB0aGUgY2hhbm5lbCBtb21lbnRh
cmlseS4iCisKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVyaWZm
KToKICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCJSZXN0YXJ0aW5nLi4uIikKICAgICAgICAgcmFp
c2UgVGVybWluYXRlUXVldWUoKQogCiAKK2NsYXNzIFJvbGxDaHJvbWl1bURFUFMoSVJDQ29tbWFu
ZCk6CisgICAgdXNhZ2Vfc3RyaW5nID0gInJvbGwtY2hyb21pdW0tZGVwcyBbUkVWSVNJT05dIgor
ICAgIGhlbHBfc3RyaW5nID0gIlJvbGxzIFdlYktpdCdzIENocm9taXVtIERFUFMgdG8gdGhlIGdp
dmVuIHJldmlzaW9uIG9yIGRlZmF1bHRzIHRvIExLR1IuIENyZWF0ZXMgYSBwYXRjaCBhbmQgcHJv
dmlkZXMgdGhlIGJ1ZyBVUkwuIgorCisgICAgZGVmIF9wYXJzZV9hcmdzKHNlbGYsIGFyZ3MpOgor
ICAgICAgICBpZiBub3QgYXJnczoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICByZXZpc2lv
biA9IGFyZ3NbMF0ubHN0cmlwKCJyIikKKyAgICAgICAgaWYgbm90IHJldmlzaW9uLmlzZGlnaXQo
KToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICByZXR1cm4gcmV2aXNpb24KKworICAgIGRl
ZiBfZXhwYW5kX2lyY19uaWNrbmFtZShzZWxmLCBuaWNrKToKKyAgICAgICAgY29udHJpYnV0b3Ig
PSBDb21taXR0ZXJMaXN0KCkuY29udHJpYnV0b3JfYnlfaXJjX25pY2tuYW1lKG5pY2spCisgICAg
ICAgIGlmIGNvbnRyaWJ1dG9yOgorICAgICAgICAgICAgcmV0dXJuIHN0cihjb250cmlidXRvcikK
KyAgICAgICAgcmV0dXJuIG5pY2sKKworICAgIGRlZiBleGVjdXRlKHNlbGYsIG5pY2ssIGFyZ3Ms
IHRvb2wsIHNoZXJpZmYpOgorICAgICAgICByZXZpc2lvbiA9IHNlbGYuX3BhcnNlX2FyZ3MoYXJn
cykKKworICAgICAgICByb2xsX3RhcmdldCA9ICJyJXMiICUgcmV2aXNpb24gaWYgcmV2aXNpb24g
ZWxzZSAibGFzdC1rbm93biBnb29kIHJldmlzaW9uIgorICAgICAgICB0b29sLmlyYygpLnBvc3Qo
IiVzOiBSb2xsaW5nIENocm9taXVtIERFUFMgdG8gJXMiICUgKG5pY2ssIHJvbGxfdGFyZ2V0KSkK
KyAgICAgICAgY2hhbmdlbG9nX21lc3NhZ2UgPSAiVW5yZXZpZXdlZC4gIFJvbGxlZCBDaHJvbWl1
bSBERVBTIHRvICVzLiAgUmVxdWVzdGVkIGJ5ICVzIHZpYSBzaGVyaWZmYm90LlxuXG4iICUgKHJv
bGxfdGFyZ2V0LCBzZWxmLl9leHBhbmRfaXJjX25pY2tuYW1lKG5pY2spKQorCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGJ1Z19pZCA9IHNoZXJpZmYucG9zdF9jaHJvbWl1bV9kZXBzX3JvbGwo
cmV2aXNpb24sIHJvbGxfdGFyZ2V0LCBjaGFuZ2Vsb2dfbWVzc2FnZSkKKyAgICAgICAgICAgIGJ1
Z191cmwgPSB0b29sLmJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAgICAgICAgICAg
IHRvb2wuaXJjKCkucG9zdCgiJXM6IENyZWF0ZWQgREVQUyByb2xsOiAlcyIgJSAobmljaywgYnVn
X3VybCkpCisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgIG1hdGNo
ID0gcmUuc2VhcmNoKHIiQ3VycmVudCBDaHJvbWl1bSBERVBTIHJldmlzaW9uIFxkKyBpcyBuZXdl
ciB0aGFuIFxkK1wuIiwgZS5vdXRwdXQpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICB0b29sLmlyYygpLnBvc3QoIiVzOiAlcyIgJSAobmljaywgbWF0Y2guZ3JvdXAoMCkp
KQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIl
czogRmFpbGVkIHRvIGNyZWF0ZSBERVBTIHJvbGw6IiAlIG5pY2spCisgICAgICAgICAgICBfcG9z
dF9lcnJvcl9hbmRfY2hlY2tfZm9yX2J1Z191cmwodG9vbCwgbmljaywgZSkKKworCiBjbGFzcyBS
b2xsb3V0KElSQ0NvbW1hbmQpOgotICAgIGRlZiBfZXh0cmFjdF9yZXZpc2lvbnMoc2VsZiwgYXJn
KToKKyAgICB1c2FnZV9zdHJpbmcgPSAicm9sbG91dCBTVk5fUkVWSVNJT04gW1NWTl9SRVZJU0lP
TlNdIFJFQVNPTiIKKyAgICBoZWxwX3N0cmluZyA9ICJPcGVucyBhIHJvbGxvdXQgYnVnLCBDQ2lu
ZyBhdXRob3IgKyByZXZpZXdlciwgYW5kIGF0dGFjaGluZyB0aGUgcmV2ZXJzZS1kaWZmIG9mIHRo
ZSBnaXZlbiByZXZpc2lvbnMgbWFya2VkIGFzIGNvbW1pdC1xdWV1ZT0/LiIKIAorICAgIGRlZiBf
ZXh0cmFjdF9yZXZpc2lvbnMoc2VsZiwgYXJnKToKICAgICAgICAgcmV2aXNpb25fbGlzdCA9IFtd
CiAgICAgICAgIHBvc3NpYmxlX3JldmlzaW9ucyA9IGFyZy5zcGxpdCgiLCIpCiAgICAgICAgIGZv
ciByZXZpc2lvbiBpbiBwb3NzaWJsZV9yZXZpc2lvbnM6CkBAIC0xMTgsOCArMjI3LDcgQEAgY2xh
c3MgUm9sbG91dChJUkNDb21tYW5kKToKICAgICAgICAgc3ZuX3JldmlzaW9uX2xpc3QsIHJvbGxv
dXRfcmVhc29uID0gc2VsZi5fcGFyc2VfYXJncyhhcmdzKQogCiAgICAgICAgIGlmIChub3Qgc3Zu
X3JldmlzaW9uX2xpc3Qgb3Igbm90IHJvbGxvdXRfcmVhc29uKToKLSAgICAgICAgICAgICMgcmV0
dXJuIGlzIGVxdWl2YWxlbnQgdG8gYW4gaXJjKCkucG9zdCgpLCBidXQgbWFrZXMgZm9yIGVhc2ll
ciB1bml0IHRlc3RpbmcuCi0gICAgICAgICAgICByZXR1cm4gIiVzOiBVc2FnZTogcm9sbG91dCBT
Vk5fUkVWSVNJT04gW1NWTl9SRVZJU0lPTlNdIFJFQVNPTiIgJSBuaWNrCisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi51c2FnZShuaWNrKQogCiAgICAgICAgIHJldmlzaW9uX3VybHNfc3RyaW5nID0g
am9pbl93aXRoX3NlcGFyYXRvcnMoW3VybHMudmlld19yZXZpc2lvbl91cmwocmV2aXNpb24pIGZv
ciByZXZpc2lvbiBpbiBzdm5fcmV2aXNpb25fbGlzdF0pCiAgICAgICAgIHRvb2wuaXJjKCkucG9z
dCgiJXM6IFByZXBhcmluZyByb2xsb3V0IGZvciAlcyAuLi4iICUgKG5pY2ssIHJldmlzaW9uX3Vy
bHNfc3RyaW5nKSkKQEAgLTE0Miw2ICsyNTAsOSBAQCBjbGFzcyBSb2xsb3V0KElSQ0NvbW1hbmQp
OgogCiAKIGNsYXNzIFNoZXJpZmZzKElSQ0NvbW1hbmQpOgorICAgIHVzYWdlX3N0cmluZyA9ICJz
aGVyaWZmcyIKKyAgICBoZWxwX3N0cmluZyA9ICJSZXRyaWV2ZXMgd2hvIHRoZSBjdXJyZW50IENo
cm9taXVtIFdlYktpdCBzaGVyaWZmcyBhcmUgZnJvbTogJXMiICUgdXJscy5jaHJvbWl1bV93ZWJr
aXRfc2hlcmlmZl91cmwKKwogICAgIGRlZiBfcmV0cmlldmVfd2Via2l0X3NoZXJpZmZzKHNlbGYs
IHVybCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNoZXJpZmZfanMgPSBXZWIoKS5nZXRf
YmluYXJ5KHVybCwgVHJ1ZSkKQEAgLTE3Niw1NCArMjg3LDEwIEBAIGNsYXNzIFNoZXJpZmZzKElS
Q0NvbW1hbmQpOgogICAgICAgICByZXR1cm4gIiVzOiBUaGUgY3VycmVudCAlc3MgYXJlOiAlcyIg
JSAobmljaywgc2hlcmlmZl9uYW1lLCBzaGVyaWZmcykKIAogCi1jbGFzcyBSb2xsQ2hyb21pdW1E
RVBTKElSQ0NvbW1hbmQpOgotICAgIGRlZiBfcGFyc2VfYXJncyhzZWxmLCBhcmdzKToKLSAgICAg
ICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmV2aXNpb24gPSBh
cmdzWzBdLmxzdHJpcCgiciIpCi0gICAgICAgIGlmIG5vdCByZXZpc2lvbi5pc2RpZ2l0KCk6Ci0g
ICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmV0dXJuIHJldmlzaW9uCi0KLSAgICBkZWYgX2V4
cGFuZF9pcmNfbmlja25hbWUoc2VsZiwgbmljayk6Ci0gICAgICAgIGNvbnRyaWJ1dG9yID0gQ29t
bWl0dGVyTGlzdCgpLmNvbnRyaWJ1dG9yX2J5X2lyY19uaWNrbmFtZShuaWNrKQotICAgICAgICBp
ZiBjb250cmlidXRvcjoKLSAgICAgICAgICAgIHJldHVybiBzdHIoY29udHJpYnV0b3IpCi0gICAg
ICAgIHJldHVybiBuaWNrCi0KLSAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29s
LCBzaGVyaWZmKToKLSAgICAgICAgcmV2aXNpb24gPSBzZWxmLl9wYXJzZV9hcmdzKGFyZ3MpCi0K
LSAgICAgICAgcm9sbF90YXJnZXQgPSAiciVzIiAlIHJldmlzaW9uIGlmIHJldmlzaW9uIGVsc2Ug
Imxhc3Qta25vd24gZ29vZCByZXZpc2lvbiIKLSAgICAgICAgdG9vbC5pcmMoKS5wb3N0KCIlczog
Um9sbGluZyBDaHJvbWl1bSBERVBTIHRvICVzIiAlIChuaWNrLCByb2xsX3RhcmdldCkpCi0gICAg
ICAgIGNoYW5nZWxvZ19tZXNzYWdlID0gIlVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQ
UyB0byAlcy4gIFJlcXVlc3RlZCBieSAlcyB2aWEgc2hlcmlmZmJvdC5cblxuIiAlIChyb2xsX3Rh
cmdldCwgc2VsZi5fZXhwYW5kX2lyY19uaWNrbmFtZShuaWNrKSkKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBidWdfaWQgPSBzaGVyaWZmLnBvc3RfY2hyb21pdW1fZGVwc19yb2xsKHJldmlz
aW9uLCByb2xsX3RhcmdldCwgY2hhbmdlbG9nX21lc3NhZ2UpCi0gICAgICAgICAgICBidWdfdXJs
ID0gdG9vbC5idWdzLmJ1Z191cmxfZm9yX2J1Z19pZChidWdfaWQpCi0gICAgICAgICAgICB0b29s
LmlyYygpLnBvc3QoIiVzOiBDcmVhdGVkIERFUFMgcm9sbDogJXMiICUgKG5pY2ssIGJ1Z191cmwp
KQotICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6Ci0gICAgICAgICAgICBtYXRjaCA9IHJl
LnNlYXJjaChyIkN1cnJlbnQgQ2hyb21pdW0gREVQUyByZXZpc2lvbiBcZCsgaXMgbmV3ZXIgdGhh
biBcZCtcLiIsIGUub3V0cHV0KQotICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAg
ICAgdG9vbC5pcmMoKS5wb3N0KCIlczogJXMiICUgKG5pY2ssIG1hdGNoLmdyb3VwKDApKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHRvb2wuaXJjKCkucG9zdCgiJXM6IEZh
aWxlZCB0byBjcmVhdGUgREVQUyByb2xsOiIgJSBuaWNrKQotICAgICAgICAgICAgX3Bvc3RfZXJy
b3JfYW5kX2NoZWNrX2Zvcl9idWdfdXJsKHRvb2wsIG5pY2ssIGUpCi0KLQotY2xhc3MgSGVscChJ
UkNDb21tYW5kKToKLSAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVy
aWZmKToKLSAgICAgICAgcmV0dXJuICIlczogQXZhaWxhYmxlIGNvbW1hbmRzOiAlcyIgJSAobmlj
aywgIiwgIi5qb2luKHNvcnRlZCh2aXNpYmxlX2NvbW1hbmRzLmtleXMoKSkpKQotCi0KLWNsYXNz
IEhpKElSQ0NvbW1hbmQpOgotICAgIGRlZiBleGVjdXRlKHNlbGYsIG5pY2ssIGFyZ3MsIHRvb2ws
IHNoZXJpZmYpOgotICAgICAgICBxdWlwcyA9IHRvb2wuYnVncy5xdWlwcygpCi0gICAgICAgIHF1
aXBzLmFwcGVuZCgnIk9ubHkgeW91IGNhbiBwcmV2ZW50IGZvcmVzdCBmaXJlcy4iIC0tIFNtb2tl
eSB0aGUgQmVhcicpCi0gICAgICAgIHJldHVybiByYW5kb20uY2hvaWNlKHF1aXBzKQotCi0KIGNs
YXNzIFdob2lzKElSQ0NvbW1hbmQpOgorICAgIHVzYWdlX3N0cmluZyA9ICJ3aG9pcyBTRUFSQ0hf
U1RSSU5HIgorICAgIGhlbHBfc3RyaW5nID0gIlNlYXJjaGVzIGtub3duIGNvbnRyaWJ1dG9ycyBh
bmQgcmV0dXJucyBhbnkgbWF0Y2hlcyB3aXRoIGlyYywgZW1haWwgYW5kIGZ1bGwgbmFtZS4iCisK
ICAgICBkZWYgX25pY2tfb3JfZnVsbF9yZWNvcmQoc2VsZiwgY29udHJpYnV0b3IpOgogICAgICAg
ICBpZiBjb250cmlidXRvci5pcmNfbmlja25hbWVzOgogICAgICAgICAgICAgcmV0dXJuICcsICcu
am9pbihjb250cmlidXRvci5pcmNfbmlja25hbWVzKQpAQCAtMjMxLDcgKzI5OCw3IEBAIGNsYXNz
IFdob2lzKElSQ0NvbW1hbmQpOgogCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywg
dG9vbCwgc2hlcmlmZik6CiAgICAgICAgIGlmIGxlbihhcmdzKSAhPSAxOgotICAgICAgICAgICAg
cmV0dXJuICIlczogVXNhZ2U6IHdob2lzIFNFQVJDSF9TVFJJTkciICUgbmljaworICAgICAgICAg
ICAgcmV0dXJuIHNlbGYudXNhZ2UobmljaykKICAgICAgICAgc2VhcmNoX3N0cmluZyA9IGFyZ3Nb
MF0KICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGdldCB0aGUgQ29udHJpYnV0b3JMaXN0IG9m
ZiB0aGUgdG9vbCBzb21ld2hlcmUuCiAgICAgICAgIGNvbnRyaWJ1dG9ycyA9IENvbW1pdHRlckxp
c3QoKS5jb250cmlidXRvcnNfYnlfc2VhcmNoX3N0cmluZyhzZWFyY2hfc3RyaW5nKQpAQCAtMjUz
LDM3ICszMjAsMTYgQEAgY2xhc3MgV2hvaXMoSVJDQ29tbWFuZCk6CiAgICAgICAgIHJldHVybiAi
JXM6IEknbSBub3Qgc3VyZSB3aG8geW91IG1lYW4/ICAlcyBjb3VsZCBiZSAnJXMnLiIgJSAobmlj
aywgY29udHJpYnV0b3JzX3N0cmluZywgc2VhcmNoX3N0cmluZykKIAogCi1jbGFzcyBDcmVhdGVC
dWcoSVJDQ29tbWFuZCk6Ci0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwg
c2hlcmlmZik6Ci0gICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgcmV0dXJuICIlczog
VXNhZ2U6IGNyZWF0ZS1idWcgQlVHX1RJVExFIiAlIG5pY2sKLQotICAgICAgICBidWdfdGl0bGUg
PSAiICIuam9pbihhcmdzKQotICAgICAgICBidWdfZGVzY3JpcHRpb24gPSAiJXNcblJlcXVlc3Rl
ZCBieSAlcyBvbiAlcy4iICUgKGJ1Z190aXRsZSwgbmljaywgY29uZmlnX2lyYy5jaGFubmVsKQot
Ci0gICAgICAgICMgVGhlcmUgaGFwcGVucyB0byBiZSBhIGNvbW1pdHRlcnMgbGlzdCBodW5nIG9m
ZiBvZiBCdWd6aWxsYSwgc28KLSAgICAgICAgIyByZS11c2luZyB0aGF0IG9uZSBtYWtlcyB0aGlu
Z3MgZWFzaWVzdCBmb3Igbm93LgotICAgICAgICByZXF1ZXN0ZXIgPSB0b29sLmJ1Z3MuY29tbWl0
dGVycy5jb250cmlidXRvcl9ieV9pcmNfbmlja25hbWUobmljaykKLSAgICAgICAgcmVxdWVzdGVy
X2VtYWlsID0gcmVxdWVzdGVyLmJ1Z3ppbGxhX2VtYWlsKCkgaWYgcmVxdWVzdGVyIGVsc2UgTm9u
ZQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGJ1Z19pZCA9IHRvb2wuYnVncy5jcmVhdGVf
YnVnKGJ1Z190aXRsZSwgYnVnX2Rlc2NyaXB0aW9uLCBjYz1yZXF1ZXN0ZXJfZW1haWwsIGFzc2ln
bmVlPXJlcXVlc3Rlcl9lbWFpbCkKLSAgICAgICAgICAgIGJ1Z191cmwgPSB0b29sLmJ1Z3MuYnVn
X3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKLSAgICAgICAgICAgIHJldHVybiAiJXM6IENyZWF0ZWQg
YnVnOiAlcyIgJSAobmljaywgYnVnX3VybCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgIHJldHVybiAiJXM6IEZhaWxlZCB0byBjcmVhdGUgYnVnOlxuJXMiICUgKG5p
Y2ssIGUpCi0KLQogIyBGSVhNRTogTGFtZS4gIFdlIHNob3VsZCBoYXZlIGFuIGF1dG8tcmVnaXN0
ZXJpbmcgQ29tbWFuZENlbnRlci4KIHZpc2libGVfY29tbWFuZHMgPSB7CisgICAgImNyZWF0ZS1i
dWciOiBDcmVhdGVCdWcsCiAgICAgImhlbHAiOiBIZWxwLAogICAgICJoaSI6IEhpLAogICAgICJy
ZXN0YXJ0IjogUmVzdGFydCwKKyAgICAicm9sbC1jaHJvbWl1bS1kZXBzIjogUm9sbENocm9taXVt
REVQUywKICAgICAicm9sbG91dCI6IFJvbGxvdXQsCiAgICAgInNoZXJpZmZzIjogU2hlcmlmZnMs
CiAgICAgIndob2lzIjogV2hvaXMsCi0gICAgImNyZWF0ZS1idWciOiBDcmVhdGVCdWcsCi0gICAg
InJvbGwtY2hyb21pdW0tZGVwcyI6IFJvbGxDaHJvbWl1bURFUFMsCiB9CiAKICMgQWRkIHJldmVy
dCBhcyBhbiAiZWFzdGVyIGVnZyIgY29tbWFuZC4gV2h5PwpAQCAtMjk3LDMgKzM0Myw1IEBAIGNv
bW1hbmRzWyJnYXJkZW5lcnMiXSA9IFNoZXJpZmZzCiBjb21tYW5kc1sic2hlcnJpZmZzIl0gPSBT
aGVyaWZmcwogY29tbWFuZHNbInNoZXJpZnMiXSA9IFNoZXJpZmZzCiBjb21tYW5kc1sic2hlcnJp
ZnMiXSA9IFNoZXJpZmZzCisjICJoZWxsbyIgQWxpYXMgZm9yICJoaSIgY29tbWFuZCBmb3IgdGhl
IHB1cnBvc2VzIG9mIHRlc3RpbmcgYWxpYXNlcworY29tbWFuZHNbImhlbGxvIl0gPSBIaQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNib3RfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weQpp
bmRleCAxNmEzY2Q3NWY2ZmM1YmQwMjM4YzIwOWQ4MGNkZmRhMDNlMGY3NmMxLi5jNzhlYjgwZTc2
YzgxNjFjZjQ3N2Q5ZjdlNDc5YzZjODZmYmQ0ZGM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weQpAQCAtODgsOCArODgsMTEgQEAg
Y2xhc3MgSVJDQm90VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBydW4sIGFyZ3M9WyJoaSJdLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9oZWxwKHNlbGYpOgotICAgICAgICBleHBl
Y3RlZF9sb2dzID0gIk1PQ0s6IGlyYy5wb3N0OiBtb2NrX25pY2s6IEF2YWlsYWJsZSBjb21tYW5k
czogY3JlYXRlLWJ1ZywgaGVscCwgaGksIHJlc3RhcnQsIHJvbGwtY2hyb21pdW0tZGVwcywgcm9s
bG91dCwgc2hlcmlmZnMsIHdob2lzXG4iCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAnTU9DSzog
aXJjLnBvc3Q6IG1vY2tfbmljazogQXZhaWxhYmxlIGNvbW1hbmRzOiBjcmVhdGUtYnVnLCBoZWxw
LCBoaSwgcmVzdGFydCwgcm9sbC1jaHJvbWl1bS1kZXBzLCByb2xsb3V0LCBzaGVyaWZmcywgd2hv
aXNcbk1PQ0s6IGlyYy5wb3N0OiBtb2NrX25pY2s6IFR5cGUgInNoZXJpZmZib3Q6IGhlbHAgQ09N
TUFORCIgZm9yIGhlbHAgb24gaW5kaXZpZHVhbCBjb21tYW5kcy5cbicKICAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHJ1biwgYXJncz1bImhlbHAiXSwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gJ01PQ0s6IGly
Yy5wb3N0OiBtb2NrX25pY2s6IFVzYWdlOiBoaVxuTU9DSzogaXJjLnBvc3Q6IG1vY2tfbmljazog
UmV0cmlldmVzIGEgcmFuZG9tIHF1aXAgZnJvbSBCdWd6aWxsYS5cbk1PQ0s6IGlyYy5wb3N0OiBt
b2NrX25pY2s6IEFsaWFzZXM6IGhlbGxvXG4nCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBydW4sIGFyZ3M9WyJoZWxwIGhpIl0sIGV4cGVjdGVkX2xvZ3M9ZXhw
ZWN0ZWRfbG9ncykKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IHJ1biwgYXJncz1bImhlbHAgaGVsbG8iXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQog
CiAgICAgZGVmIHRlc3RfcmVzdGFydChzZWxmKToKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICJN
T0NLOiBpcmMucG9zdDogUmVzdGFydGluZy4uLlxuIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>