<?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>39537</bug_id>
          
          <creation_ts>2010-05-22 13:59:42 -0700</creation_ts>
          <short_desc>Teach HTML5 parser how to lex comments correctly</short_desc>
          <delta_ts>2010-05-23 15:23:11 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>39259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229318</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-22 13:59:42 -0700</bug_when>
    <thetext>Teach HTML5 parser how to lex comments correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229319</commentid>
    <comment_count>1</comment_count>
      <attachid>56789</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-22 14:00:17 -0700</bug_when>
    <thetext>Created attachment 56789
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229486</commentid>
    <comment_count>2</comment_count>
      <attachid>56825</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-23 10:40:02 -0700</bug_when>
    <thetext>Created attachment 56825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229496</commentid>
    <comment_count>3</comment_count>
      <attachid>56825</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 13:25:18 -0700</bug_when>
    <thetext>Comment on attachment 56825
Patch

WebCore/html/HTML5Lexer.cpp:880
 +                      ASSERT(*source == &apos;-&apos;);
We should add an advanceAndASSERT() method to SegmentedString which does this for you.

WebCore/html/HTML5Lexer.cpp:879
 +                  if (peek == SegmentedString::DidMatch) {
What does DidMatch mean?

WebCore/html/HTML5Lexer.cpp:915
 +                  m_token-&gt;appendToComment(&apos;-&apos;);
Where does the &apos;-&apos; come from?

WebCore/html/HTML5Token.h:167
 +          return String(StringImpl::adopt(m_data));
This method can&apos;t be called more than once.  That seems bad, no?  Should we ASSERT that m_data is non-empty here?

WebCore/html/HTML5Tokenizer.cpp:69
 +      default:
We should remove this default: and instead list all the missing states.

WebCore/platform/text/SegmentedString.h:120
 +          ASSERT_NOT_REACHED();
SegmentedString seems like a rather mature API, seems lame to add an imature method to it.


I think this needs one more round.  SEe above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229512</commentid>
    <comment_count>4</comment_count>
      <attachid>56831</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-23 14:49:36 -0700</bug_when>
    <thetext>Created attachment 56831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229514</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-23 14:53:41 -0700</bug_when>
    <thetext>Attachment 56831 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/html/HTML5Lexer.cpp:879:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229515</commentid>
    <comment_count>6</comment_count>
      <attachid>56831</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 14:57:08 -0700</bug_when>
    <thetext>Comment on attachment 56831
Patch

WebCore/html/HTML5Token.h:159
 +          return cachedData();
cachedDataString()?

WebCore/html/HTML5Tokenizer.cpp:46
 +      case HTML5Token::EndOfFile:
Sooooo much better!

WebCore/platform/text/SegmentedString.h:135
 +      void advanceAndASSERT(UChar expectedCharacter)
This will fail in RElease builds.  We need UNUSED_PARAM I think.

Otherwise looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229516</commentid>
    <comment_count>7</comment_count>
      <attachid>56832</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-23 14:59:55 -0700</bug_when>
    <thetext>Created attachment 56832
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229517</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 15:01:25 -0700</bug_when>
    <thetext>Attachment 56831 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/2346102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229522</commentid>
    <comment_count>9</comment_count>
      <attachid>56832</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 15:23:05 -0700</bug_when>
    <thetext>Comment on attachment 56832
Patch for landing

Clearing flags on attachment: 56832

Committed r60051: &lt;http://trac.webkit.org/changeset/60051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229523</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 15:23:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56789</attachid>
            <date>2010-05-22 14:00:17 -0700</date>
            <delta_ts>2010-05-23 10:39:58 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-39537-20100522140016.patch</filename>
            <type>text/plain</type>
            <size>9545</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjIwMjJhYjhkNDQzODMzOGQ4ZGJmNzU4ZWJhNTQzNmEwNmYwMTNlMy4uODZiOWU2NjdiYTQ5NGQx
MzM1NzYxZTc3NDk1NTJmYjJjNWU1YzBkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNSBAQAogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIFRlYWNoIEhUTUw1IHBhcnNlciBob3cg
dG8gbGV4IGNvbW1lbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1MzcKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
NUxleGVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5oOgorICAgICAg
ICAqIGh0bWwvSFRNTDVUb2tlbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVn
aW5Db21tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmFwcGVuZFRvQ29tbWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRl
ZFN0cmluZzo6cGVlayk6CisKKzIwMTAtMDUtMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBN
YWtlIHRoZSBodG1sNWxpYiBwYXJzZXIgdGVzdHMgcnVuIHVzaW5nIHRoZSBIVE1MNSBwYXJzZXIK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTMzCiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MNUxleGVyLmNwcAppbmRleCA4NTVmMjAxYWUwZDg4YWQ3NTJkOGUxZDE4YTFjMTBmZWQxMTAz
YzlkLi5kOGQzMzlhNmMxYjFmOTk5NmJjNGFkM2ZmN2ZlYzYzYjc1YTNiOTZiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4
ZXIuY3BwCkBAIC04NzMsNiArODczLDIwIEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgTWFya3VwRGVjbGFyYXRpb25PcGVuU3RhdGU6
IHsKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXNoRGFzaFN0cmlu
ZywgKCItLSIpKTsKKyAgICAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKKyAgICAgICAgICAgICAg
ICBTZWdtZW50ZWRTdHJpbmc6OlBlZWtSZXN1bHQgcGVlayA9IHNvdXJjZS5wZWVrKGRhc2hEYXNo
U3RyaW5nKTsKKyAgICAgICAgICAgICAgICBpZiAocGVlayA9PSBTZWdtZW50ZWRTdHJpbmc6OkRp
ZE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgqc291cmNlID09ICctJyk7Cisg
ICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlKCk7CisgICAgICAgICAgICAgICAgICAg
IEFTU0VSVCgqc291cmNlID09ICctJyk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZh
bmNlKCk7CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luQ29tbWVudCgpOworICAg
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXJ0U3RhdGU7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGVlayA9PSBT
ZWdtZW50ZWRTdHJpbmc6Ok5vdEVub3VnaENoYXJhY3RlcnMpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsgLy8gV2UgbmVlZCB0byB3YWl0IGZvciBtb3JlIGNoYXJhY3RlcnMgdG8g
YXJyaXZlLgorICAgICAgICAgICAgfQogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04ODEsMTAgKzg5NSwxMCBAQCBib29sIEhU
TUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGFydERhc2hTdGF0ZTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgICAgIGVtaXRQ
YXJzZUVycm9yKCk7Ci0gICAgICAgICAgICAgICAgZW1pdENvbW1lbnRUb2tlbigpOworICAgICAg
ICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0g
RGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7
CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtODk1LDkgKzkw
OSwxMSBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRF
bmRTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAg
ICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigp
OwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0
YXRlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJv
cGVybHkuCkBAIC05MDcsNyArOTIzLDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgaWYg
KGNjID09ICctJykKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudEVuZERhc2hTdGF0
ZTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIEVPRiBwcm9wZXJseS4KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC05MTUsNyArOTMxLDggQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgaWYg
KGNjID09ICctJykKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudEVuZFN0YXRlOwog
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3Rh
dGUgPSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhNRTog
SGFuZGxlIEVPRiBwcm9wZXJseS4KQEAgLTkyMywyMSArOTQwLDI2IEBAIGJvb2wgSFRNTDVMZXhl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikK
ICAgICAgICAgfQogICAgICAgICBjYXNlIENvbW1lbnRFbmRTdGF0ZTogewogICAgICAgICAgICAg
aWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgICAgIGVtaXRDb21tZW50VG9rZW4oKTsKKyAg
ICAgICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0
ZSA9IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJ1x4MDknIHx8IGNj
ID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKSB7CiAgICAgICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENv
bW1lbnRFbmRTcGFjZVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnIScpIHsK
ICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwogICAgICAgICAgICAgICAgIG1fc3Rh
dGUgPSBDb21tZW50RW5kQmFuZ1N0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
LScpIHsKICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21t
ZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsK
LSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9r
ZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVu
ZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVu
dChjYyk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtOTQ1
LDEzICs5NjcsMTggQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ29t
bWVudEVuZEJhbmdTdGF0ZTogewogICAgICAgICAgICAgaWYgKGNjID09ICctJykgewotICAgICAg
ICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21t
ZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCchJyk7
CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmREYXNoU3RhdGU7CiAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgICAgIGVtaXRDb21tZW50
VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBl
bmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1l
bnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJyEnKTsK
KyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIEVPRiBwcm9wZXJseS4KQEAgLTk1OSwxNCArOTg2LDE0IEBAIGJv
b2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRv
a2VuJiB0b2tlbikKICAgICAgICAgfQogICAgICAgICBjYXNlIENvbW1lbnRFbmRTcGFjZVN0YXRl
OiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9
PSAnXHgwQycgfHwgY2MgPT0gJyAnKQotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAg
ICAgIGVsc2UgaWYgKGNjID09ICctJykKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVu
dEVuZERhc2hTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAg
ICAgICAgICAgIGVtaXRDb21tZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBlbWl0Q3VycmVu
dFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1f
c3RhdGUgPSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhN
RTogSGFuZGxlIEVPRiBwcm9wZXJseS4KQEAgLTEyNjksMTAgKzEyOTYsNiBAQCBpbmxpbmUgYm9v
bCBIVE1MNUxleGVyOjppc0FwcHJvcHJpYXRlRW5kVGFnKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotaW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6ZW1pdENvbW1lbnRUb2tlbigpCi17Ci19Ci0KIGlu
bGluZSB2b2lkIEhUTUw1TGV4ZXI6OmVtaXRDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogewog
ICAgIGlmIChtX3Rva2VuLT50eXBlKCkgIT0gSFRNTDVUb2tlbjo6Q2hhcmFjdGVyKSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4
ZXIuaAppbmRleCA2NTQ2ZDk3ZmY3OGUxYjFkNDQ2OGQ0MTQwMjU2ZDA1MWIyNjlkZTU3Li42ZDYx
Y2MyMmRhMTM4ODUxMDg3M2QyNzVkNGRkN2JhMzQyMTU2NGZhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTDVMZXhlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgKQEAgLTEy
Niw3ICsxMjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBjb25zdW1lRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIGJvb2wmIG5vdEVub3VnaENoYXJhY3Rl
cnMpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgaW5saW5lIHZvaWQgZW1pdENvbW1lbnRUb2tl
bigpOwogICAgICAgICBpbmxpbmUgdm9pZCBlbWl0Q2hhcmFjdGVyKFVDaGFyKTsKICAgICAgICAg
aW5saW5lIHZvaWQgZW1pdFBhcnNlRXJyb3IoKTsKICAgICAgICAgaW5saW5lIHZvaWQgZW1pdEN1
cnJlbnRUb2tlbigpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaCBiL1dl
YkNvcmUvaHRtbC9IVE1MNVRva2VuLmgKaW5kZXggOGUzNWI5MjQwN2ViOWNjZmE5ZWUzMmJjZTRk
MzIwM2RiNDdkYjc2YS4uN2IyZjJhOGJlMzQ0OTdmYmUwMzA0MzY5ZGM3ZWYyNTJkZTFmYzg5NCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTDVUb2tlbi5oCkBAIC04Nyw2ICs4NywxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGF0YS5h
cHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGJlZ2luQ29tbWVudCgpCisgICAg
eworICAgICAgICBBU1NFUlQobV90eXBlID09IFVuaW5pdGlhbGl6ZWQpOworICAgICAgICBtX3R5
cGUgPSBDb21tZW50OworICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICB9CisKICAgICB2b2lk
IGFwcGVuZFRvTmFtZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQobV90
eXBlID09IFN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBFbmRUYWcgfHwgbV90eXBlID09IERPQ1RZUEUp
OwpAQCAtMTAwLDYgKzEwNywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGF0YS5hcHBlbmQoY2hh
cmFjdGVycyk7CiAgICAgfQogCisgICAgdm9pZCBhcHBlbmRUb0NvbW1lbnQoVUNoYXIgY2hhcmFj
dGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBDb21tZW50KTsKKyAgICAgICAg
bV9kYXRhLmFwcGVuZChjaGFyYWN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgYWRkTmV3QXR0cmli
dXRlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBl
ID09IEVuZFRhZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVk
U3RyaW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKaW5kZXgg
NzllZDFmMDM1ODMxYWNmMGZmOWY2MjRjMzQ0YzA4YzljM2YzYTdlZi4uNmQ2YTE1ZDM4YmFiYThh
YWIxYzZjMzM4NTZkMWZlZWFiYzhhNDIwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1NlZ21lbnRlZFN0cmluZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50
ZWRTdHJpbmcuaApAQCAtMTAzLDYgKzEwMywyNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gIWN1cnJlbnQoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0OwogCisgICAgZW51bSBQZWVrUmVzdWx0IHsKKyAgICAgICAgRGlkTm90TWF0Y2gsCisgICAg
ICAgIERpZE1hdGNoLAorICAgICAgICBOb3RFbm91Z2hDaGFyYWN0ZXJzLAorICAgIH07CisKKyAg
ICBQZWVrUmVzdWx0IHBlZWsoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBp
ZiAoIW1fcHVzaGVkQ2hhcjEgJiYgc3RyaW5nLmxlbmd0aCgpIDw9ICh1bnNpZ25lZCkgbV9jdXJy
ZW50U3RyaW5nLm1fbGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAobWVtY21wKHN0cmluZy5jaGFy
YWN0ZXJzKCksIG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQsIHN0cmluZy5sZW5ndGgoKSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiBEaWRNYXRjaDsKKyAgICAgICAgfQorICAgICAgICAvLyBXZSBo
YXZlbid0IGltcGxlbWVudGVkIHRoZSBzbG93IGNhc2UgeWV0LgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOworICAgIH0KKwogICAgIHZv
aWQgYWR2YW5jZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgbV9jdXJy
ZW50U3RyaW5nLm1fbGVuZ3RoID4gMSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56825</attachid>
            <date>2010-05-23 10:40:02 -0700</date>
            <delta_ts>2010-05-23 14:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39537-20100523104001.patch</filename>
            <type>text/plain</type>
            <size>15957</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MzQwNjVkZjNmYWYyZjZkYzE2NDM3NjRmNjU2MjEwOGRlMjI0OGU4Li5mZTlmMmI2
MjJlYjYxMzM1ZTMwYmQ4MjJlODI1MmI5NTk0OWNiMTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBIVE1MNSBwYXJzZXIg
aG93IHRvIGxleCBjb21tZW50cyBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTM3CisKKyAgICAgICAgQWRkZWQgYSBuZXcgZGF0YSBm
aWxlIGZvciB0ZXN0aW5nIGNvbW1lbnQgcGFyc2luZy4gIFRoZXJlIGFyZSBzb21lIG1vcmUKKyAg
ICAgICAgdGhpbmdzIHdlIGNhbiB0ZXN0IGhlcmUgb25jZSB3ZSBpbXBsZW1lbnQgdGhlIGJvZ3Vz
IGNvbW1lbnQgc3RhdGUuCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvY29tbWVudHMw
MS5kYXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3dlYmtpdC1ydW5uZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgICAgLSBTb21lIG9mIHRoZXNlIHRlc3RzIGZhaWwgaW4gb3VyIGN1cnJl
bnQgcGFyc2VyIGJlY2F1c2Ugb3VyCisgICAgICAgICAgICAgIGN1cnJlbnQgcGFyc2VyIGRvZXNu
J3QgY29tcGx5IHdpdGggSFRNTDUuICBJJ3ZlIHNldCB0aGVzZQorICAgICAgICAgICAgICBleHBl
Y3RhdGlvbnMgdG8gZmFpbGluZyBzbyB0aGUgdGVzdHMgd2lsbCAicGFzcyIgaW4gdGhlIGN1cnJl
bnQKKyAgICAgICAgICAgICAgcGFyc2VyLiAgSSd2ZSBkb3VibGUtY2hlY2tlZCB0aGUgcmVzdWx0
cyBpbiBjb21tZW50czAxLmRhdCB3aXRoIGEKKyAgICAgICAgICAgICAgbmlnaHRseSBidWlsZCBv
ZiBGaXJlZm94IHRvIG1ha2Ugc3VyZSB3ZSBhZ3JlZSBvbiBvdXIKKyAgICAgICAgICAgICAgaW1w
bGVtZW50YXRpb24gb2YgdGhlIHNwZWMuCisgICAgICAgICogaHRtbDVsaWIvd2Via2l0LXJ1bm5l
ci5odG1sOgorCiAyMDEwLTA1LTIyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvY29tbWVudHMwMS5kYXQgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9yZXNvdXJjZXMvY29tbWVudHMwMS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJkOWU1MDNlMTQ3Mzkw
ZTExOTJkMDRmYmUxMjljOGIyOWFiMzZjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0bWw1bGliL3Jlc291cmNlcy9jb21tZW50czAxLmRhdApAQCAtMCwwICsxLDk4IEBACisjZGF0
YQorRk9PPCEtLSBCQVIgLS0+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFSICAtLT4KK3wg
ICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tIEJBUiAtLSE+QkFaCisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAg
PCEtLSAgQkFSICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tIEJBUiAtLSAgID5C
QVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgICJGT08iCit8ICAgICA8IS0tICBCQVIgLS0gICAgLS0+Cit8ICAgICAiQkFaIgorCisj
ZGF0YQorRk9PPCEtLSBCQVIgLS0gPFFVWD4gLS0gTVVYIC0tPkJBWgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAg
IDwhLS0gIEJBUiAtLSA8UVVYPiAtLSBNVVggIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZP
TzwhLS0gQkFSIC0tIDxRVVg+IC0tIE1VWCAtLSE+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAg
QkFSIC0tIDxRVVg+IC0tIE1VWCAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLSBC
QVIgLS0gPFFVWD4gLS0gTVVYIC0tID5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICBCQVIgLS0g
PFFVWD4gLS0gTVVYIC0tICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tLS0+QkFa
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICAiRk9PIgorfCAgICAgPCEtLSAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEt
LS0+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQor
Rk9PPCEtLT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcnVubmVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0bWw1bGliL3dlYmtpdC1ydW5uZXItZXhwZWN0ZWQudHh0CmluZGV4IDFm
MDM4NzMxNzY4YjRjOWY5YWZjMGE3ZTIzMzBiYmQ4ZTc2ZGQ0YmQuLjdlNTEzODZiNTdiYTQ4M2U3
YzllYTIxY2YwOTkyODNkYjVhMGJhOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGli
L3dlYmtpdC1ydW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3dl
YmtpdC1ydW5uZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNjkgQEAKIENPTlNPTEUgTUVTU0FH
RTogbGluZSAzOiBQQVNTCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzogRk9PPHNwYW4+QkFSPC9z
cGFuPkJBWgogcmVzb3VyY2VzL3dlYmtpdDAxLmRhdDogUEFTUworCityZXNvdXJjZXMvY29tbWVu
dHMwMS5kYXQ6IDMsIDYsIDgsIDkKKworVGVzdCAzIG9mIDkgaW4gcmVzb3VyY2VzL2NvbW1lbnRz
MDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tIEJBUiAtLSAgID5CQVoKK0dvdDoKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgIkJBWiIKK0V4
cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8
ICAgICA8IS0tICBCQVIgLS0gICAgLS0+Cit8ICAgICAiQkFaIgorCitUZXN0IDYgb2YgOSBpbiBy
ZXNvdXJjZXMvY29tbWVudHMwMS5kYXQgZmFpbGVkLiBJbnB1dDoKK0ZPTzwhLS0gQkFSIC0tIDxR
VVg+IC0tIE1VWCAtLSA+QkFaCitHb3Q6Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgIkZPTyIKK3wgICAgICIgLS0gTVVYIC0tID5CQVoiCitFeHBlY3RlZDoKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFS
IC0tIDxRVVg+IC0tIE1VWCAtLSAgLS0+Cit8ICAgICAiQkFaIgorCitUZXN0IDggb2YgOSBpbiBy
ZXNvdXJjZXMvY29tbWVudHMwMS5kYXQgZmFpbGVkLiBJbnB1dDoKK0ZPTzwhLS0tPkJBWgorR290
OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICAi
QkFaIgorRXhwZWN0ZWQ6Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
IkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworVGVzdCA5IG9mIDkgaW4gcmVz
b3VyY2VzL2NvbW1lbnRzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tPkJBWgorR290Ogor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICAiQkFa
IgorRXhwZWN0ZWQ6Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZP
TyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3dlYmtpdC1ydW5uZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3dlYmtp
dC1ydW5uZXIuaHRtbAppbmRleCBmZWIwYjdmY2UwZDM0NmMwZjY1ZmM2MmJlYTE0MmI1NTFlMTBh
Y2RhLi42YzBkODVlYzA4NDQyMTc4YjMwNmZjNTUzM2Y3OTQzMWVmNDJjMWFhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcnVubmVyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvd2Via2l0LXJ1bm5lci5odG1sCkBAIC0xNzIsNyArMTcyLDcgQEAgZGlzcGxh
eTogbm9uZTsKIDxwPlNjcmlwdCBkaWQgbm90IHJ1bjwvcD4KIDxpZnJhbWU+PC9pZnJhbWU+CiA8
c2NyaXB0PgotdmFyIHRlc3RfZmlsZXMgPSBbJ3Jlc291cmNlcy93ZWJraXQwMS5kYXQnXSwKK3Zh
ciB0ZXN0X2ZpbGVzID0gWydyZXNvdXJjZXMvd2Via2l0MDEuZGF0JywgJ3Jlc291cmNlcy9jb21t
ZW50czAxLmRhdCddLAogICAgIHRlc3RzID0gW10sCiAgICAgaWZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdLAogICAgIHN0YXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicCIpWzBdLmZpcnN0Q2hpbGQsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIyMDIyYWI4ZDQ0MzgzMzhkOGRi
Zjc1OGViYTU0MzZhMDZmMDEzZTMuLjQwM2JhMTk0NmQ4ZGYxOTRjZDJmZTIxM2ZmYmYwOTZjNTVi
MmMwNDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZWFjaCBIVE1MNSBwYXJzZXIgaG93IHRvIGxleCBjb21tZW50cyBjb3JyZWN0bHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTM3CisKKyAgICAg
ICAgSW1wbGVtZW50IHRoZSBub24tYm9ndXMgY29tbWVudCBzdGF0ZXMgZm9yIHRoZSBsZXhlci4g
IFRoZXJlJ3MgbW9yZQorICAgICAgICB3b3JrIHRvIGRvIGluIHNvbWUgb2YgdGhlc2Ugc3RhdGVz
IChlLmcuLCB0byBoYW5kbGUgZG9jdHlwZSB0b2tlbnMgYW5kCisgICAgICAgIGJvZ3VzIGNvbW1l
bnRzKSwgYnV0IEknbSB0cnlpbmcgdG8ga2VlcCB0aGUgcGF0Y2hlcyBzbWFsbC4KKworICAgICAg
ICBUZXN0czogY29tbWVudHMwMS5kYXQKKworICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxleGVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGh0
bWwvSFRNTDVMZXhlci5oOgorICAgICAgICAqIGh0bWwvSFRNTDVUb2tlbi5oOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVnaW5Db21tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1VG9rZW46OmFwcGVuZFRvQ29tbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2Vu
OjpkYXRhKToKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRUb09sZFN0eWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1NlZ21l
bnRlZFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjopOgorICAg
ICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpwZWVrKToKKyAgICAgICAgICAgIC0gT2Nj
YXRpb25hbGx5LCB0aGUgSFRNTDUgcGFyc2luZyBhbGdvcml0aG0gbG9va3MgYWhlYWQgaW4gdGhl
CisgICAgICAgICAgICAgIGlucHV0IHN0cmVhbS4gIFRoZSBpbXBsZW1lbnRhdGlvbiBoZXJlIGlz
IGluY29tcGxldGUsIGJ1dCBpdHMKKyAgICAgICAgICAgICAgZW5vdWdoIHRvIHJ1biB0aGUgY3Vy
cmVudCBIVE1MNSBwYXJzaW5nIHRlc3RzLiAgSSdsbCBldmVudHVhbGx5CisgICAgICAgICAgICAg
IG5lZWQgdG8gaW1wbGVtZW50IHRoZSBzbG93IGNhc2UgaGVyZS4KKwogMjAxMC0wNS0yMiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCmluZGV4IDg1NWYyMDFhZTBkODhhZDc1MmQ4ZTFkMThh
MWMxMGZlZDExMDNjOWQuLmQ4ZDMzOWE2YzFiMWY5OTk2YmM0YWQzZmY3ZmVjNjNiNzVhM2I5NmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTDVMZXhlci5jcHAKQEAgLTg3Myw2ICs4NzMsMjAgQEAgYm9vbCBIVE1MNUxleGVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBNYXJrdXBEZWNsYXJhdGlv
bk9wZW5TdGF0ZTogeworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRh
c2hEYXNoU3RyaW5nLCAoIi0tIikpOworICAgICAgICAgICAgaWYgKGNjID09ICctJykgeworICAg
ICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6UGVla1Jlc3VsdCBwZWVrID0gc291cmNlLnBl
ZWsoZGFzaERhc2hTdHJpbmcpOworICAgICAgICAgICAgICAgIGlmIChwZWVrID09IFNlZ21lbnRl
ZFN0cmluZzo6RGlkTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCpzb3VyY2Ug
PT0gJy0nKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2UoKTsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKCpzb3VyY2UgPT0gJy0nKTsKKyAgICAgICAgICAgICAgICAgICAg
c291cmNlLmFkdmFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5Db21t
ZW50KCk7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50U3RhcnRTdGF0ZTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChwZWVrID09IFNlZ21lbnRlZFN0cmluZzo6Tm90RW5vdWdoQ2hhcmFjdGVycykKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBXZSBuZWVkIHRvIHdhaXQgZm9yIG1vcmUgY2hh
cmFjdGVycyB0byBhcnJpdmUuCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg4MSwxMCArODk1LDEw
IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXJ0
RGFzaFN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgICAgICBlbWl0Q29tbWVudFRva2Vu
KCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAg
IG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9D
b21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVybHkuCkBA
IC04OTUsOSArOTA5LDExIEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gQ29tbWVudEVuZFN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAg
ICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgICAgICBlbWl0Q3Vy
cmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAg
ICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAg
ICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUg
PSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhNRTogSGFu
ZGxlIEVPRiBwcm9wZXJseS4KQEAgLTkwNyw3ICs5MjMsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBpZiAoY2MgPT0gJy0nKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50
RW5kRGFzaFN0YXRlOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTkxNSw3ICs5MzEsOCBAQCBib29sIEhUTUw1TGV4ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBpZiAoY2MgPT0gJy0nKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50
RW5kU3RhdGU7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwor
ICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtOTIzLDIxICs5NDAsMjYgQEAgYm9v
bCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9r
ZW4mIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ29tbWVudEVuZFN0YXRlOiB7CiAg
ICAgICAgICAgICBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdENvbW1lbnRU
b2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAg
ICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
XHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpIHsKICAg
ICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7
CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBt
X3N0YXRlID0gQ29tbWVudEVuZFNwYWNlU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNj
ID09ICchJykgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmRCYW5nU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGNjID09ICctJykgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAg
ICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoY2MpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbWl0UGFy
c2VFcnJvcigpOwotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAg
ICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90
b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVy
bHkuCkBAIC05NDUsMTMgKzk2NywxOCBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBDb21tZW50RW5kQmFuZ1N0YXRlOiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJy0n
KSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoJyEnKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudEVuZERhc2hTdGF0
ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAg
ZW1pdENvbW1lbnRUb2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFw
cGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29t
bWVudCgnIScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7
CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtOTU5LDE0ICs5
ODYsMTQgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ29tbWVudEVu
ZFNwYWNlU3RhdGU6IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4
MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCi0gICAgICAgICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2Mp
OwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJy0nKQogICAgICAgICAgICAgICAgIG1fc3Rh
dGUgPSBDb21tZW50RW5kRGFzaFN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4n
KSB7Ci0gICAgICAgICAgICAgICAgZW1pdENvbW1lbnRUb2tlbigpOworICAgICAgICAgICAgICAg
IGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRl
OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAg
ICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtMTI2OSwxMCArMTI5Niw2IEBA
IGlubGluZSBib29sIEhUTUw1TGV4ZXI6OmlzQXBwcm9wcmlhdGVFbmRUYWcoKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1pbmxpbmUgdm9pZCBIVE1MNUxleGVyOjplbWl0Q29tbWVudFRva2VuKCkK
LXsKLX0KLQogaW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6ZW1pdENoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIpCiB7CiAgICAgaWYgKG1fdG9rZW4tPnR5cGUoKSAhPSBIVE1MNVRva2VuOjpDaGFyYWN0
ZXIpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmggYi9XZWJDb3JlL2h0
bWwvSFRNTDVMZXhlci5oCmluZGV4IDY1NDZkOTdmZjc4ZTFiMWQ0NDY4ZDQxNDAyNTZkMDUxYjI2
OWRlNTcuLjZkNjFjYzIyZGExMzg4NTEwODczZDI3NWQ0ZGQ3YmEzNDIxNTY0ZmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4
ZXIuaApAQCAtMTI2LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGNvbnN1bWVFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgYm9vbCYgbm90RW5v
dWdoQ2hhcmFjdGVycyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBpbmxpbmUgdm9pZCBlbWl0
Q29tbWVudFRva2VuKCk7CiAgICAgICAgIGlubGluZSB2b2lkIGVtaXRDaGFyYWN0ZXIoVUNoYXIp
OwogICAgICAgICBpbmxpbmUgdm9pZCBlbWl0UGFyc2VFcnJvcigpOwogICAgICAgICBpbmxpbmUg
dm9pZCBlbWl0Q3VycmVudFRva2VuKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVU
b2tlbi5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaAppbmRleCA4ZTM1YjkyNDA3ZWI5Y2Nm
YTllZTMyYmNlNGQzMjAzZGI0N2RiNzZhLi41NDFjYzI3ZWIzNWUxMmZkMWFlNmJjZjFmMTFlOWJi
N2QyYTNkYTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MNVRva2VuLmgKQEAgLTg3LDYgKzg3LDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgYmVnaW5Db21t
ZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVW5pbml0aWFsaXplZCk7Cisg
ICAgICAgIG1fdHlwZSA9IENvbW1lbnQ7CisgICAgICAgIG1fZGF0YS5jbGVhcigpOworICAgIH0K
KwogICAgIHZvaWQgYXBwZW5kVG9OYW1lKFVDaGFyIGNoYXJhY3RlcikKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyB8fCBtX3R5cGUg
PT0gRE9DVFlQRSk7CkBAIC0xMDAsNiArMTA3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9kYXRh
LmFwcGVuZChjaGFyYWN0ZXJzKTsKICAgICB9CiAKKyAgICB2b2lkIGFwcGVuZFRvQ29tbWVudChV
Q2hhciBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IENvbW1lbnQp
OworICAgICAgICBtX2RhdGEuYXBwZW5kKGNoYXJhY3Rlcik7CisgICAgfQorCiAgICAgdm9pZCBh
ZGROZXdBdHRyaWJ1dGUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBTdGFydFRh
ZyB8fCBtX3R5cGUgPT0gRW5kVGFnKTsKQEAgLTE0OCw2ICsxNjEsMTIgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOwogICAgIH0KIAor
ICAgIFN0cmluZyBkYXRhKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQ29tbWVu
dCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQobV9kYXRhKSk7Cisg
ICAgfQorCiBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNw
cAppbmRleCBkYWU3ZjUwOGNlZTM0OGI1MTcxMDc4MDA4Yzk3YmE3ZjNkMWE1MmM0Li5hNDExOTYx
MGYzNTlkNGQ1OTE4MjAwZjYzODBkOTYyOGRlNGI0ZjExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5j
cHAKQEAgLTU4LDExICs1OCwxNiBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1M
NVRva2VuJiB0b2tlbiwgVG9rZW4mIG9sZFN0eWxlVG9rZW4pCiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAgICAgfQorICAgIGNhc2UgSFRNTDVUb2tlbjo6Q29tbWVudDoKKyAgICAgICAgb2xk
U3R5bGVUb2tlbi50YWdOYW1lID0gY29tbWVudEF0b207CisgICAgICAgIG9sZFN0eWxlVG9rZW4u
dGV4dCA9IHRva2VuLmRhdGEoKS5pbXBsKCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSFRN
TDVUb2tlbjo6Q2hhcmFjdGVyOgogICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSB0ZXh0
QXRvbTsKICAgICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uY2hhcmFjdGVycygpLmlt
cGwoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCmluZGV4IDc5ZWQxZjAzNTgzMWFjZjBmZjlmNjI0
YzM0NGMwOGM5YzNmM2E3ZWYuLmNmMWE0Zjg1Mzc1NmM3NjI0NmE5N2QxZWFhNTZjMDkwZjBiMDU1
YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKQEAgLTEwMyw2ICsx
MDMsMjQgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFjdXJy
ZW50KCk7IH0KICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKIAorICAgIGVudW0gUGVla1Jl
c3VsdCB7CisgICAgICAgIERpZE5vdE1hdGNoLAorICAgICAgICBEaWRNYXRjaCwKKyAgICAgICAg
Tm90RW5vdWdoQ2hhcmFjdGVycywKKyAgICB9OworCisgICAgUGVla1Jlc3VsdCBwZWVrKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0
cmluZy5sZW5ndGgoKSA8PSAodW5zaWduZWQpIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgewor
ICAgICAgICAgICAgaWYgKG1lbWNtcChzdHJpbmcuY2hhcmFjdGVycygpLCBtX2N1cnJlbnRTdHJp
bmcubV9jdXJyZW50LCBzdHJpbmcubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7CisgICAgICAgICAgICByZXR1cm4gRGlkTWF0Y2g7
CisgICAgICAgIH0KKyAgICAgICAgLy8gV2UgaGF2ZW4ndCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBj
YXNlIHlldC4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBE
aWROb3RNYXRjaDsKKyAgICB9CisKICAgICB2b2lkIGFkdmFuY2UoKQogICAgIHsKICAgICAgICAg
aWYgKCFtX3B1c2hlZENoYXIxICYmIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA+IDEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56831</attachid>
            <date>2010-05-23 14:49:36 -0700</date>
            <delta_ts>2010-05-23 14:59:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39537-20100523144935.patch</filename>
            <type>text/plain</type>
            <size>19028</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZmY4MjJjNGRkYmVlOWEzYjYzZDc3MTRiZGQ1Y2UwYTA0NzJhNDBhLi44ZDY1ZGYz
YTFkM2NjYzI3Njg1MjJlZjEzZjIzMDhiMjYxM2RiMWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAK
IDIwMTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBIVE1MNSBwYXJzZXIg
aG93IHRvIGxleCBjb21tZW50cyBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTM3CisKKyAgICAgICAgQWRkZWQgYSBuZXcgZGF0YSBm
aWxlIGZvciB0ZXN0aW5nIGNvbW1lbnQgcGFyc2luZy4gIFRoZXJlIGFyZSBzb21lIG1vcmUKKyAg
ICAgICAgdGhpbmdzIHdlIGNhbiB0ZXN0IGhlcmUgb25jZSB3ZSBpbXBsZW1lbnQgdGhlIGJvZ3Vz
IGNvbW1lbnQgc3RhdGUuCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvY29tbWVudHMw
MS5kYXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3dlYmtpdC1ydW5uZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgICAgLSBTb21lIG9mIHRoZXNlIHRlc3RzIGZhaWwgaW4gb3VyIGN1cnJl
bnQgcGFyc2VyIGJlY2F1c2Ugb3VyCisgICAgICAgICAgICAgIGN1cnJlbnQgcGFyc2VyIGRvZXNu
J3QgY29tcGx5IHdpdGggSFRNTDUuICBJJ3ZlIHNldCB0aGVzZQorICAgICAgICAgICAgICBleHBl
Y3RhdGlvbnMgdG8gZmFpbGluZyBzbyB0aGUgdGVzdHMgd2lsbCAicGFzcyIgaW4gdGhlIGN1cnJl
bnQKKyAgICAgICAgICAgICAgcGFyc2VyLiAgSSd2ZSBkb3VibGUtY2hlY2tlZCB0aGUgcmVzdWx0
cyBpbiBjb21tZW50czAxLmRhdCB3aXRoIGEKKyAgICAgICAgICAgICAgbmlnaHRseSBidWlsZCBv
ZiBGaXJlZm94IHRvIG1ha2Ugc3VyZSB3ZSBhZ3JlZSBvbiBvdXIKKyAgICAgICAgICAgICAgaW1w
bGVtZW50YXRpb24gb2YgdGhlIHNwZWMuCisgICAgICAgICogaHRtbDVsaWIvd2Via2l0LXJ1bm5l
ci5odG1sOgorCisyMDEwLTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgQWRkIHRlc3RzIGZv
ciBwcmV2aW91cyBIVE1MNSBwYXJzZXIgcGF0Y2hlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZDllNTAzZTE0NzM5MGUxMTky
ZDA0ZmJlMTI5YzhiMjlhYjM2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9yZXNvdXJjZXMvY29tbWVudHMwMS5kYXQKQEAgLTAsMCArMSw5OCBAQAorI2RhdGEKK0ZP
TzwhLS0gQkFSIC0tPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAgLS0+Cit8ICAgICAi
QkFaIgorCisjZGF0YQorRk9PPCEtLSBCQVIgLS0hPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0g
IEJBUiAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLSBCQVIgLS0gICA+QkFaCisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICAiRk9PIgorfCAgICAgPCEtLSAgQkFSIC0tICAgIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEK
K0ZPTzwhLS0gQkFSIC0tIDxRVVg+IC0tIE1VWCAtLT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0t
ICBCQVIgLS0gPFFVWD4gLS0gTVVYICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0t
IEJBUiAtLSA8UVVYPiAtLSBNVVggLS0hPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAt
LSA8UVVYPiAtLSBNVVggIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwhLS0gQkFSIC0t
IDxRVVg+IC0tIE1VWCAtLSA+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFSIC0tIDxRVVg+
IC0tIE1VWCAtLSAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLS0tPkJBWgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
IkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwhLS0tPkJB
WgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwh
LS0+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgLS0+Cit8ICAgICAiQkFaIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvd2Via2l0LXJ1bm5lci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCAxZjAzODcz
MTc2OGI0YzlmOWFmYzBhN2UyMzMwYmJkOGU3NmRkNGJkLi43ZTUxMzg2YjU3YmE0ODNlN2M5ZWEy
MWNmMDk5MjgzZGI1YTBiYTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJr
aXQtcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQt
cnVubmVyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDY5IEBACiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMzogUEFTUwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IEZPTzxzcGFuPkJBUjwvc3Bhbj5C
QVoKIHJlc291cmNlcy93ZWJraXQwMS5kYXQ6IFBBU1MKKworcmVzb3VyY2VzL2NvbW1lbnRzMDEu
ZGF0OiAzLCA2LCA4LCA5CisKK1Rlc3QgMyBvZiA5IGluIHJlc291cmNlcy9jb21tZW50czAxLmRh
dCBmYWlsZWQuIElucHV0OgorRk9PPCEtLSBCQVIgLS0gICA+QkFaCitHb3Q6Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgICJCQVoiCitFeHBlY3Rl
ZDoKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAg
PCEtLSAgQkFSIC0tICAgIC0tPgorfCAgICAgIkJBWiIKKworVGVzdCA2IG9mIDkgaW4gcmVzb3Vy
Y2VzL2NvbW1lbnRzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tIEJBUiAtLSA8UVVYPiAt
LSBNVVggLS0gPkJBWgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgICJGT08iCit8ICAgICAiIC0tIE1VWCAtLSA+QkFaIgorRXhwZWN0ZWQ6Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAtLSA8
UVVYPiAtLSBNVVggLS0gIC0tPgorfCAgICAgIkJBWiIKKworVGVzdCA4IG9mIDkgaW4gcmVzb3Vy
Y2VzL2NvbW1lbnRzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tLT5CQVoKK0dvdDoKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgIkJBWiIK
K0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08i
Cit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCisKK1Rlc3QgOSBvZiA5IGluIHJlc291cmNl
cy9jb21tZW50czAxLmRhdCBmYWlsZWQuIElucHV0OgorRk9PPCEtLT5CQVoKK0dvdDoKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgIkJBWiIKK0V4
cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8
ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1s
NWxpYi93ZWJraXQtcnVubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcnVu
bmVyLmh0bWwKaW5kZXggZmViMGI3ZmNlMGQzNDZjMGY2NWZjNjJiZWExNDJiNTUxZTEwYWNkYS4u
NmMwZDg1ZWMwODQ0MjE3OGIzMDZmYzU1MzNmNzk0MzFlZjQyYzFhYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHRtbDVsaWIvd2Via2l0LXJ1bm5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
bWw1bGliL3dlYmtpdC1ydW5uZXIuaHRtbApAQCAtMTcyLDcgKzE3Miw3IEBAIGRpc3BsYXk6IG5v
bmU7CiA8cD5TY3JpcHQgZGlkIG5vdCBydW48L3A+CiA8aWZyYW1lPjwvaWZyYW1lPgogPHNjcmlw
dD4KLXZhciB0ZXN0X2ZpbGVzID0gWydyZXNvdXJjZXMvd2Via2l0MDEuZGF0J10sCit2YXIgdGVz
dF9maWxlcyA9IFsncmVzb3VyY2VzL3dlYmtpdDAxLmRhdCcsICdyZXNvdXJjZXMvY29tbWVudHMw
MS5kYXQnXSwKICAgICB0ZXN0cyA9IFtdLAogICAgIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSwKICAgICBzdGF0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInAiKVswXS5maXJzdENoaWxkLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5OTRmNDY0ZWU1NGFiMjU0ZWZmMjg3MTBm
YzBhZmUwNGY2MzU1MmE3Li44ZWI3ZDM3MWE2NWM4NDk2MTkwYTcyNzE1Y2Y0OTQ4M2E3MjYzMDc5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDM1IEBACiAyMDEwLTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVh
Y2ggSFRNTDUgcGFyc2VyIGhvdyB0byBsZXggY29tbWVudHMgY29ycmVjdGx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTUzNworCisgICAgICAgIElt
cGxlbWVudCB0aGUgbm9uLWJvZ3VzIGNvbW1lbnQgc3RhdGVzIGZvciB0aGUgbGV4ZXIuICBUaGVy
ZSdzIG1vcmUKKyAgICAgICAgd29yayB0byBkbyBpbiBzb21lIG9mIHRoZXNlIHN0YXRlcyAoZS5n
LiwgdG8gaGFuZGxlIGRvY3R5cGUgdG9rZW5zIGFuZAorICAgICAgICBib2d1cyBjb21tZW50cyks
IGJ1dCBJJ20gdHJ5aW5nIHRvIGtlZXAgdGhlIHBhdGNoZXMgc21hbGwuCisKKyAgICAgICAgVGVz
dHM6IGNvbW1lbnRzMDEuZGF0CisKKyAgICAgICAgKiBodG1sL0hUTUw1TGV4ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6bmV4dFRva2VuKToKKyAgICAgICAgKiBodG1sL0hU
TUw1TGV4ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW4uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1VG9rZW46OmJlZ2luQ29tbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRv
a2VuOjphcHBlbmRUb0NvbW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6ZGF0
YSk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb252ZXJ0VG9PbGRTdHlsZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6KToKKyAgICAgICAg
KFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6cGVlayk6CisgICAgICAgICAgICAtIE9jY2F0aW9u
YWxseSwgdGhlIEhUTUw1IHBhcnNpbmcgYWxnb3JpdGhtIGxvb2tzIGFoZWFkIGluIHRoZQorICAg
ICAgICAgICAgICBpbnB1dCBzdHJlYW0uICBUaGUgaW1wbGVtZW50YXRpb24gaGVyZSBpcyBpbmNv
bXBsZXRlLCBidXQgaXRzCisgICAgICAgICAgICAgIGVub3VnaCB0byBydW4gdGhlIGN1cnJlbnQg
SFRNTDUgcGFyc2luZyB0ZXN0cy4gIEknbGwgZXZlbnR1YWxseQorICAgICAgICAgICAgICBuZWVk
IHRvIGltcGxlbWVudCB0aGUgc2xvdyBjYXNlIGhlcmUuCisKKzIwMTAtMDUtMjMgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KIAogICAgICAgICBNYWtlIHRoZSBodG1sNWxpYiBwYXJzZXIgdGVzdHMgcnVuIHVzaW5nIHRo
ZSBIVE1MNSBwYXJzZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcAppbmRleCBjMWU0NTkzNTQ4MmQ2ODRhYjZmYmNm
ZjE2MTRiZDY5MWM4Zjg2ZDJkLi40NGVhZTgzOWUzYTMwZGIwYTFmNjA5YjhhNTAxM2YzMTgzYTUz
YjA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUw1TGV4ZXIuY3BwCkBAIC04NzMsNiArODczLDE4IEBAIGJvb2wgSFRNTDVMZXhl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgTWFya3VwRGVjbGFy
YXRpb25PcGVuU3RhdGU6IHsKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBkYXNoRGFzaFN0cmluZywgKCItLSIpKTsKKyAgICAgICAgICAgIGlmIChjYyA9PSAnLScpIHsK
KyAgICAgICAgICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVhZFJlc3VsdCByZXN1bHQg
PSBzb3VyY2UubG9va0FoZWFkKGRhc2hEYXNoU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6RGlkTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoJy0nKTsKKyAgICAgICAgICAgICAgICAgICAgc291
cmNlLmFkdmFuY2VBbmRBU1NFUlQoJy0nKTsKKyAgICAgICAgICAgICAgICAgICAgbV90b2tlbi0+
YmVnaW5Db21tZW50KCk7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50U3Rh
cnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChyZXN1bHQgPT0gU2VnbWVudGVkU3RyaW5nOjpOb3RFbm91Z2hDaGFyYWN0ZXJz
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFdlIG5lZWQgdG8gd2FpdCBm
b3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGFycml2ZS4KKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODgx
LDEwICs4OTMsMTAgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBD
b21tZW50U3RhcnREYXNoU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsK
ICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgICAgIGVtaXRD
b21tZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAg
ICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2Vu
LT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50
U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIEVPRiBw
cm9wZXJseS4KQEAgLTg5NSw5ICs5MDcsMTEgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4o
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
ICAgIG1fc3RhdGUgPSBDb21tZW50RW5kU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9
PSAnPicpIHsKICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAg
ICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0
YXRlOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAg
ICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICAg
ICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8v
IEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtOTA3LDcgKzkyMSw3IEBAIGJvb2wgSFRN
TDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICAgICAgbV9zdGF0
ZSA9IENvbW1lbnRFbmREYXNoU3RhdGU7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoY2MpOwogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVybHkuCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtOTE1LDcgKzkyOSw4IEBAIGJvb2wgSFRN
TDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICAgICAgbV9zdGF0
ZSA9IENvbW1lbnRFbmRTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21t
ZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRlOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVybHkuCkBAIC05MjMsMjEgKzkz
OCwyNiBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDb21tZW50RW5k
U3RhdGU6IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBl
bWl0Q29tbWVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwog
ICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09
ICcgJykgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0n
KTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAg
ICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50RW5kU3BhY2VTdGF0ZTsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gJyEnKSB7CiAgICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudEVuZEJhbmdTdGF0ZTsKICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPT0gJy0nKSB7CiAgICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJy
b3IoKTsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4t
PmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBD
b21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxl
IEVPRiBwcm9wZXJseS4KQEAgLTk0NSwxMyArOTY1LDE4IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAg
ICAgfQogICAgICAgICBjYXNlIENvbW1lbnRFbmRCYW5nU3RhdGU6IHsKICAgICAgICAgICAgIGlm
IChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4t
PmFwcGVuZFRvQ29tbWVudCgnIScpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50
RW5kRGFzaFN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAg
ICAgICAgICAgICBlbWl0Q29tbWVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJl
bnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9Db21tZW50KCchJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9D
b21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVybHkuCkBA
IC05NTksMTQgKzk4NCwxNCBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBDb21tZW50RW5kU3BhY2VTdGF0ZTogewogICAgICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8
fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJykKLSAgICAgICAgICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
Q29tbWVudChjYyk7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmREYXNoU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q29tbWVudFRva2VuKCk7CisgICAg
ICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUg
PSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNj
KTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRlOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVybHkuCkBAIC0xMjY2LDEw
ICsxMjkxLDYgQEAgaW5saW5lIGJvb2wgSFRNTDVMZXhlcjo6aXNBcHByb3ByaWF0ZUVuZFRhZygp
CiAgICAgcmV0dXJuICFtZW1jbXAoYXBwcm9wcmlhdGUsIGFjdHVhbCwgbV9idWZmZXJlZEVuZFRh
Z05hbWUuc2l6ZSgpICogc2l6ZW9mKFVDaGFyKSk7CiB9CiAKLWlubGluZSB2b2lkIEhUTUw1TGV4
ZXI6OmVtaXRDb21tZW50VG9rZW4oKQotewotfQotCiBpbmxpbmUgdm9pZCBIVE1MNUxleGVyOjpl
bWl0Q2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlcikKIHsKICAgICBpZiAobV90b2tlbi0+dHlwZSgp
ICE9IEhUTUw1VG9rZW46OkNoYXJhY3RlcikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUw1TGV4ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgKaW5kZXggNjU0NmQ5N2ZmNzhl
MWIxZDQ0NjhkNDE0MDI1NmQwNTFiMjY5ZGU1Ny4uNmQ2MWNjMjJkYTEzODg1MTA4NzNkMjc1ZDRk
ZDdiYTM0MjE1NjRmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCkBAIC0xMjYsNyArMTI2LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgY29uc3VtZUVudGl0eShTZWdtZW50
ZWRTdHJpbmcmLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIGlubGluZSB2b2lkIGVtaXRDb21tZW50VG9rZW4oKTsKICAgICAgICAgaW5saW5lIHZv
aWQgZW1pdENoYXJhY3RlcihVQ2hhcik7CiAgICAgICAgIGlubGluZSB2b2lkIGVtaXRQYXJzZUVy
cm9yKCk7CiAgICAgICAgIGlubGluZSB2b2lkIGVtaXRDdXJyZW50VG9rZW4oKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5o
CmluZGV4IDhlMzViOTI0MDdlYjljY2ZhOWVlMzJiY2U0ZDMyMDNkYjQ3ZGI3NmEuLmY5NGJiYWYy
ZWJiZDVhOWNkYTVkY2ExMGM1YzAyN2I2Y2QzZTViMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MNVRva2VuLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaApAQCAtNTQsMTMg
KzU0LDE3IEBAIHB1YmxpYzoKIAogICAgIEhUTUw1VG9rZW4oKSB7IGNsZWFyKCk7IH0KIAotICAg
IHZvaWQgY2xlYXIoKSB7IG1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7IH0KKyAgICB2b2lkIGNsZWFy
KCkKKyAgICB7CisgICAgICAgIG1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7CisgICAgfQogCiAgICAg
dm9pZCBiZWdpblN0YXJ0VGFnKFVDaGFyIGNoYXJhY3RlcikKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gVW5pbml0aWFsaXplZCk7CiAgICAgICAgIG1fdHlwZSA9IFN0YXJ0VGFnOwog
ICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9kYXRhU3RyaW5nID0gQXRvbWljU3Ry
aW5nKCk7CiAgICAgICAgIG1fc2VsZkNsb3NpbmcgPSBmYWxzZTsKICAgICAgICAgbV9jdXJyZW50
QXR0cmlidXRlID0gMDsKIApAQCAtNzMsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gVW5pbml0aWFsaXplZCk7CiAgICAgICAgIG1fdHlwZSA9IEVuZFRhZzsKICAg
ICAgICAgbV9kYXRhLmNsZWFyKCk7CisgICAgICAgIG1fZGF0YVN0cmluZyA9IEF0b21pY1N0cmlu
ZygpOwogICAgICAgICBtX3NlbGZDbG9zaW5nID0gZmFsc2U7CiAgICAgICAgIG1fY3VycmVudEF0
dHJpYnV0ZSA9IDA7CiAKQEAgLTg0LDkgKzg5LDE4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBVbmluaXRpYWxpemVkKTsKICAgICAgICAgbV90eXBlID0gQ2hhcmFjdGVyOwog
ICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9kYXRhU3RyaW5nID0gQXRvbWljU3Ry
aW5nKCk7CiAgICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKKyAgICB2
b2lkIGJlZ2luQ29tbWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IFVuaW5p
dGlhbGl6ZWQpOworICAgICAgICBtX3R5cGUgPSBDb21tZW50OworICAgICAgICBtX2RhdGEuY2xl
YXIoKTsKKyAgICAgICAgbV9kYXRhU3RyaW5nID0gQXRvbWljU3RyaW5nKCk7CisgICAgfQorCiAg
ICAgdm9pZCBhcHBlbmRUb05hbWUoVUNoYXIgY2hhcmFjdGVyKQogICAgIHsKICAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBTdGFydFRhZyB8fCBtX3R5cGUgPT0gRW5kVGFnIHx8IG1fdHlwZSA9PSBE
T0NUWVBFKTsKQEAgLTEwMCw2ICsxMTQsMTIgQEAgcHVibGljOgogICAgICAgICBtX2RhdGEuYXBw
ZW5kKGNoYXJhY3RlcnMpOwogICAgIH0KIAorICAgIHZvaWQgYXBwZW5kVG9Db21tZW50KFVDaGFy
IGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQ29tbWVudCk7Cisg
ICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICB9CisKICAgICB2b2lkIGFkZE5l
d0F0dHJpYnV0ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8
IG1fdHlwZSA9PSBFbmRUYWcpOwpAQCAtMTIxLDE1ICsxNDEsNiBAQCBwdWJsaWM6CiAKICAgICBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAotICAgIEF0b21pY1N0cmluZyBu
YW1lKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBl
ID09IEVuZFRhZyB8fCBtX3R5cGUgPT0gRE9DVFlQRSk7Ci0gICAgICAgIGlmICghbV9kYXRhLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIG1fY2FjaGVkTmFtZSA9IEF0b21pY1N0cmluZyhTdHJpbmdJ
bXBsOjphZG9wdChtX2RhdGEpKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhY2hlZE5hbWUuaXNFbXB0
eSgpKTsKLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkTmFtZTsKLSAgICB9Ci0KICAgICBib29sIHNl
bGZDbG9zaW5nKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRU
YWcgfHwgbV90eXBlID09IEVuZFRhZyk7CkBAIC0xNDIsMTMgKzE1MywzMiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBtX2F0dHJpYnV0ZXM7CiAgICAgfQogCi0gICAgU3RyaW5nIGNoYXJhY3Rl
cnMoKQorICAgIEF0b21pY1N0cmluZyBuYW1lKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyB8fCBtX3R5cGUgPT0gRE9DVFlQRSk7
CisgICAgICAgIHJldHVybiBjYWNoZWREYXRhKCk7CisgICAgfQorCisgICAgQXRvbWljU3RyaW5n
IGNoYXJhY3RlcnMoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBDaGFyYWN0ZXIp
OwotICAgICAgICByZXR1cm4gU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAg
ICAgICByZXR1cm4gY2FjaGVkRGF0YSgpOworICAgIH0KKworICAgIEF0b21pY1N0cmluZyBkYXRh
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQ29tbWVudCk7CisgICAgICAgIHJl
dHVybiBjYWNoZWREYXRhKCk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIEF0b21pY1N0cmluZyBj
YWNoZWREYXRhKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kYXRhLmlzRW1wdHkoKSAmJiBtX2Rh
dGFTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kYXRhU3RyaW5nID0gQXRvbWljU3Ry
aW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAgICAgICByZXR1cm4gbV9kYXRhU3Ry
aW5nOworICAgIH0KKwogICAgIFR5cGUgbV90eXBlOwogCiAgICAgLy8gIm5hbWUiIGZvciBET0NU
WVBFLCBTdGFydFRhZywgYW5kIEVuZFRhZwpAQCAtMTY4LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gQSBwb2ludGVyIGludG8gbV9hdHRyaWJ1dGVzIHVzZWQgZHVyaW5nIGxleGluZy4KICAg
ICBBdHRyaWJ1dGUqIG1fY3VycmVudEF0dHJpYnV0ZTsKIAotICAgIEF0b21pY1N0cmluZyBtX2Nh
Y2hlZE5hbWU7CisgICAgQXRvbWljU3RyaW5nIG1fZGF0YVN0cmluZzsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TDVUb2tlbml6ZXIuY3BwCmluZGV4IGRhZTdmNTA4Y2VlMzQ4YjUxNzEwNzgwMDhjOTdiYTdmM2Qx
YTUyYzQuLmFjZTM4YjdkNDIzNzA2MGE3NmVkNTVjNjVmZTJjNjhkYjM1ZmNjMzAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUw1VG9rZW5pemVyLmNwcApAQCAtMzksNiArMzksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RhdGljIHZvaWQgY29udmVydFRvT2xkU3R5bGUoSFRNTDVUb2tlbiYgdG9rZW4sIFRva2VuJiBv
bGRTdHlsZVRva2VuKQogewogICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBI
VE1MNVRva2VuOjpVbmluaXRpYWxpemVkOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MNVRva2VuOjpET0NUWVBFOgorICAgIGNhc2Ug
SFRNTDVUb2tlbjo6RW5kT2ZGaWxlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIVE1MNVRv
a2VuOjpTdGFydFRhZzoKICAgICBjYXNlIEhUTUw1VG9rZW46OkVuZFRhZzogewogICAgICAgICBv
bGRTdHlsZVRva2VuLmJlZ2luVGFnID0gKHRva2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpTdGFy
dFRhZyk7CkBAIC01OCwxMiArNjYsMTQgQEAgc3RhdGljIHZvaWQgY29udmVydFRvT2xkU3R5bGUo
SFRNTDVUb2tlbiYgdG9rZW4sIFRva2VuJiBvbGRTdHlsZVRva2VuKQogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEhUTUw1VG9rZW46OkNvbW1lbnQ6CisgICAgICAg
IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IGNvbW1lbnRBdG9tOworICAgICAgICBvbGRTdHlsZVRv
a2VuLnRleHQgPSB0b2tlbi5kYXRhKCkuaW1wbCgpOworICAgICAgICBicmVhazsKICAgICBjYXNl
IEhUTUw1VG9rZW46OkNoYXJhY3RlcjoKICAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0g
dGV4dEF0b207CiAgICAgICAgIG9sZFN0eWxlVG9rZW4udGV4dCA9IHRva2VuLmNoYXJhY3RlcnMo
KS5pbXBsKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
U2VnbWVudGVkU3RyaW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5n
LmgKaW5kZXggNzllZDFmMDM1ODMxYWNmMGZmOWY2MjRjMzQ0YzA4YzljM2YzYTdlZi4uYzRiM2Jm
MDhmNzM1ODczMmM2ZDBlZGE2ZDQyY2ZlZTczNzM5YjM4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9TZWdtZW50ZWRTdHJpbmcuaApAQCAtMTAzLDYgKzEwMywyNSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIWN1cnJlbnQoKTsgfQogICAgIHVuc2lnbmVkIGxl
bmd0aCgpIGNvbnN0OwogCisgICAgZW51bSBMb29rQWhlYWRSZXN1bHQgeworICAgICAgICBEaWRO
b3RNYXRjaCwKKyAgICAgICAgRGlkTWF0Y2gsCisgICAgICAgIE5vdEVub3VnaENoYXJhY3RlcnMs
CisgICAgfTsKKworICAgIC8vIFdBUk5JTkc6IFRoaXMgbWV0aG9kIGlzIGN1cnJlbnRseSB1c2Vk
IG9ubHkgYnkgdGhlIEhUTUw1IHBlcnNlciBhbmQgaXMgaW5jb21wbGV0ZS4KKyAgICBMb29rQWhl
YWRSZXN1bHQgbG9va0FoZWFkKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5sZW5ndGgoKSA8PSAodW5zaWduZWQpIG1fY3Vy
cmVudFN0cmluZy5tX2xlbmd0aCkgeworICAgICAgICAgICAgaWYgKG1lbWNtcChzdHJpbmcuY2hh
cmFjdGVycygpLCBtX2N1cnJlbnRTdHJpbmcubV9jdXJyZW50LCBzdHJpbmcubGVuZ3RoKCkgKiBz
aXplb2YoVUNoYXIpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7CisgICAg
ICAgICAgICByZXR1cm4gRGlkTWF0Y2g7CisgICAgICAgIH0KKyAgICAgICAgLy8gV2UgaGF2ZW4n
dCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBjYXNlIHlldC4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKKyAgICB9CisKICAgICB2b2lkIGFk
dmFuY2UoKQogICAgIHsKICAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIG1fY3VycmVudFN0
cmluZy5tX2xlbmd0aCA+IDEpIHsKQEAgLTExMiw3ICsxMzEsMTMgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgICAgIGFkdmFuY2VTbG93Q2FzZSgpOwogICAgIH0KLSAgICAKKworICAgIHZvaWQg
YWR2YW5jZUFuZEFTU0VSVChVQ2hhciBleHBlY3RlZENoYXJhY3RlcikKKyAgICB7CisgICAgICAg
IEFTU0VSVCgqY3VycmVudCgpID09IGV4cGVjdGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgYWR2YW5j
ZSgpOworICAgIH0KKwogICAgIHZvaWQgYWR2YW5jZVBhc3ROZXdsaW5lKGludCYgbGluZU51bWJl
cikKICAgICB7CiAgICAgICAgIEFTU0VSVCgqY3VycmVudCgpID09ICdcbicpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56832</attachid>
            <date>2010-05-23 14:59:55 -0700</date>
            <delta_ts>2010-05-23 15:23:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39537-20100523145954.patch</filename>
            <type>text/plain</type>
            <size>19072</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZmY4MjJjNGRkYmVlOWEzYjYzZDc3MTRiZGQ1Y2UwYTA0NzJhNDBhLi5hY2FlNTNi
YWFmOTlhYzZlOGQwNTZmZmMyNWRlZWQzNGYxNTE0N2RkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAorICAgICAgICBUZWFjaCBIVE1M
NSBwYXJzZXIgaG93IHRvIGxleCBjb21tZW50cyBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTM3CisKKyAgICAgICAgQWRkZWQgYSBu
ZXcgZGF0YSBmaWxlIGZvciB0ZXN0aW5nIGNvbW1lbnQgcGFyc2luZy4gIFRoZXJlIGFyZSBzb21l
IG1vcmUKKyAgICAgICAgdGhpbmdzIHdlIGNhbiB0ZXN0IGhlcmUgb25jZSB3ZSBpbXBsZW1lbnQg
dGhlIGJvZ3VzIGNvbW1lbnQgc3RhdGUuCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMv
Y29tbWVudHMwMS5kYXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3dlYmtpdC1ydW5uZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAgLSBTb21lIG9mIHRoZXNlIHRlc3RzIGZhaWwgaW4g
b3VyIGN1cnJlbnQgcGFyc2VyIGJlY2F1c2Ugb3VyCisgICAgICAgICAgICAgIGN1cnJlbnQgcGFy
c2VyIGRvZXNuJ3QgY29tcGx5IHdpdGggSFRNTDUuICBJJ3ZlIHNldCB0aGVzZQorICAgICAgICAg
ICAgICBleHBlY3RhdGlvbnMgdG8gZmFpbGluZyBzbyB0aGUgdGVzdHMgd2lsbCAicGFzcyIgaW4g
dGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgcGFyc2VyLiAgSSd2ZSBkb3VibGUtY2hlY2tlZCB0
aGUgcmVzdWx0cyBpbiBjb21tZW50czAxLmRhdCB3aXRoIGEKKyAgICAgICAgICAgICAgbmlnaHRs
eSBidWlsZCBvZiBGaXJlZm94IHRvIG1ha2Ugc3VyZSB3ZSBhZ3JlZSBvbiBvdXIKKyAgICAgICAg
ICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIHNwZWMuCisgICAgICAgICogaHRtbDVsaWIvd2Vi
a2l0LXJ1bm5lci5odG1sOgorCisyMDEwLTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKICAgICAgICAgQWRk
IHRlc3RzIGZvciBwcmV2aW91cyBIVE1MNSBwYXJzZXIgcGF0Y2hlcwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1MzQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0IGIvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZDllNTAzZTE0
NzM5MGUxMTkyZDA0ZmJlMTI5YzhiMjlhYjM2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvY29tbWVudHMwMS5kYXQKQEAgLTAsMCArMSw5OCBAQAor
I2RhdGEKK0ZPTzwhLS0gQkFSIC0tPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAgLS0+
Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLSBCQVIgLS0hPkJBWgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wg
ICAgIDwhLS0gIEJBUiAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLSBCQVIgLS0g
ICA+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFSIC0tICAgIC0tPgorfCAgICAgIkJBWiIK
KworI2RhdGEKK0ZPTzwhLS0gQkFSIC0tIDxRVVg+IC0tIE1VWCAtLT5CQVoKKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8
ICAgICA8IS0tICBCQVIgLS0gPFFVWD4gLS0gTVVYICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRh
CitGT088IS0tIEJBUiAtLSA8UVVYPiAtLSBNVVggLS0hPkJBWgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwh
LS0gIEJBUiAtLSA8UVVYPiAtLSBNVVggIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwh
LS0gQkFSIC0tIDxRVVg+IC0tIE1VWCAtLSA+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFS
IC0tIDxRVVg+IC0tIE1VWCAtLSAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLS0t
PkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZP
TzwhLS0tPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworI2Rh
dGEKK0ZPTzwhLS0+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgLS0+Cit8ICAgICAiQkFaIgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvd2Via2l0LXJ1bm5lci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcnVubmVyLWV4cGVjdGVkLnR4dAppbmRl
eCAxZjAzODczMTc2OGI0YzlmOWFmYzBhN2UyMzMwYmJkOGU3NmRkNGJkLi43ZTUxMzg2YjU3YmE0
ODNlN2M5ZWEyMWNmMDk5MjgzZGI1YTBiYTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1s
NWxpYi93ZWJraXQtcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi93ZWJraXQtcnVubmVyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDY5IEBACiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzogUEFTUwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IEZPTzxzcGFuPkJB
Ujwvc3Bhbj5CQVoKIHJlc291cmNlcy93ZWJraXQwMS5kYXQ6IFBBU1MKKworcmVzb3VyY2VzL2Nv
bW1lbnRzMDEuZGF0OiAzLCA2LCA4LCA5CisKK1Rlc3QgMyBvZiA5IGluIHJlc291cmNlcy9jb21t
ZW50czAxLmRhdCBmYWlsZWQuIElucHV0OgorRk9PPCEtLSBCQVIgLS0gICA+QkFaCitHb3Q6Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgICJCQVoi
CitFeHBlY3RlZDoKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P
IgorfCAgICAgPCEtLSAgQkFSIC0tICAgIC0tPgorfCAgICAgIkJBWiIKKworVGVzdCA2IG9mIDkg
aW4gcmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tIEJBUiAt
LSA8UVVYPiAtLSBNVVggLS0gPkJBWgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgICJGT08iCit8ICAgICAiIC0tIE1VWCAtLSA+QkFaIgorRXhwZWN0ZWQ6Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0g
IEJBUiAtLSA8UVVYPiAtLSBNVVggLS0gIC0tPgorfCAgICAgIkJBWiIKKworVGVzdCA4IG9mIDkg
aW4gcmVzb3VyY2VzL2NvbW1lbnRzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6CitGT088IS0tLT5CQVoK
K0dvdDoKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAg
ICAgIkJBWiIKK0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgICJGT08iCit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCisKK1Rlc3QgOSBvZiA5IGlu
IHJlc291cmNlcy9jb21tZW50czAxLmRhdCBmYWlsZWQuIElucHV0OgorRk9PPCEtLT5CQVoKK0dv
dDoKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAg
IkJBWiIKK0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
ICJGT08iCit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odG1sNWxpYi93ZWJraXQtcnVubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi93
ZWJraXQtcnVubmVyLmh0bWwKaW5kZXggZmViMGI3ZmNlMGQzNDZjMGY2NWZjNjJiZWExNDJiNTUx
ZTEwYWNkYS4uNmMwZDg1ZWMwODQ0MjE3OGIzMDZmYzU1MzNmNzk0MzFlZjQyYzFhYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvd2Via2l0LXJ1bm5lci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0bWw1bGliL3dlYmtpdC1ydW5uZXIuaHRtbApAQCAtMTcyLDcgKzE3Miw3IEBAIGRp
c3BsYXk6IG5vbmU7CiA8cD5TY3JpcHQgZGlkIG5vdCBydW48L3A+CiA8aWZyYW1lPjwvaWZyYW1l
PgogPHNjcmlwdD4KLXZhciB0ZXN0X2ZpbGVzID0gWydyZXNvdXJjZXMvd2Via2l0MDEuZGF0J10s
Cit2YXIgdGVzdF9maWxlcyA9IFsncmVzb3VyY2VzL3dlYmtpdDAxLmRhdCcsICdyZXNvdXJjZXMv
Y29tbWVudHMwMS5kYXQnXSwKICAgICB0ZXN0cyA9IFtdLAogICAgIGlmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSwKICAgICBzdGF0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXS5maXJzdENoaWxkLApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5OTRmNDY0ZWU1NGFiMjU0
ZWZmMjg3MTBmYzBhZmUwNGY2MzU1MmE3Li4xZDU1ZjdmN2ZjMDQ3Y2VlMGQwMWM4NTU1MmUxMjll
NTg4NGRmZWRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMiw2ICsyLDM2IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCiAKKyAgICAgICAgVGVhY2ggSFRNTDUgcGFyc2VyIGhvdyB0byBsZXggY29tbWVudHMgY29y
cmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTUzNworCisgICAgICAgIEltcGxlbWVudCB0aGUgbm9uLWJvZ3VzIGNvbW1lbnQgc3RhdGVzIGZv
ciB0aGUgbGV4ZXIuICBUaGVyZSdzIG1vcmUKKyAgICAgICAgd29yayB0byBkbyBpbiBzb21lIG9m
IHRoZXNlIHN0YXRlcyAoZS5nLiwgdG8gaGFuZGxlIGRvY3R5cGUgdG9rZW5zIGFuZAorICAgICAg
ICBib2d1cyBjb21tZW50cyksIGJ1dCBJJ20gdHJ5aW5nIHRvIGtlZXAgdGhlIHBhdGNoZXMgc21h
bGwuCisKKyAgICAgICAgVGVzdHM6IGNvbW1lbnRzMDEuZGF0CisKKyAgICAgICAgKiBodG1sL0hU
TUw1TGV4ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6bmV4dFRva2VuKToK
KyAgICAgICAgKiBodG1sL0hUTUw1TGV4ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW4u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmJlZ2luQ29tbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MNVRva2VuOjphcHBlbmRUb0NvbW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTDVUb2tlbjo6ZGF0YSk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXplci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9PbGRTdHlsZSk6CisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0
cmluZzo6KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6cGVlayk6CisgICAg
ICAgICAgICAtIE9jY2F0aW9uYWxseSwgdGhlIEhUTUw1IHBhcnNpbmcgYWxnb3JpdGhtIGxvb2tz
IGFoZWFkIGluIHRoZQorICAgICAgICAgICAgICBpbnB1dCBzdHJlYW0uICBUaGUgaW1wbGVtZW50
YXRpb24gaGVyZSBpcyBpbmNvbXBsZXRlLCBidXQgaXRzCisgICAgICAgICAgICAgIGVub3VnaCB0
byBydW4gdGhlIGN1cnJlbnQgSFRNTDUgcGFyc2luZyB0ZXN0cy4gIEknbGwgZXZlbnR1YWxseQor
ICAgICAgICAgICAgICBuZWVkIHRvIGltcGxlbWVudCB0aGUgc2xvdyBjYXNlIGhlcmUuCisKKzIw
MTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KKwogICAgICAgICBNYWtlIHRoZSBodG1sNWxpYiBwYXJzZXIg
dGVzdHMgcnVuIHVzaW5nIHRoZSBIVE1MNSBwYXJzZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTMzCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MNUxleGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcAppbmRleCBjMWU0
NTkzNTQ4MmQ2ODRhYjZmYmNmZjE2MTRiZDY5MWM4Zjg2ZDJkLi40NGVhZTgzOWUzYTMwZGIwYTFm
NjA5YjhhNTAxM2YzMTgzYTUzYjA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhl
ci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCkBAIC04NzMsNiArODczLDE4
IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgTWFya3VwRGVjbGFyYXRpb25PcGVuU3RhdGU6IHsKKyAgICAgICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBkYXNoRGFzaFN0cmluZywgKCItLSIpKTsKKyAgICAgICAgICAg
IGlmIChjYyA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tB
aGVhZFJlc3VsdCByZXN1bHQgPSBzb3VyY2UubG9va0FoZWFkKGRhc2hEYXNoU3RyaW5nKTsKKyAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6RGlkTWF0Y2gpIHsK
KyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoJy0nKTsKKyAgICAg
ICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoJy0nKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV90b2tlbi0+YmVnaW5Db21tZW50KCk7CisgICAgICAgICAgICAgICAgICAgIG1f
c3RhdGUgPSBDb21tZW50U3RhcnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU2VnbWVudGVkU3RyaW5nOjpO
b3RFbm91Z2hDaGFyYWN0ZXJzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8v
IFdlIG5lZWQgdG8gd2FpdCBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGFycml2ZS4KKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpAQCAtODgxLDEwICs4OTMsMTAgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9r
ZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBDb21tZW50U3RhcnREYXNoU3RhdGU7CiAgICAgICAgICAgICBlbHNl
IGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAg
ICAgICAgICAgICAgIGVtaXRDb21tZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBlbWl0Q3Vy
cmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAg
ICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgICAg
IG1fc3RhdGUgPSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBG
SVhNRTogSGFuZGxlIEVPRiBwcm9wZXJseS4KQEAgLTg5NSw5ICs5MDcsMTEgQEAgYm9vbCBIVE1M
NUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRv
a2VuKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50RW5kU3RhdGU7CiAgICAgICAg
ICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJv
cigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAg
ICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
Q29tbWVudCgnLScpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChj
Yyk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRTdGF0ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgRU9GIHByb3Blcmx5LgpAQCAtOTA3LDcg
KzkyMSw3IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAg
ICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmREYXNoU3RhdGU7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSBFT0YgcHJvcGVybHkuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtOTE1LDcg
KzkyOSw4IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAg
ICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmRTdGF0ZTsKICAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90
b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0YXRl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJvcGVy
bHkuCkBAIC05MjMsMjEgKzkzOCwyNiBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBDb21tZW50RW5kU3RhdGU6IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnPicpIHsK
LSAgICAgICAgICAgICAgICBlbWl0Q29tbWVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgZW1p
dEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2Mg
PT0gJ1x4MEMnIHx8IGNjID09ICcgJykgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9y
KCk7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50RW5kU3BhY2VTdGF0
ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJyEnKSB7CiAgICAgICAgICAgICAgICAg
ZW1pdFBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudEVuZEJh
bmdTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJy0nKSB7CiAgICAgICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICAgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1l
bnQoJy0nKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsK
KyAgICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBDb21tZW50U3RhdGU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIEVPRiBwcm9wZXJseS4KQEAgLTk0NSwxMyArOTY1LDE4IEBAIGJv
b2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRv
a2VuJiB0b2tlbikKICAgICAgICAgfQogICAgICAgICBjYXNlIENvbW1lbnRFbmRCYW5nU3RhdGU6
IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScp
OworICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOworICAgICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnIScpOwogICAgICAgICAgICAgICAg
IG1fc3RhdGUgPSBDb21tZW50RW5kRGFzaFN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q29tbWVudFRva2VuKCk7CisgICAgICAg
ICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBE
YXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7
CisgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CisgICAgICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCchJyk7CisgICAgICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0g
Q29tbWVudFN0YXRlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSBFT0YgcHJvcGVybHkuCkBAIC05NTksMTQgKzk4NCwxNCBAQCBib29sIEhUTUw1TGV4ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBDb21tZW50RW5kU3BhY2VTdGF0ZTogewogICAgICAgICAgICAg
aWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09
ICcgJykKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9
PSAnLScpCiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IENvbW1lbnRFbmREYXNoU3RhdGU7CiAg
ICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q29t
bWVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAg
ICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudFN0
YXRlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBFT0YgcHJv
cGVybHkuCkBAIC0xMjY2LDEwICsxMjkxLDYgQEAgaW5saW5lIGJvb2wgSFRNTDVMZXhlcjo6aXNB
cHByb3ByaWF0ZUVuZFRhZygpCiAgICAgcmV0dXJuICFtZW1jbXAoYXBwcm9wcmlhdGUsIGFjdHVh
bCwgbV9idWZmZXJlZEVuZFRhZ05hbWUuc2l6ZSgpICogc2l6ZW9mKFVDaGFyKSk7CiB9CiAKLWlu
bGluZSB2b2lkIEhUTUw1TGV4ZXI6OmVtaXRDb21tZW50VG9rZW4oKQotewotfQotCiBpbmxpbmUg
dm9pZCBIVE1MNUxleGVyOjplbWl0Q2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlcikKIHsKICAgICBp
ZiAobV90b2tlbi0+dHlwZSgpICE9IEhUTUw1VG9rZW46OkNoYXJhY3RlcikgewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgK
aW5kZXggNjU0NmQ5N2ZmNzhlMWIxZDQ0NjhkNDE0MDI1NmQwNTFiMjY5ZGU1Ny4uNmQ2MWNjMjJk
YTEzODg1MTA4NzNkMjc1ZDRkZDdiYTM0MjE1NjRmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUw1TGV4ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCkBAIC0xMjYsNyAr
MTI2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgY29u
c3VtZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIGlubGluZSB2b2lkIGVtaXRDb21tZW50VG9rZW4oKTsK
ICAgICAgICAgaW5saW5lIHZvaWQgZW1pdENoYXJhY3RlcihVQ2hhcik7CiAgICAgICAgIGlubGlu
ZSB2b2lkIGVtaXRQYXJzZUVycm9yKCk7CiAgICAgICAgIGlubGluZSB2b2lkIGVtaXRDdXJyZW50
VG9rZW4oKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmggYi9XZWJDb3Jl
L2h0bWwvSFRNTDVUb2tlbi5oCmluZGV4IDhlMzViOTI0MDdlYjljY2ZhOWVlMzJiY2U0ZDMyMDNk
YjQ3ZGI3NmEuLjdjNWI1ZGQ4YTJkODQ4ZmM0MmFhYzNmOWFlYzBlM2MxZjBiZjIxYTAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1
VG9rZW4uaApAQCAtNTQsMTMgKzU0LDE3IEBAIHB1YmxpYzoKIAogICAgIEhUTUw1VG9rZW4oKSB7
IGNsZWFyKCk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7
IH0KKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIG1fdHlwZSA9IFVuaW5pdGlhbGl6
ZWQ7CisgICAgfQogCiAgICAgdm9pZCBiZWdpblN0YXJ0VGFnKFVDaGFyIGNoYXJhY3RlcikKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVW5pbml0aWFsaXplZCk7CiAgICAgICAgIG1f
dHlwZSA9IFN0YXJ0VGFnOwogICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9kYXRh
U3RyaW5nID0gQXRvbWljU3RyaW5nKCk7CiAgICAgICAgIG1fc2VsZkNsb3NpbmcgPSBmYWxzZTsK
ICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlID0gMDsKIApAQCAtNzMsNiArNzcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVW5pbml0aWFsaXplZCk7CiAgICAgICAgIG1f
dHlwZSA9IEVuZFRhZzsKICAgICAgICAgbV9kYXRhLmNsZWFyKCk7CisgICAgICAgIG1fZGF0YVN0
cmluZyA9IEF0b21pY1N0cmluZygpOwogICAgICAgICBtX3NlbGZDbG9zaW5nID0gZmFsc2U7CiAg
ICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZSA9IDA7CiAKQEAgLTg0LDkgKzg5LDE4IEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmluaXRpYWxpemVkKTsKICAgICAgICAgbV90
eXBlID0gQ2hhcmFjdGVyOwogICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9kYXRh
U3RyaW5nID0gQXRvbWljU3RyaW5nKCk7CiAgICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVy
KTsKICAgICB9CiAKKyAgICB2b2lkIGJlZ2luQ29tbWVudCgpCisgICAgeworICAgICAgICBBU1NF
UlQobV90eXBlID09IFVuaW5pdGlhbGl6ZWQpOworICAgICAgICBtX3R5cGUgPSBDb21tZW50Owor
ICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9kYXRhU3RyaW5nID0gQXRvbWljU3Ry
aW5nKCk7CisgICAgfQorCiAgICAgdm9pZCBhcHBlbmRUb05hbWUoVUNoYXIgY2hhcmFjdGVyKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBTdGFydFRhZyB8fCBtX3R5cGUgPT0gRW5k
VGFnIHx8IG1fdHlwZSA9PSBET0NUWVBFKTsKQEAgLTEwMCw2ICsxMTQsMTIgQEAgcHVibGljOgog
ICAgICAgICBtX2RhdGEuYXBwZW5kKGNoYXJhY3RlcnMpOwogICAgIH0KIAorICAgIHZvaWQgYXBw
ZW5kVG9Db21tZW50KFVDaGFyIGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQ29tbWVudCk7CisgICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICB9
CisKICAgICB2b2lkIGFkZE5ld0F0dHJpYnV0ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90
eXBlID09IFN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBFbmRUYWcpOwpAQCAtMTIxLDE1ICsxNDEsNiBA
QCBwdWJsaWM6CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAot
ICAgIEF0b21pY1N0cmluZyBuYW1lKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
U3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyB8fCBtX3R5cGUgPT0gRE9DVFlQRSk7Ci0gICAg
ICAgIGlmICghbV9kYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fY2FjaGVkTmFtZSA9IEF0
b21pY1N0cmluZyhTdHJpbmdJbXBsOjphZG9wdChtX2RhdGEpKTsKLSAgICAgICAgQVNTRVJUKCFt
X2NhY2hlZE5hbWUuaXNFbXB0eSgpKTsKLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkTmFtZTsKLSAg
ICB9Ci0KICAgICBib29sIHNlbGZDbG9zaW5nKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyk7CkBAIC0xNDIsMTMgKzE1
MywzMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2F0dHJpYnV0ZXM7CiAgICAgfQogCi0g
ICAgU3RyaW5nIGNoYXJhY3RlcnMoKQorICAgIEF0b21pY1N0cmluZyBuYW1lKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyB8fCBt
X3R5cGUgPT0gRE9DVFlQRSk7CisgICAgICAgIHJldHVybiBkYXRhU3RyaW5nKCk7CisgICAgfQor
CisgICAgQXRvbWljU3RyaW5nIGNoYXJhY3RlcnMoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBDaGFyYWN0ZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nKFN0cmluZ0ltcGw6OmFk
b3B0KG1fZGF0YSkpOworICAgICAgICByZXR1cm4gZGF0YVN0cmluZygpOworICAgIH0KKworICAg
IEF0b21pY1N0cmluZyBkYXRhKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQ29t
bWVudCk7CisgICAgICAgIHJldHVybiBkYXRhU3RyaW5nKCk7CiAgICAgfQogCiBwcml2YXRlOgor
ICAgIEF0b21pY1N0cmluZyBkYXRhU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kYXRh
LmlzRW1wdHkoKSAmJiBtX2RhdGFTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kYXRh
U3RyaW5nID0gQXRvbWljU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAgICAg
ICByZXR1cm4gbV9kYXRhU3RyaW5nOworICAgIH0KKwogICAgIFR5cGUgbV90eXBlOwogCiAgICAg
Ly8gIm5hbWUiIGZvciBET0NUWVBFLCBTdGFydFRhZywgYW5kIEVuZFRhZwpAQCAtMTY4LDcgKzE5
OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gQSBwb2ludGVyIGludG8gbV9hdHRyaWJ1dGVzIHVzZWQg
ZHVyaW5nIGxleGluZy4KICAgICBBdHRyaWJ1dGUqIG1fY3VycmVudEF0dHJpYnV0ZTsKIAotICAg
IEF0b21pY1N0cmluZyBtX2NhY2hlZE5hbWU7CisgICAgQXRvbWljU3RyaW5nIG1fZGF0YVN0cmlu
ZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCmluZGV4IGRhZTdmNTA4Y2VlMzQ4YjUx
NzEwNzgwMDhjOTdiYTdmM2QxYTUyYzQuLmFjZTM4YjdkNDIzNzA2MGE3NmVkNTVjNjVmZTJjNjhk
YjM1ZmNjMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcApAQCAtMzksNiArMzksMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIHZvaWQgY29udmVydFRvT2xkU3R5bGUoSFRNTDVUb2tl
biYgdG9rZW4sIFRva2VuJiBvbGRTdHlsZVRva2VuKQogewogICAgIHN3aXRjaCAodG9rZW4udHlw
ZSgpKSB7CisgICAgY2FzZSBIVE1MNVRva2VuOjpVbmluaXRpYWxpemVkOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MNVRva2VuOjpE
T0NUWVBFOgorICAgIGNhc2UgSFRNTDVUb2tlbjo6RW5kT2ZGaWxlOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBIVE1MNVRva2VuOjpTdGFydFRhZzoKICAgICBjYXNlIEhUTUw1VG9rZW46OkVu
ZFRhZzogewogICAgICAgICBvbGRTdHlsZVRva2VuLmJlZ2luVGFnID0gKHRva2VuLnR5cGUoKSA9
PSBIVE1MNVRva2VuOjpTdGFydFRhZyk7CkBAIC01OCwxMiArNjYsMTQgQEAgc3RhdGljIHZvaWQg
Y29udmVydFRvT2xkU3R5bGUoSFRNTDVUb2tlbiYgdG9rZW4sIFRva2VuJiBvbGRTdHlsZVRva2Vu
KQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEhUTUw1VG9rZW46
OkNvbW1lbnQ6CisgICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IGNvbW1lbnRBdG9tOwor
ICAgICAgICBvbGRTdHlsZVRva2VuLnRleHQgPSB0b2tlbi5kYXRhKCkuaW1wbCgpOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIEhUTUw1VG9rZW46OkNoYXJhY3RlcjoKICAgICAgICAgb2xkU3R5
bGVUb2tlbi50YWdOYW1lID0gdGV4dEF0b207CiAgICAgICAgIG9sZFN0eWxlVG9rZW4udGV4dCA9
IHRva2VuLmNoYXJhY3RlcnMoKS5pbXBsKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvU2VnbWVudGVkU3RyaW5nLmgKaW5kZXggNzllZDFmMDM1ODMxYWNmMGZmOWY2MjRjMzQ0YzA4
YzljM2YzYTdlZi4uYzVkYWFhYTAxYzAyYmUyODM2ZjhhZGY4ZjU1NjAzMDMzZWQyOTllMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaApAQCAtMTAzLDYgKzEwMywyNSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIWN1cnJlbnQoKTsg
fQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogCisgICAgZW51bSBMb29rQWhlYWRSZXN1
bHQgeworICAgICAgICBEaWROb3RNYXRjaCwKKyAgICAgICAgRGlkTWF0Y2gsCisgICAgICAgIE5v
dEVub3VnaENoYXJhY3RlcnMsCisgICAgfTsKKworICAgIC8vIFdBUk5JTkc6IFRoaXMgbWV0aG9k
IGlzIGN1cnJlbnRseSB1c2VkIG9ubHkgYnkgdGhlIEhUTUw1IHBhcnNlciBhbmQgaXMgaW5jb21w
bGV0ZS4KKyAgICBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5sZW5ndGgoKSA8
PSAodW5zaWduZWQpIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgeworICAgICAgICAgICAgaWYg
KG1lbWNtcChzdHJpbmcuY2hhcmFjdGVycygpLCBtX2N1cnJlbnRTdHJpbmcubV9jdXJyZW50LCBz
dHJpbmcubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
RGlkTm90TWF0Y2g7CisgICAgICAgICAgICByZXR1cm4gRGlkTWF0Y2g7CisgICAgICAgIH0KKyAg
ICAgICAgLy8gV2UgaGF2ZW4ndCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBjYXNlIHlldC4KKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKKyAg
ICB9CisKICAgICB2b2lkIGFkdmFuY2UoKQogICAgIHsKICAgICAgICAgaWYgKCFtX3B1c2hlZENo
YXIxICYmIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA+IDEpIHsKQEAgLTExMiw3ICsxMzEsMTMg
QEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIGFkdmFuY2VTbG93Q2FzZSgpOwogICAgIH0K
LSAgICAKKworICAgIHZvaWQgYWR2YW5jZUFuZEFTU0VSVChVQ2hhciBleHBlY3RlZENoYXJhY3Rl
cikKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoZXhwZWN0ZWRDaGFyYWN0ZXIsICpjdXJy
ZW50KCkgPT0gZXhwZWN0ZWRDaGFyYWN0ZXIpOworICAgICAgICBhZHZhbmNlKCk7CisgICAgfQor
CiAgICAgdm9pZCBhZHZhbmNlUGFzdE5ld2xpbmUoaW50JiBsaW5lTnVtYmVyKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKCpjdXJyZW50KCkgPT0gJ1xuJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>