<?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>74681</bug_id>
          
          <creation_ts>2011-12-15 20:53:48 -0800</creation_ts>
          <short_desc>[Refactoring] Remove all global variables from prepare-ChangeLog</short_desc>
          <delta_ts>2011-12-16 01:22:37 -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>
          
          <blocked>73531</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>aroben</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522490</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-15 20:53:48 -0800</bug_when>
    <thetext>We are planning to write unit-tests for prepare-ChangeLog in a run-leaks_unittest manner. This bug is one of the incremental refactorings to remove all top-level code and global variables from prepare-ChangeLog.

In this bug, we remove all the remaining global variables. Accurately, we make $mergeBase, $gitCommit and $gitIndex be used only through parameter passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522493</commentid>
    <comment_count>1</comment_count>
      <attachid>119553</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-15 21:01:24 -0800</bug_when>
    <thetext>Created attachment 119553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522566</commentid>
    <comment_count>2</comment_count>
      <attachid>119573</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-15 23:15:37 -0800</bug_when>
    <thetext>Created attachment 119573
rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522580</commentid>
    <comment_count>3</comment_count>
      <attachid>119573</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-15 23:47:11 -0800</bug_when>
    <thetext>Comment on attachment 119573
rebased patch

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

&gt; Tools/Scripts/prepare-ChangeLog:527
&gt; +    my $changedFilesString = &quot;&apos;&quot; . join (&quot;&apos; &apos;&quot;, @$changedFiles) . &quot;&apos;&quot;;

Nit: There is a space between join and (.

&gt; Tools/Scripts/prepare-ChangeLog:1468
&gt; -    my @files = @_;
&gt; +    my ($paths, $gitCommit, $gitIndex, $mergeBase) = @_;

Why are we taking $paths instead of @files here?

&gt; Tools/Scripts/prepare-ChangeLog:1476
&gt; +        my $filesString = &quot;\&quot;&quot; . join (&quot;\&quot; \&quot;&quot;, keys %$paths) . &quot;\&quot;&quot;;

Ditto about the space between join and (. By the way, can you replace all these &quot;\&quot; \&quot;&quot; by &apos;&quot; &quot;&apos; to improve the readability?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522589</commentid>
    <comment_count>4</comment_count>
      <attachid>119576</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-16 00:07:27 -0800</bug_when>
    <thetext>Created attachment 119576
patch for commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522590</commentid>
    <comment_count>5</comment_count>
      <attachid>119573</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-16 00:07:38 -0800</bug_when>
    <thetext>Comment on attachment 119573
rebased patch

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

&gt;&gt; Tools/Scripts/prepare-ChangeLog:527
&gt;&gt; +    my $changedFilesString = &quot;&apos;&quot; . join (&quot;&apos; &apos;&quot;, @$changedFiles) . &quot;&apos;&quot;;
&gt; 
&gt; Nit: There is a space between join and (.

Fixed it.

&gt;&gt; Tools/Scripts/prepare-ChangeLog:1468
&gt;&gt; +    my ($paths, $gitCommit, $gitIndex, $mergeBase) = @_;
&gt; 
&gt; Why are we taking $paths instead of @files here?

If we write

    my (@files, $gitCommit, $gitIndex, $mergeBase) = @_;

then all @_ are assigned to @files, unfortunately. So possible options are 

    statusCommand(keys %$paths, ...)
    sub statusCommand(\@$$$$) {
        my ($files, ...) = @_;
        ... = @$files;
    }

or

    statusCommand($paths, ...)    
    sub statusCommand($$$$$) {
        my ($paths, $gitCommit, $gitIndex, $mergeBase) = @_;
        ... = keys %$paths;
    }

I think both are fine (and chose the latter without a strong reason).

&gt;&gt; Tools/Scripts/prepare-ChangeLog:1476
&gt;&gt; +        my $filesString = &quot;\&quot;&quot; . join (&quot;\&quot; \&quot;&quot;, keys %$paths) . &quot;\&quot;&quot;;
&gt; 
&gt; Ditto about the space between join and (. By the way, can you replace all these &quot;\&quot; \&quot;&quot; by &apos;&quot; &quot;&apos; to improve the readability?

Fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522599</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 00:24:31 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think both are fine (and chose the latter without a strong reason).

Yeah, either solution is fine. I just wanted to avoid us duplicating &quot;keys %$paths&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522626</commentid>
    <comment_count>7</comment_count>
      <attachid>119576</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 01:21:19 -0800</bug_when>
    <thetext>Comment on attachment 119576
patch for commit

Clearing flags on attachment: 119576

Committed r103046: &lt;http://trac.webkit.org/changeset/103046&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119553</attachid>
            <date>2011-12-15 21:01:24 -0800</date>
            <delta_ts>2011-12-15 23:15:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74681-20111216140123.patch</filename>
            <type>text/plain</type>
            <size>11630</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2VjYjM1Yzg5Y2VjYzk3MTVmNGM2MTQ1Y2UzZjMzNmY1
NzNhMDRiZS4uMTIxZjhlMmJmOWUwZGQyYWUxZTRmYjA0ODQ4NWQzOGNjZGE0NzE5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDExLTEyLTE1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIFJlbW92ZSBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHBy
ZXBhcmUtQ2hhbmdlTG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NDY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIGFyZSBwbGFubmluZyB0byB3cml0ZSB1bml0LXRlc3RzIGZvciBwcmVwYXJlLUNo
YW5nZUxvZyBpbiBhIHJ1bi1sZWFrc191bml0dGVzdAorICAgICAgICBtYW5uZXIuIFRoaXMgYnVn
IGlzIG9uZSBvZiB0aGUgaW5jcmVtZW50YWwgcmVmYWN0b3JpbmdzIHRvIHJlbW92ZSBhbGwgdG9w
LWxldmVsCisgICAgICAgIGNvZGUgYW5kIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBwcmVwYXJlLUNo
YW5nZUxvZy4gSW4gdGhpcyBwYXRjaCwKKyAgICAgICAgd2UgbWFrZSB0aGUgZm9sbG93aW5nIGds
b2JhbCB2YXJpYWJsZXMgYmUgdXNlZCBvbmx5IHRocm91Z2ggcGFyYW1ldGVyIHBhc3NpbmcuCisg
ICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHByZXBh
cmUtQ2hhbmdlTG9nLgorICAgICAgICAgICAgLSAkbWVyZ2VCYXNlCisgICAgICAgICAgICAtICRn
aXRDb21taXQKKyAgICAgICAgICAgIC0gJGdpdEluZGV4CisKKyAgICAgICAgKiBTY3JpcHRzL3By
ZXBhcmUtQ2hhbmdlTG9nOgorICAgICAgICAoZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKToKKyAgICAg
ICAgKGNoYW5nZUxvZ05hbWVGcm9tQXJncyk6CisgICAgICAgIChjaGFuZ2VMb2dFbWFpbEFkZHJl
c3NGcm9tQXJncyk6CisgICAgICAgIChnZW5lcmF0ZU5ld0NoYW5nZUxvZ3MpOgorICAgICAgICAo
cHJpbnREaWZmKToKKyAgICAgICAgKGRpZmZGcm9tVG9TdHJpbmcpOgorICAgICAgICAoZGlmZkNv
bW1hbmQpOgorICAgICAgICAoc3RhdHVzQ29tbWFuZCk6CisgICAgICAgIChjcmVhdGVQYXRjaENv
bW1hbmQpOgorICAgICAgICAoZ2VuZXJhdGVGaWxlTGlzdCk6CisgICAgICAgIChpc0NvbmZsaWN0
U3RhdHVzKToKKwogMjAxMS0xMi0xNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gcGFzcyAtLWRlbGV0ZV91bnZlcnNpb25lZF90cmVlcyB0byBn
Y2xpZW50IG9uIHRoZSBib3RzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hh
bmdlTG9nIGIvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBkZmVmYTM4NTkw
OTFjNmQ5N2FjNDAxZDFmMmZiYzBiMTdkNDgyYjhjLi42ZjJkMGFhMzA3MDRkMmMwNjI4YTY1ZGFl
YTFiMTEwMzY4MzRhZDUwIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTY1LDI5ICs2NSwy
OSBAQCB1c2UgUE9TSVggcXcoc3RyZnRpbWUpOwogdXNlIFZDU1V0aWxzOwogCiBzdWIgY2hhbmdl
TG9nRGF0ZSgkKTsKLXN1YiBjaGFuZ2VMb2dFbWFpbEFkZHJlc3NGcm9tQXJncygkKTsKLXN1YiBj
aGFuZ2VMb2dOYW1lRnJvbUFyZ3MoJCk7CitzdWIgY2hhbmdlTG9nRW1haWxBZGRyZXNzRnJvbUFy
Z3MoJCQpOworc3ViIGNoYW5nZUxvZ05hbWVGcm9tQXJncygkJCk7CiBzdWIgZmV0Y2hCdWdEZXNj
cmlwdGlvbkZyb21VUkwoJCQpOwogc3ViIGZpbmRDaGFuZ2VMb2dzKCQpOwogc3ViIGdldExhdGVz
dENoYW5nZUxvZ3MoJCk7CiBzdWIgcmVzb2x2ZUNvbmZsaWN0ZWRDaGFuZ2VMb2dzKCQpOwotc3Vi
IGdlbmVyYXRlTmV3Q2hhbmdlTG9ncygkJCQkJCQkJCQkKTsKLXN1YiBwcmludERpZmYoJCk7Citz
dWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQkKTsKK3N1YiBwcmludERpZmYoJCQk
JCk7CiBzdWIgb3BlbkNoYW5nZUxvZ3MoJCk7Ci1zdWIgZGlmZkZyb21Ub1N0cmluZygpOwotc3Vi
IGRpZmZDb21tYW5kKEApOwotc3ViIHN0YXR1c0NvbW1hbmQoQCk7Ci1zdWIgY3JlYXRlUGF0Y2hD
b21tYW5kKCQpOworc3ViIGRpZmZGcm9tVG9TdHJpbmcoJCQkKTsKK3N1YiBkaWZmQ29tbWFuZCgk
JCQkKTsKK3N1YiBzdGF0dXNDb21tYW5kKCQkJCQpOworc3ViIGNyZWF0ZVBhdGNoQ29tbWFuZCgk
JCQkKTsKIHN1YiBkaWZmSGVhZGVyRm9ybWF0KCk7CiBzdWIgZmluZE9yaWdpbmFsRmlsZUZyb21T
dm4oJCk7CiBzdWIgZGV0ZXJtaW5lUHJvcGVydHlDaGFuZ2VzKCQkJCk7CiBzdWIgcGx1cmFsaXpl
QW5kTGlzdCgkJEApOwotc3ViIGdlbmVyYXRlRmlsZUxpc3QoXCUpOwotc3ViIGdlbmVyYXRlRnVu
Y3Rpb25MaXN0cygkJCk7CitzdWIgZ2VuZXJhdGVGaWxlTGlzdChcJSQkJCk7CitzdWIgZ2VuZXJh
dGVGdW5jdGlvbkxpc3RzKCQkJCQkKTsKIHN1YiBpc1VubW9kaWZpZWRTdGF0dXMoJCk7CiBzdWIg
aXNNb2RpZmllZFN0YXR1cygkKTsKIHN1YiBpc0FkZGVkU3RhdHVzKCQpOwotc3ViIGlzQ29uZmxp
Y3RTdGF0dXMoJCk7CitzdWIgaXNDb25mbGljdFN0YXR1cygkJCQpOwogc3ViIHN0YXR1c0Rlc2Ny
aXB0aW9uKCQkJCQpOwogc3ViIHByb3BlcnR5Q2hhbmdlRGVzY3JpcHRpb24oJCk7CiBzdWIgZXh0
cmFjdExpbmVSYW5nZSgkKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBpc1NWTigpIHx8IGlzR2l0KCkg
fHwgZGllICJDb3VsZG4ndCBkZXRlcm1pbmUgeW91ciB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLiI7
CiBteSAlcGF0aHMgPSBwcm9jZXNzUGF0aHMoQEFSR1YpOwogCiAjIEZpbmQgdGhlIGxpc3Qgb2Yg
bW9kaWZpZWQgZmlsZXMKLW15ICgkY2hhbmdlZEZpbGVzLCAkY29uZmxpY3RGaWxlcywgJGZ1bmN0
aW9uTGlzdHMsICRhZGRlZFJlZ3Jlc3Npb25UZXN0cykgPSBnZW5lcmF0ZUZpbGVMaXN0KCVwYXRo
cyk7CitteSAoJGNoYW5nZWRGaWxlcywgJGNvbmZsaWN0RmlsZXMsICRmdW5jdGlvbkxpc3RzLCAk
YWRkZWRSZWdyZXNzaW9uVGVzdHMpID0gZ2VuZXJhdGVGaWxlTGlzdCglcGF0aHMsICRnaXRDb21t
aXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSk7CiAKIGlmICghQCRjaGFuZ2VkRmlsZXMgJiYgIUAk
Y29uZmxpY3RGaWxlcyAmJiAha2V5cyAlJGZ1bmN0aW9uTGlzdHMpIHsKICAgICBwcmludCBTVERF
UlIgIiAgTm8gY2hhbmdlcyBmb3VuZC5cbiI7CkBAIC0xODQsMTEgKzE4NCwxMSBAQCBpZiAoQCRj
b25mbGljdEZpbGVzKSB7CiAgICAgZXhpdCAxOwogfQogCi1nZW5lcmF0ZUZ1bmN0aW9uTGlzdHMo
JGNoYW5nZWRGaWxlcywgJGZ1bmN0aW9uTGlzdHMpOworZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKCRj
aGFuZ2VkRmlsZXMsICRmdW5jdGlvbkxpc3RzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJn
ZUJhc2UpOwogCiAjIEdldCBzb21lIHBhcmFtZXRlcnMgZm9yIHRoZSBDaGFuZ2VMb2cgd2UgYXJl
IGFib3V0IHRvIHdyaXRlLgotJG5hbWUgPSBjaGFuZ2VMb2dOYW1lRnJvbUFyZ3MoJG5hbWUpOwot
JGVtYWlsQWRkcmVzcyA9IGNoYW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCRlbWFpbEFkZHJl
c3MpOworJG5hbWUgPSBjaGFuZ2VMb2dOYW1lRnJvbUFyZ3MoJG5hbWUsICRnaXRDb21taXQpOwor
JGVtYWlsQWRkcmVzcyA9IGNoYW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCRlbWFpbEFkZHJl
c3MsICRnaXRDb21taXQpOwogCiBwcmludCBTVERFUlIgIiAgQ2hhbmdlIGF1dGhvcjogJG5hbWUg
PCRlbWFpbEFkZHJlc3M+LlxuIjsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIGlmIChAJGNoYW5nZUxv
Z3MgJiYgJHVwZGF0ZUNoYW5nZUxvZ3MgJiYgaXNTVk4oKSkgewogICAgIHJlc29sdmVDb25mbGlj
dGVkQ2hhbmdlTG9ncygkY2hhbmdlTG9ncyk7CiB9CiAKLWdlbmVyYXRlTmV3Q2hhbmdlTG9ncygk
cHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5j
dGlvbkxpc3RzLCAkYnVnVVJMLCAkYnVnRGVzY3JpcHRpb24sICRuYW1lLCAkZW1haWxBZGRyZXNz
LCAkZ2l0UmV2aWV3ZXIsICR3cml0ZUNoYW5nZUxvZ3MpOworZ2VuZXJhdGVOZXdDaGFuZ2VMb2dz
KCRwcmVmaXhlcywgJGZpbGVzSW5DaGFuZ2VMb2csICRhZGRlZFJlZ3Jlc3Npb25UZXN0cywgJGZ1
bmN0aW9uTGlzdHMsICRidWdVUkwsICRidWdEZXNjcmlwdGlvbiwgJG5hbWUsICRlbWFpbEFkZHJl
c3MsICRnaXRSZXZpZXdlciwgJGdpdENvbW1pdCwgJHdyaXRlQ2hhbmdlTG9ncyk7CiAKIGlmICgk
d3JpdGVDaGFuZ2VMb2dzKSB7CiAgICAgcHJpbnQgU1RERVJSICItLSBQbGVhc2UgcmVtZW1iZXIg
dG8gaW5jbHVkZSBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIGluIHlvdXIgQ2hhbmdlTG9nIGVudHJ5
LiAtLVxuLS0gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWw+
IGZvciBtb3JlIGluZm8gLS1cbiI7CkBAIC0yMjEsNyArMjIxLDcgQEAgaWYgKCR3cml0ZUNoYW5n
ZUxvZ3MpIHsKIAogIyBXcml0ZSBvdXQgYW5vdGhlciBkaWZmLgogaWYgKCRzcGV3RGlmZiAmJiBA
JGNoYW5nZWRGaWxlcykgewotICAgIHByaW50RGlmZigkY2hhbmdlZEZpbGVzKTsKKyAgICBwcmlu
dERpZmYoJGNoYW5nZWRGaWxlcywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKTsK
IH0KIAogIyBPcGVuIENoYW5nZUxvZ3MuCkBAIC0yMzMsOSArMjMzLDkgQEAgaWYgKCRvcGVuQ2hh
bmdlTG9ncyAmJiBAJGNoYW5nZUxvZ3MpIHsKIGV4aXQ7CiAKIAotc3ViIGdlbmVyYXRlRnVuY3Rp
b25MaXN0cygkJCkKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJCQkJCQpCiB7Ci0gICAgbXkg
KCRjaGFuZ2VkRmlsZXMsICRmdW5jdGlvbkxpc3RzKSA9IEBfOworICAgIG15ICgkY2hhbmdlZEZp
bGVzLCAkZnVuY3Rpb25MaXN0cywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9
IEBfOwogCiAgICAgbXkgJWNoYW5nZWRfbGluZV9yYW5nZXM7CiAgICAgaWYgKEAkY2hhbmdlZEZp
bGVzKSB7CkBAIC0yNDMsNyArMjQzLDcgQEAgc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygkJCkK
ICAgICAgICAgIyBVc2UgbGluZSBudW1iZXJzIGZyb20gdGhlICJhZnRlciIgc2lkZSBvZiBlYWNo
IGRpZmYuCiAgICAgICAgIHByaW50IFNUREVSUiAiICBSZXZpZXdpbmcgZGlmZiB0byBkZXRlcm1p
bmUgd2hpY2ggbGluZXMgY2hhbmdlZC5cbiI7CiAgICAgICAgIG15ICRmaWxlOwotICAgICAgICBv
cGVuIERJRkYsICItfCIsIGRpZmZDb21tYW5kKEAkY2hhbmdlZEZpbGVzKSBvciBkaWUgIlRoZSBk
aWZmIGZhaWxlZDogJCEuXG4iOworICAgICAgICBvcGVuIERJRkYsICItfCIsIGRpZmZDb21tYW5k
KCRjaGFuZ2VkRmlsZXMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgb3IgZGll
ICJUaGUgZGlmZiBmYWlsZWQ6ICQhLlxuIjsKICAgICAgICAgd2hpbGUgKDxESUZGPikgewogICAg
ICAgICAgICAgJGZpbGUgPSBtYWtlRmlsZVBhdGhSZWxhdGl2ZSgkMSkgaWYgJF8gPX4gZGlmZkhl
YWRlckZvcm1hdCgpOwogICAgICAgICAgICAgaWYgKGRlZmluZWQgJGZpbGUpIHsKQEAgLTMxOCwx
OCArMzE4LDE4IEBAIHN1YiBjaGFuZ2VMb2dEYXRlKCQpCiAgICAgcmV0dXJuICRkYXRlOwogfQog
Ci1zdWIgY2hhbmdlTG9nTmFtZUZyb21BcmdzKCQpCitzdWIgY2hhbmdlTG9nTmFtZUZyb21Bcmdz
KCQkKQogewotICAgIG15ICgkbmFtZUZyb21BcmdzKSA9IEBfOworICAgIG15ICgkbmFtZUZyb21B
cmdzLCAkZ2l0Q29tbWl0KSA9IEBfOwogICAgICMgU2lsZW50bHkgYWxsb3cgLS1naXQtY29tbWl0
IHRvIHdpbiwgd2UgY291bGQgd2FybiBpZiAkbmFtZUZyb21BcmdzIGlzIGRlZmluZWQuCiAgICAg
cmV0dXJuIGAkR0lUIGxvZyAtLW1heC1jb3VudD0xIC0tcHJldHR5PVwiZm9ybWF0OiVhblwiIFwi
JGdpdENvbW1pdFwiYCBpZiAkZ2l0Q29tbWl0OwogCiAgICAgcmV0dXJuICRuYW1lRnJvbUFyZ3Mg
fHwgY2hhbmdlTG9nTmFtZSgpOwogfQogCi1zdWIgY2hhbmdlTG9nRW1haWxBZGRyZXNzRnJvbUFy
Z3MoJCkKK3N1YiBjaGFuZ2VMb2dFbWFpbEFkZHJlc3NGcm9tQXJncygkJCkKIHsKLSAgICBteSAo
JGVtYWlsQWRkcmVzc0Zyb21BcmdzKSA9IEBfOworICAgIG15ICgkZW1haWxBZGRyZXNzRnJvbUFy
Z3MsICRnaXRDb21taXQpID0gQF87CiAgICAgIyBTaWxlbnRseSBhbGxvdyAtLWdpdC1jb21taXQg
dG8gd2luLCB3ZSBjb3VsZCB3YXJuIGlmICRlbWFpbEFkZHJlc3NGcm9tQXJncyBpcyBkZWZpbmVk
LgogICAgIHJldHVybiBgJEdJVCBsb2cgLS1tYXgtY291bnQ9MSAtLXByZXR0eT1cImZvcm1hdDol
YWVcIiBcIiRnaXRDb21taXRcImAgaWYgJGdpdENvbW1pdDsKIApAQCAtNDUyLDkgKzQ1Miw5IEBA
IHN1YiByZXNvbHZlQ29uZmxpY3RlZENoYW5nZUxvZ3MoJCkKICAgICBjbG9zZSBSRVNPTFZFOwog
fQogCi1zdWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQpCitzdWIgZ2VuZXJhdGVO
ZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQkKQogewotICAgIG15ICgkcHJlZml4ZXMsICRmaWxlc0lu
Q2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzLCAkYnVnVVJM
LCAkYnVnRGVzY3JpcHRpb24sICRuYW1lLCAkZW1haWxBZGRyZXNzLCAkZ2l0UmV2aWV3ZXIsICR3
cml0ZUNoYW5nZUxvZ3MpID0gQF87CisgICAgbXkgKCRwcmVmaXhlcywgJGZpbGVzSW5DaGFuZ2VM
b2csICRhZGRlZFJlZ3Jlc3Npb25UZXN0cywgJGZ1bmN0aW9uTGlzdHMsICRidWdVUkwsICRidWdE
ZXNjcmlwdGlvbiwgJG5hbWUsICRlbWFpbEFkZHJlc3MsICRnaXRSZXZpZXdlciwgJGdpdENvbW1p
dCwgJHdyaXRlQ2hhbmdlTG9ncykgPSBAXzsKIAogICAgICMgR2VuZXJhdGUgbmV3IENoYW5nZUxv
ZyBlbnRyaWVzIGFuZCAob3B0aW9uYWxseSkgd3JpdGUgb3V0IG5ldyBDaGFuZ2VMb2cgZmlsZXMu
CiAgICAgZm9yZWFjaCBteSAkcHJlZml4IChAJHByZWZpeGVzKSB7CkBAIC01MTgsMTMgKzUxOCwx
NCBAQCBzdWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQpCiAgICAgfQogfQogCi1z
dWIgcHJpbnREaWZmKCQpCitzdWIgcHJpbnREaWZmKCQkJCQpCiB7Ci0gICAgbXkgKCRjaGFuZ2Vk
RmlsZXMpID0gQF87CisgICAgbXkgKCRjaGFuZ2VkRmlsZXMsICRnaXRDb21taXQsICRnaXRJbmRl
eCwgJG1lcmdlQmFzZSkgPSBAXzsKIAogICAgIHByaW50IFNUREVSUiAiICBSdW5uaW5nIGRpZmYg
dG8gaGVscCB5b3Ugd3JpdGUgdGhlIENoYW5nZUxvZyBlbnRyaWVzLlxuIjsKICAgICBsb2NhbCAk
LyA9IHVuZGVmOyAjIGxvY2FsIHNsdXJwIG1vZGUKLSAgICBvcGVuIERJRkYsICItfCIsIGNyZWF0
ZVBhdGNoQ29tbWFuZCgiJyIgLiBqb2luICgiJyAnIiwgQCRjaGFuZ2VkRmlsZXMpIC4gIiciKSBv
ciBkaWUgIlRoZSBkaWZmIGZhaWxlZDogJCEuXG4iOworICAgIG15ICRjaGFuZ2VkRmlsZXNTdHJp
bmcgPSAiJyIgLiBqb2luICgiJyAnIiwgQCRjaGFuZ2VkRmlsZXMpIC4gIiciOworICAgIG9wZW4g
RElGRiwgIi18IiwgY3JlYXRlUGF0Y2hDb21tYW5kKCRjaGFuZ2VkRmlsZXNTdHJpbmcsICRnaXRD
b21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgb3IgZGllICJUaGUgZGlmZiBmYWlsZWQ6ICQh
LlxuIjsKICAgICBwcmludCA8RElGRj47CiAgICAgY2xvc2UgRElGRjsKIH0KQEAgLTE0MzIsOCAr
MTQzMywxMCBAQCBzdWIgcHJvY2Vzc1BhdGhzKFxAKQogICAgIHJldHVybiAlcmVzdWx0OwogfQog
Ci1zdWIgZGlmZkZyb21Ub1N0cmluZygpCitzdWIgZGlmZkZyb21Ub1N0cmluZygkJCQpCiB7Cisg
ICAgbXkgKCRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKKwogICAgIHJl
dHVybiAiIiBpZiBpc1NWTigpOwogICAgIHJldHVybiAkZ2l0Q29tbWl0IGlmICRnaXRDb21taXQg
PX4gbS8uK1wuXC4uKy87CiAgICAgcmV0dXJuICJcIiRnaXRDb21taXReXCIgXCIkZ2l0Q29tbWl0
XCIiIGlmICRnaXRDb21taXQ7CkBAIC0xNDQyLDQ4ICsxNDQ1LDQ4IEBAIHN1YiBkaWZmRnJvbVRv
U3RyaW5nKCkKICAgICByZXR1cm4gIkhFQUQiIGlmIGlzR2l0KCk7CiB9CiAKLXN1YiBkaWZmQ29t
bWFuZChAKQorc3ViIGRpZmZDb21tYW5kKCQkJCQpCiB7Ci0gICAgbXkgQHBhdGhzID0gQF87Cisg
ICAgbXkgKCRwYXRocywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwog
Ci0gICAgbXkgJHBhdGhzU3RyaW5nID0gIiciIC4gam9pbigiJyAnIiwgQHBhdGhzKSAuICInIjsg
CisgICAgbXkgJHBhdGhzU3RyaW5nID0gIiciIC4gam9pbigiJyAnIiwgQCRwYXRocykgLiAiJyI7
IAogCiAgICAgbXkgJGNvbW1hbmQ7CiAgICAgaWYgKGlzU1ZOKCkpIHsKICAgICAgICAgJGNvbW1h
bmQgPSAiJFNWTiBkaWZmIC0tZGlmZi1jbWQgZGlmZiAteCAtTiAkcGF0aHNTdHJpbmciOwogICAg
IH0gZWxzaWYgKGlzR2l0KCkpIHsKLSAgICAgICAgJGNvbW1hbmQgPSAiJEdJVCBkaWZmIC0tbm8t
ZXh0LWRpZmYgLVUwICIgLiBkaWZmRnJvbVRvU3RyaW5nKCk7CisgICAgICAgICRjb21tYW5kID0g
IiRHSVQgZGlmZiAtLW5vLWV4dC1kaWZmIC1VMCAiIC4gZGlmZkZyb21Ub1N0cmluZygkZ2l0Q29t
bWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpOwogICAgICAgICAkY29tbWFuZCAuPSAiIC0tICRw
YXRoc1N0cmluZyIgdW5sZXNzICRnaXRDb21taXQgb3IgJG1lcmdlQmFzZTsKICAgICB9CiAKICAg
ICByZXR1cm4gJGNvbW1hbmQ7CiB9CiAKLXN1YiBzdGF0dXNDb21tYW5kKEApCitzdWIgc3RhdHVz
Q29tbWFuZCgkJCQkKQogewotICAgIG15IEBmaWxlcyA9IEBfOworICAgIG15ICgkcGF0aHMsICRn
aXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKIAotICAgIG15ICRmaWxlc1N0
cmluZyA9ICJcIiIgLiBqb2luICgiXCIgXCIiLCBAZmlsZXMpIC4gIlwiIjsKKyAgICBteSAkZmls
ZXNTdHJpbmcgPSAiXCIiIC4gam9pbiAoIlwiIFwiIiwga2V5cyAlJHBhdGhzKSAuICJcIiI7CiAg
ICAgbXkgJGNvbW1hbmQ7CiAgICAgaWYgKGlzU1ZOKCkpIHsKICAgICAgICAgJGNvbW1hbmQgPSAi
JFNWTiBzdGF0ICRmaWxlc1N0cmluZyI7CiAgICAgfSBlbHNpZiAoaXNHaXQoKSkgewotICAgICAg
ICAkY29tbWFuZCA9ICIkR0lUIGRpZmYgLXIgLS1uYW1lLXN0YXR1cyAtTSAtQyAiIC4gZGlmZkZy
b21Ub1N0cmluZygpOworICAgICAgICAkY29tbWFuZCA9ICIkR0lUIGRpZmYgLXIgLS1uYW1lLXN0
YXR1cyAtTSAtQyAiIC4gZGlmZkZyb21Ub1N0cmluZygkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRt
ZXJnZUJhc2UpOwogICAgICAgICAkY29tbWFuZCAuPSAiIC0tICRmaWxlc1N0cmluZyIgdW5sZXNz
ICRnaXRDb21taXQ7CiAgICAgfQogCiAgICAgcmV0dXJuICIkY29tbWFuZCAyPiYxIjsKIH0KIAot
c3ViIGNyZWF0ZVBhdGNoQ29tbWFuZCgkKQorc3ViIGNyZWF0ZVBhdGNoQ29tbWFuZCgkJCQkKQog
ewotICAgIG15ICgkY2hhbmdlZEZpbGVzU3RyaW5nKSA9IEBfOworICAgIG15ICgkY2hhbmdlZEZp
bGVzU3RyaW5nLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpID0gQF87CiAKICAg
ICBteSAkY29tbWFuZDsKICAgICBpZiAoaXNTVk4oKSkgewogICAgICAgICAkY29tbWFuZCA9ICIn
JEZpbmRCaW46OkJpbi9zdm4tY3JlYXRlLXBhdGNoJyAkY2hhbmdlZEZpbGVzU3RyaW5nIjsKICAg
ICB9IGVsc2lmIChpc0dpdCgpKSB7Ci0gICAgICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtTSAt
QyAiIC4gZGlmZkZyb21Ub1N0cmluZygpOworICAgICAgICAkY29tbWFuZCA9ICIkR0lUIGRpZmYg
LU0gLUMgIiAuIGRpZmZGcm9tVG9TdHJpbmcoJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VC
YXNlKTsKICAgICAgICAgJGNvbW1hbmQgLj0gIiAtLSAkY2hhbmdlZEZpbGVzU3RyaW5nIiB1bmxl
c3MgJGdpdENvbW1pdDsKICAgICB9CiAKQEAgLTE1ODgsMTYgKzE1OTEsMTYgQEAgc3ViIHBsdXJh
bGl6ZUFuZExpc3QoJCRAKQogICAgIHJldHVybiAiJHBsdXJhbCAiIC4gam9pbigiLCAiLCBAaXRl
bXNbMCAuLiAkI2l0ZW1zIC0gMV0pIC4gIiBhbmQgIiAuICRpdGVtc1stMV07CiB9CiAKLXN1YiBn
ZW5lcmF0ZUZpbGVMaXN0KFwlKQorc3ViIGdlbmVyYXRlRmlsZUxpc3QoXCUkJCQpCiB7Ci0gICAg
bXkgKCRwYXRocykgPSBAXzsKKyAgICBteSAoJHBhdGhzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgs
ICRtZXJnZUJhc2UpID0gQF87CiAKICAgICBteSBAY2hhbmdlZEZpbGVzOwogICAgIG15IEBjb25m
bGljdEZpbGVzOwogICAgIG15ICVmdW5jdGlvbkxpc3RzOwogICAgIG15IEBhZGRlZFJlZ3Jlc3Np
b25UZXN0czsKICAgICBwcmludCBTVERFUlIgIiAgUnVubmluZyBzdGF0dXMgdG8gZmluZCBjaGFu
Z2VkLCBhZGRlZCwgb3IgcmVtb3ZlZCBmaWxlcy5cbiI7Ci0gICAgb3BlbiBTVEFULCAiLXwiLCBz
dGF0dXNDb21tYW5kKGtleXMgJSRwYXRocykgb3IgZGllICJUaGUgc3RhdHVzIGZhaWxlZDogJCEu
XG4iOworICAgIG9wZW4gU1RBVCwgIi18Iiwgc3RhdHVzQ29tbWFuZCgkcGF0aHMsICRnaXRDb21t
aXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgb3IgZGllICJUaGUgc3RhdHVzIGZhaWxlZDogJCEu
XG4iOwogICAgIHdoaWxlICg8U1RBVD4pIHsKICAgICAgICAgbXkgJHN0YXR1czsKICAgICAgICAg
bXkgJHByb3BlcnR5U3RhdHVzOwpAQCAtMTY1Niw3ICsxNjU5LDcgQEAgc3ViIGdlbmVyYXRlRmls
ZUxpc3QoXCUpCiAgICAgICAgICAgICAgICAgICAgICAgICYmICFzY2FsYXIoZ3JlcCgvXnNjcmlw
dC10ZXN0cyQvaSwgQGNvbXBvbmVudHMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1
c2ggQGNoYW5nZWRGaWxlcywgJGZpbGUgaWYgJGNvbXBvbmVudHNbJCNjb21wb25lbnRzXSBuZSAi
Q2hhbmdlTG9nIjsKLSAgICAgICAgfSBlbHNpZiAoaXNDb25mbGljdFN0YXR1cygkc3RhdHVzKSB8
fCBpc0NvbmZsaWN0U3RhdHVzKCRwcm9wZXJ0eVN0YXR1cykpIHsKKyAgICAgICAgfSBlbHNpZiAo
aXNDb25mbGljdFN0YXR1cygkc3RhdHVzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgpIHx8IGlzQ29u
ZmxpY3RTdGF0dXMoJHByb3BlcnR5U3RhdHVzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgpKSB7CiAg
ICAgICAgICAgICBwdXNoIEBjb25mbGljdEZpbGVzLCAkZmlsZTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoYmFzZW5hbWUoJGZpbGUpIG5lICJDaGFuZ2VMb2ciKSB7CkBAIC0xNzAzLDkgKzE3MDYs
OSBAQCBzdWIgaXNBZGRlZFN0YXR1cygkKQogICAgIHJldHVybiAkc3RhdHVzQ29kZXN7JHN0YXR1
c307CiB9CiAKLXN1YiBpc0NvbmZsaWN0U3RhdHVzKCQpCitzdWIgaXNDb25mbGljdFN0YXR1cygk
JCQpCiB7Ci0gICAgbXkgKCRzdGF0dXMpID0gQF87CisgICAgbXkgKCRzdGF0dXMsICRnaXRDb21t
aXQsICRnaXRJbmRleCkgPSBAXzsKIAogICAgIG15ICVzdm4gPSAoCiAgICAgICAgICJDIiA9PiAx
LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119573</attachid>
            <date>2011-12-15 23:15:37 -0800</date>
            <delta_ts>2011-12-16 05:08:37 -0800</delta_ts>
            <desc>rebased patch</desc>
            <filename>bug-74681-20111216161536.patch</filename>
            <type>text/plain</type>
            <size>12120</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI1MWYyZDNkM2JkMmMwNGM4OTk5NGM0ZDNhNWQyNTUy
NzZjZjQxNS4uZWVhZjkxODNhZmE0ODk1MDlhM2YyN2JmYjVhMGNhN2JhNDQyYTRmMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDExLTEyLTE1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIFJlbW92ZSBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHBy
ZXBhcmUtQ2hhbmdlTG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NDY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIGFyZSBwbGFubmluZyB0byB3cml0ZSB1bml0LXRlc3RzIGZvciBwcmVwYXJlLUNo
YW5nZUxvZyBpbiBhIHJ1bi1sZWFrc191bml0dGVzdAorICAgICAgICBtYW5uZXIuIFRoaXMgYnVn
IGlzIG9uZSBvZiB0aGUgaW5jcmVtZW50YWwgcmVmYWN0b3JpbmdzIHRvIHJlbW92ZSBhbGwgdG9w
LWxldmVsCisgICAgICAgIGNvZGUgYW5kIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBwcmVwYXJlLUNo
YW5nZUxvZy4gSW4gdGhpcyBwYXRjaCwKKyAgICAgICAgd2UgbWFrZSB0aGUgZm9sbG93aW5nIGds
b2JhbCB2YXJpYWJsZXMgYmUgdXNlZCBvbmx5IHRocm91Z2ggcGFyYW1ldGVyIHBhc3NpbmcuCisg
ICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHByZXBh
cmUtQ2hhbmdlTG9nLgorICAgICAgICAgICAgLSAkbWVyZ2VCYXNlCisgICAgICAgICAgICAtICRn
aXRDb21taXQKKyAgICAgICAgICAgIC0gJGdpdEluZGV4CisKKyAgICAgICAgKiBTY3JpcHRzL3By
ZXBhcmUtQ2hhbmdlTG9nOgorICAgICAgICAoZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKToKKyAgICAg
ICAgKGNoYW5nZUxvZ05hbWVGcm9tQXJncyk6CisgICAgICAgIChjaGFuZ2VMb2dFbWFpbEFkZHJl
c3NGcm9tQXJncyk6CisgICAgICAgIChnZW5lcmF0ZU5ld0NoYW5nZUxvZ3MpOgorICAgICAgICAo
cHJpbnREaWZmKToKKyAgICAgICAgKGRpZmZGcm9tVG9TdHJpbmcpOgorICAgICAgICAoZGlmZkNv
bW1hbmQpOgorICAgICAgICAoc3RhdHVzQ29tbWFuZCk6CisgICAgICAgIChjcmVhdGVQYXRjaENv
bW1hbmQpOgorICAgICAgICAoZ2VuZXJhdGVGaWxlTGlzdCk6CisgICAgICAgIChpc0NvbmZsaWN0
U3RhdHVzKToKKwogMjAxMS0xMi0xNSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTlJXVCBzaG91bGQgdXNlIGZyZWUgKyBpbmFjdGl2ZSBtZW1vcnkgZm9yIGRlZmF1
bHRfY2hpbGRfcHJvY2Vzc2VzIG9uIE9TIFggKGFuZCBuZXZlciByZXR1cm4gPCAxIHByb2Nlc3Mp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nIGIvVG9vbHMvU2Ny
aXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBkNjVjZGJiYzUyODZmZTJiOTc1ZjFiMjQ3YTI3
MzU3YmJlMTJmMzM3Li40MzVhZGZjOTVkM2ViNjEzMzUzNWIxZjljNzk1MzY4Njc2OGM5MjkzIDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTY1LDI5ICs2NSwyOSBAQCB1c2UgUE9TSVggcXco
c3RyZnRpbWUpOwogdXNlIFZDU1V0aWxzOwogCiBzdWIgY2hhbmdlTG9nRGF0ZSgkKTsKLXN1YiBj
aGFuZ2VMb2dFbWFpbEFkZHJlc3NGcm9tQXJncygkKTsKLXN1YiBjaGFuZ2VMb2dOYW1lRnJvbUFy
Z3MoJCk7CitzdWIgY2hhbmdlTG9nRW1haWxBZGRyZXNzRnJvbUFyZ3MoJCQpOworc3ViIGNoYW5n
ZUxvZ05hbWVGcm9tQXJncygkJCk7CiBzdWIgZmV0Y2hCdWdEZXNjcmlwdGlvbkZyb21VUkwoJCQp
Owogc3ViIGZpbmRDaGFuZ2VMb2dzKCQpOwogc3ViIGdldExhdGVzdENoYW5nZUxvZ3MoJCk7CiBz
dWIgcmVzb2x2ZUNvbmZsaWN0ZWRDaGFuZ2VMb2dzKCQpOwotc3ViIGdlbmVyYXRlTmV3Q2hhbmdl
TG9ncygkJCQkJCQkJCQkKTsKLXN1YiBwcmludERpZmYoJCk7CitzdWIgZ2VuZXJhdGVOZXdDaGFu
Z2VMb2dzKCQkJCQkJCQkJCQkKTsKK3N1YiBwcmludERpZmYoJCQkJCk7CiBzdWIgb3BlbkNoYW5n
ZUxvZ3MoJCk7Ci1zdWIgZGlmZkZyb21Ub1N0cmluZygpOwotc3ViIGRpZmZDb21tYW5kKEApOwot
c3ViIHN0YXR1c0NvbW1hbmQoQCk7Ci1zdWIgY3JlYXRlUGF0Y2hDb21tYW5kKCQpOworc3ViIGRp
ZmZGcm9tVG9TdHJpbmcoJCQkKTsKK3N1YiBkaWZmQ29tbWFuZCgkJCQkKTsKK3N1YiBzdGF0dXND
b21tYW5kKCQkJCQpOworc3ViIGNyZWF0ZVBhdGNoQ29tbWFuZCgkJCQkKTsKIHN1YiBkaWZmSGVh
ZGVyRm9ybWF0KCk7CiBzdWIgZmluZE9yaWdpbmFsRmlsZUZyb21Tdm4oJCk7CiBzdWIgZGV0ZXJt
aW5lUHJvcGVydHlDaGFuZ2VzKCQkJCk7CiBzdWIgcGx1cmFsaXplQW5kTGlzdCgkJEApOwotc3Vi
IGdlbmVyYXRlRmlsZUxpc3QoXCUpOwotc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygkJCk7Citz
dWIgZ2VuZXJhdGVGaWxlTGlzdChcJSQkJCk7CitzdWIgZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKCQk
JCQkKTsKIHN1YiBpc1VubW9kaWZpZWRTdGF0dXMoJCk7CiBzdWIgaXNNb2RpZmllZFN0YXR1cygk
KTsKIHN1YiBpc0FkZGVkU3RhdHVzKCQpOwotc3ViIGlzQ29uZmxpY3RTdGF0dXMoJCk7CitzdWIg
aXNDb25mbGljdFN0YXR1cygkJCQpOwogc3ViIHN0YXR1c0Rlc2NyaXB0aW9uKCQkJCQpOwogc3Vi
IHByb3BlcnR5Q2hhbmdlRGVzY3JpcHRpb24oJCk7CiBzdWIgZXh0cmFjdExpbmVSYW5nZSgkKTsK
QEAgLTE3MSw3ICsxNzEsNyBAQCBpc1NWTigpIHx8IGlzR2l0KCkgfHwgZGllICJDb3VsZG4ndCBk
ZXRlcm1pbmUgeW91ciB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLiI7CiBteSAlcGF0aHMgPSBwcm9j
ZXNzUGF0aHMoQEFSR1YpOwogCiAjIEZpbmQgdGhlIGxpc3Qgb2YgbW9kaWZpZWQgZmlsZXMKLW15
ICgkY2hhbmdlZEZpbGVzLCAkY29uZmxpY3RGaWxlcywgJGZ1bmN0aW9uTGlzdHMsICRhZGRlZFJl
Z3Jlc3Npb25UZXN0cykgPSBnZW5lcmF0ZUZpbGVMaXN0KCVwYXRocyk7CitteSAoJGNoYW5nZWRG
aWxlcywgJGNvbmZsaWN0RmlsZXMsICRmdW5jdGlvbkxpc3RzLCAkYWRkZWRSZWdyZXNzaW9uVGVz
dHMpID0gZ2VuZXJhdGVGaWxlTGlzdCglcGF0aHMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1l
cmdlQmFzZSk7CiAKIGlmICghQCRjaGFuZ2VkRmlsZXMgJiYgIUAkY29uZmxpY3RGaWxlcyAmJiAh
a2V5cyAlJGZ1bmN0aW9uTGlzdHMpIHsKICAgICBwcmludCBTVERFUlIgIiAgTm8gY2hhbmdlcyBm
b3VuZC5cbiI7CkBAIC0xODQsMTEgKzE4NCwxMSBAQCBpZiAoQCRjb25mbGljdEZpbGVzKSB7CiAg
ICAgZXhpdCAxOwogfQogCi1nZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJGNoYW5nZWRGaWxlcywgJGZ1
bmN0aW9uTGlzdHMpOworZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKCRjaGFuZ2VkRmlsZXMsICRmdW5j
dGlvbkxpc3RzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpOwogCiAjIEdldCBz
b21lIHBhcmFtZXRlcnMgZm9yIHRoZSBDaGFuZ2VMb2cgd2UgYXJlIGFib3V0IHRvIHdyaXRlLgot
JG5hbWUgPSBjaGFuZ2VMb2dOYW1lRnJvbUFyZ3MoJG5hbWUpOwotJGVtYWlsQWRkcmVzcyA9IGNo
YW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCRlbWFpbEFkZHJlc3MpOworJG5hbWUgPSBjaGFu
Z2VMb2dOYW1lRnJvbUFyZ3MoJG5hbWUsICRnaXRDb21taXQpOworJGVtYWlsQWRkcmVzcyA9IGNo
YW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCRlbWFpbEFkZHJlc3MsICRnaXRDb21taXQpOwog
CiBwcmludCBTVERFUlIgIiAgQ2hhbmdlIGF1dGhvcjogJG5hbWUgPCRlbWFpbEFkZHJlc3M+Llxu
IjsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIGlmIChAJGNoYW5nZUxvZ3MgJiYgJHVwZGF0ZUNoYW5n
ZUxvZ3MgJiYgaXNTVk4oKSkgewogICAgIHJlc29sdmVDb25mbGljdGVkQ2hhbmdlTG9ncygkY2hh
bmdlTG9ncyk7CiB9CiAKLWdlbmVyYXRlTmV3Q2hhbmdlTG9ncygkcHJlZml4ZXMsICRmaWxlc0lu
Q2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzLCAkYnVnVVJM
LCAkYnVnRGVzY3JpcHRpb24sICRuYW1lLCAkZW1haWxBZGRyZXNzLCAkZ2l0UmV2aWV3ZXIsICR3
cml0ZUNoYW5nZUxvZ3MpOworZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCRwcmVmaXhlcywgJGZpbGVz
SW5DaGFuZ2VMb2csICRhZGRlZFJlZ3Jlc3Npb25UZXN0cywgJGZ1bmN0aW9uTGlzdHMsICRidWdV
UkwsICRidWdEZXNjcmlwdGlvbiwgJG5hbWUsICRlbWFpbEFkZHJlc3MsICRnaXRSZXZpZXdlciwg
JGdpdENvbW1pdCwgJHdyaXRlQ2hhbmdlTG9ncyk7CiAKIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7
CiAgICAgcHJpbnQgU1RERVJSICItLSBQbGVhc2UgcmVtZW1iZXIgdG8gaW5jbHVkZSBhIGRldGFp
bGVkIGRlc2NyaXB0aW9uIGluIHlvdXIgQ2hhbmdlTG9nIGVudHJ5LiAtLVxuLS0gU2VlIDxodHRw
Oi8vd2Via2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWw+IGZvciBtb3JlIGluZm8gLS1c
biI7CkBAIC0yMjEsNyArMjIxLDcgQEAgaWYgKCR3cml0ZUNoYW5nZUxvZ3MpIHsKIAogIyBXcml0
ZSBvdXQgYW5vdGhlciBkaWZmLgogaWYgKCRzcGV3RGlmZiAmJiBAJGNoYW5nZWRGaWxlcykgewot
ICAgIHByaW50RGlmZigkY2hhbmdlZEZpbGVzKTsKKyAgICBwcmludERpZmYoJGNoYW5nZWRGaWxl
cywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKTsKIH0KIAogIyBPcGVuIENoYW5n
ZUxvZ3MuCkBAIC0yMzMsOSArMjMzLDkgQEAgaWYgKCRvcGVuQ2hhbmdlTG9ncyAmJiBAJGNoYW5n
ZUxvZ3MpIHsKIGV4aXQ7CiAKIAotc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygkJCkKK3N1YiBn
ZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJCQkJCQpCiB7Ci0gICAgbXkgKCRjaGFuZ2VkRmlsZXMsICRm
dW5jdGlvbkxpc3RzKSA9IEBfOworICAgIG15ICgkY2hhbmdlZEZpbGVzLCAkZnVuY3Rpb25MaXN0
cywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwogCiAgICAgbXkgJWNo
YW5nZWRfbGluZV9yYW5nZXM7CiAgICAgaWYgKEAkY2hhbmdlZEZpbGVzKSB7CkBAIC0yNDMsNyAr
MjQzLDcgQEAgc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygkJCkKICAgICAgICAgIyBVc2UgbGlu
ZSBudW1iZXJzIGZyb20gdGhlICJhZnRlciIgc2lkZSBvZiBlYWNoIGRpZmYuCiAgICAgICAgIHBy
aW50IFNUREVSUiAiICBSZXZpZXdpbmcgZGlmZiB0byBkZXRlcm1pbmUgd2hpY2ggbGluZXMgY2hh
bmdlZC5cbiI7CiAgICAgICAgIG15ICRmaWxlOwotICAgICAgICBvcGVuIERJRkYsICItfCIsIGRp
ZmZDb21tYW5kKEAkY2hhbmdlZEZpbGVzKSBvciBkaWUgIlRoZSBkaWZmIGZhaWxlZDogJCEuXG4i
OworICAgICAgICBvcGVuIERJRkYsICItfCIsIGRpZmZDb21tYW5kKCRjaGFuZ2VkRmlsZXMsICRn
aXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgb3IgZGllICJUaGUgZGlmZiBmYWlsZWQ6
ICQhLlxuIjsKICAgICAgICAgd2hpbGUgKDxESUZGPikgewogICAgICAgICAgICAgJGZpbGUgPSBt
YWtlRmlsZVBhdGhSZWxhdGl2ZSgkMSkgaWYgJF8gPX4gZGlmZkhlYWRlckZvcm1hdCgpOwogICAg
ICAgICAgICAgaWYgKGRlZmluZWQgJGZpbGUpIHsKQEAgLTMxOCwxOCArMzE4LDE4IEBAIHN1YiBj
aGFuZ2VMb2dEYXRlKCQpCiAgICAgcmV0dXJuICRkYXRlOwogfQogCi1zdWIgY2hhbmdlTG9nTmFt
ZUZyb21BcmdzKCQpCitzdWIgY2hhbmdlTG9nTmFtZUZyb21BcmdzKCQkKQogewotICAgIG15ICgk
bmFtZUZyb21BcmdzKSA9IEBfOworICAgIG15ICgkbmFtZUZyb21BcmdzLCAkZ2l0Q29tbWl0KSA9
IEBfOwogICAgICMgU2lsZW50bHkgYWxsb3cgLS1naXQtY29tbWl0IHRvIHdpbiwgd2UgY291bGQg
d2FybiBpZiAkbmFtZUZyb21BcmdzIGlzIGRlZmluZWQuCiAgICAgcmV0dXJuIGAkR0lUIGxvZyAt
LW1heC1jb3VudD0xIC0tcHJldHR5PVwiZm9ybWF0OiVhblwiIFwiJGdpdENvbW1pdFwiYCBpZiAk
Z2l0Q29tbWl0OwogCiAgICAgcmV0dXJuICRuYW1lRnJvbUFyZ3MgfHwgY2hhbmdlTG9nTmFtZSgp
OwogfQogCi1zdWIgY2hhbmdlTG9nRW1haWxBZGRyZXNzRnJvbUFyZ3MoJCkKK3N1YiBjaGFuZ2VM
b2dFbWFpbEFkZHJlc3NGcm9tQXJncygkJCkKIHsKLSAgICBteSAoJGVtYWlsQWRkcmVzc0Zyb21B
cmdzKSA9IEBfOworICAgIG15ICgkZW1haWxBZGRyZXNzRnJvbUFyZ3MsICRnaXRDb21taXQpID0g
QF87CiAgICAgIyBTaWxlbnRseSBhbGxvdyAtLWdpdC1jb21taXQgdG8gd2luLCB3ZSBjb3VsZCB3
YXJuIGlmICRlbWFpbEFkZHJlc3NGcm9tQXJncyBpcyBkZWZpbmVkLgogICAgIHJldHVybiBgJEdJ
VCBsb2cgLS1tYXgtY291bnQ9MSAtLXByZXR0eT1cImZvcm1hdDolYWVcIiBcIiRnaXRDb21taXRc
ImAgaWYgJGdpdENvbW1pdDsKIApAQCAtNDUyLDkgKzQ1Miw5IEBAIHN1YiByZXNvbHZlQ29uZmxp
Y3RlZENoYW5nZUxvZ3MoJCkKICAgICBjbG9zZSBSRVNPTFZFOwogfQogCi1zdWIgZ2VuZXJhdGVO
ZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQpCitzdWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCQkJCQk
JCQkJCQkKQogewotICAgIG15ICgkcHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9nLCAkYWRkZWRS
ZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzLCAkYnVnVVJMLCAkYnVnRGVzY3JpcHRpb24s
ICRuYW1lLCAkZW1haWxBZGRyZXNzLCAkZ2l0UmV2aWV3ZXIsICR3cml0ZUNoYW5nZUxvZ3MpID0g
QF87CisgICAgbXkgKCRwcmVmaXhlcywgJGZpbGVzSW5DaGFuZ2VMb2csICRhZGRlZFJlZ3Jlc3Np
b25UZXN0cywgJGZ1bmN0aW9uTGlzdHMsICRidWdVUkwsICRidWdEZXNjcmlwdGlvbiwgJG5hbWUs
ICRlbWFpbEFkZHJlc3MsICRnaXRSZXZpZXdlciwgJGdpdENvbW1pdCwgJHdyaXRlQ2hhbmdlTG9n
cykgPSBAXzsKIAogICAgICMgR2VuZXJhdGUgbmV3IENoYW5nZUxvZyBlbnRyaWVzIGFuZCAob3B0
aW9uYWxseSkgd3JpdGUgb3V0IG5ldyBDaGFuZ2VMb2cgZmlsZXMuCiAgICAgZm9yZWFjaCBteSAk
cHJlZml4IChAJHByZWZpeGVzKSB7CkBAIC01MTgsMTMgKzUxOCwxNCBAQCBzdWIgZ2VuZXJhdGVO
ZXdDaGFuZ2VMb2dzKCQkJCQkJCQkJCQpCiAgICAgfQogfQogCi1zdWIgcHJpbnREaWZmKCQpCitz
dWIgcHJpbnREaWZmKCQkJCQpCiB7Ci0gICAgbXkgKCRjaGFuZ2VkRmlsZXMpID0gQF87CisgICAg
bXkgKCRjaGFuZ2VkRmlsZXMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBA
XzsKIAogICAgIHByaW50IFNUREVSUiAiICBSdW5uaW5nIGRpZmYgdG8gaGVscCB5b3Ugd3JpdGUg
dGhlIENoYW5nZUxvZyBlbnRyaWVzLlxuIjsKICAgICBsb2NhbCAkLyA9IHVuZGVmOyAjIGxvY2Fs
IHNsdXJwIG1vZGUKLSAgICBvcGVuIERJRkYsICItfCIsIGNyZWF0ZVBhdGNoQ29tbWFuZCgiJyIg
LiBqb2luICgiJyAnIiwgQCRjaGFuZ2VkRmlsZXMpIC4gIiciKSBvciBkaWUgIlRoZSBkaWZmIGZh
aWxlZDogJCEuXG4iOworICAgIG15ICRjaGFuZ2VkRmlsZXNTdHJpbmcgPSAiJyIgLiBqb2luICgi
JyAnIiwgQCRjaGFuZ2VkRmlsZXMpIC4gIiciOworICAgIG9wZW4gRElGRiwgIi18IiwgY3JlYXRl
UGF0Y2hDb21tYW5kKCRjaGFuZ2VkRmlsZXNTdHJpbmcsICRnaXRDb21taXQsICRnaXRJbmRleCwg
JG1lcmdlQmFzZSkgb3IgZGllICJUaGUgZGlmZiBmYWlsZWQ6ICQhLlxuIjsKICAgICBwcmludCA8
RElGRj47CiAgICAgY2xvc2UgRElGRjsKIH0KQEAgLTE0MzIsOCArMTQzMywxMCBAQCBzdWIgcHJv
Y2Vzc1BhdGhzKFxAKQogICAgIHJldHVybiAlcmVzdWx0OwogfQogCi1zdWIgZGlmZkZyb21Ub1N0
cmluZygpCitzdWIgZGlmZkZyb21Ub1N0cmluZygkJCQpCiB7CisgICAgbXkgKCRnaXRDb21taXQs
ICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKKwogICAgIHJldHVybiAiIiBpZiBpc1NWTigp
OwogICAgIHJldHVybiAkZ2l0Q29tbWl0IGlmICRnaXRDb21taXQgPX4gbS8uK1wuXC4uKy87CiAg
ICAgcmV0dXJuICJcIiRnaXRDb21taXReXCIgXCIkZ2l0Q29tbWl0XCIiIGlmICRnaXRDb21taXQ7
CkBAIC0xNDQyLDUxICsxNDQ1LDUxIEBAIHN1YiBkaWZmRnJvbVRvU3RyaW5nKCkKICAgICByZXR1
cm4gIkhFQUQiIGlmIGlzR2l0KCk7CiB9CiAKLXN1YiBkaWZmQ29tbWFuZChAKQorc3ViIGRpZmZD
b21tYW5kKCQkJCQpCiB7Ci0gICAgbXkgQHBhdGhzID0gQF87CisgICAgbXkgKCRwYXRocywgJGdp
dENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwogCiAgICAgbXkgJGNvbW1hbmQ7
CiAgICAgaWYgKGlzU1ZOKCkpIHsKLSAgICAgICAgbXkgQGVzY2FwZWRQYXRocyA9IG1hcChlc2Nh
cGVTdWJ2ZXJzaW9uUGF0aCgkXyksIEBwYXRocyk7CisgICAgICAgIG15IEBlc2NhcGVkUGF0aHMg
PSBtYXAoZXNjYXBlU3VidmVyc2lvblBhdGgoJF8pLCBAJHBhdGhzKTsKICAgICAgICAgbXkgJGVz
Y2FwZWRQYXRoc1N0cmluZyA9ICInIiAuIGpvaW4oIicgJyIsIEBlc2NhcGVkUGF0aHMpIC4gIici
OwogICAgICAgICAkY29tbWFuZCA9ICIkU1ZOIGRpZmYgLS1kaWZmLWNtZCBkaWZmIC14IC1OICRl
c2NhcGVkUGF0aHNTdHJpbmciOwogICAgIH0gZWxzaWYgKGlzR2l0KCkpIHsKLSAgICAgICAgbXkg
JHBhdGhzU3RyaW5nID0gIiciIC4gam9pbigiJyAnIiwgQHBhdGhzKSAuICInIjsgCi0gICAgICAg
ICRjb21tYW5kID0gIiRHSVQgZGlmZiAtLW5vLWV4dC1kaWZmIC1VMCAiIC4gZGlmZkZyb21Ub1N0
cmluZygpOworICAgICAgICBteSAkcGF0aHNTdHJpbmcgPSAiJyIgLiBqb2luKCInICciLCBAJHBh
dGhzKSAuICInIjsgCisgICAgICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtLW5vLWV4dC1kaWZm
IC1VMCAiIC4gZGlmZkZyb21Ub1N0cmluZygkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJh
c2UpOwogICAgICAgICAkY29tbWFuZCAuPSAiIC0tICRwYXRoc1N0cmluZyIgdW5sZXNzICRnaXRD
b21taXQgb3IgJG1lcmdlQmFzZTsKICAgICB9CiAKICAgICByZXR1cm4gJGNvbW1hbmQ7CiB9CiAK
LXN1YiBzdGF0dXNDb21tYW5kKEApCitzdWIgc3RhdHVzQ29tbWFuZCgkJCQkKQogewotICAgIG15
IEBmaWxlcyA9IEBfOworICAgIG15ICgkcGF0aHMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1l
cmdlQmFzZSkgPSBAXzsKIAogICAgIG15ICRjb21tYW5kOwogICAgIGlmIChpc1NWTigpKSB7Ci0g
ICAgICAgIG15IEBlc2NhcGVkRmlsZXMgPSBtYXAoZXNjYXBlU3VidmVyc2lvblBhdGgoJF8pLCBA
ZmlsZXMpOworICAgICAgICBteSBAZXNjYXBlZEZpbGVzID0gbWFwKGVzY2FwZVN1YnZlcnNpb25Q
YXRoKCRfKSwga2V5cyAlJHBhdGhzKTsKICAgICAgICAgbXkgJGVzY2FwZWRGaWxlc1N0cmluZyA9
ICInIiAuIGpvaW4oIicgJyIsIEBlc2NhcGVkRmlsZXMpIC4gIiciOwogICAgICAgICAkY29tbWFu
ZCA9ICIkU1ZOIHN0YXQgJGVzY2FwZWRGaWxlc1N0cmluZyI7CiAgICAgfSBlbHNpZiAoaXNHaXQo
KSkgewotICAgICAgICBteSAkZmlsZXNTdHJpbmcgPSAiXCIiIC4gam9pbiAoIlwiIFwiIiwgQGZp
bGVzKSAuICJcIiI7Ci0gICAgICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtciAtLW5hbWUtc3Rh
dHVzIC1NIC1DICIgLiBkaWZmRnJvbVRvU3RyaW5nKCk7CisgICAgICAgIG15ICRmaWxlc1N0cmlu
ZyA9ICJcIiIgLiBqb2luICgiXCIgXCIiLCBrZXlzICUkcGF0aHMpIC4gIlwiIjsKKyAgICAgICAg
JGNvbW1hbmQgPSAiJEdJVCBkaWZmIC1yIC0tbmFtZS1zdGF0dXMgLU0gLUMgIiAuIGRpZmZGcm9t
VG9TdHJpbmcoJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKTsKICAgICAgICAgJGNv
bW1hbmQgLj0gIiAtLSAkZmlsZXNTdHJpbmciIHVubGVzcyAkZ2l0Q29tbWl0OwogICAgIH0KIAog
ICAgIHJldHVybiAiJGNvbW1hbmQgMj4mMSI7CiB9CiAKLXN1YiBjcmVhdGVQYXRjaENvbW1hbmQo
JCkKK3N1YiBjcmVhdGVQYXRjaENvbW1hbmQoJCQkJCkKIHsKLSAgICBteSAoJGNoYW5nZWRGaWxl
c1N0cmluZykgPSBAXzsKKyAgICBteSAoJGNoYW5nZWRGaWxlc1N0cmluZywgJGdpdENvbW1pdCwg
JGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwogCiAgICAgbXkgJGNvbW1hbmQ7CiAgICAgaWYg
KGlzU1ZOKCkpIHsKICAgICAgICAgJGNvbW1hbmQgPSAiJyRGaW5kQmluOjpCaW4vc3ZuLWNyZWF0
ZS1wYXRjaCcgJGNoYW5nZWRGaWxlc1N0cmluZyI7CiAgICAgfSBlbHNpZiAoaXNHaXQoKSkgewot
ICAgICAgICAkY29tbWFuZCA9ICIkR0lUIGRpZmYgLU0gLUMgIiAuIGRpZmZGcm9tVG9TdHJpbmco
KTsKKyAgICAgICAgJGNvbW1hbmQgPSAiJEdJVCBkaWZmIC1NIC1DICIgLiBkaWZmRnJvbVRvU3Ry
aW5nKCRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSk7CiAgICAgICAgICRjb21tYW5k
IC49ICIgLS0gJGNoYW5nZWRGaWxlc1N0cmluZyIgdW5sZXNzICRnaXRDb21taXQ7CiAgICAgfQog
CkBAIC0xNTk0LDE2ICsxNTk3LDE2IEBAIHN1YiBwbHVyYWxpemVBbmRMaXN0KCQkQCkKICAgICBy
ZXR1cm4gIiRwbHVyYWwgIiAuIGpvaW4oIiwgIiwgQGl0ZW1zWzAgLi4gJCNpdGVtcyAtIDFdKSAu
ICIgYW5kICIgLiAkaXRlbXNbLTFdOwogfQogCi1zdWIgZ2VuZXJhdGVGaWxlTGlzdChcJSkKK3N1
YiBnZW5lcmF0ZUZpbGVMaXN0KFwlJCQkKQogewotICAgIG15ICgkcGF0aHMpID0gQF87CisgICAg
bXkgKCRwYXRocywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwogCiAg
ICAgbXkgQGNoYW5nZWRGaWxlczsKICAgICBteSBAY29uZmxpY3RGaWxlczsKICAgICBteSAlZnVu
Y3Rpb25MaXN0czsKICAgICBteSBAYWRkZWRSZWdyZXNzaW9uVGVzdHM7CiAgICAgcHJpbnQgU1RE
RVJSICIgIFJ1bm5pbmcgc3RhdHVzIHRvIGZpbmQgY2hhbmdlZCwgYWRkZWQsIG9yIHJlbW92ZWQg
ZmlsZXMuXG4iOwotICAgIG9wZW4gU1RBVCwgIi18Iiwgc3RhdHVzQ29tbWFuZChrZXlzICUkcGF0
aHMpIG9yIGRpZSAiVGhlIHN0YXR1cyBmYWlsZWQ6ICQhLlxuIjsKKyAgICBvcGVuIFNUQVQsICIt
fCIsIHN0YXR1c0NvbW1hbmQoJHBhdGhzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJh
c2UpIG9yIGRpZSAiVGhlIHN0YXR1cyBmYWlsZWQ6ICQhLlxuIjsKICAgICB3aGlsZSAoPFNUQVQ+
KSB7CiAgICAgICAgIG15ICRzdGF0dXM7CiAgICAgICAgIG15ICRwcm9wZXJ0eVN0YXR1czsKQEAg
LTE2NjIsNyArMTY2NSw3IEBAIHN1YiBnZW5lcmF0ZUZpbGVMaXN0KFwlKQogICAgICAgICAgICAg
ICAgICAgICAgICAmJiAhc2NhbGFyKGdyZXAoL15zY3JpcHQtdGVzdHMkL2ksIEBjb21wb25lbnRz
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoIEBjaGFuZ2VkRmlsZXMsICRmaWxl
IGlmICRjb21wb25lbnRzWyQjY29tcG9uZW50c10gbmUgIkNoYW5nZUxvZyI7Ci0gICAgICAgIH0g
ZWxzaWYgKGlzQ29uZmxpY3RTdGF0dXMoJHN0YXR1cykgfHwgaXNDb25mbGljdFN0YXR1cygkcHJv
cGVydHlTdGF0dXMpKSB7CisgICAgICAgIH0gZWxzaWYgKGlzQ29uZmxpY3RTdGF0dXMoJHN0YXR1
cywgJGdpdENvbW1pdCwgJGdpdEluZGV4KSB8fCBpc0NvbmZsaWN0U3RhdHVzKCRwcm9wZXJ0eVN0
YXR1cywgJGdpdENvbW1pdCwgJGdpdEluZGV4KSkgewogICAgICAgICAgICAgcHVzaCBAY29uZmxp
Y3RGaWxlcywgJGZpbGU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGJhc2VuYW1lKCRmaWxlKSBu
ZSAiQ2hhbmdlTG9nIikgewpAQCAtMTcwOSw5ICsxNzEyLDkgQEAgc3ViIGlzQWRkZWRTdGF0dXMo
JCkKICAgICByZXR1cm4gJHN0YXR1c0NvZGVzeyRzdGF0dXN9OwogfQogCi1zdWIgaXNDb25mbGlj
dFN0YXR1cygkKQorc3ViIGlzQ29uZmxpY3RTdGF0dXMoJCQkKQogewotICAgIG15ICgkc3RhdHVz
KSA9IEBfOworICAgIG15ICgkc3RhdHVzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgpID0gQF87CiAK
ICAgICBteSAlc3ZuID0gKAogICAgICAgICAiQyIgPT4gMSwK
</data>
<flag name="review"
          id="119645"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119576</attachid>
            <date>2011-12-16 00:07:27 -0800</date>
            <delta_ts>2011-12-16 01:21:19 -0800</delta_ts>
            <desc>patch for commit</desc>
            <filename>bug-74681-20111216170726.patch</filename>
            <type>text/plain</type>
            <size>12112</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI1MWYyZDNkM2JkMmMwNGM4OTk5NGM0ZDNhNWQyNTUy
NzZjZjQxNS4uOWNjODNlMjQ3YjMxNzBiYjFlMDRiNDMxYjkzZmEyMDI2MzRjZjIyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDExLTEyLTE1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIFJlbW92ZSBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHBy
ZXBhcmUtQ2hhbmdlTG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NDY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAg
ICAgICBXZSBhcmUgcGxhbm5pbmcgdG8gd3JpdGUgdW5pdC10ZXN0cyBmb3IgcHJlcGFyZS1DaGFu
Z2VMb2cgaW4gYSBydW4tbGVha3NfdW5pdHRlc3QKKyAgICAgICAgbWFubmVyLiBUaGlzIGJ1ZyBp
cyBvbmUgb2YgdGhlIGluY3JlbWVudGFsIHJlZmFjdG9yaW5ncyB0byByZW1vdmUgYWxsIHRvcC1s
ZXZlbAorICAgICAgICBjb2RlIGFuZCBnbG9iYWwgdmFyaWFibGVzIGZyb20gcHJlcGFyZS1DaGFu
Z2VMb2cuIEluIHRoaXMgcGF0Y2gsCisgICAgICAgIHdlIG1ha2UgdGhlIGZvbGxvd2luZyBnbG9i
YWwgdmFyaWFibGVzIGJlIHVzZWQgb25seSB0aHJvdWdoIHBhcmFtZXRlciBwYXNzaW5nLgorICAg
ICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYWxsIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBwcmVwYXJl
LUNoYW5nZUxvZy4KKyAgICAgICAgICAgIC0gJG1lcmdlQmFzZQorICAgICAgICAgICAgLSAkZ2l0
Q29tbWl0CisgICAgICAgICAgICAtICRnaXRJbmRleAorCisgICAgICAgICogU2NyaXB0cy9wcmVw
YXJlLUNoYW5nZUxvZzoKKyAgICAgICAgKGdlbmVyYXRlRnVuY3Rpb25MaXN0cyk6CisgICAgICAg
IChjaGFuZ2VMb2dOYW1lRnJvbUFyZ3MpOgorICAgICAgICAoY2hhbmdlTG9nRW1haWxBZGRyZXNz
RnJvbUFyZ3MpOgorICAgICAgICAoZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKToKKyAgICAgICAgKHBy
aW50RGlmZik6CisgICAgICAgIChkaWZmRnJvbVRvU3RyaW5nKToKKyAgICAgICAgKGRpZmZDb21t
YW5kKToKKyAgICAgICAgKHN0YXR1c0NvbW1hbmQpOgorICAgICAgICAoY3JlYXRlUGF0Y2hDb21t
YW5kKToKKyAgICAgICAgKGdlbmVyYXRlRmlsZUxpc3QpOgorICAgICAgICAoaXNDb25mbGljdFN0
YXR1cyk6CisKIDIwMTEtMTItMTUgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIE5SV1Qgc2hvdWxkIHVzZSBmcmVlICsgaW5hY3RpdmUgbWVtb3J5IGZvciBkZWZhdWx0
X2NoaWxkX3Byb2Nlc3NlcyBvbiBPUyBYIChhbmQgbmV2ZXIgcmV0dXJuIDwgMSBwcm9jZXNzKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZyBiL1Rvb2xzL1Njcmlw
dHMvcHJlcGFyZS1DaGFuZ2VMb2cKaW5kZXggZDY1Y2RiYmM1Mjg2ZmUyYjk3NWYxYjI0N2EyNzM1
N2JiZTEyZjMzNy4uMTdiZjlmZWRjMzg0N2Q0NTEzNzk4NjNjNjcxNDc0Y2JjMzZkYmY1MyAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZworKysgYi9Ub29scy9TY3Jp
cHRzL3ByZXBhcmUtQ2hhbmdlTG9nCkBAIC02NSwyOSArNjUsMjkgQEAgdXNlIFBPU0lYIHF3KHN0
cmZ0aW1lKTsKIHVzZSBWQ1NVdGlsczsKIAogc3ViIGNoYW5nZUxvZ0RhdGUoJCk7Ci1zdWIgY2hh
bmdlTG9nRW1haWxBZGRyZXNzRnJvbUFyZ3MoJCk7Ci1zdWIgY2hhbmdlTG9nTmFtZUZyb21Bcmdz
KCQpOworc3ViIGNoYW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCQkKTsKK3N1YiBjaGFuZ2VM
b2dOYW1lRnJvbUFyZ3MoJCQpOwogc3ViIGZldGNoQnVnRGVzY3JpcHRpb25Gcm9tVVJMKCQkKTsK
IHN1YiBmaW5kQ2hhbmdlTG9ncygkKTsKIHN1YiBnZXRMYXRlc3RDaGFuZ2VMb2dzKCQpOwogc3Vi
IHJlc29sdmVDb25mbGljdGVkQ2hhbmdlTG9ncygkKTsKLXN1YiBnZW5lcmF0ZU5ld0NoYW5nZUxv
Z3MoJCQkJCQkJCQkJCk7Ci1zdWIgcHJpbnREaWZmKCQpOworc3ViIGdlbmVyYXRlTmV3Q2hhbmdl
TG9ncygkJCQkJCQkJCQkJCk7CitzdWIgcHJpbnREaWZmKCQkJCQpOwogc3ViIG9wZW5DaGFuZ2VM
b2dzKCQpOwotc3ViIGRpZmZGcm9tVG9TdHJpbmcoKTsKLXN1YiBkaWZmQ29tbWFuZChAKTsKLXN1
YiBzdGF0dXNDb21tYW5kKEApOwotc3ViIGNyZWF0ZVBhdGNoQ29tbWFuZCgkKTsKK3N1YiBkaWZm
RnJvbVRvU3RyaW5nKCQkJCk7CitzdWIgZGlmZkNvbW1hbmQoJCQkJCk7CitzdWIgc3RhdHVzQ29t
bWFuZCgkJCQkKTsKK3N1YiBjcmVhdGVQYXRjaENvbW1hbmQoJCQkJCk7CiBzdWIgZGlmZkhlYWRl
ckZvcm1hdCgpOwogc3ViIGZpbmRPcmlnaW5hbEZpbGVGcm9tU3ZuKCQpOwogc3ViIGRldGVybWlu
ZVByb3BlcnR5Q2hhbmdlcygkJCQpOwogc3ViIHBsdXJhbGl6ZUFuZExpc3QoJCRAKTsKLXN1YiBn
ZW5lcmF0ZUZpbGVMaXN0KFwlKTsKLXN1YiBnZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJCQpOworc3Vi
IGdlbmVyYXRlRmlsZUxpc3QoXCUkJCQpOworc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygkJCQk
JCk7CiBzdWIgaXNVbm1vZGlmaWVkU3RhdHVzKCQpOwogc3ViIGlzTW9kaWZpZWRTdGF0dXMoJCk7
CiBzdWIgaXNBZGRlZFN0YXR1cygkKTsKLXN1YiBpc0NvbmZsaWN0U3RhdHVzKCQpOworc3ViIGlz
Q29uZmxpY3RTdGF0dXMoJCQkKTsKIHN1YiBzdGF0dXNEZXNjcmlwdGlvbigkJCQkKTsKIHN1YiBw
cm9wZXJ0eUNoYW5nZURlc2NyaXB0aW9uKCQpOwogc3ViIGV4dHJhY3RMaW5lUmFuZ2UoJCk7CkBA
IC0xNzEsNyArMTcxLDcgQEAgaXNTVk4oKSB8fCBpc0dpdCgpIHx8IGRpZSAiQ291bGRuJ3QgZGV0
ZXJtaW5lIHlvdXIgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4iOwogbXkgJXBhdGhzID0gcHJvY2Vz
c1BhdGhzKEBBUkdWKTsKIAogIyBGaW5kIHRoZSBsaXN0IG9mIG1vZGlmaWVkIGZpbGVzCi1teSAo
JGNoYW5nZWRGaWxlcywgJGNvbmZsaWN0RmlsZXMsICRmdW5jdGlvbkxpc3RzLCAkYWRkZWRSZWdy
ZXNzaW9uVGVzdHMpID0gZ2VuZXJhdGVGaWxlTGlzdCglcGF0aHMpOworbXkgKCRjaGFuZ2VkRmls
ZXMsICRjb25mbGljdEZpbGVzLCAkZnVuY3Rpb25MaXN0cywgJGFkZGVkUmVncmVzc2lvblRlc3Rz
KSA9IGdlbmVyYXRlRmlsZUxpc3QoJXBhdGhzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJn
ZUJhc2UpOwogCiBpZiAoIUAkY2hhbmdlZEZpbGVzICYmICFAJGNvbmZsaWN0RmlsZXMgJiYgIWtl
eXMgJSRmdW5jdGlvbkxpc3RzKSB7CiAgICAgcHJpbnQgU1RERVJSICIgIE5vIGNoYW5nZXMgZm91
bmQuXG4iOwpAQCAtMTg0LDExICsxODQsMTEgQEAgaWYgKEAkY29uZmxpY3RGaWxlcykgewogICAg
IGV4aXQgMTsKIH0KIAotZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKCRjaGFuZ2VkRmlsZXMsICRmdW5j
dGlvbkxpc3RzKTsKK2dlbmVyYXRlRnVuY3Rpb25MaXN0cygkY2hhbmdlZEZpbGVzLCAkZnVuY3Rp
b25MaXN0cywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKTsKIAogIyBHZXQgc29t
ZSBwYXJhbWV0ZXJzIGZvciB0aGUgQ2hhbmdlTG9nIHdlIGFyZSBhYm91dCB0byB3cml0ZS4KLSRu
YW1lID0gY2hhbmdlTG9nTmFtZUZyb21BcmdzKCRuYW1lKTsKLSRlbWFpbEFkZHJlc3MgPSBjaGFu
Z2VMb2dFbWFpbEFkZHJlc3NGcm9tQXJncygkZW1haWxBZGRyZXNzKTsKKyRuYW1lID0gY2hhbmdl
TG9nTmFtZUZyb21BcmdzKCRuYW1lLCAkZ2l0Q29tbWl0KTsKKyRlbWFpbEFkZHJlc3MgPSBjaGFu
Z2VMb2dFbWFpbEFkZHJlc3NGcm9tQXJncygkZW1haWxBZGRyZXNzLCAkZ2l0Q29tbWl0KTsKIAog
cHJpbnQgU1RERVJSICIgIENoYW5nZSBhdXRob3I6ICRuYW1lIDwkZW1haWxBZGRyZXNzPi5cbiI7
CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBpZiAoQCRjaGFuZ2VMb2dzICYmICR1cGRhdGVDaGFuZ2VM
b2dzICYmIGlzU1ZOKCkpIHsKICAgICByZXNvbHZlQ29uZmxpY3RlZENoYW5nZUxvZ3MoJGNoYW5n
ZUxvZ3MpOwogfQogCi1nZW5lcmF0ZU5ld0NoYW5nZUxvZ3MoJHByZWZpeGVzLCAkZmlsZXNJbkNo
YW5nZUxvZywgJGFkZGVkUmVncmVzc2lvblRlc3RzLCAkZnVuY3Rpb25MaXN0cywgJGJ1Z1VSTCwg
JGJ1Z0Rlc2NyaXB0aW9uLCAkbmFtZSwgJGVtYWlsQWRkcmVzcywgJGdpdFJldmlld2VyLCAkd3Jp
dGVDaGFuZ2VMb2dzKTsKK2dlbmVyYXRlTmV3Q2hhbmdlTG9ncygkcHJlZml4ZXMsICRmaWxlc0lu
Q2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzLCAkYnVnVVJM
LCAkYnVnRGVzY3JpcHRpb24sICRuYW1lLCAkZW1haWxBZGRyZXNzLCAkZ2l0UmV2aWV3ZXIsICRn
aXRDb21taXQsICR3cml0ZUNoYW5nZUxvZ3MpOwogCiBpZiAoJHdyaXRlQ2hhbmdlTG9ncykgewog
ICAgIHByaW50IFNUREVSUiAiLS0gUGxlYXNlIHJlbWVtYmVyIHRvIGluY2x1ZGUgYSBkZXRhaWxl
ZCBkZXNjcmlwdGlvbiBpbiB5b3VyIENoYW5nZUxvZyBlbnRyeS4gLS1cbi0tIFNlZSA8aHR0cDov
L3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sPiBmb3IgbW9yZSBpbmZvIC0tXG4i
OwpAQCAtMjIxLDcgKzIyMSw3IEBAIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7CiAKICMgV3JpdGUg
b3V0IGFub3RoZXIgZGlmZi4KIGlmICgkc3Bld0RpZmYgJiYgQCRjaGFuZ2VkRmlsZXMpIHsKLSAg
ICBwcmludERpZmYoJGNoYW5nZWRGaWxlcyk7CisgICAgcHJpbnREaWZmKCRjaGFuZ2VkRmlsZXMs
ICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSk7CiB9CiAKICMgT3BlbiBDaGFuZ2VM
b2dzLgpAQCAtMjMzLDkgKzIzMyw5IEBAIGlmICgkb3BlbkNoYW5nZUxvZ3MgJiYgQCRjaGFuZ2VM
b2dzKSB7CiBleGl0OwogCiAKLXN1YiBnZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJCQpCitzdWIgZ2Vu
ZXJhdGVGdW5jdGlvbkxpc3RzKCQkJCQkKQogewotICAgIG15ICgkY2hhbmdlZEZpbGVzLCAkZnVu
Y3Rpb25MaXN0cykgPSBAXzsKKyAgICBteSAoJGNoYW5nZWRGaWxlcywgJGZ1bmN0aW9uTGlzdHMs
ICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKIAogICAgIG15ICVjaGFu
Z2VkX2xpbmVfcmFuZ2VzOwogICAgIGlmIChAJGNoYW5nZWRGaWxlcykgewpAQCAtMjQzLDcgKzI0
Myw3IEBAIHN1YiBnZW5lcmF0ZUZ1bmN0aW9uTGlzdHMoJCQpCiAgICAgICAgICMgVXNlIGxpbmUg
bnVtYmVycyBmcm9tIHRoZSAiYWZ0ZXIiIHNpZGUgb2YgZWFjaCBkaWZmLgogICAgICAgICBwcmlu
dCBTVERFUlIgIiAgUmV2aWV3aW5nIGRpZmYgdG8gZGV0ZXJtaW5lIHdoaWNoIGxpbmVzIGNoYW5n
ZWQuXG4iOwogICAgICAgICBteSAkZmlsZTsKLSAgICAgICAgb3BlbiBESUZGLCAiLXwiLCBkaWZm
Q29tbWFuZChAJGNoYW5nZWRGaWxlcykgb3IgZGllICJUaGUgZGlmZiBmYWlsZWQ6ICQhLlxuIjsK
KyAgICAgICAgb3BlbiBESUZGLCAiLXwiLCBkaWZmQ29tbWFuZCgkY2hhbmdlZEZpbGVzLCAkZ2l0
Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpIG9yIGRpZSAiVGhlIGRpZmYgZmFpbGVkOiAk
IS5cbiI7CiAgICAgICAgIHdoaWxlICg8RElGRj4pIHsKICAgICAgICAgICAgICRmaWxlID0gbWFr
ZUZpbGVQYXRoUmVsYXRpdmUoJDEpIGlmICRfID1+IGRpZmZIZWFkZXJGb3JtYXQoKTsKICAgICAg
ICAgICAgIGlmIChkZWZpbmVkICRmaWxlKSB7CkBAIC0zMTgsMTggKzMxOCwxOCBAQCBzdWIgY2hh
bmdlTG9nRGF0ZSgkKQogICAgIHJldHVybiAkZGF0ZTsKIH0KIAotc3ViIGNoYW5nZUxvZ05hbWVG
cm9tQXJncygkKQorc3ViIGNoYW5nZUxvZ05hbWVGcm9tQXJncygkJCkKIHsKLSAgICBteSAoJG5h
bWVGcm9tQXJncykgPSBAXzsKKyAgICBteSAoJG5hbWVGcm9tQXJncywgJGdpdENvbW1pdCkgPSBA
XzsKICAgICAjIFNpbGVudGx5IGFsbG93IC0tZ2l0LWNvbW1pdCB0byB3aW4sIHdlIGNvdWxkIHdh
cm4gaWYgJG5hbWVGcm9tQXJncyBpcyBkZWZpbmVkLgogICAgIHJldHVybiBgJEdJVCBsb2cgLS1t
YXgtY291bnQ9MSAtLXByZXR0eT1cImZvcm1hdDolYW5cIiBcIiRnaXRDb21taXRcImAgaWYgJGdp
dENvbW1pdDsKIAogICAgIHJldHVybiAkbmFtZUZyb21BcmdzIHx8IGNoYW5nZUxvZ05hbWUoKTsK
IH0KIAotc3ViIGNoYW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCQpCitzdWIgY2hhbmdlTG9n
RW1haWxBZGRyZXNzRnJvbUFyZ3MoJCQpCiB7Ci0gICAgbXkgKCRlbWFpbEFkZHJlc3NGcm9tQXJn
cykgPSBAXzsKKyAgICBteSAoJGVtYWlsQWRkcmVzc0Zyb21BcmdzLCAkZ2l0Q29tbWl0KSA9IEBf
OwogICAgICMgU2lsZW50bHkgYWxsb3cgLS1naXQtY29tbWl0IHRvIHdpbiwgd2UgY291bGQgd2Fy
biBpZiAkZW1haWxBZGRyZXNzRnJvbUFyZ3MgaXMgZGVmaW5lZC4KICAgICByZXR1cm4gYCRHSVQg
bG9nIC0tbWF4LWNvdW50PTEgLS1wcmV0dHk9XCJmb3JtYXQ6JWFlXCIgXCIkZ2l0Q29tbWl0XCJg
IGlmICRnaXRDb21taXQ7CiAKQEAgLTQ1Miw5ICs0NTIsOSBAQCBzdWIgcmVzb2x2ZUNvbmZsaWN0
ZWRDaGFuZ2VMb2dzKCQpCiAgICAgY2xvc2UgUkVTT0xWRTsKIH0KIAotc3ViIGdlbmVyYXRlTmV3
Q2hhbmdlTG9ncygkJCQkJCQkJCQkKQorc3ViIGdlbmVyYXRlTmV3Q2hhbmdlTG9ncygkJCQkJCQk
JCQkJCkKIHsKLSAgICBteSAoJHByZWZpeGVzLCAkZmlsZXNJbkNoYW5nZUxvZywgJGFkZGVkUmVn
cmVzc2lvblRlc3RzLCAkZnVuY3Rpb25MaXN0cywgJGJ1Z1VSTCwgJGJ1Z0Rlc2NyaXB0aW9uLCAk
bmFtZSwgJGVtYWlsQWRkcmVzcywgJGdpdFJldmlld2VyLCAkd3JpdGVDaGFuZ2VMb2dzKSA9IEBf
OworICAgIG15ICgkcHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNzaW9u
VGVzdHMsICRmdW5jdGlvbkxpc3RzLCAkYnVnVVJMLCAkYnVnRGVzY3JpcHRpb24sICRuYW1lLCAk
ZW1haWxBZGRyZXNzLCAkZ2l0UmV2aWV3ZXIsICRnaXRDb21taXQsICR3cml0ZUNoYW5nZUxvZ3Mp
ID0gQF87CiAKICAgICAjIEdlbmVyYXRlIG5ldyBDaGFuZ2VMb2cgZW50cmllcyBhbmQgKG9wdGlv
bmFsbHkpIHdyaXRlIG91dCBuZXcgQ2hhbmdlTG9nIGZpbGVzLgogICAgIGZvcmVhY2ggbXkgJHBy
ZWZpeCAoQCRwcmVmaXhlcykgewpAQCAtNTE4LDEzICs1MTgsMTQgQEAgc3ViIGdlbmVyYXRlTmV3
Q2hhbmdlTG9ncygkJCQkJCQkJCQkKQogICAgIH0KIH0KIAotc3ViIHByaW50RGlmZigkKQorc3Vi
IHByaW50RGlmZigkJCQkKQogewotICAgIG15ICgkY2hhbmdlZEZpbGVzKSA9IEBfOworICAgIG15
ICgkY2hhbmdlZEZpbGVzLCAkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpID0gQF87
CiAKICAgICBwcmludCBTVERFUlIgIiAgUnVubmluZyBkaWZmIHRvIGhlbHAgeW91IHdyaXRlIHRo
ZSBDaGFuZ2VMb2cgZW50cmllcy5cbiI7CiAgICAgbG9jYWwgJC8gPSB1bmRlZjsgIyBsb2NhbCBz
bHVycCBtb2RlCi0gICAgb3BlbiBESUZGLCAiLXwiLCBjcmVhdGVQYXRjaENvbW1hbmQoIiciIC4g
am9pbiAoIicgJyIsIEAkY2hhbmdlZEZpbGVzKSAuICInIikgb3IgZGllICJUaGUgZGlmZiBmYWls
ZWQ6ICQhLlxuIjsKKyAgICBteSAkY2hhbmdlZEZpbGVzU3RyaW5nID0gIiciIC4gam9pbigiJyAn
IiwgQCRjaGFuZ2VkRmlsZXMpIC4gIiciOworICAgIG9wZW4gRElGRiwgIi18IiwgY3JlYXRlUGF0
Y2hDb21tYW5kKCRjaGFuZ2VkRmlsZXNTdHJpbmcsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1l
cmdlQmFzZSkgb3IgZGllICJUaGUgZGlmZiBmYWlsZWQ6ICQhLlxuIjsKICAgICBwcmludCA8RElG
Rj47CiAgICAgY2xvc2UgRElGRjsKIH0KQEAgLTE0MzIsOCArMTQzMywxMCBAQCBzdWIgcHJvY2Vz
c1BhdGhzKFxAKQogICAgIHJldHVybiAlcmVzdWx0OwogfQogCi1zdWIgZGlmZkZyb21Ub1N0cmlu
ZygpCitzdWIgZGlmZkZyb21Ub1N0cmluZygkJCQpCiB7CisgICAgbXkgKCRnaXRDb21taXQsICRn
aXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKKwogICAgIHJldHVybiAiIiBpZiBpc1NWTigpOwog
ICAgIHJldHVybiAkZ2l0Q29tbWl0IGlmICRnaXRDb21taXQgPX4gbS8uK1wuXC4uKy87CiAgICAg
cmV0dXJuICJcIiRnaXRDb21taXReXCIgXCIkZ2l0Q29tbWl0XCIiIGlmICRnaXRDb21taXQ7CkBA
IC0xNDQyLDUxICsxNDQ1LDUxIEBAIHN1YiBkaWZmRnJvbVRvU3RyaW5nKCkKICAgICByZXR1cm4g
IkhFQUQiIGlmIGlzR2l0KCk7CiB9CiAKLXN1YiBkaWZmQ29tbWFuZChAKQorc3ViIGRpZmZDb21t
YW5kKCQkJCQpCiB7Ci0gICAgbXkgQHBhdGhzID0gQF87CisgICAgbXkgKCRwYXRocywgJGdpdENv
bW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSA9IEBfOwogCiAgICAgbXkgJGNvbW1hbmQ7CiAg
ICAgaWYgKGlzU1ZOKCkpIHsKLSAgICAgICAgbXkgQGVzY2FwZWRQYXRocyA9IG1hcChlc2NhcGVT
dWJ2ZXJzaW9uUGF0aCgkXyksIEBwYXRocyk7CisgICAgICAgIG15IEBlc2NhcGVkUGF0aHMgPSBt
YXAoZXNjYXBlU3VidmVyc2lvblBhdGgoJF8pLCBAJHBhdGhzKTsKICAgICAgICAgbXkgJGVzY2Fw
ZWRQYXRoc1N0cmluZyA9ICInIiAuIGpvaW4oIicgJyIsIEBlc2NhcGVkUGF0aHMpIC4gIiciOwog
ICAgICAgICAkY29tbWFuZCA9ICIkU1ZOIGRpZmYgLS1kaWZmLWNtZCBkaWZmIC14IC1OICRlc2Nh
cGVkUGF0aHNTdHJpbmciOwogICAgIH0gZWxzaWYgKGlzR2l0KCkpIHsKLSAgICAgICAgbXkgJHBh
dGhzU3RyaW5nID0gIiciIC4gam9pbigiJyAnIiwgQHBhdGhzKSAuICInIjsgCi0gICAgICAgICRj
b21tYW5kID0gIiRHSVQgZGlmZiAtLW5vLWV4dC1kaWZmIC1VMCAiIC4gZGlmZkZyb21Ub1N0cmlu
ZygpOworICAgICAgICBteSAkcGF0aHNTdHJpbmcgPSAiJyIgLiBqb2luKCInICciLCBAJHBhdGhz
KSAuICInIjsgCisgICAgICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtLW5vLWV4dC1kaWZmIC1V
MCAiIC4gZGlmZkZyb21Ub1N0cmluZygkZ2l0Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2Up
OwogICAgICAgICAkY29tbWFuZCAuPSAiIC0tICRwYXRoc1N0cmluZyIgdW5sZXNzICRnaXRDb21t
aXQgb3IgJG1lcmdlQmFzZTsKICAgICB9CiAKICAgICByZXR1cm4gJGNvbW1hbmQ7CiB9CiAKLXN1
YiBzdGF0dXNDb21tYW5kKEApCitzdWIgc3RhdHVzQ29tbWFuZCgkJCQkKQogewotICAgIG15IEBm
aWxlcyA9IEBfOworICAgIG15ICgkcGF0aHMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdl
QmFzZSkgPSBAXzsKIAogICAgIG15ICRjb21tYW5kOwogICAgIGlmIChpc1NWTigpKSB7Ci0gICAg
ICAgIG15IEBlc2NhcGVkRmlsZXMgPSBtYXAoZXNjYXBlU3VidmVyc2lvblBhdGgoJF8pLCBAZmls
ZXMpOworICAgICAgICBteSBAZXNjYXBlZEZpbGVzID0gbWFwKGVzY2FwZVN1YnZlcnNpb25QYXRo
KCRfKSwga2V5cyAlJHBhdGhzKTsKICAgICAgICAgbXkgJGVzY2FwZWRGaWxlc1N0cmluZyA9ICIn
IiAuIGpvaW4oIicgJyIsIEBlc2NhcGVkRmlsZXMpIC4gIiciOwogICAgICAgICAkY29tbWFuZCA9
ICIkU1ZOIHN0YXQgJGVzY2FwZWRGaWxlc1N0cmluZyI7CiAgICAgfSBlbHNpZiAoaXNHaXQoKSkg
ewotICAgICAgICBteSAkZmlsZXNTdHJpbmcgPSAiXCIiIC4gam9pbiAoIlwiIFwiIiwgQGZpbGVz
KSAuICJcIiI7Ci0gICAgICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtciAtLW5hbWUtc3RhdHVz
IC1NIC1DICIgLiBkaWZmRnJvbVRvU3RyaW5nKCk7CisgICAgICAgIG15ICRmaWxlc1N0cmluZyA9
ICciJyAuIGpvaW4oJyIgIicsIGtleXMgJSRwYXRocykgLiAnIic7CisgICAgICAgICRjb21tYW5k
ID0gIiRHSVQgZGlmZiAtciAtLW5hbWUtc3RhdHVzIC1NIC1DICIgLiBkaWZmRnJvbVRvU3RyaW5n
KCRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSk7CiAgICAgICAgICRjb21tYW5kIC49
ICIgLS0gJGZpbGVzU3RyaW5nIiB1bmxlc3MgJGdpdENvbW1pdDsKICAgICB9CiAKICAgICByZXR1
cm4gIiRjb21tYW5kIDI+JjEiOwogfQogCi1zdWIgY3JlYXRlUGF0Y2hDb21tYW5kKCQpCitzdWIg
Y3JlYXRlUGF0Y2hDb21tYW5kKCQkJCQpCiB7Ci0gICAgbXkgKCRjaGFuZ2VkRmlsZXNTdHJpbmcp
ID0gQF87CisgICAgbXkgKCRjaGFuZ2VkRmlsZXNTdHJpbmcsICRnaXRDb21taXQsICRnaXRJbmRl
eCwgJG1lcmdlQmFzZSkgPSBAXzsKIAogICAgIG15ICRjb21tYW5kOwogICAgIGlmIChpc1NWTigp
KSB7CiAgICAgICAgICRjb21tYW5kID0gIickRmluZEJpbjo6QmluL3N2bi1jcmVhdGUtcGF0Y2gn
ICRjaGFuZ2VkRmlsZXNTdHJpbmciOwogICAgIH0gZWxzaWYgKGlzR2l0KCkpIHsKLSAgICAgICAg
JGNvbW1hbmQgPSAiJEdJVCBkaWZmIC1NIC1DICIgLiBkaWZmRnJvbVRvU3RyaW5nKCk7CisgICAg
ICAgICRjb21tYW5kID0gIiRHSVQgZGlmZiAtTSAtQyAiIC4gZGlmZkZyb21Ub1N0cmluZygkZ2l0
Q29tbWl0LCAkZ2l0SW5kZXgsICRtZXJnZUJhc2UpOwogICAgICAgICAkY29tbWFuZCAuPSAiIC0t
ICRjaGFuZ2VkRmlsZXNTdHJpbmciIHVubGVzcyAkZ2l0Q29tbWl0OwogICAgIH0KIApAQCAtMTU5
NCwxNiArMTU5NywxNiBAQCBzdWIgcGx1cmFsaXplQW5kTGlzdCgkJEApCiAgICAgcmV0dXJuICIk
cGx1cmFsICIgLiBqb2luKCIsICIsIEBpdGVtc1swIC4uICQjaXRlbXMgLSAxXSkgLiAiIGFuZCAi
IC4gJGl0ZW1zWy0xXTsKIH0KIAotc3ViIGdlbmVyYXRlRmlsZUxpc3QoXCUpCitzdWIgZ2VuZXJh
dGVGaWxlTGlzdChcJSQkJCkKIHsKLSAgICBteSAoJHBhdGhzKSA9IEBfOworICAgIG15ICgkcGF0
aHMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKIAogICAgIG15IEBj
aGFuZ2VkRmlsZXM7CiAgICAgbXkgQGNvbmZsaWN0RmlsZXM7CiAgICAgbXkgJWZ1bmN0aW9uTGlz
dHM7CiAgICAgbXkgQGFkZGVkUmVncmVzc2lvblRlc3RzOwogICAgIHByaW50IFNUREVSUiAiICBS
dW5uaW5nIHN0YXR1cyB0byBmaW5kIGNoYW5nZWQsIGFkZGVkLCBvciByZW1vdmVkIGZpbGVzLlxu
IjsKLSAgICBvcGVuIFNUQVQsICItfCIsIHN0YXR1c0NvbW1hbmQoa2V5cyAlJHBhdGhzKSBvciBk
aWUgIlRoZSBzdGF0dXMgZmFpbGVkOiAkIS5cbiI7CisgICAgb3BlbiBTVEFULCAiLXwiLCBzdGF0
dXNDb21tYW5kKCRwYXRocywgJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVyZ2VCYXNlKSBvciBk
aWUgIlRoZSBzdGF0dXMgZmFpbGVkOiAkIS5cbiI7CiAgICAgd2hpbGUgKDxTVEFUPikgewogICAg
ICAgICBteSAkc3RhdHVzOwogICAgICAgICBteSAkcHJvcGVydHlTdGF0dXM7CkBAIC0xNjYyLDcg
KzE2NjUsNyBAQCBzdWIgZ2VuZXJhdGVGaWxlTGlzdChcJSkKICAgICAgICAgICAgICAgICAgICAg
ICAgJiYgIXNjYWxhcihncmVwKC9ec2NyaXB0LXRlc3RzJC9pLCBAY29tcG9uZW50cykpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcHVzaCBAY2hhbmdlZEZpbGVzLCAkZmlsZSBpZiAkY29t
cG9uZW50c1skI2NvbXBvbmVudHNdIG5lICJDaGFuZ2VMb2ciOwotICAgICAgICB9IGVsc2lmIChp
c0NvbmZsaWN0U3RhdHVzKCRzdGF0dXMpIHx8IGlzQ29uZmxpY3RTdGF0dXMoJHByb3BlcnR5U3Rh
dHVzKSkgeworICAgICAgICB9IGVsc2lmIChpc0NvbmZsaWN0U3RhdHVzKCRzdGF0dXMsICRnaXRD
b21taXQsICRnaXRJbmRleCkgfHwgaXNDb25mbGljdFN0YXR1cygkcHJvcGVydHlTdGF0dXMsICRn
aXRDb21taXQsICRnaXRJbmRleCkpIHsKICAgICAgICAgICAgIHB1c2ggQGNvbmZsaWN0RmlsZXMs
ICRmaWxlOwogICAgICAgICB9CiAgICAgICAgIGlmIChiYXNlbmFtZSgkZmlsZSkgbmUgIkNoYW5n
ZUxvZyIpIHsKQEAgLTE3MDksOSArMTcxMiw5IEBAIHN1YiBpc0FkZGVkU3RhdHVzKCQpCiAgICAg
cmV0dXJuICRzdGF0dXNDb2Rlc3skc3RhdHVzfTsKIH0KIAotc3ViIGlzQ29uZmxpY3RTdGF0dXMo
JCkKK3N1YiBpc0NvbmZsaWN0U3RhdHVzKCQkJCkKIHsKLSAgICBteSAoJHN0YXR1cykgPSBAXzsK
KyAgICBteSAoJHN0YXR1cywgJGdpdENvbW1pdCwgJGdpdEluZGV4KSA9IEBfOwogCiAgICAgbXkg
JXN2biA9ICgKICAgICAgICAgIkMiID0+IDEsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>