<?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>38197</bug_id>
          
          <creation_ts>2010-04-27 06:47:07 -0700</creation_ts>
          <short_desc>check-webkit-style: Files should be ignored unless they have an associated checker</short_desc>
          <delta_ts>2010-04-28 04:19:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hamaji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217675</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 06:47:07 -0700</bug_when>
    <thetext>Currently, the logic of which files to skip is spread across two locations: (1) the _SKIPPED_FILES... global variables and associated ProcessorDispatcher.should_skip...() methods, and (2) whether the FileType associated to the file is non-NONE in the ProcessorDispatcher&apos;s dispatch_processor() method.

It would be simpler if we combined this logic in the following way:

Instead of explicitly listing out which files to skip in _SKIPPED_FILES_WITHOUT_WARNING, we should skip files by default if they have file type NONE (i.e. if they are not associated with the C++, Python, or text checker, etc).  In this way, we will only need to maintain the white lists of which files to check.  We will not have to maintain a separate black list: the files to skip will follow logically.  In either case, we will still need to store separately which files to skip &quot;with a warning&quot;.

This fix will indirectly take care of issues like the following one:

https://bugs.webkit.org/show_bug.cgi?id=38149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217680</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 06:52:51 -0700</bug_when>
    <thetext>This report should address the following two FIXME&apos;s:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/checker.py?rev=58263#L404

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/checker.py?rev=58263#L673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217717</commentid>
    <comment_count>2</comment_count>
      <attachid>54419</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 08:42:22 -0700</bug_when>
    <thetext>Created attachment 54419
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217718</commentid>
    <comment_count>3</comment_count>
      <attachid>54420</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 08:43:53 -0700</bug_when>
    <thetext>Created attachment 54420
Proposed patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217734</commentid>
    <comment_count>4</comment_count>
      <attachid>54420</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-27 09:18:55 -0700</bug_when>
    <thetext>Comment on attachment 54420
Proposed patch 2

WebKitTools/Scripts/webkitpy/style/checker.py:176
 +      &apos;txt&apos;,
Can we still check ChangeLogs? First I thought the whitelist approach sounds OK when I&apos;ve seen the bug description. However, I&apos;ve found there are many extensions ideally we might want to check. Maybe we should add some more extensions: &apos;y&apos;, &apos;wm&apos;, &apos;xhtml&apos;, &apos;cgi&apos;, &apos;in&apos;, &apos;rb&apos;, &apos;pl&apos;, &apos;cc&apos;, &apos;gyp&apos;, &apos;gypi&apos;, &apos;flex&apos;, &apos;sh&apos;, &apos;pri&apos;, &apos;pro&apos;, and... there can be more. Hmm... Now I&apos;m not sure if the whitelist approach is the right way...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217750</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 10:04:03 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 54420 [details])
&gt; WebKitTools/Scripts/webkitpy/style/checker.py:176
&gt;  +      &apos;txt&apos;,
&gt; Can we still check ChangeLogs?

ChangeLogs should still be getting checked because they have FileType.TEXT.  I can add a unit test for this case to be sure.  I did notice, however, that LayoutTests/ChangeLog is not getting checked.  But I believe that problem was already present.  Perhaps we can deal with that special case later.  I can add it as a FIXME.

&gt; First I thought the whitelist approach sounds OK
&gt; when I&apos;ve seen the bug description. However, I&apos;ve found there are many
&gt; extensions ideally we might want to check. Maybe we should add some more
&gt; extensions: &apos;y&apos;, &apos;wm&apos;, &apos;xhtml&apos;, &apos;cgi&apos;, &apos;in&apos;, &apos;rb&apos;, &apos;pl&apos;, &apos;cc&apos;, &apos;gyp&apos;, &apos;gypi&apos;,
&gt; &apos;flex&apos;, &apos;sh&apos;, &apos;pri&apos;, &apos;pro&apos;, and... there can be more. Hmm... Now I&apos;m not sure
&gt; if the whitelist approach is the right way...

Yes, a black list is another approach that would be okay as long as we centralize the logic as we are doing in this report.  The black list approach may have the same problem though because we&apos;d still have to list out every possible binary file extension: gif, jpeg, pyc, png, etc.  Given that, I think the white list approach may be better because then we don&apos;t risk accidentally processing binary files (e.g. when passing explicit directory paths).  The only down-side is that, yes, we need to explicitly opt text files in.  That could be a good feature though because at least then we can account for all files we are checking.  I would be okay with adding more text extensions in this patch if you provide more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217766</commentid>
    <comment_count>6</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-27 10:22:44 -0700</bug_when>
    <thetext>&gt; Yes, a black list is another approach that would be okay as long as we
&gt; centralize the logic as we are doing in this report.  The black list approach
&gt; may have the same problem though because we&apos;d still have to list out every
&gt; possible binary file extension: gif, jpeg, pyc, png, etc.  Given that, I think
&gt; the white list approach may be better because then we don&apos;t risk accidentally
&gt; processing binary files (e.g. when passing explicit directory paths).  The only
&gt; down-side is that, yes, we need to explicitly opt text files in.  That could be
&gt; a good feature though because at least then we can account for all files we are
&gt; checking.  I would be okay with adding more text extensions in this patch if
&gt; you provide more.

I see. Thanks for the nice description. I&apos;m totally convinced. Let&apos;s go ahead with the whitelist approach. I&apos;d add &apos;exp&apos; and &apos;ac&apos; in addition to my previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217780</commentid>
    <comment_count>7</comment_count>
      <attachid>54420</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-27 10:45:30 -0700</bug_when>
    <thetext>Comment on attachment 54420
Proposed patch 2

The code change looks good. I&apos;m putting r+ assuming you&apos;ll add extensions I listed.

WebKitTools/Scripts/webkitpy/style/checker.py:674
 +              raise Exception(&quot;File should not be checked: &apos;%s&apos;&quot; % file_path)
This shouldn&apos;t happen if this function isn&apos;t called from unittest, right? If so, how about using assert statement?

WebKitTools/Scripts/webkitpy/style/checker_unittest.py:764
 +              self._processor.process(lines=[&apos;line1&apos;, &apos;line2&apos;],
If you use assert statement above. We can just use assertRaises(AssertionError, ...) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218195</commentid>
    <comment_count>8</comment_count>
      <attachid>54521</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-27 21:59:16 -0700</bug_when>
    <thetext>Created attachment 54521
Proposed patch 3

Incorporated Shinichiro&apos;s suggestions.  Also added more thorough comments and unit tests, and addressed the issue of LayoutTests/ChangeLog getting skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218271</commentid>
    <comment_count>9</comment_count>
      <attachid>54521</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-28 01:36:25 -0700</bug_when>
    <thetext>Comment on attachment 54521
Proposed patch 3

Looks great. Thanks for your update!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218320</commentid>
    <comment_count>10</comment_count>
      <attachid>54521</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-28 04:19:50 -0700</bug_when>
    <thetext>Comment on attachment 54521
Proposed patch 3

Clearing flags on attachment: 54521

Committed r58401: &lt;http://trac.webkit.org/changeset/58401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218321</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-28 04:19:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54419</attachid>
            <date>2010-04-27 08:42:22 -0700</date>
            <delta_ts>2010-04-27 08:43:53 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-38197-1.diff</filename>
            <type>text/plain</type>
            <size>10490</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4MjA0YTdjLi5lZGQxZWQ0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MjcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0
aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzgxOTcKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weToKKwogMjAxMC0wNC0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDUzYWE4MjcuLjI5
ODNlNDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKQEAgLTE1NywxMSArMTU3LDMxIEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKIF0KIAog
CitfQ1BQX0ZJTEVfRVhURU5TSU9OUyA9IFsKKyAgICAnYycsCisgICAgJ2NwcCcsCisgICAgJ2gn
LAorICAgIF0KKworX1BZVEhPTl9GSUxFX0VYVEVOU0lPTiA9ICdweScKKworX1RFWFRfRklMRV9F
WFRFTlNJT05TID0gWworICAgICdjc3MnLAorICAgICdodG1sJywKKyAgICAnaWRsJywKKyAgICAn
anMnLAorICAgICdtbScsCisgICAgJ3BocCcsCisgICAgJ3BtJywKKyAgICAndHh0JywKKyAgICBd
CisKKworIyBGaWxlcyB0byBza2lwIHRoYXQgYXJlIGxlc3Mgb2J2aW91cy4KKyMKICMgU29tZSBm
aWxlcyBzaG91bGQgYmUgc2tpcHBlZCB3aGVuIGNoZWNraW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwK
ICMgV2ViS2l0IG1haW50YWlucyBzb21lIGZpbGVzIGluIE1vemlsbGEgc3R5bGUgb24gcHVycG9z
ZSB0byBlYXNlCiAjIGZ1dHVyZSBtZXJnZXMuCi0jCi0jIEluY2x1ZGUgYSB3YXJuaW5nIGZvciBz
a2lwcGVkIGZpbGVzIHRoYXQgYXJlIGxlc3Mgb2J2aW91cy4KIF9TS0lQUEVEX0ZJTEVTX1dJVEhf
V0FSTklORyA9IFsKICAgICAjIFRoZSBRdCBBUEkgYW5kIHRlc3RzIGRvIG5vdCBmb2xsb3cgV2Vi
S2l0IHN0eWxlLgogICAgICMgVGhleSBmb2xsb3cgUXQgc3R5bGUuIDopCkBAIC0xNzQsMTEgKzE5
NCwxMiBAQCBfU0tJUFBFRF9GSUxFU19XSVRIX1dBUk5JTkcgPSBbCiAgICAgXQogCiAKLSMgRG9u
J3QgaW5jbHVkZSBhIHdhcm5pbmcgZm9yIHNraXBwZWQgZmlsZXMgdGhhdCBhcmUgbW9yZSBjb21t
b24KLSMgYW5kIG1vcmUgb2J2aW91cy4KKyMgRmlsZXMgdG8gc2tpcCB0aGF0IGFyZSBtb3JlIGNv
bW1vbiBvciBvYnZpb3VzLgorIworIyBUaGlzIGxpc3Qgc2hvdWxkIGJlIGluIGFkZGl0aW9uIHRv
IGZpbGVzIHdpdGggRmlsZVR5cGUuTk9ORS4gIEZpbGVzCisjIHdpdGggRmlsZVR5cGUuTk9ORSBh
cmUgYXV0b21hdGljYWxseSBza2lwcGVkIHdpdGhvdXQgd2FybmluZy4KIF9TS0lQUEVEX0ZJTEVT
X1dJVEhPVVRfV0FSTklORyA9IFsKICAgICAiTGF5b3V0VGVzdHMvIiwKLSAgICAiLnB5YyIsCiAg
ICAgXQogCiAKQEAgLTMyOSwxMSArMzUwLDExIEBAIGRlZiBjb25maWd1cmVfbG9nZ2luZyhzdHJl
YW0sIGxvZ2dlcj1Ob25lLCBpc192ZXJib3NlPUZhbHNlKToKICMgRW51bS1saWtlIGlkaW9tCiBj
bGFzcyBGaWxlVHlwZToKIAotICAgIE5PTkUgPSAxCisgICAgTk9ORSA9IDAKICAgICAjIEFscGhh
YmV0aXplIHJlbWFpbmluZyB0eXBlcwotICAgIENQUCA9IDIKLSAgICBQWVRIT04gPSAzCi0gICAg
VEVYVCA9IDQKKyAgICBDUFAgPSAxCisgICAgUFlUSE9OID0gMgorICAgIFRFWFQgPSAzCiAKIAog
IyBGSVhNRTogUmVuYW1lIHRoaXMgY2xhc3MgdG8gQ2hlY2tlckRpc3BhdGNoZXIsIHJlbmFtZSB0
aGUgc3R5bGUvcHJvY2Vzc29ycy8KQEAgLTM0NywyMyArMzY4LDYgQEAgY2xhc3MgUHJvY2Vzc29y
RGlzcGF0Y2hlcihvYmplY3QpOgogCiAgICAgIiIiU3VwcG9ydHMgZGV0ZXJtaW5pbmcgd2hldGhl
ciBhbmQgaG93IHRvIGNoZWNrIHN0eWxlLCBiYXNlZCBvbiBwYXRoLiIiIgogCi0gICAgY3BwX2Zp
bGVfZXh0ZW5zaW9ucyA9ICgKLSAgICAgICAgJ2MnLAotICAgICAgICAnY3BwJywKLSAgICAgICAg
J2gnLAotICAgICAgICApCi0KLSAgICB0ZXh0X2ZpbGVfZXh0ZW5zaW9ucyA9ICgKLSAgICAgICAg
J2NzcycsCi0gICAgICAgICdodG1sJywKLSAgICAgICAgJ2lkbCcsCi0gICAgICAgICdqcycsCi0g
ICAgICAgICdtbScsCi0gICAgICAgICdwaHAnLAotICAgICAgICAncG0nLAotICAgICAgICAndHh0
JywKLSAgICAgICAgKQotCiAgICAgZGVmIF9maWxlX2V4dGVuc2lvbihzZWxmLCBmaWxlX3BhdGgp
OgogICAgICAgICAiIiJSZXR1cm4gdGhlIGZpbGUgZXh0ZW5zaW9uIHdpdGhvdXQgdGhlIGxlYWRp
bmcgZG90LiIiIgogICAgICAgICByZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlX3BhdGgpWzFd
LmxzdHJpcCgiLiIpCkBAIC0zNzcsNiArMzgxLDggQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hl
cihvYmplY3QpOgogCiAgICAgZGVmIHNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhzZWxmLCBm
aWxlX3BhdGgpOgogICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBzaG91
bGQgYmUgc2tpcHBlZCB3aXRob3V0IGEgd2FybmluZy4iIiIKKyAgICAgICAgaWYgbm90IHNlbGYu
X2ZpbGVfdHlwZShmaWxlX3BhdGgpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAg
Zm9yIHNraXBwZWRfZmlsZSBpbiBfU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkc6CiAgICAg
ICAgICAgICBpZiBmaWxlX3BhdGguZmluZChza2lwcGVkX2ZpbGUpID49IDA6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKQEAgLTM4Niw3ICszOTIsNyBAQCBjbGFzcyBQcm9jZXNzb3JEaXNw
YXRjaGVyKG9iamVjdCk6CiAgICAgICAgICIiIlJldHVybiB0aGUgZmlsZSB0eXBlIGNvcnJlc3Bv
bmRpbmcgdG8gdGhlIGdpdmVuIGZpbGUuIiIiCiAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gc2Vs
Zi5fZmlsZV9leHRlbnNpb24oZmlsZV9wYXRoKQogCi0gICAgICAgIGlmIChmaWxlX2V4dGVuc2lv
biBpbiBzZWxmLmNwcF9maWxlX2V4dGVuc2lvbnMpIG9yIChmaWxlX3BhdGggPT0gJy0nKToKKyAg
ICAgICAgaWYgKGZpbGVfZXh0ZW5zaW9uIGluIF9DUFBfRklMRV9FWFRFTlNJT05TKSBvciAoZmls
ZV9wYXRoID09ICctJyk6CiAgICAgICAgICAgICAjIEZJWE1FOiBEbyBzb21ldGhpbmcgYWJvdXQg
dGhlIGNvbW1lbnQgYmVsb3cgYW5kIHRoZSBpc3N1ZSBpdAogICAgICAgICAgICAgIyAgICAgICAg
cmFpc2VzIHNpbmNlIGNwcF9zdHlsZSBhbHJlYWR5IHJlbGllcyBvbiB0aGUgZXh0ZW5zaW9uLgog
ICAgICAgICAgICAgIwpAQCAtMzk0LDE4ICs0MDAsMTMgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0
Y2hlcihvYmplY3QpOgogICAgICAgICAgICAgIyByZWFkaW5nIGZyb20gc3RkaW4sIGNwcF9zdHls
ZSB0ZXN0cyBzaG91bGQgbm90IHJlbHkgb24KICAgICAgICAgICAgICMgdGhlIGV4dGVuc2lvbi4K
ICAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5DUFAKLSAgICAgICAgZWxpZiBmaWxlX2V4dGVu
c2lvbiA9PSAicHkiOgorICAgICAgICBlbGlmIGZpbGVfZXh0ZW5zaW9uID09IF9QWVRIT05fRklM
RV9FWFRFTlNJT046CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuUFlUSE9OCiAgICAgICAg
IGVsaWYgKCJDaGFuZ2VMb2ciIGluIGZpbGVfcGF0aCBvcgogICAgICAgICAgICAgICAobm90IGZp
bGVfZXh0ZW5zaW9uIGFuZCAiV2ViS2l0VG9vbHMvU2NyaXB0cy8iIGluIGZpbGVfcGF0aCkgb3IK
LSAgICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gaW4gc2VsZi50ZXh0X2ZpbGVfZXh0ZW5zaW9u
cyk6CisgICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uIGluIF9URVhUX0ZJTEVfRVhURU5TSU9O
Uyk6CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuVEVYVAogICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgIyBGSVhNRTogSWYgcG9zc2libGUsIGNoYW5nZSB0aGlzIG1ldGhvZCB0byBkZWZh
dWx0IHRvCi0gICAgICAgICAgICAjICAgICAgICByZXR1cm5pbmcgRmlsZVR5cGUuVEVYVC4gIFRo
ZSBzaG91bGRfcHJvY2VzcygpIG1ldGhvZAotICAgICAgICAgICAgIyAgICAgICAgc2hvdWxkIHJl
YWxseSBlbmNhcHN1bGF0ZSB3aGljaCBmaWxlcyBub3QgdG8gY2hlY2suCi0gICAgICAgICAgICAj
ICAgICAgICBDdXJyZW50bHksICJza2lwIiBsb2dpYyBpcyBzcHJlYWQgYmV0d2VlbiBib3RoIHRo
aXMKLSAgICAgICAgICAgICMgICAgICAgIG1ldGhvZCBhbmQgc2hvdWxkX3Byb2Nlc3MuCiAgICAg
ICAgICAgICByZXR1cm4gRmlsZVR5cGUuTk9ORQogCiAgICAgZGVmIF9jcmVhdGVfcHJvY2Vzc29y
KHNlbGYsIGZpbGVfdHlwZSwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IsCkBAIC02MjMs
NyArNjI0LDYgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3IoUHJvY2Vzc29yQmFzZSk6CiAKICAgICBk
ZWYgc2hvdWxkX3Byb2Nlc3Moc2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAgIiIiUmV0dXJuIHdo
ZXRoZXIgdGhlIGZpbGUgc2hvdWxkIGJlIGNoZWNrZWQgZm9yIHN0eWxlLiIiIgotCiAgICAgICAg
IGlmIHNlbGYuX2Rpc3BhdGNoZXIuc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKGZpbGVfcGF0
aCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgc2VsZi5fZGlzcGF0Y2hl
ci5zaG91bGRfc2tpcF93aXRoX3dhcm5pbmcoZmlsZV9wYXRoKToKQEAgLTY3MSwxMyArNjcxLDcg
QEAgY2xhc3MgU3R5bGVQcm9jZXNzb3IoUHJvY2Vzc29yQmFzZSk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZSkKIAog
ICAgICAgICBpZiBjaGVja2VyIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIEZJWE1FOiBTaG91bGQg
d2UgcmVhbGx5IGJlIHNraXBwaW5nIGZpbGVzIHRoYXQgcmV0dXJuIFRydWUKLSAgICAgICAgICAg
ICMgICAgICAgIGZvciBzaG91bGRfcHJvY2VzcygpPyAgUGVyaGFwcyB0aGlzIHNob3VsZCBiZSBh
Ci0gICAgICAgICAgICAjICAgICAgICB3YXJuaW5nIG9yIGFuIGV4Y2VwdGlvbiBzbyB3ZSBjYW4g
ZmluZCBvdXQgaWYKLSAgICAgICAgICAgICMgICAgICAgIHNob3VsZF9wcm9jZXNzKCkgaXMgbWlz
c2luZyBhbnkgZmlsZXMuCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdGaWxlIG5vdCBhIHJlY29n
bml6ZWQgdHlwZSB0byBjaGVjay4gU2tpcHBpbmc6ICIlcyInCi0gICAgICAgICAgICAgICAgICAg
ICAgICUgZmlsZV9wYXRoKQotICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oIkZpbGUgc2hvdWxkIG5vdCBiZSBjaGVja2VkOiAnJXMnIiAlIGZpbGVfcGF0aCkK
IAogICAgICAgICBfbG9nLmRlYnVnKCJVc2luZyBjbGFzczogIiArIGNoZWNrZXIuX19jbGFzc19f
Ll9fbmFtZV9fKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKaW5kZXggMWQ2ZDViNS4uYzM3NjNjOSAxMDA3NTUKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVz
dC5weQpAQCAtMjk1LDIyICsyOTUsNTYgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlclNraXBU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNw
YXRjaGVyLnNob3VsZF9za2lwX3dpdGhfd2FybmluZyhwYXRoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQ2hlY2tpbmc6ICIgKyBwYXRoKQogCi0gICAgZGVmIHRlc3Rfc2hvdWxkX3Nr
aXBfd2l0aG91dF93YXJuaW5nKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHNob3VsZF9za2lwX3dp
dGhvdXRfd2FybmluZygpLiIiIgorICAgIGRlZiB0ZXN0X3Nob3VsZF9za2lwX3dpdGhvdXRfd2Fy
bmluZ19fbm9uX25vbmVfZmlsZV90eXBlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHNob3VsZF9z
a2lwX3dpdGhvdXRfd2FybmluZygpOiBub24tTk9ORSBmaWxlIHR5cGUuIiIiCiAgICAgICAgIGRp
c3BhdGNoZXIgPSBQcm9jZXNzb3JEaXNwYXRjaGVyKCkKKyAgICAgICAgZmlsZV9wYXRoID0gJ2Zv
by50eHQnCiAKLSAgICAgICAgIyBDaGVjayBhIG5vbi1za2lwcGVkIGZpbGUuCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoImZv
by50eHQiKSkKKyAgICAgICAgIyBDb25maXJtIHRoYXQgdGhlIGZpbGUgaGFzIG5vbi1OT05FIGZp
bGUgdHlwZS4KKyAgICAgICAgY2hlY2tlciA9IGRpc3BhdGNoZXIuZGlzcGF0Y2hfcHJvY2Vzc29y
KGZpbGVfcGF0aD1maWxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYW5kbGVfc3R5bGVfZXJyb3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRlbmNlPTMpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShjaGVja2VyIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGRpc3BhdGNoZXIuc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKGZpbGVfcGF0aCkp
CiAKLSAgICAgICAgIyBDaGVjayBza2lwcGVkIGZpbGVzLgotICAgICAgICBwYXRoc190b19za2lw
ID0gWwotICAgICAgICAgICAjIExheW91dFRlc3RzIGZvbGRlcgotICAgICAgICAgICAiTGF5b3V0
VGVzdHMvZm9vLnR4dCIsCi0gICAgICAgICAgICBdCisgICAgZGVmIF9jaGVja19ub25lX2ZpbGVf
dHlwZShzZWxmLCBmaWxlX3BhdGgpOgorICAgICAgICBkaXNwYXRjaGVyID0gUHJvY2Vzc29yRGlz
cGF0Y2hlcigpCiAKLSAgICAgICAgZm9yIHBhdGggaW4gcGF0aHNfdG9fc2tpcDoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhvdXRfd2Fybmlu
ZyhwYXRoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hlY2tpbmc6ICIgKyBwYXRo
KQorICAgICAgICAjIENvbmZpcm0gdGhhdCB0aGUgZmlsZSBoYXMgTk9ORSBmaWxlIHR5cGUuCisg
ICAgICAgIGNoZWNrZXIgPSBkaXNwYXRjaGVyLmRpc3BhdGNoX3Byb2Nlc3NvcihmaWxlX3BhdGg9
ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlX3N0eWxlX2Vycm9yPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZT0zKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoY2hlY2tlciBpcyBOb25lLCAnd2hpbGUgY2hlY2tpbmc6ICVzJyAlIGZpbGVfcGF0aCkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRpc3BhdGNoZXIuc2hvdWxkX3NraXBfd2l0aG91dF93
YXJuaW5nKGZpbGVfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAnd2hpbGUgY2hlY2tp
bmc6ICVzJyAlIGZpbGVfcGF0aCkKKworICAgIGRlZiB0ZXN0X3Nob3VsZF9za2lwX3dpdGhvdXRf
d2FybmluZ19fbm9uZV9maWxlX3R5cGUoc2VsZik6CisgICAgICAgICIiIlRlc3Qgc2hvdWxkX3Nr
aXBfd2l0aG91dF93YXJuaW5nKCk6IE5PTkUgZmlsZSB0eXBlLiIiIgorICAgICAgICBmaWxlX3Bh
dGhzID0gWydmb28uYXNkZicsICAjIE5vbi1zZW5zaWNhbCBmaWxlIGV4dGVuc2lvbi4KKyAgICAg
ICAgICAgICAgICAgICAgICAnZm9vLmdpZicsICAjIFZhcmlvdXMgYmluYXJ5IGZpbGVzLgorICAg
ICAgICAgICAgICAgICAgICAgICdmb28uanBnJywKKyAgICAgICAgICAgICAgICAgICAgICAnZm9v
LnBuZycsCisgICAgICAgIF0KKworICAgICAgICBmb3IgZmlsZV9wYXRoIGluIGZpbGVfcGF0aHM6
CisgICAgICAgICAgICBzZWxmLl9jaGVja19ub25lX2ZpbGVfdHlwZShmaWxlX3BhdGgpCisKKyAg
ICBkZWYgdGVzdF9zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmdfX2NvbmZpZ192YXJpYWJsZShz
ZWxmKToKKyAgICAgICAgIiIiVGVzdCBzaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoKS4KKwor
ICAgICAgICBUZXN0IGZpbGUgcGF0aHMgbWF0Y2hpbmcgdGhlIF9TS0lQUEVEX0ZJTEVTX1dJVEhP
VVRfV0FSTklORworICAgICAgICBjb25maWd1cmF0aW9uIHZhcmlhYmxlLgorCisgICAgICAgICIi
IgorICAgICAgICBkaXNwYXRjaGVyID0gUHJvY2Vzc29yRGlzcGF0Y2hlcigpCisgICAgICAgIGZp
bGVfcGF0aCA9IG9zLnBhdGguam9pbignTGF5b3V0VGVzdHMnLCAnZm9vLnR4dCcpCisKKyAgICAg
ICAgIyBDb25maXJtIHRoYXQgdGhlIGZpbGUgaGFzIG5vbi1OT05FIGZpbGUgdHlwZS4KKyAgICAg
ICAgY2hlY2tlciA9IGRpc3BhdGNoZXIuZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aD1maWxl
X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YW5kbGVfc3R5bGVfZXJyb3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1pbl9jb25maWRlbmNlPTMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShjaGVja2VyIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlzcGF0Y2hl
ci5zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoZmlsZV9wYXRoKSkKIAogCiBjbGFzcyBQcm9j
ZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTcyNiwx
OCArNzYwLDE1IEBAIGNsYXNzIFN0eWxlUHJvY2Vzc29yX0NvZGVDb3ZlcmFnZVRlc3QoTG9nZ2lu
Z1Rlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3Byb2Nlc3NfX25vX2NoZWNrZXJfZGlzcGF0Y2hl
ZChzZWxmKToKICAgICAgICAgIiIiVGVzdCB0aGUgcHJvY2VzcygpIG1ldGhvZCBmb3IgYSBwYXRo
IHdpdGggbm8gZGlzcGF0Y2hlZCBjaGVja2VyLiIiIgotICAgICAgICBzZWxmLl9wcm9jZXNzb3Iu
cHJvY2VzcyhsaW5lcz1bJ2xpbmUxJywgJ2xpbmUyJ10sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbGVfcGF0aD0nZm9vL2RvX25vdF9wcm9jZXNzLnR4dCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVycz1bMTAwXSkKLQotICAgICAgICAjIEFz
IGEgc2FuaXR5IGNoZWNrLCBjaGVjayB0aGF0IHRoZSBjYXJyaWFnZS1yZXR1cm4gY2hlY2tlciB3
YXMKLSAgICAgICAgIyBpbnN0YW50aWF0ZWQuICAoVGhpcyBjb2RlIHBhdGggd2FzIGFscmVhZHkg
Y2hlY2tlZCBpbiBvdGhlciB0ZXN0Ci0gICAgICAgICMgbWV0aG9kcyBpbiB0aGlzIHRlc3QgY2Fz
ZS4pCi0gICAgICAgIGNhcnJpYWdlX2NoZWNrZXIgPSBzZWxmLmNhcnJpYWdlX2NoZWNrZXIKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2FycmlhZ2VfY2hlY2tlci5saW5lcywgWydsaW5lMScs
ICdsaW5lMiddKQotCi0gICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgc3R5bGUgY2hlY2tlciB3YXMg
bm90IGRpc3BhdGNoZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLl9tb2NrX2Rpc3Bh
dGNoZXIuZGlzcGF0Y2hlZF9jaGVja2VyIGlzIE5vbmUpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYuX3Byb2Nlc3Nvci5wcm9jZXNzKGxpbmVzPVsnbGluZTEnLCAnbGluZTInXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aD0nZm9vL2RvX25vdF9w
cm9jZXNzLnR4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251
bWJlcnM9WzEwMF0pCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGVycjoKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHN0cihlcnIpLCAiRmlsZSBzaG91bGQgbm90IGJlIGNoZWNrZWQ6
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInZm9vL2RvX25vdF9wcm9jZXNzLnR4
dCciKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCdFeGNlcHRpb24gbm90
IHJhaXNlZC4nKQogCiAKIGNsYXNzIFBhdGNoQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
Ogo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54420</attachid>
            <date>2010-04-27 08:43:53 -0700</date>
            <delta_ts>2010-04-27 21:59:16 -0700</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-38197-1.diff</filename>
            <type>text/plain</type>
            <size>11517</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4MjA0YTdjLi4yOTMwMTIxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDQt
MjcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0ZWQgY2hlY2std2Via2l0
LXN0eWxlIHNvIHRoYXQgZmlsZXMgd2l0aCBmaWxlIHR5cGUgTk9ORQorICAgICAgICBhcmUgYXV0
b21hdGljYWxseSBza2lwcGVkIHdpdGhvdXQgd2FybmluZy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgxOTcKKworICAgICAgICBUaGlzIHNpbXBs
aWZpZXMgY29uZmlndXJpbmcgd2hpY2ggZmlsZXMgdG8gc2tpcC4gIFRoaXMgYWxzbyBhZGRyZXNz
ZXMKKyAgICAgICAgYW4gaXNzdWUgd2hlcmVieSBjaGVjay13ZWJraXQtc3R5bGUgd2FzIHVuaW50
ZW50aW9uYWxseSBjaGVja2luZworICAgICAgICAudmNwcm9qIGZpbGVzIGZvciBjYXJyaWFnZSBy
ZXR1cm5zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5Ogor
ICAgICAgICAgIC0gTW92ZWQgdGhlIEMrKywgUHl0aG9uLCBhbmQgdGV4dCBmaWxlIGV4dGVuc2lv
bnMgdG8gbmV3CisgICAgICAgICAgICBtb2R1bGUtbGV2ZWwgY29uZmlndXJhdGlvbiB2YXJpYWJs
ZXMuCisgICAgICAgICAgLSBSZW1vdmVkIC5weWMgZnJvbSB0aGUgX1NLSVBQRURfRklMRVNfV0lU
SE9VVF9XQVJOSU5HIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgIHZhcmlhYmxlLgorICAgICAg
ICAgIC0gQ2hhbmdlZCB0aGUgbnVtZXJpYyB2YWx1ZXMgb2YgdGhlIEZpbGVUeXBlIGVudW0gc28g
dGhhdAorICAgICAgICAgICAgRmlsZVR5cGUuTk9ORSBldmFsdWF0ZXMgdG8gRmFsc2UuCisgICAg
ICAgICAgLSBDaGFuZ2VkIHRoZSBQcm9jZXNzb3JEaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhv
dXRfd2FybmluZygpCisgICAgICAgICAgICBtZXRob2Qgc28gdGhhdCBpdCByZXR1cm5zIFRydWUg
Zm9yIEZpbGVUeXBlLk5PTkUgZmlsZXMuCisgICAgICAgICAgLSBDaGFuZ2VkIHRoZSBTdHlsZVBy
b2Nlc3Nvci5wcm9jZXNzKCkgbWV0aG9kIHRvIHJhaXNlIGFuCisgICAgICAgICAgICBleGNlcHRp
b24gaWYgZ2l2ZW4gYSBmaWxlIHBhdGggdGhhdCBzaG91bGQgbm90IGJlIHByb2Nlc3NlZC4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAg
ICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYW5kIGFkZGVkIG1vcmUgdGVzdCBjYXNl
cyBhcyBuZWNlc3NhcnkuCisKIDIwMTAtMDQtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCA1M2FhODI3Li4y
OTgzZTQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CkBAIC0xNTcsMTEgKzE1NywzMSBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiBdCiAK
IAorX0NQUF9GSUxFX0VYVEVOU0lPTlMgPSBbCisgICAgJ2MnLAorICAgICdjcHAnLAorICAgICdo
JywKKyAgICBdCisKK19QWVRIT05fRklMRV9FWFRFTlNJT04gPSAncHknCisKK19URVhUX0ZJTEVf
RVhURU5TSU9OUyA9IFsKKyAgICAnY3NzJywKKyAgICAnaHRtbCcsCisgICAgJ2lkbCcsCisgICAg
J2pzJywKKyAgICAnbW0nLAorICAgICdwaHAnLAorICAgICdwbScsCisgICAgJ3R4dCcsCisgICAg
XQorCisKKyMgRmlsZXMgdG8gc2tpcCB0aGF0IGFyZSBsZXNzIG9idmlvdXMuCisjCiAjIFNvbWUg
ZmlsZXMgc2hvdWxkIGJlIHNraXBwZWQgd2hlbiBjaGVja2luZyBzdHlsZS4gRm9yIGV4YW1wbGUs
CiAjIFdlYktpdCBtYWludGFpbnMgc29tZSBmaWxlcyBpbiBNb3ppbGxhIHN0eWxlIG9uIHB1cnBv
c2UgdG8gZWFzZQogIyBmdXR1cmUgbWVyZ2VzLgotIwotIyBJbmNsdWRlIGEgd2FybmluZyBmb3Ig
c2tpcHBlZCBmaWxlcyB0aGF0IGFyZSBsZXNzIG9idmlvdXMuCiBfU0tJUFBFRF9GSUxFU19XSVRI
X1dBUk5JTkcgPSBbCiAgICAgIyBUaGUgUXQgQVBJIGFuZCB0ZXN0cyBkbyBub3QgZm9sbG93IFdl
YktpdCBzdHlsZS4KICAgICAjIFRoZXkgZm9sbG93IFF0IHN0eWxlLiA6KQpAQCAtMTc0LDExICsx
OTQsMTIgQEAgX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgIF0KIAogCi0jIERv
bid0IGluY2x1ZGUgYSB3YXJuaW5nIGZvciBza2lwcGVkIGZpbGVzIHRoYXQgYXJlIG1vcmUgY29t
bW9uCi0jIGFuZCBtb3JlIG9idmlvdXMuCisjIEZpbGVzIHRvIHNraXAgdGhhdCBhcmUgbW9yZSBj
b21tb24gb3Igb2J2aW91cy4KKyMKKyMgVGhpcyBsaXN0IHNob3VsZCBiZSBpbiBhZGRpdGlvbiB0
byBmaWxlcyB3aXRoIEZpbGVUeXBlLk5PTkUuICBGaWxlcworIyB3aXRoIEZpbGVUeXBlLk5PTkUg
YXJlIGF1dG9tYXRpY2FsbHkgc2tpcHBlZCB3aXRob3V0IHdhcm5pbmcuCiBfU0tJUFBFRF9GSUxF
U19XSVRIT1VUX1dBUk5JTkcgPSBbCiAgICAgIkxheW91dFRlc3RzLyIsCi0gICAgIi5weWMiLAog
ICAgIF0KIAogCkBAIC0zMjksMTEgKzM1MCwxMSBAQCBkZWYgY29uZmlndXJlX2xvZ2dpbmcoc3Ry
ZWFtLCBsb2dnZXI9Tm9uZSwgaXNfdmVyYm9zZT1GYWxzZSk6CiAjIEVudW0tbGlrZSBpZGlvbQog
Y2xhc3MgRmlsZVR5cGU6CiAKLSAgICBOT05FID0gMQorICAgIE5PTkUgPSAwCiAgICAgIyBBbHBo
YWJldGl6ZSByZW1haW5pbmcgdHlwZXMKLSAgICBDUFAgPSAyCi0gICAgUFlUSE9OID0gMwotICAg
IFRFWFQgPSA0CisgICAgQ1BQID0gMQorICAgIFBZVEhPTiA9IDIKKyAgICBURVhUID0gMwogCiAK
ICMgRklYTUU6IFJlbmFtZSB0aGlzIGNsYXNzIHRvIENoZWNrZXJEaXNwYXRjaGVyLCByZW5hbWUg
dGhlIHN0eWxlL3Byb2Nlc3NvcnMvCkBAIC0zNDcsMjMgKzM2OCw2IEBAIGNsYXNzIFByb2Nlc3Nv
ckRpc3BhdGNoZXIob2JqZWN0KToKIAogICAgICIiIlN1cHBvcnRzIGRldGVybWluaW5nIHdoZXRo
ZXIgYW5kIGhvdyB0byBjaGVjayBzdHlsZSwgYmFzZWQgb24gcGF0aC4iIiIKIAotICAgIGNwcF9m
aWxlX2V4dGVuc2lvbnMgPSAoCi0gICAgICAgICdjJywKLSAgICAgICAgJ2NwcCcsCi0gICAgICAg
ICdoJywKLSAgICAgICAgKQotCi0gICAgdGV4dF9maWxlX2V4dGVuc2lvbnMgPSAoCi0gICAgICAg
ICdjc3MnLAotICAgICAgICAnaHRtbCcsCi0gICAgICAgICdpZGwnLAotICAgICAgICAnanMnLAot
ICAgICAgICAnbW0nLAotICAgICAgICAncGhwJywKLSAgICAgICAgJ3BtJywKLSAgICAgICAgJ3R4
dCcsCi0gICAgICAgICkKLQogICAgIGRlZiBfZmlsZV9leHRlbnNpb24oc2VsZiwgZmlsZV9wYXRo
KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBmaWxlIGV4dGVuc2lvbiB3aXRob3V0IHRoZSBsZWFk
aW5nIGRvdC4iIiIKICAgICAgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmlsZV9wYXRoKVsx
XS5sc3RyaXAoIi4iKQpAQCAtMzc3LDYgKzM4MSw4IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNo
ZXIob2JqZWN0KToKIAogICAgIGRlZiBzaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoc2VsZiwg
ZmlsZV9wYXRoKToKICAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGZpbGUgc2hv
dWxkIGJlIHNraXBwZWQgd2l0aG91dCBhIHdhcm5pbmcuIiIiCisgICAgICAgIGlmIG5vdCBzZWxm
Ll9maWxlX3R5cGUoZmlsZV9wYXRoKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAg
IGZvciBza2lwcGVkX2ZpbGUgaW4gX1NLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5HOgogICAg
ICAgICAgICAgaWYgZmlsZV9wYXRoLmZpbmQoc2tpcHBlZF9maWxlKSA+PSAwOgogICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCkBAIC0zODYsNyArMzkyLDcgQEAgY2xhc3MgUHJvY2Vzc29yRGlz
cGF0Y2hlcihvYmplY3QpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGZpbGUgdHlwZSBjb3JyZXNw
b25kaW5nIHRvIHRoZSBnaXZlbiBmaWxlLiIiIgogICAgICAgICBmaWxlX2V4dGVuc2lvbiA9IHNl
bGYuX2ZpbGVfZXh0ZW5zaW9uKGZpbGVfcGF0aCkKIAotICAgICAgICBpZiAoZmlsZV9leHRlbnNp
b24gaW4gc2VsZi5jcHBfZmlsZV9leHRlbnNpb25zKSBvciAoZmlsZV9wYXRoID09ICctJyk6Cisg
ICAgICAgIGlmIChmaWxlX2V4dGVuc2lvbiBpbiBfQ1BQX0ZJTEVfRVhURU5TSU9OUykgb3IgKGZp
bGVfcGF0aCA9PSAnLScpOgogICAgICAgICAgICAgIyBGSVhNRTogRG8gc29tZXRoaW5nIGFib3V0
IHRoZSBjb21tZW50IGJlbG93IGFuZCB0aGUgaXNzdWUgaXQKICAgICAgICAgICAgICMgICAgICAg
IHJhaXNlcyBzaW5jZSBjcHBfc3R5bGUgYWxyZWFkeSByZWxpZXMgb24gdGhlIGV4dGVuc2lvbi4K
ICAgICAgICAgICAgICMKQEAgLTM5NCwxOCArNDAwLDEzIEBAIGNsYXNzIFByb2Nlc3NvckRpc3Bh
dGNoZXIob2JqZWN0KToKICAgICAgICAgICAgICMgcmVhZGluZyBmcm9tIHN0ZGluLCBjcHBfc3R5
bGUgdGVzdHMgc2hvdWxkIG5vdCByZWx5IG9uCiAgICAgICAgICAgICAjIHRoZSBleHRlbnNpb24u
CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuQ1BQCi0gICAgICAgIGVsaWYgZmlsZV9leHRl
bnNpb24gPT0gInB5IjoKKyAgICAgICAgZWxpZiBmaWxlX2V4dGVuc2lvbiA9PSBfUFlUSE9OX0ZJ
TEVfRVhURU5TSU9OOgogICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLlBZVEhPTgogICAgICAg
ICBlbGlmICgiQ2hhbmdlTG9nIiBpbiBmaWxlX3BhdGggb3IKICAgICAgICAgICAgICAgKG5vdCBm
aWxlX2V4dGVuc2lvbiBhbmQgIldlYktpdFRvb2xzL1NjcmlwdHMvIiBpbiBmaWxlX3BhdGgpIG9y
Ci0gICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uIGluIHNlbGYudGV4dF9maWxlX2V4dGVuc2lv
bnMpOgorICAgICAgICAgICAgICBmaWxlX2V4dGVuc2lvbiBpbiBfVEVYVF9GSUxFX0VYVEVOU0lP
TlMpOgogICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLlRFWFQKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICMgRklYTUU6IElmIHBvc3NpYmxlLCBjaGFuZ2UgdGhpcyBtZXRob2QgdG8gZGVm
YXVsdCB0bwotICAgICAgICAgICAgIyAgICAgICAgcmV0dXJuaW5nIEZpbGVUeXBlLlRFWFQuICBU
aGUgc2hvdWxkX3Byb2Nlc3MoKSBtZXRob2QKLSAgICAgICAgICAgICMgICAgICAgIHNob3VsZCBy
ZWFsbHkgZW5jYXBzdWxhdGUgd2hpY2ggZmlsZXMgbm90IHRvIGNoZWNrLgotICAgICAgICAgICAg
IyAgICAgICAgQ3VycmVudGx5LCAic2tpcCIgbG9naWMgaXMgc3ByZWFkIGJldHdlZW4gYm90aCB0
aGlzCi0gICAgICAgICAgICAjICAgICAgICBtZXRob2QgYW5kIHNob3VsZF9wcm9jZXNzLgogICAg
ICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLk5PTkUKIAogICAgIGRlZiBfY3JlYXRlX3Byb2Nlc3Nv
cihzZWxmLCBmaWxlX3R5cGUsIGZpbGVfcGF0aCwgaGFuZGxlX3N0eWxlX2Vycm9yLApAQCAtNjIz
LDcgKzYyNCw2IEBAIGNsYXNzIFN0eWxlUHJvY2Vzc29yKFByb2Nlc3NvckJhc2UpOgogCiAgICAg
ZGVmIHNob3VsZF9wcm9jZXNzKHNlbGYsIGZpbGVfcGF0aCk6CiAgICAgICAgICIiIlJldHVybiB3
aGV0aGVyIHRoZSBmaWxlIHNob3VsZCBiZSBjaGVja2VkIGZvciBzdHlsZS4iIiIKLQogICAgICAg
ICBpZiBzZWxmLl9kaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhmaWxlX3Bh
dGgpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIHNlbGYuX2Rpc3BhdGNo
ZXIuc2hvdWxkX3NraXBfd2l0aF93YXJuaW5nKGZpbGVfcGF0aCk6CkBAIC02NzEsMTMgKzY3MSw3
IEBAIGNsYXNzIFN0eWxlUHJvY2Vzc29yKFByb2Nlc3NvckJhc2UpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluX2NvbmZpZGVuY2UpCiAK
ICAgICAgICAgaWYgY2hlY2tlciBpcyBOb25lOgotICAgICAgICAgICAgIyBGSVhNRTogU2hvdWxk
IHdlIHJlYWxseSBiZSBza2lwcGluZyBmaWxlcyB0aGF0IHJldHVybiBUcnVlCi0gICAgICAgICAg
ICAjICAgICAgICBmb3Igc2hvdWxkX3Byb2Nlc3MoKT8gIFBlcmhhcHMgdGhpcyBzaG91bGQgYmUg
YQotICAgICAgICAgICAgIyAgICAgICAgd2FybmluZyBvciBhbiBleGNlcHRpb24gc28gd2UgY2Fu
IGZpbmQgb3V0IGlmCi0gICAgICAgICAgICAjICAgICAgICBzaG91bGRfcHJvY2VzcygpIGlzIG1p
c3NpbmcgYW55IGZpbGVzLgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnRmlsZSBub3QgYSByZWNv
Z25pemVkIHR5cGUgdG8gY2hlY2suIFNraXBwaW5nOiAiJXMiJwotICAgICAgICAgICAgICAgICAg
ICAgICAlIGZpbGVfcGF0aCkKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCJGaWxlIHNob3VsZCBub3QgYmUgY2hlY2tlZDogJyVzJyIgJSBmaWxlX3BhdGgp
CiAKICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgY2xhc3M6ICIgKyBjaGVja2VyLl9fY2xhc3Nf
Xy5fX25hbWVfXykKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDFkNmQ1YjUuLmMzNzYzYzkgMTAwNzU1Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRl
c3QucHkKQEAgLTI5NSwyMiArMjk1LDU2IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJTa2lw
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlz
cGF0Y2hlci5zaG91bGRfc2tpcF93aXRoX3dhcm5pbmcocGF0aCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkNoZWNraW5nOiAiICsgcGF0aCkKIAotICAgIGRlZiB0ZXN0X3Nob3VsZF9z
a2lwX3dpdGhvdXRfd2FybmluZyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCBzaG91bGRfc2tpcF93
aXRob3V0X3dhcm5pbmcoKS4iIiIKKyAgICBkZWYgdGVzdF9zaG91bGRfc2tpcF93aXRob3V0X3dh
cm5pbmdfX25vbl9ub25lX2ZpbGVfdHlwZShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBzaG91bGRf
c2tpcF93aXRob3V0X3dhcm5pbmcoKTogbm9uLU5PTkUgZmlsZSB0eXBlLiIiIgogICAgICAgICBk
aXNwYXRjaGVyID0gUHJvY2Vzc29yRGlzcGF0Y2hlcigpCisgICAgICAgIGZpbGVfcGF0aCA9ICdm
b28udHh0JwogCi0gICAgICAgICMgQ2hlY2sgYSBub24tc2tpcHBlZCBmaWxlLgotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGRpc3BhdGNoZXIuc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKCJm
b28udHh0IikpCisgICAgICAgICMgQ29uZmlybSB0aGF0IHRoZSBmaWxlIGhhcyBub24tTk9ORSBm
aWxlIHR5cGUuCisgICAgICAgIGNoZWNrZXIgPSBkaXNwYXRjaGVyLmRpc3BhdGNoX3Byb2Nlc3Nv
cihmaWxlX3BhdGg9ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yPU5vbmUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZT0zKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoY2hlY2tlciBpcyBub3QgTm9uZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShkaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhmaWxlX3BhdGgp
KQogCi0gICAgICAgICMgQ2hlY2sgc2tpcHBlZCBmaWxlcy4KLSAgICAgICAgcGF0aHNfdG9fc2tp
cCA9IFsKLSAgICAgICAgICAgIyBMYXlvdXRUZXN0cyBmb2xkZXIKLSAgICAgICAgICAgIkxheW91
dFRlc3RzL2Zvby50eHQiLAotICAgICAgICAgICAgXQorICAgIGRlZiBfY2hlY2tfbm9uZV9maWxl
X3R5cGUoc2VsZiwgZmlsZV9wYXRoKToKKyAgICAgICAgZGlzcGF0Y2hlciA9IFByb2Nlc3NvckRp
c3BhdGNoZXIoKQogCi0gICAgICAgIGZvciBwYXRoIGluIHBhdGhzX3RvX3NraXA6Ci0gICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUoZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRob3V0X3dhcm5p
bmcocGF0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoZWNraW5nOiAiICsgcGF0
aCkKKyAgICAgICAgIyBDb25maXJtIHRoYXQgdGhlIGZpbGUgaGFzIE5PTkUgZmlsZSB0eXBlLgor
ICAgICAgICBjaGVja2VyID0gZGlzcGF0Y2hlci5kaXNwYXRjaF9wcm9jZXNzb3IoZmlsZV9wYXRo
PWZpbGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhhbmRsZV9zdHlsZV9lcnJvcj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWluX2NvbmZpZGVuY2U9MykKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGNoZWNrZXIgaXMgTm9uZSwgJ3doaWxlIGNoZWNraW5nOiAlcycgJSBmaWxlX3BhdGgp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhvdXRf
d2FybmluZyhmaWxlX3BhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3doaWxlIGNoZWNr
aW5nOiAlcycgJSBmaWxlX3BhdGgpCisKKyAgICBkZWYgdGVzdF9zaG91bGRfc2tpcF93aXRob3V0
X3dhcm5pbmdfX25vbmVfZmlsZV90eXBlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHNob3VsZF9z
a2lwX3dpdGhvdXRfd2FybmluZygpOiBOT05FIGZpbGUgdHlwZS4iIiIKKyAgICAgICAgZmlsZV9w
YXRocyA9IFsnZm9vLmFzZGYnLCAgIyBOb24tc2Vuc2ljYWwgZmlsZSBleHRlbnNpb24uCisgICAg
ICAgICAgICAgICAgICAgICAgJ2Zvby5naWYnLCAgIyBWYXJpb3VzIGJpbmFyeSBmaWxlcy4KKyAg
ICAgICAgICAgICAgICAgICAgICAnZm9vLmpwZycsCisgICAgICAgICAgICAgICAgICAgICAgJ2Zv
by5wbmcnLAorICAgICAgICBdCisKKyAgICAgICAgZm9yIGZpbGVfcGF0aCBpbiBmaWxlX3BhdGhz
OgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfbm9uZV9maWxlX3R5cGUoZmlsZV9wYXRoKQorCisg
ICAgZGVmIHRlc3Rfc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nX19jb25maWdfdmFyaWFibGUo
c2VsZik6CisgICAgICAgICIiIlRlc3Qgc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKCkuCisK
KyAgICAgICAgVGVzdCBmaWxlIHBhdGhzIG1hdGNoaW5nIHRoZSBfU0tJUFBFRF9GSUxFU19XSVRI
T1VUX1dBUk5JTkcKKyAgICAgICAgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KKworICAgICAgICAi
IiIKKyAgICAgICAgZGlzcGF0Y2hlciA9IFByb2Nlc3NvckRpc3BhdGNoZXIoKQorICAgICAgICBm
aWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oJ0xheW91dFRlc3RzJywgJ2Zvby50eHQnKQorCisgICAg
ICAgICMgQ29uZmlybSB0aGF0IHRoZSBmaWxlIGhhcyBub24tTk9ORSBmaWxlIHR5cGUuCisgICAg
ICAgIGNoZWNrZXIgPSBkaXNwYXRjaGVyLmRpc3BhdGNoX3Byb2Nlc3NvcihmaWxlX3BhdGg9Zmls
ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlX3N0eWxlX2Vycm9yPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZT0zKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoY2hlY2tlciBpcyBub3QgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRpc3BhdGNo
ZXIuc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKGZpbGVfcGF0aCkpCiAKIAogY2xhc3MgUHJv
Y2Vzc29yRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC03MjYs
MTggKzc2MCwxNSBAQCBjbGFzcyBTdHlsZVByb2Nlc3Nvcl9Db2RlQ292ZXJhZ2VUZXN0KExvZ2dp
bmdUZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9wcm9jZXNzX19ub19jaGVja2VyX2Rpc3BhdGNo
ZWQoc2VsZik6CiAgICAgICAgICIiIlRlc3QgdGhlIHByb2Nlc3MoKSBtZXRob2QgZm9yIGEgcGF0
aCB3aXRoIG5vIGRpc3BhdGNoZWQgY2hlY2tlci4iIiIKLSAgICAgICAgc2VsZi5fcHJvY2Vzc29y
LnByb2Nlc3MobGluZXM9WydsaW5lMScsICdsaW5lMiddLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxlX3BhdGg9J2Zvby9kb19ub3RfcHJvY2Vzcy50eHQnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlcnM9WzEwMF0pCi0KLSAgICAgICAgIyBB
cyBhIHNhbml0eSBjaGVjaywgY2hlY2sgdGhhdCB0aGUgY2FycmlhZ2UtcmV0dXJuIGNoZWNrZXIg
d2FzCi0gICAgICAgICMgaW5zdGFudGlhdGVkLiAgKFRoaXMgY29kZSBwYXRoIHdhcyBhbHJlYWR5
IGNoZWNrZWQgaW4gb3RoZXIgdGVzdAotICAgICAgICAjIG1ldGhvZHMgaW4gdGhpcyB0ZXN0IGNh
c2UuKQotICAgICAgICBjYXJyaWFnZV9jaGVja2VyID0gc2VsZi5jYXJyaWFnZV9jaGVja2VyCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNhcnJpYWdlX2NoZWNrZXIubGluZXMsIFsnbGluZTEn
LCAnbGluZTInXSkKLQotICAgICAgICAjIENoZWNrIHRoYXQgdGhlIHN0eWxlIGNoZWNrZXIgd2Fz
IG5vdCBkaXNwYXRjaGVkLgotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5fbW9ja19kaXNw
YXRjaGVyLmRpc3BhdGNoZWRfY2hlY2tlciBpcyBOb25lKQorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBzZWxmLl9wcm9jZXNzb3IucHJvY2VzcyhsaW5lcz1bJ2xpbmUxJywgJ2xpbmUyJ10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9J2Zvby9kb19ub3Rf
cHJvY2Vzcy50eHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9u
dW1iZXJzPVsxMDBdKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlcnI6CisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzdHIoZXJyKSwgIkZpbGUgc2hvdWxkIG5vdCBiZSBjaGVja2Vk
OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2Zvby9kb19ub3RfcHJvY2Vzcy50
eHQnIikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnRXhjZXB0aW9uIG5v
dCByYWlzZWQuJykKIAogCiBjbGFzcyBQYXRjaENoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToK
</data>
<flag name="review"
          id="38393"
          type_id="1"
          status="+"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="38394"
          type_id="3"
          status="-"
          setter="hamaji"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54521</attachid>
            <date>2010-04-27 21:59:16 -0700</date>
            <delta_ts>2010-04-28 04:19:50 -0700</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>_patch-38197-3.diff</filename>
            <type>text/plain</type>
            <size>14332</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4MjA0YTdjLi41OTUxNDJlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDQt
MjcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0ZWQgY2hlY2std2Via2l0
LXN0eWxlIHNvIHRoYXQgZmlsZXMgd2l0aCBmaWxlIHR5cGUgTk9ORQorICAgICAgICBhcmUgYXV0
b21hdGljYWxseSBza2lwcGVkIHdpdGhvdXQgd2FybmluZy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgxOTcKKworICAgICAgICBUaGlzIGNoYW5n
ZSBzaW1wbGlmaWVzIGNvbmZpZ3VyaW5nIHdoaWNoIGZpbGVzIHRvIHNraXAuICBJdCBhbHNvCisg
ICAgICAgIGFkZHJlc3NlcyBhbiBpc3N1ZSB3aGVyZWJ5IGNoZWNrLXdlYmtpdC1zdHlsZSB3YXMg
dW5pbnRlbnRpb25hbGx5CisgICAgICAgIGNoZWNraW5nIC52Y3Byb2ogZmlsZXMgZm9yIGNhcnJp
YWdlIHJldHVybnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHk6CisgICAgICAgICAgLSBNb3ZlZCB0aGUgQysrLCBQeXRob24sIGFuZCB0ZXh0IGZpbGUgZXh0
ZW5zaW9ucyB0byBuZXcKKyAgICAgICAgICAgIG1vZHVsZS1sZXZlbCBjb25maWd1cmF0aW9uIHZh
cmlhYmxlcy4KKyAgICAgICAgICAtIFJlbW92ZWQgLnB5YyBmcm9tIHRoZSBfU0tJUFBFRF9GSUxF
U19XSVRIT1VUX1dBUk5JTkcgY29uZmlndXJhdGlvbgorICAgICAgICAgICAgdmFyaWFibGUuCisg
ICAgICAgICAgLSBDaGFuZ2VkIHRoZSBudW1lcmljIHZhbHVlcyBvZiB0aGUgRmlsZVR5cGUgZW51
bSBzbyB0aGF0CisgICAgICAgICAgICBGaWxlVHlwZS5OT05FIGV2YWx1YXRlcyB0byBGYWxzZS4K
KyAgICAgICAgICAtIEZvciBQcm9jZXNzb3JEaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhvdXRf
d2FybmluZygpOgorICAgICAgICAgICAgLSBDaGFuZ2VkIHRoZSBtZXRob2QgdG8gcmV0dXJuIFRy
dWUgZm9yIEZpbGVUeXBlLk5PTkUgZmlsZXMuCisgICAgICAgICAgICAtIE1hZGUgQ2hhbmdlTG9n
IGZpbGVzIGFuIGV4Y2VwdGlvbiB0byBnZXR0aW5nIHNraXBwZWQuCisgICAgICAgICAgLSBDaGFu
Z2VkIHRoZSBTdHlsZVByb2Nlc3Nvci5wcm9jZXNzKCkgbWV0aG9kIHRvIHJhaXNlIGFuCisgICAg
ICAgICAgICBleGNlcHRpb24gaWYgZ2l2ZW4gYSBmaWxlIHBhdGggdGhhdCBzaG91bGQgbm90IGJl
IHByb2Nlc3NlZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYW5kIGFkZGVk
IG1vcmUgdGVzdCBjYXNlcyBhcyBuZWNlc3NhcnkuCisKIDIwMTAtMDQtMjcgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpp
bmRleCA1M2FhODI3Li4zZDUzMDdhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5CkBAIC0xNTcsMTEgKzE1Nyw1MSBAQCBfUEFUSF9SVUxFU19TUEVD
SUZJRVIgPSBbCiBdCiAKIAorX0NQUF9GSUxFX0VYVEVOU0lPTlMgPSBbCisgICAgJ2MnLAorICAg
ICdjcHAnLAorICAgICdoJywKKyAgICBdCisKK19QWVRIT05fRklMRV9FWFRFTlNJT04gPSAncHkn
CisKKyMgRklYTUU6IEluY2x1ZGUgJ3ZjcHJvaicgZmlsZXMgYXMgdGV4dCBmaWxlcyBhZnRlciBj
cmVhdGluZyBhIG1lY2hhbmlzbQorIyAgICAgICAgZm9yIGV4ZW1wdGluZyB0aGVtIGZyb20gdGhl
IGNhcnJpYWdlLXJldHVybiBjaGVja2VyIChzaW5jZSB0aGV5CisjICAgICAgICBhcmUgV2luZG93
cy1vbmx5IGZpbGVzKS4KK19URVhUX0ZJTEVfRVhURU5TSU9OUyA9IFsKKyAgICAnYWMnLAorICAg
ICdjYycsCisgICAgJ2NnaScsCisgICAgJ2NzcycsCisgICAgJ2V4cCcsCisgICAgJ2ZsZXgnLAor
ICAgICdneXAnLAorICAgICdneXBpJywKKyAgICAnaHRtbCcsCisgICAgJ2lkbCcsCisgICAgJ2lu
JywKKyAgICAnanMnLAorICAgICdtbScsCisgICAgJ3BocCcsCisgICAgJ3BsJywKKyAgICAncG0n
LAorICAgICdwcmknLAorICAgICdwcm8nLAorICAgICdyYicsCisgICAgJ3NoJywKKyAgICAndHh0
JywKKyMgICAndmNwcm9qJywgICMgU2VlIEZJWE1FIGFib3ZlLgorICAgICd3bScsCisgICAgJ3ho
dG1sJywKKyAgICAneScsCisgICAgXQorCisKKyMgRmlsZXMgdG8gc2tpcCB0aGF0IGFyZSBsZXNz
IG9idmlvdXMuCisjCiAjIFNvbWUgZmlsZXMgc2hvdWxkIGJlIHNraXBwZWQgd2hlbiBjaGVja2lu
ZyBzdHlsZS4gRm9yIGV4YW1wbGUsCiAjIFdlYktpdCBtYWludGFpbnMgc29tZSBmaWxlcyBpbiBN
b3ppbGxhIHN0eWxlIG9uIHB1cnBvc2UgdG8gZWFzZQogIyBmdXR1cmUgbWVyZ2VzLgotIwotIyBJ
bmNsdWRlIGEgd2FybmluZyBmb3Igc2tpcHBlZCBmaWxlcyB0aGF0IGFyZSBsZXNzIG9idmlvdXMu
CiBfU0tJUFBFRF9GSUxFU19XSVRIX1dBUk5JTkcgPSBbCiAgICAgIyBUaGUgUXQgQVBJIGFuZCB0
ZXN0cyBkbyBub3QgZm9sbG93IFdlYktpdCBzdHlsZS4KICAgICAjIFRoZXkgZm9sbG93IFF0IHN0
eWxlLiA6KQpAQCAtMTc0LDExICsyMTQsMTIgQEAgX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5H
ID0gWwogICAgIF0KIAogCi0jIERvbid0IGluY2x1ZGUgYSB3YXJuaW5nIGZvciBza2lwcGVkIGZp
bGVzIHRoYXQgYXJlIG1vcmUgY29tbW9uCi0jIGFuZCBtb3JlIG9idmlvdXMuCisjIEZpbGVzIHRv
IHNraXAgdGhhdCBhcmUgbW9yZSBjb21tb24gb3Igb2J2aW91cy4KKyMKKyMgVGhpcyBsaXN0IHNo
b3VsZCBiZSBpbiBhZGRpdGlvbiB0byBmaWxlcyB3aXRoIEZpbGVUeXBlLk5PTkUuICBGaWxlcwor
IyB3aXRoIEZpbGVUeXBlLk5PTkUgYXJlIGF1dG9tYXRpY2FsbHkgc2tpcHBlZCB3aXRob3V0IHdh
cm5pbmcuCiBfU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkcgPSBbCiAgICAgIkxheW91dFRl
c3RzLyIsCi0gICAgIi5weWMiLAogICAgIF0KIAogCkBAIC0zMjksMTEgKzM3MCwxMSBAQCBkZWYg
Y29uZmlndXJlX2xvZ2dpbmcoc3RyZWFtLCBsb2dnZXI9Tm9uZSwgaXNfdmVyYm9zZT1GYWxzZSk6
CiAjIEVudW0tbGlrZSBpZGlvbQogY2xhc3MgRmlsZVR5cGU6CiAKLSAgICBOT05FID0gMQorICAg
IE5PTkUgPSAwICAjIEZpbGVUeXBlLk5PTkUgZXZhbHVhdGVzIHRvIEZhbHNlLgogICAgICMgQWxw
aGFiZXRpemUgcmVtYWluaW5nIHR5cGVzCi0gICAgQ1BQID0gMgotICAgIFBZVEhPTiA9IDMKLSAg
ICBURVhUID0gNAorICAgIENQUCA9IDEKKyAgICBQWVRIT04gPSAyCisgICAgVEVYVCA9IDMKIAog
CiAjIEZJWE1FOiBSZW5hbWUgdGhpcyBjbGFzcyB0byBDaGVja2VyRGlzcGF0Y2hlciwgcmVuYW1l
IHRoZSBzdHlsZS9wcm9jZXNzb3JzLwpAQCAtMzQ3LDIzICszODgsNiBAQCBjbGFzcyBQcm9jZXNz
b3JEaXNwYXRjaGVyKG9iamVjdCk6CiAKICAgICAiIiJTdXBwb3J0cyBkZXRlcm1pbmluZyB3aGV0
aGVyIGFuZCBob3cgdG8gY2hlY2sgc3R5bGUsIGJhc2VkIG9uIHBhdGguIiIiCiAKLSAgICBjcHBf
ZmlsZV9leHRlbnNpb25zID0gKAotICAgICAgICAnYycsCi0gICAgICAgICdjcHAnLAotICAgICAg
ICAnaCcsCi0gICAgICAgICkKLQotICAgIHRleHRfZmlsZV9leHRlbnNpb25zID0gKAotICAgICAg
ICAnY3NzJywKLSAgICAgICAgJ2h0bWwnLAotICAgICAgICAnaWRsJywKLSAgICAgICAgJ2pzJywK
LSAgICAgICAgJ21tJywKLSAgICAgICAgJ3BocCcsCi0gICAgICAgICdwbScsCi0gICAgICAgICd0
eHQnLAotICAgICAgICApCi0KICAgICBkZWYgX2ZpbGVfZXh0ZW5zaW9uKHNlbGYsIGZpbGVfcGF0
aCk6CiAgICAgICAgICIiIlJldHVybiB0aGUgZmlsZSBleHRlbnNpb24gd2l0aG91dCB0aGUgbGVh
ZGluZyBkb3QuIiIiCiAgICAgICAgIHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVfcGF0aClb
MV0ubHN0cmlwKCIuIikKQEAgLTM3Nyw2ICs0MDEsMTYgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0
Y2hlcihvYmplY3QpOgogCiAgICAgZGVmIHNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhzZWxm
LCBmaWxlX3BhdGgpOgogICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBz
aG91bGQgYmUgc2tpcHBlZCB3aXRob3V0IGEgd2FybmluZy4iIiIKKyAgICAgICAgaWYgbm90IHNl
bGYuX2ZpbGVfdHlwZShmaWxlX3BhdGgpOiAgIyBGaWxlVHlwZS5OT05FLgorICAgICAgICAgICAg
cmV0dXJuIFRydWUKKyAgICAgICAgIyBTaW5jZSAiTGF5b3V0VGVzdHMiIGlzIGluIF9TS0lQUEVE
X0ZJTEVTX1dJVEhPVVRfV0FSTklORywgbWFrZQorICAgICAgICAjIGFuIGV4Y2VwdGlvbiB0byBw
cmV2ZW50IGZpbGVzIGxpa2UgIkxheW91dFRlc3RzL0NoYW5nZUxvZyIgYW5kCisgICAgICAgICMg
IkxheW91dFRlc3RzL0NoYW5nZUxvZy0yMDA5LTA2LTE2IiBmcm9tIGJlaW5nIHNraXBwZWQuCisg
ICAgICAgICMKKyAgICAgICAgIyBGSVhNRTogRmlndXJlIG91dCBhIGdvb2Qgd2F5IHRvIGF2b2lk
IGhhdmluZyB0byBhZGQgc3BlY2lhbCBsb2dpYworICAgICAgICAjICAgICAgICBmb3IgdGhpcyBz
cGVjaWFsIGNhc2UuCisgICAgICAgIGlmIG9zLnBhdGguYmFzZW5hbWUoZmlsZV9wYXRoKS5zdGFy
dHN3aXRoKCdDaGFuZ2VMb2cnKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBm
b3Igc2tpcHBlZF9maWxlIGluIF9TS0lQUEVEX0ZJTEVTX1dJVEhPVVRfV0FSTklORzoKICAgICAg
ICAgICAgIGlmIGZpbGVfcGF0aC5maW5kKHNraXBwZWRfZmlsZSkgPj0gMDoKICAgICAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQpAQCAtMzg2LDcgKzQyMCw3IEBAIGNsYXNzIFByb2Nlc3NvckRpc3Bh
dGNoZXIob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBmaWxlIHR5cGUgY29ycmVzcG9u
ZGluZyB0byB0aGUgZ2l2ZW4gZmlsZS4iIiIKICAgICAgICAgZmlsZV9leHRlbnNpb24gPSBzZWxm
Ll9maWxlX2V4dGVuc2lvbihmaWxlX3BhdGgpCiAKLSAgICAgICAgaWYgKGZpbGVfZXh0ZW5zaW9u
IGluIHNlbGYuY3BwX2ZpbGVfZXh0ZW5zaW9ucykgb3IgKGZpbGVfcGF0aCA9PSAnLScpOgorICAg
ICAgICBpZiAoZmlsZV9leHRlbnNpb24gaW4gX0NQUF9GSUxFX0VYVEVOU0lPTlMpIG9yIChmaWxl
X3BhdGggPT0gJy0nKToKICAgICAgICAgICAgICMgRklYTUU6IERvIHNvbWV0aGluZyBhYm91dCB0
aGUgY29tbWVudCBiZWxvdyBhbmQgdGhlIGlzc3VlIGl0CiAgICAgICAgICAgICAjICAgICAgICBy
YWlzZXMgc2luY2UgY3BwX3N0eWxlIGFscmVhZHkgcmVsaWVzIG9uIHRoZSBleHRlbnNpb24uCiAg
ICAgICAgICAgICAjCkBAIC0zOTQsMTggKzQyOCwxMyBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRj
aGVyKG9iamVjdCk6CiAgICAgICAgICAgICAjIHJlYWRpbmcgZnJvbSBzdGRpbiwgY3BwX3N0eWxl
IHRlc3RzIHNob3VsZCBub3QgcmVseSBvbgogICAgICAgICAgICAgIyB0aGUgZXh0ZW5zaW9uLgog
ICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLkNQUAotICAgICAgICBlbGlmIGZpbGVfZXh0ZW5z
aW9uID09ICJweSI6CisgICAgICAgIGVsaWYgZmlsZV9leHRlbnNpb24gPT0gX1BZVEhPTl9GSUxF
X0VYVEVOU0lPTjoKICAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5QWVRIT04KLSAgICAgICAg
ZWxpZiAoIkNoYW5nZUxvZyIgaW4gZmlsZV9wYXRoIG9yCisgICAgICAgIGVsaWYgKG9zLnBhdGgu
YmFzZW5hbWUoZmlsZV9wYXRoKS5zdGFydHN3aXRoKCdDaGFuZ2VMb2cnKSBvcgogICAgICAgICAg
ICAgICAobm90IGZpbGVfZXh0ZW5zaW9uIGFuZCAiV2ViS2l0VG9vbHMvU2NyaXB0cy8iIGluIGZp
bGVfcGF0aCkgb3IKLSAgICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gaW4gc2VsZi50ZXh0X2Zp
bGVfZXh0ZW5zaW9ucyk6CisgICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uIGluIF9URVhUX0ZJ
TEVfRVhURU5TSU9OUyk6CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuVEVYVAogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgIyBGSVhNRTogSWYgcG9zc2libGUsIGNoYW5nZSB0aGlzIG1l
dGhvZCB0byBkZWZhdWx0IHRvCi0gICAgICAgICAgICAjICAgICAgICByZXR1cm5pbmcgRmlsZVR5
cGUuVEVYVC4gIFRoZSBzaG91bGRfcHJvY2VzcygpIG1ldGhvZAotICAgICAgICAgICAgIyAgICAg
ICAgc2hvdWxkIHJlYWxseSBlbmNhcHN1bGF0ZSB3aGljaCBmaWxlcyBub3QgdG8gY2hlY2suCi0g
ICAgICAgICAgICAjICAgICAgICBDdXJyZW50bHksICJza2lwIiBsb2dpYyBpcyBzcHJlYWQgYmV0
d2VlbiBib3RoIHRoaXMKLSAgICAgICAgICAgICMgICAgICAgIG1ldGhvZCBhbmQgc2hvdWxkX3By
b2Nlc3MuCiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuTk9ORQogCiAgICAgZGVmIF9jcmVh
dGVfcHJvY2Vzc29yKHNlbGYsIGZpbGVfdHlwZSwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJy
b3IsCkBAIC02MjMsNyArNjUyLDYgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3IoUHJvY2Vzc29yQmFz
ZSk6CiAKICAgICBkZWYgc2hvdWxkX3Byb2Nlc3Moc2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAg
IiIiUmV0dXJuIHdoZXRoZXIgdGhlIGZpbGUgc2hvdWxkIGJlIGNoZWNrZWQgZm9yIHN0eWxlLiIi
IgotCiAgICAgICAgIGlmIHNlbGYuX2Rpc3BhdGNoZXIuc2hvdWxkX3NraXBfd2l0aG91dF93YXJu
aW5nKGZpbGVfcGF0aCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgc2Vs
Zi5fZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRoX3dhcm5pbmcoZmlsZV9wYXRoKToKQEAgLTY3
MSwxMyArNjk5LDcgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3IoUHJvY2Vzc29yQmFzZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5fY29u
ZmlkZW5jZSkKIAogICAgICAgICBpZiBjaGVja2VyIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIEZJ
WE1FOiBTaG91bGQgd2UgcmVhbGx5IGJlIHNraXBwaW5nIGZpbGVzIHRoYXQgcmV0dXJuIFRydWUK
LSAgICAgICAgICAgICMgICAgICAgIGZvciBzaG91bGRfcHJvY2VzcygpPyAgUGVyaGFwcyB0aGlz
IHNob3VsZCBiZSBhCi0gICAgICAgICAgICAjICAgICAgICB3YXJuaW5nIG9yIGFuIGV4Y2VwdGlv
biBzbyB3ZSBjYW4gZmluZCBvdXQgaWYKLSAgICAgICAgICAgICMgICAgICAgIHNob3VsZF9wcm9j
ZXNzKCkgaXMgbWlzc2luZyBhbnkgZmlsZXMuCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdGaWxl
IG5vdCBhIHJlY29nbml6ZWQgdHlwZSB0byBjaGVjay4gU2tpcHBpbmc6ICIlcyInCi0gICAgICAg
ICAgICAgICAgICAgICAgICUgZmlsZV9wYXRoKQotICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
ICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiRmlsZSBzaG91bGQgbm90IGJlIGNoZWNrZWQ6ICcl
cyciICUgZmlsZV9wYXRoKQogCiAgICAgICAgIF9sb2cuZGVidWcoIlVzaW5nIGNsYXNzOiAiICsg
Y2hlY2tlci5fX2NsYXNzX18uX19uYW1lX18pCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQppbmRleCAxZDZkNWI1Li5i
OWY5NDYyIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC0yNzIsMTIgKzI3MiwxMyBAQCBjbGFzcyBQcm9jZXNz
b3JEaXNwYXRjaGVyU2tpcFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgIiIiVGVzdHMg
dGhlICJzaG91bGQgc2tpcCIgbWV0aG9kcyBvZiB0aGUgUHJvY2Vzc29yRGlzcGF0Y2hlciBjbGFz
cy4iIiIKIAorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9
IFByb2Nlc3NvckRpc3BhdGNoZXIoKQorCiAgICAgZGVmIHRlc3Rfc2hvdWxkX3NraXBfd2l0aF93
YXJuaW5nKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHNob3VsZF9za2lwX3dpdGhfd2FybmluZygp
LiIiIgotICAgICAgICBkaXNwYXRjaGVyID0gUHJvY2Vzc29yRGlzcGF0Y2hlcigpCi0KICAgICAg
ICAgIyBDaGVjayBhIG5vbi1za2lwcGVkIGZpbGUuCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRoX3dhcm5pbmcoImZvby50eHQiKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShzZWxmLl9kaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhfd2Fybmlu
ZygiZm9vLnR4dCIpKQogCiAgICAgICAgICMgQ2hlY2sgc2tpcHBlZCBmaWxlcy4KICAgICAgICAg
cGF0aHNfdG9fc2tpcCA9IFsKQEAgLTI5MiwyNSArMjkzLDQ2IEBAIGNsYXNzIFByb2Nlc3NvckRp
c3BhdGNoZXJTa2lwVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBdCiAKICAg
ICAgICAgZm9yIHBhdGggaW4gcGF0aHNfdG9fc2tpcDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShkaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhfd2FybmluZyhwYXRoKSwKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLl9kaXNwYXRjaGVyLnNob3VsZF9za2lwX3dpdGhfd2Fy
bmluZyhwYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hlY2tpbmc6ICIgKyBw
YXRoKQogCi0gICAgZGVmIHRlc3Rfc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKHNlbGYpOgot
ICAgICAgICAiIiJUZXN0IHNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZygpLiIiIgotICAgICAg
ICBkaXNwYXRjaGVyID0gUHJvY2Vzc29yRGlzcGF0Y2hlcigpCi0KLSAgICAgICAgIyBDaGVjayBh
IG5vbi1za2lwcGVkIGZpbGUuCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5z
aG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoImZvby50eHQiKSkKLQotICAgICAgICAjIENoZWNr
IHNraXBwZWQgZmlsZXMuCi0gICAgICAgIHBhdGhzX3RvX3NraXAgPSBbCi0gICAgICAgICAgICMg
TGF5b3V0VGVzdHMgZm9sZGVyCi0gICAgICAgICAgICJMYXlvdXRUZXN0cy9mb28udHh0IiwKLSAg
ICAgICAgICAgIF0KKyAgICBkZWYgX2Fzc2VydF9zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmco
c2VsZiwgcGF0aCwgaXNfY2hlY2tlcl9ub25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZCk6CisgICAgICAgICMgQ2hlY2sgdGhlIGZpbGUgdHlw
ZSBiZWZvcmUgYXNzZXJ0aW5nIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICAgIGNoZWNrZXIgPSBz
ZWxmLl9kaXNwYXRjaGVyLmRpc3BhdGNoX3Byb2Nlc3NvcihmaWxlX3BhdGg9cGF0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9z
dHlsZV9lcnJvcj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWluX2NvbmZpZGVuY2U9MykKKyAgICAgICAgbWVzc2FnZSA9ICd3aGls
ZSBjaGVja2luZzogJXMnICUgcGF0aAorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2Vy
IGlzIE5vbmUsIGlzX2NoZWNrZXJfbm9uZSwgbWVzc2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc2VsZi5fZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcocGF0aCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLCBtZXNzYWdlKQorCisgICAgZGVm
IHRlc3Rfc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nX190cnVlKHNlbGYpOgorICAgICAgICAi
IiJUZXN0IHNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZygpIGZvciBUcnVlIHJldHVybiB2YWx1
ZXMuIiIiCisgICAgICAgICMgQ2hlY2sgYSBmaWxlIHdpdGggTk9ORSBmaWxlIHR5cGUuCisgICAg
ICAgIHBhdGggPSAnZm9vLmFzZGYnICAjIE5vbi1zZW5zaWNhbCBmaWxlIGV4dGVuc2lvbi4KKyAg
ICAgICAgc2VsZi5fYXNzZXJ0X3Nob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhwYXRoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NoZWNrZXJf
bm9uZT1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdGVkPVRydWUpCisKKyAgICAgICAgIyBDaGVjayBmaWxlcyB3aXRoIG5vbi1OT05F
IGZpbGUgdHlwZS4gIFRoZXNlIGV4YW1wbGVzIG11c3QgYmUKKyAgICAgICAgIyBkcmF3biBmcm9t
IHRoZSBfU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkcgY29uZmlndXJhdGlvbgorICAgICAg
ICAjIHZhcmlhYmxlLgorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdMYXlvdXRUZXN0cycs
ICdmb28udHh0JykKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3Nob3VsZF9za2lwX3dpdGhvdXRfd2Fy
bmluZyhwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlzX2NoZWNrZXJfbm9uZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBlY3RlZD1UcnVlKQorCisgICAgZGVmIHRlc3Rfc2hvdWxk
X3NraXBfd2l0aG91dF93YXJuaW5nX19mYWxzZShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBzaG91
bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoKSBmb3IgRmFsc2UgcmV0dXJuIHZhbHVlcy4iIiIKKyAg
ICAgICAgcGF0aHMgPSBbJ2Zvby50eHQnLAorICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
J0xheW91dFRlc3RzJywgJ0NoYW5nZUxvZycpLAorICAgICAgICBdCiAKLSAgICAgICAgZm9yIHBh
dGggaW4gcGF0aHNfdG9fc2tpcDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNwYXRj
aGVyLnNob3VsZF9za2lwX3dpdGhvdXRfd2FybmluZyhwYXRoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQ2hlY2tpbmc6ICIgKyBwYXRoKQorICAgICAgICBmb3IgcGF0aCBpbiBwYXRo
czoKKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmco
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaXNfY2hlY2tlcl9ub25lPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZD1GYWxzZSkKIAogCiBjbGFzcyBQcm9jZXNz
b3JEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTQxMSwxOCAr
NDMzLDM0IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJEaXNwYXRjaFRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAiIiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQg
YXMgdGV4dC4iIiIKICAgICAgICAgcGF0aHMgPSBbCiAgICAgICAgICAgICJDaGFuZ2VMb2ciLAor
ICAgICAgICAgICAiQ2hhbmdlTG9nLTIwMDktMDYtMTYiLAorICAgICAgICAgICAiZm9vLmFjIiwK
KyAgICAgICAgICAgImZvby5jYyIsCisgICAgICAgICAgICJmb28uY2dpIiwKICAgICAgICAgICAg
ImZvby5jc3MiLAorICAgICAgICAgICAiZm9vLmV4cCIsCisgICAgICAgICAgICJmb28uZmxleCIs
CisgICAgICAgICAgICJmb28uZ3lwIiwKKyAgICAgICAgICAgImZvby5neXBpIiwKICAgICAgICAg
ICAgImZvby5odG1sIiwKICAgICAgICAgICAgImZvby5pZGwiLAorICAgICAgICAgICAiZm9vLmlu
IiwKICAgICAgICAgICAgImZvby5qcyIsCiAgICAgICAgICAgICJmb28ubW0iLAogICAgICAgICAg
ICAiZm9vLnBocCIsCisgICAgICAgICAgICJmb28ucGwiLAogICAgICAgICAgICAiZm9vLnBtIiwK
KyAgICAgICAgICAgImZvby5wcmkiLAorICAgICAgICAgICAiZm9vLnBybyIsCisgICAgICAgICAg
ICJmb28ucmIiLAorICAgICAgICAgICAiZm9vLnNoIiwKICAgICAgICAgICAgImZvby50eHQiLAot
ICAgICAgICAgICAiRm9vQ2hhbmdlTG9nLmJhayIsCi0gICAgICAgICAgICJXZWJDb3JlL0NoYW5n
ZUxvZyIsCi0gICAgICAgICAgICJXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzIiwKLSAgICAgICAgICAgIldlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxl
IiwKKyAgICAgICAgICAgImZvby53bSIsCisgICAgICAgICAgICJmb28ueGh0bWwiLAorICAgICAg
ICAgICAiZm9vLnkiLAorICAgICAgICAgICBvcy5wYXRoLmpvaW4oIldlYkNvcmUiLCAiQ2hhbmdl
TG9nIiksCisgICAgICAgICAgIG9zLnBhdGguam9pbigiV2ViQ29yZSIsICJpbnNwZWN0b3IiLCAi
ZnJvbnQtZW5kIiwgImluc3BlY3Rvci5qcyIpLAorICAgICAgICAgICBvcy5wYXRoLmpvaW4oIldl
YktpdFRvb2xzIiwgIlNjcmlwdHMiLCAiY2hlY2std2Via2l0LXN0eWxlIiksCiAgICAgICAgIF0K
IAogICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKQEAgLTQ0MSw4ICs0NzksMTAgQEAgY2xhc3Mg
UHJvY2Vzc29yRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICIiIlRlc3QgcGF0aHMgdGhhdCBoYXZlIG5vIGZpbGUgdHlwZS4uIiIiCiAgICAgICAgIHBh
dGhzID0gWwogICAgICAgICAgICAiTWFrZWZpbGUiLAorICAgICAgICAgICAiZm9vLmFzZGYiLCAg
IyBOb24tc2Vuc2ljYWwgZmlsZSBleHRlbnNpb24uCiAgICAgICAgICAgICJmb28ucG5nIiwKICAg
ICAgICAgICAgImZvby5leGUiLAorICAgICAgICAgICAiZm9vLnZjcHJvaiIsCiAgICAgICAgICAg
ICBdCiAKICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CkBAIC03MjYsMTggKzc2NiwxMCBAQCBj
bGFzcyBTdHlsZVByb2Nlc3Nvcl9Db2RlQ292ZXJhZ2VUZXN0KExvZ2dpbmdUZXN0Q2FzZSk6CiAK
ICAgICBkZWYgdGVzdF9wcm9jZXNzX19ub19jaGVja2VyX2Rpc3BhdGNoZWQoc2VsZik6CiAgICAg
ICAgICIiIlRlc3QgdGhlIHByb2Nlc3MoKSBtZXRob2QgZm9yIGEgcGF0aCB3aXRoIG5vIGRpc3Bh
dGNoZWQgY2hlY2tlci4iIiIKLSAgICAgICAgc2VsZi5fcHJvY2Vzc29yLnByb2Nlc3MobGluZXM9
WydsaW5lMScsICdsaW5lMiddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl
X3BhdGg9J2Zvby9kb19ub3RfcHJvY2Vzcy50eHQnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lX251bWJlcnM9WzEwMF0pCi0KLSAgICAgICAgIyBBcyBhIHNhbml0eSBjaGVj
aywgY2hlY2sgdGhhdCB0aGUgY2FycmlhZ2UtcmV0dXJuIGNoZWNrZXIgd2FzCi0gICAgICAgICMg
aW5zdGFudGlhdGVkLiAgKFRoaXMgY29kZSBwYXRoIHdhcyBhbHJlYWR5IGNoZWNrZWQgaW4gb3Ro
ZXIgdGVzdAotICAgICAgICAjIG1ldGhvZHMgaW4gdGhpcyB0ZXN0IGNhc2UuKQotICAgICAgICBj
YXJyaWFnZV9jaGVja2VyID0gc2VsZi5jYXJyaWFnZV9jaGVja2VyCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNhcnJpYWdlX2NoZWNrZXIubGluZXMsIFsnbGluZTEnLCAnbGluZTInXSkKLQot
ICAgICAgICAjIENoZWNrIHRoYXQgdGhlIHN0eWxlIGNoZWNrZXIgd2FzIG5vdCBkaXNwYXRjaGVk
LgotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5fbW9ja19kaXNwYXRjaGVyLmRpc3BhdGNo
ZWRfY2hlY2tlciBpcyBOb25lKQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdmb28nLCAn
ZG9fbm90X3Byb2Nlc3MudHh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9u
RXJyb3IsIHNlbGYuX3Byb2Nlc3Nvci5wcm9jZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaW5lcz1bJ2xpbmUxJywgJ2xpbmUyJ10sIGZpbGVfcGF0aD1wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBsaW5lX251bWJlcnM9WzEwMF0pCiAKIAogY2xhc3MgUGF0Y2hDaGVja2Vy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>