<?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>106413</bug_id>
          
          <creation_ts>2013-01-08 21:02:48 -0800</creation_ts>
          <short_desc>The word &quot;selector&quot; is somewhat redundant redundantly used in SelectorChecker.</short_desc>
          <delta_ts>2013-01-10 22:20:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>802978</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-08 21:02:48 -0800</bug_when>
    <thetext>The word &quot;selector&quot; is somewhat redundant redundantly used in SelectorChecker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802979</commentid>
    <comment_count>1</comment_count>
      <attachid>181837</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-08 21:05:15 -0800</bug_when>
    <thetext>Created attachment 181837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802986</commentid>
    <comment_count>2</comment_count>
      <attachid>181837</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 21:18:57 -0800</bug_when>
    <thetext>Comment on attachment 181837
Patch

Attachment 181837 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15754580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802987</commentid>
    <comment_count>3</comment_count>
      <attachid>181837</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 21:19:55 -0800</bug_when>
    <thetext>Comment on attachment 181837
Patch

Attachment 181837 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15762353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803205</commentid>
    <comment_count>4</comment_count>
      <attachid>181837</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-09 03:38:14 -0800</bug_when>
    <thetext>Comment on attachment 181837
Patch

LGTM, not sure why it is not building on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803414</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-09 09:47:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; LGTM, not sure why it is not building on Mac.

will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803992</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-09 20:04:25 -0800</bug_when>
    <thetext>It&apos;s weird. The error makes it sound like there&apos;s a macro check(X) that&apos;s defined somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804132</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-10 00:51:03 -0800</bug_when>
    <thetext>/usr/include/AssertMacros.h

#ifndef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
	/* If we haven&apos;t set this yet, it defaults to on.  In the next release, this will default to off. */
	#define	__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES	1
#endif

#if	__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES

	#ifndef check
	#define check(assertion)  __Check(assertion)
	#endif
...

Lame.

Hmm, how about naming them match() instead? Might even read better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804167</commentid>
    <comment_count>8</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-10 01:32:19 -0800</bug_when>
    <thetext>Does really improve the naming? I admit SelectorChecker::checkSelector is a _very_ redundant (even Checker::check() is), but I like that the method name in itself is fully descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804951</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-10 21:39:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; 
&gt; Hmm, how about naming them match() instead? Might even read better.

Sounds good, going with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804952</commentid>
    <comment_count>10</comment_count>
      <attachid>182262</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-10 21:40:10 -0800</bug_when>
    <thetext>Created attachment 182262
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804972</commentid>
    <comment_count>11</comment_count>
      <attachid>182262</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 22:19:58 -0800</bug_when>
    <thetext>Comment on attachment 182262
Patch for landing

Clearing flags on attachment: 182262

Committed r139406: &lt;http://trac.webkit.org/changeset/139406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804973</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 22:20:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181837</attachid>
            <date>2013-01-08 21:05:15 -0800</date>
            <delta_ts>2013-01-10 21:40:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106413-20130108210219.patch</filename>
            <type>text/plain</type>
            <size>17883</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDdjY2UxNjhhOWMwM2Vi
ZjZkNzJkMjZjZTU2MTRlZjI0OTk0MWUyOS4uNjVhYzE0ZjkwODI2YzVlMTA5MDYwMWM1MTBhYzY3
YTUzYmYyNGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhlIHdvcmQg
InNlbGVjdG9yIiBpcyBzb21ld2hhdCByZWR1bmRhbnQgcmVkdW5kYW50bHkgdXNlZCBpbiBTZWxl
Y3RvckNoZWNrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDY0MTMKKworICAgICAgICBJbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1ODY0LCBBbnR0aSBzdWdnZXN0ZWQgcmVkdWNpbmcgc29tZSBvZiB0aGUgcmVk
dW5kYW50IHVzZXMgb2YgdGhlIHdvcmQKKyAgICAgICAgInNlbGVjdG9yIiBpbiBTZWxlY3RvckNo
ZWNrZXIuIEhlcmUncyBhIHN0YXJ0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNpbXBsZSByZW5hbWVzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ2hlY2tlcjo6Y2hlY2spOiBSZW1vdmVkICJzZWxlY3RvciIgZnJvbSBuYW1lLAorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmZhc3RD
aGVjayk6IERpdHRvLAorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09u
ZSk6IERpdHRvLgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuaDoKKyAgICAgICAgKFNl
bGVjdG9yQ2hlY2tlcik6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KTog
Q2hhbmdlZCB0byB1c2UgbmV3IG5hbWUuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
OjpydWxlTWF0Y2hlcyk6IFJlbmFtZWQgZnJvbSBjaGVja1NlbGVjdG9yIHRvIGJldHRlciBtYXRj
aCBhcmd1bWVudCBhbmQgcmV0dXJuIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNv
bHZlcjo6Y2hlY2tSZWdpb25TZWxlY3Rvcik6IENoYW5nZWQgdG8gdXNlIG5ldyBuYW1lcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoU3R5bGVSZXNvbHZlcik6Cisg
ICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JEYXRhTGlzdDo6bWF0Y2hlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JE
YXRhTGlzdDo6ZXhlY3V0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrQ29udGVudFNlbGVjdG9yKTogRGl0dG8uCisKIDIwMTMtMDEtMDggIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEzNTgzNik6
IEludmFsaWQgdXNlciBpbnB1dCBmb3IgaW5wdXRbdHlwZT1udW1iZXJdIHNob3VsZCBiZSBjbGVh
cmVkIGJ5IGlucHV0LnZhbHVlPSIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CmluZGV4IGNhNzNhYTRmMjY2NmY3ZWU4YjZjNTgyMTRmNzJkMTRlODlkZjdhODMuLjYwMWNiYjM1
NDIxNzI4ZjNmNDc4YTRmMDJhYTg3OTZjYTE2ZDUzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuY3BwCkBAIC02NiwxNiArNjYsMTYgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxl
Y3RvckNoZWNrZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogewogfQogCi1ib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZW50KiBlbGVtZW50LCBi
b29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yKSBjb25zdAorYm9vbCBTZWxlY3RvckNoZWNrZXI6
OmNoZWNrKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgaXNGYXN0Q2hl
Y2thYmxlU2VsZWN0b3IpIGNvbnN0CiB7CiAgICAgaWYgKGlzRmFzdENoZWNrYWJsZVNlbGVjdG9y
ICYmICFlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkgewogICAgICAgICBpZiAoIWZhc3RDaGVja1Jp
Z2h0bW9zdFNlbGVjdG9yKHNlbCwgZWxlbWVudCwgVmlzaXRlZE1hdGNoRGlzYWJsZWQpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gZmFzdENoZWNrU2VsZWN0b3Io
c2VsLCBlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGZhc3RDaGVjayhzZWwsIGVsZW1lbnQpOwog
ICAgIH0KIAogICAgIFBzZXVkb0lkIGlnbm9yZUR5bmFtaWNQc2V1ZG8gPSBOT1BTRVVETzsKLSAg
ICByZXR1cm4gY2hlY2tTZWxlY3RvcihTZWxlY3RvckNoZWNraW5nQ29udGV4dChzZWwsIGVsZW1l
bnQsIFNlbGVjdG9yQ2hlY2tlcjo6VmlzaXRlZE1hdGNoRGlzYWJsZWQpLCBpZ25vcmVEeW5hbWlj
UHNldWRvKSA9PSBTZWxlY3Rvck1hdGNoZXM7CisgICAgcmV0dXJuIGNoZWNrKFNlbGVjdG9yQ2hl
Y2tpbmdDb250ZXh0KHNlbCwgZWxlbWVudCwgU2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hE
aXNhYmxlZCksIGlnbm9yZUR5bmFtaWNQc2V1ZG8pID09IFNlbGVjdG9yTWF0Y2hlczsKIH0KIAog
bmFtZXNwYWNlIHsKQEAgLTE2Miw3ICsxNjIsNyBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmZhc3RDaGVja1JpZ2h0bW9zdFNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlYwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBTZWxlY3RvckNoZWNrZXI6OmZhc3RDaGVja1Nl
bGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciwgY29uc3QgRWxlbWVudCogZWxlbWVu
dCkgY29uc3QKK2Jvb2wgU2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2soY29uc3QgQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAogewogICAgIEFTU0VS
VChmYXN0Q2hlY2tSaWdodG1vc3RTZWxlY3RvcihzZWxlY3RvciwgZWxlbWVudCwgVmlzaXRlZE1h
dGNoRW5hYmxlZCkpOwogCkBAIC0yNDYsMTAgKzI0NiwxMCBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6aXNGYXN0Q2hlY2thYmxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQog
Ly8gKiBTZWxlY3RvckZhaWxzTG9jYWxseSAgICAgLSB0aGUgc2VsZWN0b3IgZmFpbHMgZm9yIHRo
ZSBlbGVtZW50IGUKIC8vICogU2VsZWN0b3JGYWlsc0FsbFNpYmxpbmdzIC0gdGhlIHNlbGVjdG9y
IGZhaWxzIGZvciBlIGFuZCBhbnkgc2libGluZyBvZiBlCiAvLyAqIFNlbGVjdG9yRmFpbHNDb21w
bGV0ZWx5ICAtIHRoZSBzZWxlY3RvciBmYWlscyBmb3IgZSBhbmQgYW55IHNpYmxpbmcgb3IgYW5j
ZXN0b3Igb2YgZQotU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwg
UHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8pIGNvbnN0CitTZWxlY3RvckNoZWNrZXI6Ok1hdGNoIFNl
bGVjdG9yQ2hlY2tlcjo6Y2hlY2soY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRl
eHQsIFBzZXVkb0lkJiBkeW5hbWljUHNldWRvKSBjb25zdAogewogICAgIC8vIGZpcnN0IHNlbGVj
dG9yIGhhcyB0byBtYXRjaAotICAgIGlmICghY2hlY2tPbmVTZWxlY3Rvcihjb250ZXh0LCBET01T
aWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3koKSkpCisgICAgaWYgKCFjaGVja09uZShjb250ZXh0LCBE
T01TaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3koKSkpCiAgICAgICAgIHJldHVybiBTZWxlY3RvckZh
aWxzTG9jYWxseTsKIAogICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50KSB7CkBAIC0zMTEsNyArMzExLDcgQEAgU2VsZWN0b3JDaGVj
a2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBT
ZWxlY3RvckNoZWMKICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudFN0eWxlID0gMDsKICAgICAg
ICAgbmV4dENvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gMDsKICAgICAgICAgZm9yICg7IG5l
eHRDb250ZXh0LmVsZW1lbnQ7IG5leHRDb250ZXh0LmVsZW1lbnQgPSBuZXh0Q29udGV4dC5lbGVt
ZW50LT5wYXJlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIFNlbGVjdG9yTWF0Y2ggbWF0Y2gg
PSBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKyAgICAg
ICAgICAgIE1hdGNoIG1hdGNoID0gY2hlY2sobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1
ZG8pOwogICAgICAgICAgICAgaWYgKG1hdGNoID09IFNlbGVjdG9yTWF0Y2hlcyB8fCBtYXRjaCA9
PSBTZWxlY3RvckZhaWxzQ29tcGxldGVseSkKICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7
CiAgICAgICAgICAgICBpZiAobmV4dENvbnRleHQuZWxlbWVudCA9PSBuZXh0Q29udGV4dC5zY29w
ZSkKQEAgLTMyNiw3ICszMjYsNyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2Vs
ZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICBu
ZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0gZmFsc2U7CiAgICAgICAgIG5leHRDb250ZXh0LmVs
ZW1lbnRTdHlsZSA9IDA7CiAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnRQYXJlbnRTdHlsZSA9
IDA7Ci0gICAgICAgIHJldHVybiBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5h
bWljUHNldWRvKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrKG5leHRDb250ZXh0LCBpZ25vcmVEeW5h
bWljUHNldWRvKTsKIAogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50OgogICAg
ICAgICBpZiAobV9tb2RlID09IFJlc29sdmluZ1N0eWxlKSB7CkBAIC0zMzksNyArMzM5LDcgQEAg
U2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxl
Y3Rvcihjb25zdCBTZWxlY3RvckNoZWMKICAgICAgICAgbmV4dENvbnRleHQuaXNTdWJTZWxlY3Rv
ciA9IGZhbHNlOwogICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50U3R5bGUgPSAwOwogICAgICAg
ICBuZXh0Q29udGV4dC5lbGVtZW50UGFyZW50U3R5bGUgPSAwOwotICAgICAgICByZXR1cm4gY2hl
Y2tTZWxlY3RvcihuZXh0Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CisgICAgICAgIHJl
dHVybiBjaGVjayhuZXh0Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CiAKICAgICBjYXNl
IENTU1NlbGVjdG9yOjpJbmRpcmVjdEFkamFjZW50OgogICAgICAgICBpZiAobV9tb2RlID09IFJl
c29sdmluZ1N0eWxlKSB7CkBAIC0zNTEsNyArMzUxLDcgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxl
Y3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNo
ZWMKICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudFN0eWxlID0gMDsKICAgICAgICAgbmV4dENv
bnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gMDsKICAgICAgICAgZm9yICg7IG5leHRDb250ZXh0
LmVsZW1lbnQ7IG5leHRDb250ZXh0LmVsZW1lbnQgPSBuZXh0Q29udGV4dC5lbGVtZW50LT5wcmV2
aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIFNlbGVjdG9yTWF0Y2ggbWF0Y2gg
PSBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKyAgICAg
ICAgICAgIE1hdGNoIG1hdGNoID0gY2hlY2sobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1
ZG8pOwogICAgICAgICAgICAgaWYgKG1hdGNoID09IFNlbGVjdG9yTWF0Y2hlcyB8fCBtYXRjaCA9
PSBTZWxlY3RvckZhaWxzQWxsU2libGluZ3MgfHwgbWF0Y2ggPT0gU2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOwogICAgICAgICB9OwpAQCAtMzY4
LDcgKzM2OCw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVjCiAgICAgICAgICAgICAmJiAhKG5l
eHRDb250ZXh0Lmhhc1Njcm9sbGJhclBzZXVkbyAmJiBuZXh0Q29udGV4dC5zZWxlY3Rvci0+bV9t
YXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpKQogICAgICAgICAgICAgcmV0dXJuIFNl
bGVjdG9yRmFpbHNDb21wbGV0ZWx5OwogICAgICAgICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9y
ID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dENvbnRleHQsIGR5bmFt
aWNQc2V1ZG8pOworICAgICAgICByZXR1cm4gY2hlY2sobmV4dENvbnRleHQsIGR5bmFtaWNQc2V1
ZG8pOwogCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICAgICAg
ewpAQCAtMzgyLDcgKzM4Miw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBTZWxl
Y3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVjCiAgICAgICAgICAg
ICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0gZmFsc2U7CiAgICAgICAgICAgICBuZXh0Q29u
dGV4dC5lbGVtZW50U3R5bGUgPSAwOwogICAgICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudFBh
cmVudFN0eWxlID0gMDsKLSAgICAgICAgICAgIHJldHVybiBjaGVja1NlbGVjdG9yKG5leHRDb250
ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKyAgICAgICAgICAgIHJldHVybiBjaGVjayhuZXh0
Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTUz
Nyw3ICs1MzcsNyBAQCBzdGF0aWMgYm9vbCBhbnlBdHRyaWJ1dGVNYXRjaGVzKEVsZW1lbnQqIGVs
ZW1lbnQsIENTU1NlbGVjdG9yOjpNYXRjaCBtYXRjaCwgY29ucwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3k+Ci1ib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hl
Y2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5JiBzaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3kpIGNv
bnN0Citib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSYgc2libGlu
Z1RyYXZlcnNhbFN0cmF0ZWd5KSBjb25zdAogewogICAgIEVsZW1lbnQqIGNvbnN0ICYgZWxlbWVu
dCA9IGNvbnRleHQuZWxlbWVudDsKICAgICBDU1NTZWxlY3RvciogY29uc3QgJiBzZWxlY3RvciA9
IGNvbnRleHQuc2VsZWN0b3I7CkBAIC01ODQsNyArNTg0LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRl
eHQsIGMKICAgICAgICAgICAgICAgICAvLyBXZSBzZWxlY3QgYmV0d2VlbiA6dmlzaXRlZCBhbmQg
Omxpbmsgd2hlbiBhcHBseWluZy4gV2UgZG9uJ3Qga25vdyB3aGljaCBvbmUgYXBwbGllZCAob3Ig
bm90KSB5ZXQuCiAgICAgICAgICAgICAgICAgaWYgKHN1YkNvbnRleHQuc2VsZWN0b3ItPnBzZXVk
b1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZCB8fCAoc3ViQ29udGV4dC5zZWxl
Y3Rvci0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rICYmIHN1YkNvbnRl
eHQudmlzaXRlZE1hdGNoVHlwZSA9PSBWaXNpdGVkTWF0Y2hFbmFibGVkKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKCFjaGVja09uZVNlbGVj
dG9yKHN1YkNvbnRleHQsIERPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSgpKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIWNoZWNrT25lKHN1YkNvbnRleHQsIERPTVNpYmxpbmdUcmF2ZXJzYWxTdHJh
dGVneSgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5oYXNTY3JvbGxiYXJQc2V1ZG8pIHsKQEAgLTc2
NSw3ICs3NjUsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25z
dCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICAgICAgICAgIHN1
YkNvbnRleHQuaXNTdWJTZWxlY3RvciA9IHRydWU7CiAgICAgICAgICAgICAgICAgUHNldWRvSWQg
aWdub3JlRHluYW1pY1BzZXVkbyA9IE5PUFNFVURPOwogICAgICAgICAgICAgICAgIGZvciAoc3Vi
Q29udGV4dC5zZWxlY3RvciA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsgc3Vi
Q29udGV4dC5zZWxlY3Rvcjsgc3ViQ29udGV4dC5zZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6
bmV4dChzdWJDb250ZXh0LnNlbGVjdG9yKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoY2hl
Y2tTZWxlY3RvcihzdWJDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKSA9PSBTZWxlY3Rvck1h
dGNoZXMpCisgICAgICAgICAgICAgICAgICAgIGlmIChjaGVjayhzdWJDb250ZXh0LCBpZ25vcmVE
eW5hbWljUHNldWRvKSA9PSBTZWxlY3Rvck1hdGNoZXMpCiAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC05NjEs
NyArOTYxLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3Qg
U2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIGMKICAgICAgICAgUHNldWRvSWQgaWdu
b3JlRHluYW1pY1BzZXVkbyA9IE5PUFNFVURPOwogICAgICAgICBDU1NTZWxlY3RvciogY29uc3Qg
JiBzZWxlY3RvciA9IGNvbnRleHQuc2VsZWN0b3I7CiAgICAgICAgIGZvciAoc3ViQ29udGV4dC5z
ZWxlY3RvciA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsgc3ViQ29udGV4dC5z
ZWxlY3Rvcjsgc3ViQ29udGV4dC5zZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJD
b250ZXh0LnNlbGVjdG9yKSkgewotICAgICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Ioc3ViQ29u
dGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbykgPT0gU2VsZWN0b3JNYXRjaGVzKQorICAgICAgICAg
ICAgaWYgKGNoZWNrKHN1YkNvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pID09IFNlbGVjdG9y
TWF0Y2hlcykKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMTIwLDYgKzExMjAsNiBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6aXNGcmFtZUZvY3VzZWQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIH0KIAogdGVtcGxhdGUK
LWJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hl
Y2tlcjo6U2VsZWN0b3JDaGVja2luZ0NvbnRleHQmLCBjb25zdCBTaGFkb3dET01TaWJsaW5nVHJh
dmVyc2FsU3RyYXRlZ3kmKSBjb25zdDsKK2Jvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShj
b25zdCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgY29uc3QgU2hh
ZG93RE9NU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5JikgY29uc3Q7CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCAzMzE5M2Y3NmJjMzI4MjZhZDBkM2VlNjE0NTE1Yjli
YWM1ZDI1MjBiLi4yOTNiZjVmNzExMDk0MzIxYzI5MWQ4MjNiNjgyN2E3NTExMTA0ZDBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNl
bGVjdG9yQ2hlY2tlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2VsZWN0b3JDaGVja2VyKERv
Y3VtZW50Kik7CiAKLSAgICBlbnVtIFNlbGVjdG9yTWF0Y2ggeyBTZWxlY3Rvck1hdGNoZXMsIFNl
bGVjdG9yRmFpbHNMb2NhbGx5LCBTZWxlY3RvckZhaWxzQWxsU2libGluZ3MsIFNlbGVjdG9yRmFp
bHNDb21wbGV0ZWx5IH07CisgICAgZW51bSBNYXRjaCB7IFNlbGVjdG9yTWF0Y2hlcywgU2VsZWN0
b3JGYWlsc0xvY2FsbHksIFNlbGVjdG9yRmFpbHNBbGxTaWJsaW5ncywgU2VsZWN0b3JGYWlsc0Nv
bXBsZXRlbHkgfTsKICAgICBlbnVtIFZpc2l0ZWRNYXRjaFR5cGUgeyBWaXNpdGVkTWF0Y2hEaXNh
YmxlZCwgVmlzaXRlZE1hdGNoRW5hYmxlZCB9OwogICAgIGVudW0gTW9kZSB7IFJlc29sdmluZ1N0
eWxlID0gMCwgQ29sbGVjdGluZ1J1bGVzLCBRdWVyeWluZ1J1bGVzLCBTaGFyaW5nUnVsZXMgfTsK
IApAQCAtNzcsMTMgKzc3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBoYXNTZWxlY3Rpb25Q
c2V1ZG87CiAgICAgfTsKIAotICAgIGJvb2wgY2hlY2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVs
ZW1lbnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yID0gZmFsc2UpIGNvbnN0OwotICAg
IFNlbGVjdG9yTWF0Y2ggY2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4
dCYsIFBzZXVkb0lkJikgY29uc3Q7CisgICAgYm9vbCBjaGVjayhDU1NTZWxlY3RvciosIEVsZW1l
bnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yID0gZmFsc2UpIGNvbnN0OworICAgIE1h
dGNoIGNoZWNrKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgUHNldWRvSWQmKSBjb25z
dDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3k+Ci0gICAg
Ym9vbCBjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgY29u
c3QgU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5JikgY29uc3Q7CisgICAgYm9vbCBjaGVja09uZShj
b25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYsIGNvbnN0IFNpYmxpbmdUcmF2ZXJzYWxTdHJh
dGVneSYpIGNvbnN0OwogCiAgICAgc3RhdGljIGJvb2wgaXNGYXN0Q2hlY2thYmxlU2VsZWN0b3Io
Y29uc3QgQ1NTU2VsZWN0b3IqKTsKLSAgICBib29sIGZhc3RDaGVja1NlbGVjdG9yKGNvbnN0IENT
U1NlbGVjdG9yKiwgY29uc3QgRWxlbWVudCopIGNvbnN0OworICAgIGJvb2wgZmFzdENoZWNrKGNv
bnN0IENTU1NlbGVjdG9yKiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwogCiAgICAgYm9vbCBzdHJp
Y3RQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpY3RQYXJzaW5nOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwOThlMGQ1N2MwYjdlMWQ3NGVkMTUwOGY3ZTkw
MGQ1MTZjMmU5NzBkLi4yYjczZmNkODA3NDUwODkzZWZjNDAxMTFiOTE4MzM4ZWI0ZDc1ZTI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC04NTcsNyArODU3LDcgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9y
PFJ1bGVEYXRhPiogcnVsZXMsIGkKIAogICAgICAgICBTdHlsZVJ1bGUqIHJ1bGUgPSBydWxlRGF0
YS5ydWxlKCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUg
PSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxNYXRjaFJ1bGUoZG9jdW1lbnQoKSwgcnVs
ZSwgdGhpcyk7Ci0gICAgICAgIGlmIChjaGVja1NlbGVjdG9yKHJ1bGVEYXRhLCBvcHRpb25zLnNj
b3BlKSkgeworICAgICAgICBpZiAocnVsZU1hdGNoZXMocnVsZURhdGEsIG9wdGlvbnMuc2NvcGUp
KSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBoYXMgbm8gcHJvcGVydGllcyB0byBhcHBs
eSwgdGhlbiBpZ25vcmUgaXQgaW4gdGhlIG5vbi1kZWJ1ZyBtb2RlLgogICAgICAgICAgICAgY29u
c3QgU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcyA9IHJ1bGUtPnByb3BlcnRpZXMoKTsKICAg
ICAgICAgICAgIGlmICghcHJvcGVydGllcyB8fCAocHJvcGVydGllcy0+aXNFbXB0eSgpICYmICFv
cHRpb25zLmluY2x1ZGVFbXB0eVJ1bGVzKSkgewpAQCAtMjIzOCw3ICsyMjM4LDcgQEAgUGFzc1Jl
ZlB0cjxDU1NSdWxlTGlzdD4gU3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1l
bnQoRWxlbWVudCogZSwgUHMKICAgICByZXR1cm4gbV9ydWxlTGlzdC5yZWxlYXNlKCk7CiB9CiAK
LWlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgUnVsZURhdGEm
IHJ1bGVEYXRhLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkKK2lubGluZSBib29sIFN0eWxl
UmVzb2x2ZXI6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGUpCiB7CiAgICAgbV9keW5hbWljUHNldWRvID0gTk9QU0VVRE87CiAK
QEAgLTIyNTUsNyArMjI1NSw3IEBAIGlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmNoZWNrU2Vs
ZWN0b3IoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWluCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICghU2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2tS
aWdodG1vc3RBdHRyaWJ1dGVTZWxlY3RvcihtX2VsZW1lbnQsIHJ1bGVEYXRhLnNlbGVjdG9yKCkp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gbV9zZWxlY3RvckNo
ZWNrZXIuZmFzdENoZWNrU2VsZWN0b3IocnVsZURhdGEuc2VsZWN0b3IoKSwgbV9lbGVtZW50KTsK
KyAgICAgICAgcmV0dXJuIG1fc2VsZWN0b3JDaGVja2VyLmZhc3RDaGVjayhydWxlRGF0YS5zZWxl
Y3RvcigpLCBtX2VsZW1lbnQpOwogICAgIH0KIAogICAgIC8vIFNsb3cgcGF0aC4KQEAgLTIyNjQs
NyArMjI2NCw3IEBAIGlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmNoZWNrU2VsZWN0b3IoY29u
c3QgUnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWluCiAgICAgY29udGV4dC5lbGVtZW50
UGFyZW50U3R5bGUgPSBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkg
OiAwOwogICAgIGNvbnRleHQuc2NvcGUgPSBzY29wZTsKICAgICBjb250ZXh0LnBzZXVkb1N0eWxl
ID0gbV9wc2V1ZG9TdHlsZTsKLSAgICBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggbWF0
Y2ggPSBtX3NlbGVjdG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKGNvbnRleHQsIG1fZHluYW1pY1Bz
ZXVkbyk7CisgICAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaCBtYXRjaCA9IG1fc2VsZWN0b3JDaGVj
a2VyLmNoZWNrKGNvbnRleHQsIG1fZHluYW1pY1BzZXVkbyk7CiAgICAgaWYgKG1hdGNoICE9IFNl
bGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKG1fcHNldWRvU3R5bGUgIT0gTk9QU0VVRE8gJiYgbV9wc2V1ZG9TdHlsZSAhPSBtX2R5
bmFtaWNQc2V1ZG8pCkBAIC0yMjgwLDcgKzIyODAsNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNo
ZWNrUmVnaW9uU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVtZW50KiBy
ZQogICAgIG1fcHNldWRvU3R5bGUgPSBOT1BTRVVETzsKIAogICAgIGZvciAoQ1NTU2VsZWN0b3Iq
IHMgPSByZWdpb25TZWxlY3RvcjsgczsgcyA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzKSkKLSAg
ICAgICAgaWYgKG1fc2VsZWN0b3JDaGVja2VyLmNoZWNrU2VsZWN0b3IocywgcmVnaW9uRWxlbWVu
dCkpCisgICAgICAgIGlmIChtX3NlbGVjdG9yQ2hlY2tlci5jaGVjayhzLCByZWdpb25FbGVtZW50
KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggNWJkMjk0MGU1N2YyOTgyMWZlNjEzZWEwZThhMzli
ZmRmYjg4ZDA3ZC4uMzc1MGE1ZGY1OWU1NmM4MzdkZjJiYjRhM2QzMGJkMWJlYTg3MDJmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zNjUsNyArMzY1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNvcnRNYXRjaGVkUnVsZXMoKTsKICAgICB2b2lkIHNvcnRBbmRUcmFuc2Zlck1h
dGNoZWRSdWxlcyhNYXRjaFJlc3VsdCYpOwogCi0gICAgYm9vbCBjaGVja1NlbGVjdG9yKGNvbnN0
IFJ1bGVEYXRhJiwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpOworICAgIGJvb2wgcnVsZU1h
dGNoZXMoY29uc3QgUnVsZURhdGEmLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSk7CiAgICAg
Ym9vbCBjaGVja1JlZ2lvblNlbGVjdG9yKENTU1NlbGVjdG9yKiByZWdpb25TZWxlY3RvciwgRWxl
bWVudCogcmVnaW9uRWxlbWVudCk7CiAgICAgdm9pZCBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNv
bnN0IE1hdGNoUmVzdWx0JiwgY29uc3QgRWxlbWVudCopOwogICAgIGVudW0gU3R5bGVBcHBsaWNh
dGlvblBhc3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IGE5ZDY2ZjVh
ZjcwOWRjZTU5YzA1NmE5YTMwMTFiODZmMTdkZDNhMDQuLjNlOTAzNDVkMjcwN2VjN2ZmM2QyNDZl
ZWM3N2NmMDk1NWRiZWY2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgYm9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKGNvbnN0IFNlbGVj
dG9yQ2hlY2tlciYgc2VsZWN0b3JDaGVja2VyLCBFbGVtZW50KgogCiAgICAgdW5zaWduZWQgc2Vs
ZWN0b3JDb3VudCA9IG1fc2VsZWN0b3JzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2VsZWN0b3JDb3VudDsgKytpKSB7Ci0gICAgICAgIGlmIChzZWxlY3RvckNoZWNrZXIu
Y2hlY2tTZWxlY3RvcihtX3NlbGVjdG9yc1tpXS5zZWxlY3RvciwgdGFyZ2V0RWxlbWVudCwgbV9z
ZWxlY3RvcnNbaV0uaXNGYXN0Q2hlY2thYmxlKSkKKyAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tl
ci5jaGVjayhtX3NlbGVjdG9yc1tpXS5zZWxlY3RvciwgdGFyZ2V0RWxlbWVudCwgbV9zZWxlY3Rv
cnNbaV0uaXNGYXN0Q2hlY2thYmxlKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShjb25z
dCBTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9yQ2hlY2tlciwgTm9kZSogcm9vCiAgICAgICAgIEVs
ZW1lbnQqIGVsZW1lbnQgPSByb290Tm9kZS0+dHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKHNl
bGVjdG9yLT52YWx1ZSgpKTsKICAgICAgICAgaWYgKCFlbGVtZW50IHx8ICEoaXNUcmVlU2NvcGVS
b290KHJvb3ROb2RlKSB8fCBlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihyb290Tm9kZSkpKQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoc2VsZWN0b3JDaGVja2VyLmNoZWNrU2VsZWN0
b3IobV9zZWxlY3RvcnNbMF0uc2VsZWN0b3IsIGVsZW1lbnQsIG1fc2VsZWN0b3JzWzBdLmlzRmFz
dENoZWNrYWJsZSkpCisgICAgICAgIGlmIChzZWxlY3RvckNoZWNrZXIuY2hlY2sobV9zZWxlY3Rv
cnNbMF0uc2VsZWN0b3IsIGVsZW1lbnQsIG1fc2VsZWN0b3JzWzBdLmlzRmFzdENoZWNrYWJsZSkp
CiAgICAgICAgICAgICBtYXRjaGVkRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6
ZXhlY3V0ZShjb25zdCBTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9yQ2hlY2tlciwgTm9kZSogcm9v
CiAgICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7CiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0b3JDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKHNlbGVjdG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKG1fc2VsZWN0b3JzW2ldLnNlbGVjdG9y
LCBlbGVtZW50LCBtX3NlbGVjdG9yc1tpXS5pc0Zhc3RDaGVja2FibGUpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlci5jaGVjayhtX3NlbGVjdG9yc1tpXS5zZWxlY3Rvciwg
ZWxlbWVudCwgbV9zZWxlY3RvcnNbaV0uaXNGYXN0Q2hlY2thYmxlKSkgewogICAgICAgICAgICAg
ICAgICAgICBtYXRjaGVkRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoZmlyc3RNYXRjaE9ubHkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JR
dWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKaW5kZXggNjExOGM1MmM4MTE0YjUzY2NjZjAwMTk0MWMzNTAzNWRlNDEyMWYyZC4uNTU2
NTE1NjFiYTY5YjBhN2JmNTE5ZWUxYTI1ODRkMjZkN2IwYzk1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAtNDUsNyAr
NDUsNyBAQCBib29sIENvbnRlbnRTZWxlY3RvckNoZWNrZXI6OmNoZWNrQ29udGVudFNlbGVjdG9y
KENTU1NlbGVjdG9yKiBzZWxlY3RvciwgY29uc3QgVgogewogICAgIFNlbGVjdG9yQ2hlY2tlcjo6
U2VsZWN0b3JDaGVja2luZ0NvbnRleHQgY29udGV4dChzZWxlY3RvciwgdG9FbGVtZW50KHNpYmxp
bmdzW250aF0uZ2V0KCkpLCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaEVuYWJsZWQpOwog
ICAgIFNoYWRvd0RPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSBzdHJhdGVneShzaWJsaW5ncywg
bnRoKTsKLSAgICByZXR1cm4gbV9zZWxlY3RvckNoZWNrZXIuY2hlY2tPbmVTZWxlY3Rvcihjb250
ZXh0LCBzdHJhdGVneSk7CisgICAgcmV0dXJuIG1fc2VsZWN0b3JDaGVja2VyLmNoZWNrT25lKGNv
bnRleHQsIHN0cmF0ZWd5KTsKIH0KIAogdm9pZCBDb250ZW50U2VsZWN0b3JEYXRhTGlzdDo6aW5p
dGlhbGl6ZShjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182262</attachid>
            <date>2013-01-10 21:40:10 -0800</date>
            <delta_ts>2013-01-10 22:19:58 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106413-20130110213713.patch</filename>
            <type>text/plain</type>
            <size>17874</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM1MjM0ODUwYzI1Y2Ux
ZjFkZTc5ODAzNDg2MDUyYjQxNWMwZjMyNi4uNTc5NGMwN2VjMmExNDgzM2VlZTA2NDc2M2JiNjZi
MDhiZmIwZDBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTEwICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhlIHdvcmQg
InNlbGVjdG9yIiBpcyBzb21ld2hhdCByZWR1bmRhbnQgcmVkdW5kYW50bHkgdXNlZCBpbiBTZWxl
Y3RvckNoZWNrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDY0MTMKKworICAgICAgICBJbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1ODY0LCBBbnR0aSBzdWdnZXN0ZWQgcmVkdWNpbmcgc29tZSBvZiB0aGUgcmVk
dW5kYW50IHVzZXMgb2YgdGhlIHdvcmQKKyAgICAgICAgInNlbGVjdG9yIiBpbiBTZWxlY3RvckNo
ZWNrZXIuIEhlcmUncyBhIHN0YXJ0LgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIFNpbXBsZSByZW5hbWVzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ2hlY2tlcjo6bWF0Y2gpOiBSZW5hbWVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmZhc3RDaGVjayk6IERpdHRvLAorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6IERpdHRvLgorICAgICAgICAq
IGNzcy9TZWxlY3RvckNoZWNrZXIuaDoKKyAgICAgICAgKFNlbGVjdG9yQ2hlY2tlcik6CisgICAg
ICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNv
bHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KTogQ2hhbmdlZCB0byB1c2UgbmV3IG5h
bWUuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpydWxlTWF0Y2hlcyk6IFJlbmFt
ZWQgZnJvbSBjaGVja1NlbGVjdG9yIHRvIGJldHRlciBtYXRjaCBhcmd1bWVudCBhbmQgcmV0dXJu
IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y2hlY2tSZWdpb25TZWxl
Y3Rvcik6IENoYW5nZWQgdG8gdXNlIG5ldyBuYW1lcy4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5oOgorICAgICAgICAoU3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL1NlbGVjdG9y
UXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6bWF0Y2hlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZSk6IERp
dHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvckNoZWNrZXI6OmNoZWNrQ29udGVudFNlbGVj
dG9yKTogRGl0dG8uCisKIDIwMTMtMDEtMTAgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdoZW4gYSBzZWxlY3RlZCBub2RlIGluIG5lc3RlZCBTaGFk
b3dET00gaXMgZGVsZXRlZCwgc2VsZWN0aW9uIGhhdmUgd3JvbmcgcmFuZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDJhMzVmZDA2ZmIyYzVjOTg1NWQ0NTEwNzE4
YjIwZTY5MGVmNTllZTkuLjJiMjZjNjgwNWJiNzNiZjQ5M2Y0Mjk1N2FkNGJlYzQyNTcwODEwZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC02NiwxNiArNjYsMTYg
QEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNrZXIoRG9jdW1lbnQqIGRvY3VtZW50KQog
ewogfQogCi1ib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxlY3Rvciog
c2VsLCBFbGVtZW50KiBlbGVtZW50LCBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yKSBjb25z
dAorYm9vbCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoZXMoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWVu
dCogZWxlbWVudCwgYm9vbCBpc0Zhc3RDaGVja2FibGVTZWxlY3RvcikgY29uc3QKIHsKICAgICBp
ZiAoaXNGYXN0Q2hlY2thYmxlU2VsZWN0b3IgJiYgIWVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpKSB7
CiAgICAgICAgIGlmICghZmFzdENoZWNrUmlnaHRtb3N0U2VsZWN0b3Ioc2VsLCBlbGVtZW50LCBW
aXNpdGVkTWF0Y2hEaXNhYmxlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IHJldHVybiBmYXN0Q2hlY2tTZWxlY3RvcihzZWwsIGVsZW1lbnQpOworICAgICAgICByZXR1cm4g
ZmFzdENoZWNrKHNlbCwgZWxlbWVudCk7CiAgICAgfQogCiAgICAgUHNldWRvSWQgaWdub3JlRHlu
YW1pY1BzZXVkbyA9IE5PUFNFVURPOwotICAgIHJldHVybiBjaGVja1NlbGVjdG9yKFNlbGVjdG9y
Q2hlY2tpbmdDb250ZXh0KHNlbCwgZWxlbWVudCwgU2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0
Y2hEaXNhYmxlZCksIGlnbm9yZUR5bmFtaWNQc2V1ZG8pID09IFNlbGVjdG9yTWF0Y2hlczsKKyAg
ICByZXR1cm4gbWF0Y2goU2VsZWN0b3JDaGVja2luZ0NvbnRleHQoc2VsLCBlbGVtZW50LCBTZWxl
Y3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaERpc2FibGVkKSwgaWdub3JlRHluYW1pY1BzZXVkbykg
PT0gU2VsZWN0b3JNYXRjaGVzOwogfQogCiBuYW1lc3BhY2UgewpAQCAtMTYyLDcgKzE2Miw3IEBA
IGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRtb3N0U2VsZWN0b3Io
Y29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNl
bGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAorYm9vbCBTZWxlY3RvckNoZWNrZXI6
OmZhc3RDaGVjayhjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZhc3RDaGVja1JpZ2h0bW9zdFNlbGVjdG9yKHNl
bGVjdG9yLCBlbGVtZW50LCBWaXNpdGVkTWF0Y2hFbmFibGVkKSk7CiAKQEAgLTI0NiwxMCArMjQ2
LDEwIEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjppc0Zhc3RDaGVja2FibGVTZWxlY3Rvcihjb25z
dCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiAvLyAqIFNlbGVjdG9yRmFpbHNMb2NhbGx5ICAgICAt
IHRoZSBzZWxlY3RvciBmYWlscyBmb3IgdGhlIGVsZW1lbnQgZQogLy8gKiBTZWxlY3RvckZhaWxz
QWxsU2libGluZ3MgLSB0aGUgc2VsZWN0b3IgZmFpbHMgZm9yIGUgYW5kIGFueSBzaWJsaW5nIG9m
IGUKIC8vICogU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkgIC0gdGhlIHNlbGVjdG9yIGZhaWxzIGZv
ciBlIGFuZCBhbnkgc2libGluZyBvciBhbmNlc3RvciBvZiBlCi1TZWxlY3RvckNoZWNrZXI6OlNl
bGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9y
Q2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbykgY29uc3QK
K1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2ggU2VsZWN0b3JDaGVja2VyOjptYXRjaChjb25zdCBTZWxl
Y3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8pIGNv
bnN0CiB7CiAgICAgLy8gZmlyc3Qgc2VsZWN0b3IgaGFzIHRvIG1hdGNoCi0gICAgaWYgKCFjaGVj
a09uZVNlbGVjdG9yKGNvbnRleHQsIERPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSgpKSkKKyAg
ICBpZiAoIWNoZWNrT25lKGNvbnRleHQsIERPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSgpKSkK
ICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNMb2NhbGx5OwogCiAgICAgaWYgKGNvbnRleHQu
c2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKQEAgLTMx
MSw3ICszMTEsNyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVj
a2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICBuZXh0Q29udGV4
dC5lbGVtZW50U3R5bGUgPSAwOwogICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50UGFyZW50U3R5
bGUgPSAwOwogICAgICAgICBmb3IgKDsgbmV4dENvbnRleHQuZWxlbWVudDsgbmV4dENvbnRleHQu
ZWxlbWVudCA9IG5leHRDb250ZXh0LmVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSkgewotICAgICAg
ICAgICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3IobmV4dENvbnRleHQsIGln
bm9yZUR5bmFtaWNQc2V1ZG8pOworICAgICAgICAgICAgTWF0Y2ggbWF0Y2ggPSB0aGlzLT5tYXRj
aChuZXh0Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CiAgICAgICAgICAgICBpZiAobWF0
Y2ggPT0gU2VsZWN0b3JNYXRjaGVzIHx8IG1hdGNoID09IFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5
KQogICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICAgICAgIGlmIChuZXh0Q29u
dGV4dC5lbGVtZW50ID09IG5leHRDb250ZXh0LnNjb3BlKQpAQCAtMzI2LDcgKzMyNiw3IEBAIFNl
bGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0
b3IoY29uc3QgU2VsZWN0b3JDaGVjCiAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3Ig
PSBmYWxzZTsKICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudFN0eWxlID0gMDsKICAgICAgICAg
bmV4dENvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gMDsKLSAgICAgICAgcmV0dXJuIGNoZWNr
U2VsZWN0b3IobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pOworICAgICAgICByZXR1
cm4gbWF0Y2gobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pOwogCiAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQ6CiAgICAgICAgIGlmIChtX21vZGUgPT0gUmVzb2x2
aW5nU3R5bGUpIHsKQEAgLTMzOSw3ICszMzksNyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9y
TWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwog
ICAgICAgICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0gZmFsc2U7CiAgICAgICAgIG5leHRD
b250ZXh0LmVsZW1lbnRTdHlsZSA9IDA7CiAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnRQYXJl
bnRTdHlsZSA9IDA7Ci0gICAgICAgIHJldHVybiBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBp
Z25vcmVEeW5hbWljUHNldWRvKTsKKyAgICAgICAgcmV0dXJuIG1hdGNoKG5leHRDb250ZXh0LCBp
Z25vcmVEeW5hbWljUHNldWRvKTsKIAogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRq
YWNlbnQ6CiAgICAgICAgIGlmIChtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHsKQEAgLTM1MSw3
ICszNTEsNyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2Vy
OjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICBuZXh0Q29udGV4dC5l
bGVtZW50U3R5bGUgPSAwOwogICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50UGFyZW50U3R5bGUg
PSAwOwogICAgICAgICBmb3IgKDsgbmV4dENvbnRleHQuZWxlbWVudDsgbmV4dENvbnRleHQuZWxl
bWVudCA9IG5leHRDb250ZXh0LmVsZW1lbnQtPnByZXZpb3VzRWxlbWVudFNpYmxpbmcoKSkgewot
ICAgICAgICAgICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3IobmV4dENvbnRl
eHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pOworICAgICAgICAgICAgTWF0Y2ggbWF0Y2ggPSB0aGlz
LT5tYXRjaChuZXh0Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CiAgICAgICAgICAgICBp
ZiAobWF0Y2ggPT0gU2VsZWN0b3JNYXRjaGVzIHx8IG1hdGNoID09IFNlbGVjdG9yRmFpbHNBbGxT
aWJsaW5ncyB8fCBtYXRjaCA9PSBTZWxlY3RvckZhaWxzQ29tcGxldGVseSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gbWF0Y2g7CiAgICAgICAgIH07CkBAIC0zNjgsNyArMzY4LDcgQEAgU2VsZWN0
b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihj
b25zdCBTZWxlY3RvckNoZWMKICAgICAgICAgICAgICYmICEobmV4dENvbnRleHQuaGFzU2Nyb2xs
YmFyUHNldWRvICYmIG5leHRDb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzcykpCiAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRl
bHk7CiAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICBy
ZXR1cm4gY2hlY2tTZWxlY3RvcihuZXh0Q29udGV4dCwgZHluYW1pY1BzZXVkbyk7CisgICAgICAg
IHJldHVybiBtYXRjaChuZXh0Q29udGV4dCwgZHluYW1pY1BzZXVkbyk7CiAKICAgICBjYXNlIENT
U1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgogICAgICAgICB7CkBAIC0zODIsNyArMzgyLDcg
QEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tT
ZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWMKICAgICAgICAgICAgIG5leHRDb250ZXh0LmlzU3Vi
U2VsZWN0b3IgPSBmYWxzZTsKICAgICAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnRTdHlsZSA9
IDA7CiAgICAgICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50UGFyZW50U3R5bGUgPSAwOwotICAg
ICAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQ
c2V1ZG8pOworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKG5leHRDb250ZXh0LCBpZ25vcmVEeW5h
bWljUHNldWRvKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNTM3LDcgKzUzNyw3IEBAIHN0YXRp
YyBib29sIGFueUF0dHJpYnV0ZU1hdGNoZXMoRWxlbWVudCogZWxlbWVudCwgQ1NTU2VsZWN0b3I6
Ok1hdGNoIG1hdGNoLCBjb25zCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFNpYmxpbmdUcmF2ZXJz
YWxTdHJhdGVneT4KLWJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0
IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaWJsaW5nVHJhdmVyc2Fs
U3RyYXRlZ3kmIHNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSkgY29uc3QKK2Jvb2wgU2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5JiBzaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3kp
IGNvbnN0CiB7CiAgICAgRWxlbWVudCogY29uc3QgJiBlbGVtZW50ID0gY29udGV4dC5lbGVtZW50
OwogICAgIENTU1NlbGVjdG9yKiBjb25zdCAmIHNlbGVjdG9yID0gY29udGV4dC5zZWxlY3RvcjsK
QEAgLTU4NCw3ICs1ODQsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rv
cihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICAgICAg
ICAgIC8vIFdlIHNlbGVjdCBiZXR3ZWVuIDp2aXNpdGVkIGFuZCA6bGluayB3aGVuIGFwcGx5aW5n
LiBXZSBkb24ndCBrbm93IHdoaWNoIG9uZSBhcHBsaWVkIChvciBub3QpIHlldC4KICAgICAgICAg
ICAgICAgICBpZiAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9WaXNpdGVkIHx8IChzdWJDb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbmsgJiYgc3ViQ29udGV4dC52aXNpdGVkTWF0Y2hUeXBl
ID09IFZpc2l0ZWRNYXRjaEVuYWJsZWQpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBpZiAoIWNoZWNrT25lU2VsZWN0b3Ioc3ViQ29udGV4dCwgRE9N
U2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5KCkpKQorICAgICAgICAgICAgICAgIGlmICghY2hlY2tP
bmUoc3ViQ29udGV4dCwgRE9NU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5KCkpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlm
IChjb250ZXh0Lmhhc1Njcm9sbGJhclBzZXVkbykgewpAQCAtNzY1LDcgKzc2NSw3IEBAIGJvb2wg
U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdD
b250ZXh0JiBjb250ZXh0LCBjCiAgICAgICAgICAgICAgICAgc3ViQ29udGV4dC5pc1N1YlNlbGVj
dG9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBQc2V1ZG9JZCBpZ25vcmVEeW5hbWljUHNldWRv
ID0gTk9QU0VVRE87CiAgICAgICAgICAgICAgICAgZm9yIChzdWJDb250ZXh0LnNlbGVjdG9yID0g
c2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOyBzdWJDb250ZXh0LnNlbGVjdG9yOyBz
dWJDb250ZXh0LnNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YkNvbnRleHQuc2Vs
ZWN0b3IpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1NlbGVjdG9yKHN1YkNvbnRl
eHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pID09IFNlbGVjdG9yTWF0Y2hlcykKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG1hdGNoKHN1YkNvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pID09IFNl
bGVjdG9yTWF0Y2hlcykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTk3NCw3ICs5NzQsNyBAQCBib29sIFNl
bGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29u
dGV4dCYgY29udGV4dCwgYwogICAgICAgICBQc2V1ZG9JZCBpZ25vcmVEeW5hbWljUHNldWRvID0g
Tk9QU0VVRE87CiAgICAgICAgIENTU1NlbGVjdG9yKiBjb25zdCAmIHNlbGVjdG9yID0gY29udGV4
dC5zZWxlY3RvcjsKICAgICAgICAgZm9yIChzdWJDb250ZXh0LnNlbGVjdG9yID0gc2VsZWN0b3It
PnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOyBzdWJDb250ZXh0LnNlbGVjdG9yOyBzdWJDb250ZXh0
LnNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YkNvbnRleHQuc2VsZWN0b3IpKSB7
Ci0gICAgICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihzdWJDb250ZXh0LCBpZ25vcmVEeW5hbWlj
UHNldWRvKSA9PSBTZWxlY3Rvck1hdGNoZXMpCisgICAgICAgICAgICBpZiAobWF0Y2goc3ViQ29u
dGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbykgPT0gU2VsZWN0b3JNYXRjaGVzKQogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTExMzMsNiArMTEzMyw2IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjppc0ZyYW1lRm9jdXNlZChj
b25zdCBFbGVtZW50KiBlbGVtZW50KQogfQogCiB0ZW1wbGF0ZQotYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNr
aW5nQ29udGV4dCYsIGNvbnN0IFNoYWRvd0RPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSYpIGNv
bnN0OworYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tl
cjo6U2VsZWN0b3JDaGVja2luZ0NvbnRleHQmLCBjb25zdCBTaGFkb3dET01TaWJsaW5nVHJhdmVy
c2FsU3RyYXRlZ3kmKSBjb25zdDsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5o
CmluZGV4IDMzMTkzZjc2YmMzMjgyNmFkMGQzZWU2MTQ1MTViOWJhYzVkMjUyMGIuLjJhOTdmYzhj
NjJjYzJhYWM0NTYzNjc2YjAwMTYyOGZjNDZlNDMxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0
b3JDaGVja2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgU2VsZWN0b3JDaGVja2VyIHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBTZWxlY3RvckNoZWNrZXIoRG9jdW1lbnQqKTsKIAotICAgIGVu
dW0gU2VsZWN0b3JNYXRjaCB7IFNlbGVjdG9yTWF0Y2hlcywgU2VsZWN0b3JGYWlsc0xvY2FsbHks
IFNlbGVjdG9yRmFpbHNBbGxTaWJsaW5ncywgU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkgfTsKKyAg
ICBlbnVtIE1hdGNoIHsgU2VsZWN0b3JNYXRjaGVzLCBTZWxlY3RvckZhaWxzTG9jYWxseSwgU2Vs
ZWN0b3JGYWlsc0FsbFNpYmxpbmdzLCBTZWxlY3RvckZhaWxzQ29tcGxldGVseSB9OwogICAgIGVu
dW0gVmlzaXRlZE1hdGNoVHlwZSB7IFZpc2l0ZWRNYXRjaERpc2FibGVkLCBWaXNpdGVkTWF0Y2hF
bmFibGVkIH07CiAgICAgZW51bSBNb2RlIHsgUmVzb2x2aW5nU3R5bGUgPSAwLCBDb2xsZWN0aW5n
UnVsZXMsIFF1ZXJ5aW5nUnVsZXMsIFNoYXJpbmdSdWxlcyB9OwogCkBAIC03NywxMyArNzcsMTMg
QEAgcHVibGljOgogICAgICAgICBib29sIGhhc1NlbGVjdGlvblBzZXVkbzsKICAgICB9OwogCi0g
ICAgYm9vbCBjaGVja1NlbGVjdG9yKENTU1NlbGVjdG9yKiwgRWxlbWVudCosIGJvb2wgaXNGYXN0
Q2hlY2thYmxlU2VsZWN0b3IgPSBmYWxzZSkgY29uc3Q7Ci0gICAgU2VsZWN0b3JNYXRjaCBjaGVj
a1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgUHNldWRvSWQmKSBjb25z
dDsKKyAgICBib29sIG1hdGNoZXMoQ1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgYm9vbCBpc0Zhc3RD
aGVja2FibGVTZWxlY3RvciA9IGZhbHNlKSBjb25zdDsKKyAgICBNYXRjaCBtYXRjaChjb25zdCBT
ZWxlY3RvckNoZWNraW5nQ29udGV4dCYsIFBzZXVkb0lkJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5PgotICAgIGJvb2wgY2hlY2tPbmVTZWxl
Y3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYsIGNvbnN0IFNpYmxpbmdUcmF2ZXJz
YWxTdHJhdGVneSYpIGNvbnN0OworICAgIGJvb2wgY2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVj
a2luZ0NvbnRleHQmLCBjb25zdCBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3kmKSBjb25zdDsKIAog
ICAgIHN0YXRpYyBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9y
Kik7Ci0gICAgYm9vbCBmYXN0Q2hlY2tTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciosIGNvbnN0
IEVsZW1lbnQqKSBjb25zdDsKKyAgICBib29sIGZhc3RDaGVjayhjb25zdCBDU1NTZWxlY3Rvcios
IGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKIAogICAgIGJvb2wgc3RyaWN0UGFyc2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fc3RyaWN0UGFyc2luZzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggMDk4ZTBkNTdjMGI3ZTFkNzRlZDE1MDhmN2U5MDBkNTE2YzJlOTcwZC4uODE0
MWJmOWM3ZTQyMTk3ZTEzNGQ0MDU1ZjRmMzYyZWRmNzNjYzA4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcApAQCAtODU3LDcgKzg1Nyw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVz
LCBpCiAKICAgICAgICAgU3R5bGVSdWxlKiBydWxlID0gcnVsZURhdGEucnVsZSgpOwogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsTWF0Y2hSdWxlKGRvY3VtZW50KCksIHJ1bGUsIHRoaXMpOwotICAgICAg
ICBpZiAoY2hlY2tTZWxlY3RvcihydWxlRGF0YSwgb3B0aW9ucy5zY29wZSkpIHsKKyAgICAgICAg
aWYgKHJ1bGVNYXRjaGVzKHJ1bGVEYXRhLCBvcHRpb25zLnNjb3BlKSkgewogICAgICAgICAgICAg
Ly8gSWYgdGhlIHJ1bGUgaGFzIG5vIHByb3BlcnRpZXMgdG8gYXBwbHksIHRoZW4gaWdub3JlIGl0
IGluIHRoZSBub24tZGVidWcgbW9kZS4KICAgICAgICAgICAgIGNvbnN0IFN0eWxlUHJvcGVydHlT
ZXQqIHByb3BlcnRpZXMgPSBydWxlLT5wcm9wZXJ0aWVzKCk7CiAgICAgICAgICAgICBpZiAoIXBy
b3BlcnRpZXMgfHwgKHByb3BlcnRpZXMtPmlzRW1wdHkoKSAmJiAhb3B0aW9ucy5pbmNsdWRlRW1w
dHlSdWxlcykpIHsKQEAgLTIyMzgsNyArMjIzOCw3IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+
IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBz
CiAgICAgcmV0dXJuIG1fcnVsZUxpc3QucmVsZWFzZSgpOwogfQogCi1pbmxpbmUgYm9vbCBTdHls
ZVJlc29sdmVyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUpCitpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVyOjpydWxlTWF0
Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3Bl
KQogewogICAgIG1fZHluYW1pY1BzZXVkbyA9IE5PUFNFVURPOwogCkBAIC0yMjU1LDcgKzIyNTUs
NyBAQCBpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVE
YXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFpbgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICBpZiAoIVNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRtb3N0QXR0cmlidXRl
U2VsZWN0b3IobV9lbGVtZW50LCBydWxlRGF0YS5zZWxlY3RvcigpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIG1fc2VsZWN0b3JDaGVja2VyLmZhc3RDaGVja1Nl
bGVjdG9yKHJ1bGVEYXRhLnNlbGVjdG9yKCksIG1fZWxlbWVudCk7CisgICAgICAgIHJldHVybiBt
X3NlbGVjdG9yQ2hlY2tlci5mYXN0Q2hlY2socnVsZURhdGEuc2VsZWN0b3IoKSwgbV9lbGVtZW50
KTsKICAgICB9CiAKICAgICAvLyBTbG93IHBhdGguCkBAIC0yMjY0LDcgKzIyNjQsNyBAQCBpbmxp
bmUgYm9vbCBTdHlsZVJlc29sdmVyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiBydWxl
RGF0YSwgY29uc3QgQ29udGFpbgogICAgIGNvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gbV9w
YXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsKICAgICBjb250ZXh0
LnNjb3BlID0gc2NvcGU7CiAgICAgY29udGV4dC5wc2V1ZG9TdHlsZSA9IG1fcHNldWRvU3R5bGU7
Ci0gICAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIG1hdGNoID0gbV9zZWxlY3RvckNo
ZWNrZXIuY2hlY2tTZWxlY3Rvcihjb250ZXh0LCBtX2R5bmFtaWNQc2V1ZG8pOworICAgIFNlbGVj
dG9yQ2hlY2tlcjo6TWF0Y2ggbWF0Y2ggPSBtX3NlbGVjdG9yQ2hlY2tlci5tYXRjaChjb250ZXh0
LCBtX2R5bmFtaWNQc2V1ZG8pOwogICAgIGlmIChtYXRjaCAhPSBTZWxlY3RvckNoZWNrZXI6OlNl
bGVjdG9yTWF0Y2hlcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX3BzZXVkb1N0
eWxlICE9IE5PUFNFVURPICYmIG1fcHNldWRvU3R5bGUgIT0gbV9keW5hbWljUHNldWRvKQpAQCAt
MjI4MCw3ICsyMjgwLDcgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjaGVja1JlZ2lvblNlbGVjdG9y
KENTU1NlbGVjdG9yKiByZWdpb25TZWxlY3RvciwgRWxlbWVudCogcmUKICAgICBtX3BzZXVkb1N0
eWxlID0gTk9QU0VVRE87CiAKICAgICBmb3IgKENTU1NlbGVjdG9yKiBzID0gcmVnaW9uU2VsZWN0
b3I7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQocykpCi0gICAgICAgIGlmIChtX3NlbGVj
dG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKHMsIHJlZ2lvbkVsZW1lbnQpKQorICAgICAgICBpZiAo
bV9zZWxlY3RvckNoZWNrZXIubWF0Y2hlcyhzLCByZWdpb25FbGVtZW50KSkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKaW5kZXggNWJkMjk0MGU1N2YyOTgyMWZlNjEzZWEwZThhMzliZmRmYjg4ZDA3ZC4uMzc1
MGE1ZGY1OWU1NmM4MzdkZjJiYjRhM2QzMGJkMWJlYTg3MDJmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCkBAIC0zNjUsNyArMzY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNvcnRN
YXRjaGVkUnVsZXMoKTsKICAgICB2b2lkIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyhNYXRj
aFJlc3VsdCYpOwogCi0gICAgYm9vbCBjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiwgY29u
c3QgQ29udGFpbmVyTm9kZSogc2NvcGUpOworICAgIGJvb2wgcnVsZU1hdGNoZXMoY29uc3QgUnVs
ZURhdGEmLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSk7CiAgICAgYm9vbCBjaGVja1JlZ2lv
blNlbGVjdG9yKENTU1NlbGVjdG9yKiByZWdpb25TZWxlY3RvciwgRWxlbWVudCogcmVnaW9uRWxl
bWVudCk7CiAgICAgdm9pZCBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0
JiwgY29uc3QgRWxlbWVudCopOwogICAgIGVudW0gU3R5bGVBcHBsaWNhdGlvblBhc3MgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IGE5ZDY2ZjVhZjcwOWRjZTU5YzA1NmE5
YTMwMTFiODZmMTdkZDNhMDQuLjU4NzgyZmI0YzIyNmUwN2JhM2VjY2M4YWYwYjg0MGM1N2RmYmFj
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAg
Ym9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKGNvbnN0IFNlbGVjdG9yQ2hlY2tlciYgc2Vs
ZWN0b3JDaGVja2VyLCBFbGVtZW50KgogCiAgICAgdW5zaWduZWQgc2VsZWN0b3JDb3VudCA9IG1f
c2VsZWN0b3JzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0b3JD
b3VudDsgKytpKSB7Ci0gICAgICAgIGlmIChzZWxlY3RvckNoZWNrZXIuY2hlY2tTZWxlY3Rvciht
X3NlbGVjdG9yc1tpXS5zZWxlY3RvciwgdGFyZ2V0RWxlbWVudCwgbV9zZWxlY3RvcnNbaV0uaXNG
YXN0Q2hlY2thYmxlKSkKKyAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlci5tYXRjaGVzKG1fc2Vs
ZWN0b3JzW2ldLnNlbGVjdG9yLCB0YXJnZXRFbGVtZW50LCBtX3NlbGVjdG9yc1tpXS5pc0Zhc3RD
aGVja2FibGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xMTEsNyAr
MTExLDcgQEAgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlKGNvbnN0IFNlbGVjdG9yQ2hl
Y2tlciYgc2VsZWN0b3JDaGVja2VyLCBOb2RlKiByb28KICAgICAgICAgRWxlbWVudCogZWxlbWVu
dCA9IHJvb3ROb2RlLT50cmVlU2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoc2VsZWN0b3ItPnZhbHVl
KCkpOwogICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIShpc1RyZWVTY29wZVJvb3Qocm9vdE5vZGUp
IHx8IGVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKHJvb3ROb2RlKSkpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGlmIChzZWxlY3RvckNoZWNrZXIuY2hlY2tTZWxlY3RvcihtX3NlbGVjdG9y
c1swXS5zZWxlY3RvciwgZWxlbWVudCwgbV9zZWxlY3RvcnNbMF0uaXNGYXN0Q2hlY2thYmxlKSkK
KyAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlci5tYXRjaGVzKG1fc2VsZWN0b3JzWzBdLnNlbGVj
dG9yLCBlbGVtZW50LCBtX3NlbGVjdG9yc1swXS5pc0Zhc3RDaGVja2FibGUpKQogICAgICAgICAg
ICAgbWF0Y2hlZEVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoY29u
c3QgU2VsZWN0b3JDaGVja2VyJiBzZWxlY3RvckNoZWNrZXIsIE5vZGUqIHJvbwogICAgICAgICBp
ZiAobi0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAgICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0g
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNlbGVjdG9yQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rv
ckNoZWNrZXIuY2hlY2tTZWxlY3RvcihtX3NlbGVjdG9yc1tpXS5zZWxlY3RvciwgZWxlbWVudCwg
bV9zZWxlY3RvcnNbaV0uaXNGYXN0Q2hlY2thYmxlKSkgeworICAgICAgICAgICAgICAgIGlmIChz
ZWxlY3RvckNoZWNrZXIubWF0Y2hlcyhtX3NlbGVjdG9yc1tpXS5zZWxlY3RvciwgZWxlbWVudCwg
bV9zZWxlY3RvcnNbaV0uaXNGYXN0Q2hlY2thYmxlKSkgewogICAgICAgICAgICAgICAgICAgICBt
YXRjaGVkRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
Zmlyc3RNYXRjaE9ubHkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKaW5k
ZXggNTczZmY1NWYyZDc2YTFhMjNlYjA2YzFmYTJiNmVmMmEwNGNjNjliZC4uMGNhYjMxMjhkZDA1
NWM2MjM3MjgzMzY0OTc2ZTg1MGNiNzQ1ZGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBi
b29sIENvbnRlbnRTZWxlY3RvckNoZWNrZXI6OmNoZWNrQ29udGVudFNlbGVjdG9yKENTU1NlbGVj
dG9yKiBzZWxlY3RvciwgY29uc3QgVgogewogICAgIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JD
aGVja2luZ0NvbnRleHQgY29udGV4dChzZWxlY3RvciwgdG9FbGVtZW50KHNpYmxpbmdzW250aF0u
Z2V0KCkpLCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaEVuYWJsZWQpOwogICAgIFNoYWRv
d0RPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSBzdHJhdGVneShzaWJsaW5ncywgbnRoKTsKLSAg
ICByZXR1cm4gbV9zZWxlY3RvckNoZWNrZXIuY2hlY2tPbmVTZWxlY3Rvcihjb250ZXh0LCBzdHJh
dGVneSk7CisgICAgcmV0dXJuIG1fc2VsZWN0b3JDaGVja2VyLmNoZWNrT25lKGNvbnRleHQsIHN0
cmF0ZWd5KTsKIH0KIAogdm9pZCBDb250ZW50U2VsZWN0b3JEYXRhTGlzdDo6aW5pdGlhbGl6ZShj
b25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykK
</data>

          </attachment>
      

    </bug>

</bugzilla>