<?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>95957</bug_id>
          
          <creation_ts>2012-09-06 02:42:38 -0700</creation_ts>
          <short_desc>Web Inspector: NMI: switch to hierarchical identifiers of MemoryBlockTypes and use these identifiers in protocol.</short_desc>
          <delta_ts>2012-09-06 08:43:05 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95988</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>713082</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 02:42:38 -0700</bug_when>
    <thetext>EOM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713095</commentid>
    <comment_count>1</comment_count>
      <attachid>162459</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 02:56:26 -0700</bug_when>
    <thetext>Created attachment 162459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713192</commentid>
    <comment_count>2</comment_count>
      <attachid>162459</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-06 05:32:23 -0700</bug_when>
    <thetext>Comment on attachment 162459
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.cpp:40
&gt; +MemoryObjectType GenericMemoryTypes::OwnersTypePlaceholder = &quot;OwnersTypePlaceholder&quot;;

The new name is too verbose and still sounds unclear to me, I&apos;d rather leave it as Other or passed 0 where the Other is used since we should never report types with such type anyways.

&gt; Source/WebCore/dom/MemoryInstrumentation.cpp:42
&gt; +MemoryObjectType WebCoreMemoryTypes::DOMTree = &quot;DOMTree&quot;;

DOMTree -&gt; Page ?

&gt; Source/WebCore/dom/MemoryInstrumentation.cpp:50
&gt; +MemoryObjectType WebCoreMemoryTypes::CachedResource = &quot;MemoryCache.RawResource&quot;;

CachedResource -&gt; CachedResourceRaw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713203</commentid>
    <comment_count>3</comment_count>
      <attachid>162486</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 05:52:43 -0700</bug_when>
    <thetext>Created attachment 162486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713206</commentid>
    <comment_count>4</comment_count>
      <attachid>162487</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 06:01:11 -0700</bug_when>
    <thetext>Created attachment 162487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713221</commentid>
    <comment_count>5</comment_count>
      <attachid>162487</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-06 06:16:39 -0700</bug_when>
    <thetext>Comment on attachment 162487
Patch

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

&gt; Source/WebCore/loader/cache/CachedResource.cpp:806
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, GenericMemoryTypes::Undefined);

There may be instances of the CachedResource class(that are not descendants).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713223</commentid>
    <comment_count>6</comment_count>
      <attachid>162489</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 06:19:31 -0700</bug_when>
    <thetext>Created attachment 162489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713233</commentid>
    <comment_count>7</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 06:23:18 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 162487 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162487&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:806
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, GenericMemoryTypes::Undefined);
&gt; 
&gt; There may be instances of the CachedResource class(that are not descendants).

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713268</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 07:25:28 -0700</bug_when>
    <thetext>Committed r127738: &lt;http://trac.webkit.org/changeset/127738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713315</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-06 08:27:35 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r127738: &lt;http://trac.webkit.org/changeset/127738&gt;

It caused a regression - https://bugs.webkit.org/show_bug.cgi?id=95988
Could you check it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713328</commentid>
    <comment_count>10</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-06 08:43:05 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Committed r127738: &lt;http://trac.webkit.org/changeset/127738&gt;
&gt; 
&gt; It caused a regression - https://bugs.webkit.org/show_bug.cgi?id=95988
&gt; Could you check it, please?

the fix is landed as r127744</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162459</attachid>
            <date>2012-09-06 02:56:26 -0700</date>
            <delta_ts>2012-09-06 05:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95957-20120906135606.patch</filename>
            <type>text/plain</type>
            <size>17419</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY5YzgwOWMyNjM3ZjI3
NThhNmZhNGNmNjRlZjZkNjJjN2FmYTg0NC4uZDhiNzU4MDdiNjUxM2NjZTZkNGQ3MjhlYjkyOGE3
ZDk1ZWIwMDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTA2ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUk6IHN3aXRjaCB0byBoaWVyYXJjaGljYWwgaWRlbnRpZmllcnMgb2YgTWVtb3J5Qmxv
Y2tUeXBlcyBhbmQgdXNlIHRoZXNlIGlkZW50aWZpZXJzIGluIHByb3RvY29sLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgd2hlbiB3ZSB1c2Ugc3Ry
aW5nIGlkZW50aWZpZXJzIGFzIE1lbW9yeU9iamVjdFR5cGUgd2UgY2FuIHVzZSB0aGVtIGFzIHRo
ZSBpZGVudGlmaWVycyBmb3IgdGhlIHByb3RvY29sCisgICAgICAgIGluc3RlYWQgb2YgTWVtb3J5
QmxvY2tOYW1lcyBoYXJkY29kZWQgaW4gSW5zcGVjdG9yTWVtb3J5QWdlbnQuLgorICAgICAgICBB
dCBhIGxhdGVyIHN0YWdlLCB3aGVuIGVhY2ggdHlwZSBvZiBtZW1vcnkgd2lsbCBiZSBjb3VudGVk
IGluIE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9j
a3MgaGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9NZW1vcnlJbnN0cnVt
ZW50YXRpb24uaDoKKyAgICAgICAgKEdlbmVyaWNNZW1vcnlUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJvb3RPYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5T2JqZWN0SW5mbzo6cmVwb3J0T2JqZWN0SW5mbyk6CisgICAgICAgIChXZWJD
b3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHA6CisgICAgICAgIChNZW1vcnlCbG9ja05hbWUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5faW5pdGlh
bGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTA1ICBB
bmRyZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFByb3RvY29sIEV4dGVuc2lvbjogQWRkICJyZWdpb25MYXlvdXRVcGRhdGUiIGV2ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIwODBhZTUyMjFiOWQ2YjU3ZWQ3OTA3ZDY0NGNm
MDJjOGUwNWJiMDguLjNhZjBiMDA1NTdjMGNhNGFkNGIzNzZjY2ZjZjY3ZTU4Yzc4YTY5M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMDYgIEls
eWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IE5NSTogc3dpdGNoIHRvIGhpZXJhcmNoaWNhbCBpZGVudGlmaWVycyBvZiBNZW1vcnlC
bG9ja1R5cGVzIGFuZCB1c2UgdGhlc2UgaWRlbnRpZmllcnMgaW4gcHJvdG9jb2wuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB3aGVuIHdlIHVzZSBz
dHJpbmcgaWRlbnRpZmllcnMgYXMgTWVtb3J5T2JqZWN0VHlwZSB3ZSBjYW4gdXNlIHRoZW0gYXMg
dGhlIGlkZW50aWZpZXJzIGZvciB0aGUgcHJvdG9jb2wKKyAgICAgICAgaW5zdGVhZCBvZiBNZW1v
cnlCbG9ja05hbWVzIGhhcmRjb2RlZCBpbiBJbnNwZWN0b3JNZW1vcnlBZ2VudC4uCisgICAgICAg
IEF0IGEgbGF0ZXIgc3RhZ2UsIHdoZW4gZWFjaCBtZW1vcnkgdHlwZSBpcyBjb3VudGVkIGluIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9ja3MgaGll
cmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAgKiB0ZXN0
cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Ry
dW1lbnRlZE90aGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMDUgIERhbmEgSmFu
c2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYSBj
b3B5KCkgbWV0aG9kIHRvIENDRHJhd1F1YWQgYW5kIENDU2hhcmVkUXVhZFN0YXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg3NDY1ZGQzYzcy
OTUzMWQ5YTEyNTIzNzIwZWJhNGJkMDgxOWRlMzguLmI5ZTI3ZDNmMTE2OTI0MWE0MmJlMmFkZTdl
ZTE5NzlkYmI1ZTg1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC0zNywyMSArMzcsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1N
ZW1vcnlPYmplY3RUeXBlIEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIgPSAiT3RoZXIiOworTWVt
b3J5T2JqZWN0VHlwZSBHZW5lcmljTWVtb3J5VHlwZXM6Ok93bmVyc1R5cGVQbGFjZWhvbGRlciA9
ICJPd25lcnNUeXBlUGxhY2Vob2xkZXIiOwogCi1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6RE9NID0gIkRPTSI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBl
czo6Q1NTID0gIkNTUyI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Qmlu
ZGluZyA9ICJCaW5kaW5nIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpM
b2FkZXIgPSAiTG9hZGVyIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpN
ZW1vcnlDYWNoZVN0cnVjdHVyZXMgPSAiTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzIjsKLU1lbW9yeU9i
amVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSA9ICJDYWNoZWRSZXNv
dXJjZSI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3Vy
Y2VDU1MgPSAiQ2FjaGVkUmVzb3VyY2VDU1MiOwotTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNhY2hlZFJlc291cmNlRm9udCA9ICJDYWNoZWRSZXNvdXJjZUZvbnQiOwotTWVt
b3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlSW1hZ2UgPSAi
Q2FjaGVkUmVzb3VyY2VJbWFnZSI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBl
czo6Q2FjaGVkUmVzb3VyY2VTY3JpcHQgPSAiQ2FjaGVkUmVzb3VyY2VTY3JpcHQiOwotTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU1ZHID0gIkNhY2hl
ZFJlc291cmNlU1ZHIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNo
ZWRSZXNvdXJjZVNoYWRlciA9ICJDYWNoZWRSZXNvdXJjZVNoYWRlciI7Ci1NZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VYU0xUID0gIkNhY2hlZFJlc291
cmNlWFNMVCI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NVHJlZSA9
ICJET01UcmVlIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAi
RE9NVHJlZS5ET00iOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyA9
ICJET01UcmVlLkNTUyI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Qmlu
ZGluZyA9ICJET01UcmVlLkJpbmRpbmciOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5
VHlwZXM6OkxvYWRlciA9ICJET01UcmVlLkxvYWRlciI7CisKK01lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZSA9ICJNZW1vcnlDYWNoZSI7CitNZW1vcnlPYmpl
Y3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzID0gIk1lbW9y
eUNhY2hlLkludGVybmFsU3RydWN0dXJlcyI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6Q2FjaGVkUmVzb3VyY2UgPSAiTWVtb3J5Q2FjaGUuUmF3UmVzb3VyY2UiOworTWVt
b3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlQ1NTID0gIk1l
bW9yeUNhY2hlLkNTUyI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2VGb250ID0gIk1lbW9yeUNhY2hlLkZvbnQiOworTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlSW1hZ2UgPSAiTWVtb3J5Q2FjaGUuSW1h
Z2UiOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNl
U2NyaXB0ID0gIk1lbW9yeUNhY2hlLlNjcmlwdCI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVN
ZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VTVkcgPSAiTWVtb3J5Q2FjaGUuU1ZHIjsKK01lbW9y
eU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNoYWRlciA9ICJN
ZW1vcnlDYWNoZS5TaGFkZXIiOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6
OkNhY2hlZFJlc291cmNlWFNMVCA9ICJNZW1vcnlDYWNoZS5YU0xUIjsKIAogdGVtcGxhdGU8PiB2
b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PFN0
cmluZz4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFN0cmlu
ZyogY29uc3QmIHN0cmluZywgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9y
eU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0
cnVtZW50YXRpb24uaAppbmRleCA4MDIxYTA5MjgyNWRkMWE2ZmRhMjhjYjg3NmM4N2U4ZjU2Njgz
ZjI1Li5kMThhOTQ5NGM3YzNiYjM0NjU0YTNlYTU4YTFjYmExYzExZmRjMjRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00OSw3ICs0OSw3IEBAIHR5
cGVkZWYgY29uc3QgY2hhciogTWVtb3J5T2JqZWN0VHlwZTsKIAogY2xhc3MgR2VuZXJpY01lbW9y
eVR5cGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBPdGhlcjsKKyAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBPd25lcnNUeXBlUGxhY2Vob2xkZXI7CiB9OwogCiBl
bnVtIE1lbW9yeU93bmluZ1R5cGUgewpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFQmIHQpCiAgICAg
ewotICAgICAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3QodCwgR2VuZXJpY01lbW9yeVR5cGVzOjpP
dGhlcik7CisgICAgICAgIGFkZEluc3RydW1lbnRlZE9iamVjdCh0LCBHZW5lcmljTWVtb3J5VHlw
ZXM6Ok93bmVyc1R5cGVQbGFjZWhvbGRlcik7CiAgICAgICAgIHByb2Nlc3NEZWZlcnJlZEluc3Ry
dW1lbnRlZFBvaW50ZXJzKCk7CiAgICAgfQogCkBAIC0xODgsNyArMTg4LDcgQEAgcHJpdmF0ZToK
ICAgICB7CiAgICAgICAgIGlmICghbV9vYmplY3RTaXplKSB7CiAgICAgICAgICAgICBtX29iamVj
dFNpemUgPSBhY3R1YWxTaXplID8gYWN0dWFsU2l6ZSA6IHNpemVvZihUKTsKLSAgICAgICAgICAg
IGlmIChvYmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIpCisgICAgICAgICAg
ICBpZiAob2JqZWN0VHlwZSAhPSBHZW5lcmljTWVtb3J5VHlwZXM6Ok93bmVyc1R5cGVQbGFjZWhv
bGRlcikKICAgICAgICAgICAgICAgICBtX29iamVjdFR5cGUgPSBvYmplY3RUeXBlOwogICAgICAg
ICB9CiAgICAgfQpAQCAtNDA4LDEwICs0MDgsMTMgQEAgdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PGNvbnN0IEF0b21pY1N0cmluZz4oTWVtb3IK
IAogY2xhc3MgV2ViQ29yZU1lbW9yeVR5cGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgTWVtb3J5
T2JqZWN0VHlwZSBET01UcmVlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIERPTTsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBDU1M7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQmluZGluZzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisKKyAgICBz
dGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBNZW1vcnlDYWNoZTsKICAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBNZW1vcnlDYWNoZVN0cnVjdHVyZXM7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQ2FjaGVkUmVzb3VyY2U7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ2FjaGVkUmVz
b3VyY2VDU1M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9y
eUFnZW50LmNwcAppbmRleCA4MTBhODBhN2RiMDljNjMzMDg5OGNiNWI0ZDAzYzFlNDJkM2ViMzQy
Li45MDBlNTM5Y2ZjMzliNzM4NmRlNTgzNzQ1N2MwYzVlNzRkMmNmYmVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTgzLDI4
ICs4Myw5IEBAIHN0YXRpYyBjb25zdCBjaGFyIGluc3BlY3RvckRPTURhdGFbXSA9ICJJbnNwZWN0
b3JET01EYXRhIjsKIHN0YXRpYyBjb25zdCBjaGFyIGluc3BlY3RvckpTSGVhcERhdGFbXSA9ICJJ
bnNwZWN0b3JKU0hlYXBEYXRhIjsKIHN0YXRpYyBjb25zdCBjaGFyIHByb2Nlc3NQcml2YXRlTWVt
b3J5W10gPSAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiOwogCi1zdGF0aWMgY29uc3QgY2hhciBtZW1v
cnlDYWNoZVtdID0gIk1lbW9yeUNhY2hlIjsKLXN0YXRpYyBjb25zdCBjaGFyIG1lbW9yeUNhY2hl
U3RydWN0dXJlc1tdID0gIk1lbW9yeUNhY2hlU3RydWN0dXJlcyI7Ci1zdGF0aWMgY29uc3QgY2hh
ciBjYWNoZWRSZXNvdXJjZVtdID0gIkNhY2hlZFJlc291cmNlIjsKLXN0YXRpYyBjb25zdCBjaGFy
IGNhY2hlZFJlc291cmNlSW1hZ2VbXSA9ICJDYWNoZWRJbWFnZXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgY2FjaGVkUmVzb3VyY2VDU1NbXSA9ICJDYWNoZWRDc3NTdHlsZVNoZWV0cyI7Ci1zdGF0aWMg
Y29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVNjcmlwdFtdID0gIkNhY2hlZFNjcmlwdHMiOwotc3Rh
dGljIGNvbnN0IGNoYXIgY2FjaGVkUmVzb3VyY2VYU0xbXSA9ICJDYWNoZWRYc2xTdHlsZVNoZWV0
cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZUZvbnRbXSA9ICJDYWNoZWRGb250
cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVNWR1tdID0gIkNhY2hlZFNWR0dy
YXBoaWNzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlU2hhZGVyW10gPSAiQ2Fj
aGVkU2hhZGVycyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVhTTFRbXSA9ICJD
YWNoZWRTaGFkZXJzWFNMVCI7Ci0KIHN0YXRpYyBjb25zdCBjaGFyIHJlbmRlclRyZWVVc2VkW10g
PSAiUmVuZGVyVHJlZVVzZWQiOwogc3RhdGljIGNvbnN0IGNoYXIgcmVuZGVyVHJlZUFsbG9jYXRl
ZFtdID0gIlJlbmRlclRyZWVBbGxvY2F0ZWQiOwogCi1zdGF0aWMgY29uc3QgY2hhciBkb21bXSA9
ICJET00iOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZU90aGVyW10gPSAiRE9NVHJlZU90aGVy
IjsKLXN0YXRpYyBjb25zdCBjaGFyIGRvbVRyZWVET01bXSA9ICJET01UcmVlRE9NIjsKLXN0YXRp
YyBjb25zdCBjaGFyIGRvbVRyZWVDU1NbXSA9ICJET01UcmVlQ1NTIjsKLXN0YXRpYyBjb25zdCBj
aGFyIGRvbVRyZWVCaW5kaW5nW10gPSAiRE9NVHJlZUJpbmRpbmciOwotc3RhdGljIGNvbnN0IGNo
YXIgZG9tVHJlZUxvYWRlcltdID0gIkRPTVRyZWVMb2FkZXIiOwotCiBzdGF0aWMgY29uc3QgY2hh
ciBkb21TdG9yYWdlQ2FjaGVbXSA9ICJET01TdG9yYWdlQ2FjaGUiOwogfQogCkBAIC00NDAsMTQg
KzQyMSw2IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiByZW5kZXJU
cmVlSW5mbyhQYWdlKiBwYWdlKQogICAgIHJldHVybiByZW5kZXJUcmVlQWxsb2NhdGVkLnJlbGVh
c2UoKTsKIH0KIAotc3RhdGljIHNpemVfdCBhZGRNZW1vcnlCbG9ja0ZvcihUeXBlQnVpbGRlcjo6
QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBhcnJheSwgc2l6ZV90IHNpemUsIGNvbnN0IGNo
YXIqIG5hbWUpCi17Ci0gICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiByZXN1bHQgPSBJ
bnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShuYW1lKTsKLSAgICByZXN1bHQt
PnNldFNpemUoc2l6ZSk7Ci0gICAgYXJyYXktPmFkZEl0ZW0ocmVzdWx0KTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQogbmFtZXNwYWNlIHsKIAogY2xhc3MgRE9NVHJlZXNJdGVyYXRvciA6IHB1Ymxp
YyBOb2RlV3JhcHBlclZpc2l0b3IgewpAQCAtNDg2LDE3ICs0NTksMTcgQEAgcHVibGljOgogICAg
ICAgICBzaXplX3QgdG90YWxTaXplID0gMDsKIAogICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PEluc3BlY3Rvck1lbW9yeUJsb2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxkZXI6OkFy
cmF5PEluc3BlY3Rvck1lbW9yeUJsb2NrPjo6Y3JlYXRlKCk7Ci0gICAgICAgIHRvdGFsU2l6ZSAr
PSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRp
b24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzKSwg
TWVtb3J5QmxvY2tOYW1lOjptZW1vcnlDYWNoZVN0cnVjdHVyZXMpOwotICAgICAgICB0b3RhbFNp
emUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlKSwgTWVt
b3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZSk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRN
ZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90
YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VDU1MpLCBNZW1vcnlCbG9j
a05hbWU6OmNhY2hlZFJlc291cmNlQ1NTKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9y
eUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNp
emUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUZvbnQpLCBNZW1vcnlCbG9ja05h
bWU6OmNhY2hlZFJlc291cmNlRm9udCk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlC
bG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXpl
KFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSksIE1lbW9yeUJsb2NrTmFt
ZTo6Y2FjaGVkUmVzb3VyY2VJbWFnZSk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlC
bG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXpl
KFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VTY3JpcHQpLCBNZW1vcnlCbG9ja05h
bWU6OmNhY2hlZFJlc291cmNlU2NyaXB0KTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9y
eUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNp
emUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNWRyksIE1lbW9yeUJsb2NrTmFt
ZTo6Y2FjaGVkUmVzb3VyY2VTVkcpOwotICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5Qmxv
Y2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVyKSwgTWVtb3J5QmxvY2tOYW1l
OjpjYWNoZWRSZXNvdXJjZVNoYWRlcik7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlC
bG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXpl
KFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VYU0xUKSwgTWVtb3J5QmxvY2tOYW1l
OjpjYWNoZWRSZXNvdXJjZVhTTFQpOwotCi0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlC
bG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1v
cnlCbG9ja05hbWU6Om1lbW9yeUNhY2hlKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9y
eUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hl
U3RydWN0dXJlcyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGls
ZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSk7CisgICAgICAg
IHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1l
bW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUNTUyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRN
ZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRS
ZXNvdXJjZUZvbnQpOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hp
bGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSk7Cisg
ICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNjcmlwdCk7CisgICAgICAgIHRvdGFsU2l6
ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDYWNoZWRSZXNvdXJjZVNWRyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9j
a0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNo
YWRlcik7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5n
ZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVhTTFQpOworCisgICAgICAg
IFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JNZW1vcnlCbG9j
azo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlKTsKICAg
ICAgICAgYmxvY2stPnNldFNpemUodG90YWxTaXplKTsKICAgICAgICAgYmxvY2stPnNldENoaWxk
cmVuKGNoaWxkcmVuLnJlbGVhc2UoKSk7CiAgICAgICAgIHJldHVybiBibG9jay5yZWxlYXNlKCk7
CkBAIC01MDcsMTMgKzQ4MCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHNpemVfdCB0b3RhbFNpemUg
PSAwOwogCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5
QmxvY2s+ID4gZG9tQ2hpbGRyZW4gPSBUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5
QmxvY2s+OjpjcmVhdGUoKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9y
KGRvbUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoR2Vu
ZXJpY01lbW9yeVR5cGVzOjpPdGhlciksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZU90aGVyKTsK
LSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgp
LCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpE
T00pLCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVET00pOwotICAgICAgICB0b3RhbFNpemUgKz0g
YWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyksIE1lbW9yeUJsb2NrTmFtZTo6
ZG9tVHJlZUNTUyk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zvcihkb21D
aGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVN
ZW1vcnlUeXBlczo6QmluZGluZyksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUJpbmRpbmcpOwot
ICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCks
IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6Okxv
YWRlciksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUxvYWRlcik7CisgICAgICAgIHRvdGFsU2l6
ZSArPSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5
cGVzOjpET00pOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hp
bGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICAgICAgdG90YWxTaXpl
ICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkJpbmRpbmcpOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9t
Q2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKIAotICAgICAgICBS
ZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGRvbSA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpj
cmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6ZG9tKTsKKyAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck1lbW9yeUJsb2NrPiBkb20gPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCku
c2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTVRyZWUpOwogICAgICAgICBkb20tPnNldFNp
emUodG90YWxTaXplKTsKICAgICAgICAgZG9tLT5zZXRDaGlsZHJlbihkb21DaGlsZHJlbi5yZWxl
YXNlKCkpOwogICAgICAgICByZXR1cm4gZG9tLnJlbGVhc2UoKTsKQEAgLTUyMywxMCArNDk1LDIy
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGJ1aWxkT2JqZWN0
Rm9yTWVtb3J5Q2FjaGUoKSk7CiAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGJ1aWxkT2JqZWN0
Rm9yRE9NKCkpOworCisgICAgICAgIEFTU0VSVCghbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90
YWxTaXplKEdlbmVyaWNNZW1vcnlUeXBlczo6T3duZXJzVHlwZVBsYWNlaG9sZGVyKSk7CisKICAg
ICAgICAgaW5zcGVjdG9yRGF0YS0+YWRkQ29tcG9uZW50KE1lbW9yeUJsb2NrTmFtZTo6aW5zcGVj
dG9yRE9NRGF0YSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24uc2VsZlNpemUoKSk7CiAgICAgfQog
CiBwcml2YXRlOgorICAgIHNpemVfdCBhZGRNZW1vcnlCbG9ja0ZvcihUeXBlQnVpbGRlcjo6QXJy
YXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBhcnJheSwgTWVtb3J5T2JqZWN0VHlwZSB0eXBlTmFt
ZSkgY29uc3QKKyAgICB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gcmVz
dWx0ID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUodHlwZU5hbWUpOwor
ICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZSh0
eXBlTmFtZSk7CisgICAgICAgIHJlc3VsdC0+c2V0U2l6ZShzaXplKTsKKyAgICAgICAgYXJyYXkt
PmFkZEl0ZW0ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorCiAgICAgUGFn
ZSogbV9wYWdlOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwmIG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKaW5kZXggMWIwY2UxZTA2
ZTA0ZmM2MmFlNGU0MGY1MWNhY2VhOWY0ZTZmNWExNC4uOWYwNGJkZmE3YWFhNTJmYzM2OTVhMTFi
ZTk1YzU4YzJlOTEzNmYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAgLTIxNiw4
ICsyMTYsOSBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5faW5pdGlh
bGl6ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1By
b3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tzW25hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5NZW1vcnlC
bG9ja1ZpZXdQcm9wZXJ0aWVzKGZpbGxTdHlsZSwgbmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KGRlc2NyaXB0aW9uKSk7CiAgICAgfQogICAgIGFkZEJsb2NrKCJoc2woICAwLCAgMCUsIDEwMCUp
IiwgIlByb2Nlc3NQcml2YXRlTWVtb3J5IiwgIlRvdGFsIik7CisgICAgYWRkQmxvY2soImhzbCgg
IDAsICAwJSwgIDgwJSkiLCAiT3duZXJzVHlwZVBsYWNlaG9sZGVyIiwgIk93bmVyc1R5cGVQbGFj
ZWhvbGRlciIpOwogICAgIGFkZEJsb2NrKCJoc2woICAwLCAgMCUsICA4MCUpIiwgIk90aGVyIiwg
Ik90aGVyIik7Ci0gICAgYWRkQmxvY2soImhzbCgzMDAsIDMwJSwgIDgwJSkiLCAiRE9NIiwgIkRP
TSB0cmVlIHN0cnVjdHVyZXMiKTsKKyAgICBhZGRCbG9jaygiaHNsKDMwMCwgMzAlLCAgODAlKSIs
ICJET01UcmVlIiwgIkRPTSB0cmVlIHN0cnVjdHVyZXMiKTsKICAgICBhZGRCbG9jaygiaHNsKCA5
MCwgNjAlLCAgODAlKSIsICJKU0hlYXBBbGxvY2F0ZWQiLCAiSmF2YVNjcmlwdCBoZWFwIik7CiAg
ICAgYWRkQmxvY2soImhzbCggOTAsIDgwJSwgIDgwJSkiLCAiSlNIZWFwVXNlZCIsICJVc2VkIEph
dmFTY3JpcHQgaGVhcCIpOwogICAgIGFkZEJsb2NrKCJoc2woIDkwLCAzMCUsICA4MCUpIiwgIkpT
RXh0ZXJuYWxSZXNvdXJjZXMiLCAiSmF2YVNjcmlwdCBleHRlcm5hbCByZXNvdXJjZXMiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGMxZTczMzA0MzAwYmQy
ZWZhYTUzMmU2NDExNmM0YTM5N2E3MzczMTAuLjYxYmY0OWZlMzUzZGM2NWE2MWNmMjViODFiNTM5
MmU4ZmIxMWE5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApA
QCAtMjUwLDcgKzI1MCw3IEBAIGNvbnN0IFZlY3RvcjxjaGFyPiYgU2hhcmVkQnVmZmVyOjpidWZm
ZXIoKSBjb25zdAogCiB2b2lkIFNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKLSAgICBNZW1vcnlDbGFzc0lu
Zm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBHZW5lcmljTWVtb3J5VHlwZXM6Ok90aGVy
KTsKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBHZW5l
cmljTWVtb3J5VHlwZXM6Ok93bmVyc1R5cGVQbGFjZWhvbGRlcik7CiAgICAgaW5mby5hZGRWZWN0
b3IobV9idWZmZXIpOwogICAgIGluZm8uYWRkVmVjdG9yKG1fc2VnbWVudHMpOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgKytpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVz
dC5jcHAKaW5kZXggNDExYThhOTBhNThhMDhiZGE1ZWVlZTNiYzc3MTg3MzU3NjA1NzBmZS4uOTdk
N2UxZjZiMWEzOWE5MTBkZWQ3MDQzYjI3YWI0NzQyMzNmY2MwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qu
Y3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKLSAg
ICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgR2VuZXJp
Y01lbW9yeVR5cGVzOjpPdGhlcik7CisgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIEdlbmVyaWNNZW1vcnlUeXBlczo6T3duZXJzVHlwZVBsYWNlaG9s
ZGVyKTsKICAgICB9CiAgICAgaW50IG1fZGF0YTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162486</attachid>
            <date>2012-09-06 05:52:43 -0700</date>
            <delta_ts>2012-09-06 06:01:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95957-20120906165223.patch</filename>
            <type>text/plain</type>
            <size>19847</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY5YzgwOWMyNjM3ZjI3
NThhNmZhNGNmNjRlZjZkNjJjN2FmYTg0NC4uZDhiNzU4MDdiNjUxM2NjZTZkNGQ3MjhlYjkyOGE3
ZDk1ZWIwMDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTA2ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUk6IHN3aXRjaCB0byBoaWVyYXJjaGljYWwgaWRlbnRpZmllcnMgb2YgTWVtb3J5Qmxv
Y2tUeXBlcyBhbmQgdXNlIHRoZXNlIGlkZW50aWZpZXJzIGluIHByb3RvY29sLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgd2hlbiB3ZSB1c2Ugc3Ry
aW5nIGlkZW50aWZpZXJzIGFzIE1lbW9yeU9iamVjdFR5cGUgd2UgY2FuIHVzZSB0aGVtIGFzIHRo
ZSBpZGVudGlmaWVycyBmb3IgdGhlIHByb3RvY29sCisgICAgICAgIGluc3RlYWQgb2YgTWVtb3J5
QmxvY2tOYW1lcyBoYXJkY29kZWQgaW4gSW5zcGVjdG9yTWVtb3J5QWdlbnQuLgorICAgICAgICBB
dCBhIGxhdGVyIHN0YWdlLCB3aGVuIGVhY2ggdHlwZSBvZiBtZW1vcnkgd2lsbCBiZSBjb3VudGVk
IGluIE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9j
a3MgaGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9NZW1vcnlJbnN0cnVt
ZW50YXRpb24uaDoKKyAgICAgICAgKEdlbmVyaWNNZW1vcnlUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJvb3RPYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5T2JqZWN0SW5mbzo6cmVwb3J0T2JqZWN0SW5mbyk6CisgICAgICAgIChXZWJD
b3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHA6CisgICAgICAgIChNZW1vcnlCbG9ja05hbWUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5faW5pdGlh
bGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTA1ICBB
bmRyZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFByb3RvY29sIEV4dGVuc2lvbjogQWRkICJyZWdpb25MYXlvdXRVcGRhdGUiIGV2ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIwODBhZTUyMjFiOWQ2YjU3ZWQ3OTA3ZDY0NGNm
MDJjOGUwNWJiMDguLjNhZjBiMDA1NTdjMGNhNGFkNGIzNzZjY2ZjZjY3ZTU4Yzc4YTY5M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMDYgIEls
eWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IE5NSTogc3dpdGNoIHRvIGhpZXJhcmNoaWNhbCBpZGVudGlmaWVycyBvZiBNZW1vcnlC
bG9ja1R5cGVzIGFuZCB1c2UgdGhlc2UgaWRlbnRpZmllcnMgaW4gcHJvdG9jb2wuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB3aGVuIHdlIHVzZSBz
dHJpbmcgaWRlbnRpZmllcnMgYXMgTWVtb3J5T2JqZWN0VHlwZSB3ZSBjYW4gdXNlIHRoZW0gYXMg
dGhlIGlkZW50aWZpZXJzIGZvciB0aGUgcHJvdG9jb2wKKyAgICAgICAgaW5zdGVhZCBvZiBNZW1v
cnlCbG9ja05hbWVzIGhhcmRjb2RlZCBpbiBJbnNwZWN0b3JNZW1vcnlBZ2VudC4uCisgICAgICAg
IEF0IGEgbGF0ZXIgc3RhZ2UsIHdoZW4gZWFjaCBtZW1vcnkgdHlwZSBpcyBjb3VudGVkIGluIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9ja3MgaGll
cmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAgKiB0ZXN0
cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Ry
dW1lbnRlZE90aGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMDUgIERhbmEgSmFu
c2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYSBj
b3B5KCkgbWV0aG9kIHRvIENDRHJhd1F1YWQgYW5kIENDU2hhcmVkUXVhZFN0YXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg3NDY1ZGQzYzcy
OTUzMWQ5YTEyNTIzNzIwZWJhNGJkMDgxOWRlMzguLjQ3MzY0YzVmZDEzOThiNmU4ZDE2OTdiMDg5
MWZlMDQ5MTIxYzU4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC0zNywyMSArMzcsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1N
ZW1vcnlPYmplY3RUeXBlIEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIgPSAiT3RoZXIiOworTWVt
b3J5T2JqZWN0VHlwZSBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCA9IDA7CiAKLU1lbW9y
eU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAiRE9NIjsKLU1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MgPSAiQ1NTIjsKLU1lbW9yeU9iamVjdFR5cGUg
V2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nID0gIkJpbmRpbmciOwotTWVtb3J5T2JqZWN0VHlw
ZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJMb2FkZXIiOwotTWVtb3J5T2JqZWN0VHlw
ZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlU3RydWN0dXJlcyA9ICJNZW1vcnlDYWNo
ZVN0cnVjdHVyZXMiOwotTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hl
ZFJlc291cmNlID0gIkNhY2hlZFJlc291cmNlIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUNTUyA9ICJDYWNoZWRSZXNvdXJjZUNTUyI7Ci1NZW1v
cnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VGb250ID0gIkNh
Y2hlZFJlc291cmNlRm9udCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6
Q2FjaGVkUmVzb3VyY2VJbWFnZSA9ICJDYWNoZWRSZXNvdXJjZUltYWdlIjsKLU1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNjcmlwdCA9ICJDYWNoZWRS
ZXNvdXJjZVNjcmlwdCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2VTVkcgPSAiQ2FjaGVkUmVzb3VyY2VTVkciOwotTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVyID0gIkNhY2hlZFJlc291cmNl
U2hhZGVyIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNv
dXJjZVhTTFQgPSAiQ2FjaGVkUmVzb3VyY2VYU0xUIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpQYWdlID0gIlBhZ2UiOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTSA9ICJQYWdlLkRPTSI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6Q1NTID0gIlBhZ2UuQ1NTIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpCaW5kaW5nID0gIlBhZ2UuQmluZGluZyI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNv
cmVNZW1vcnlUeXBlczo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKKworTWVtb3J5T2JqZWN0VHlw
ZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlID0gIk1lbW9yeUNhY2hlIjsKK01lbW9y
eU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVjdHVyZXMgPSAi
TWVtb3J5Q2FjaGUuSW50ZXJuYWxTdHJ1Y3R1cmVzIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSA9ICJNZW1vcnlDYWNoZS5SYXdSZXNvdXJjZSI7
CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VDU1Mg
PSAiTWVtb3J5Q2FjaGUuQ1NTIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDYWNoZWRSZXNvdXJjZUZvbnQgPSAiTWVtb3J5Q2FjaGUuRm9udCI7CitNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSA9ICJNZW1vcnlDYWNo
ZS5JbWFnZSI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVz
b3VyY2VTY3JpcHQgPSAiTWVtb3J5Q2FjaGUuU2NyaXB0IjsKK01lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNWRyA9ICJNZW1vcnlDYWNoZS5TVkciOwor
TWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVy
ID0gIk1lbW9yeUNhY2hlLlNoYWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q2FjaGVkUmVzb3VyY2VYU0xUID0gIk1lbW9yeUNhY2hlLlhTTFQiOwogCiB0ZW1wbGF0
ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmpl
Y3Q8U3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3Qg
U3RyaW5nKiBjb25zdCYgc3RyaW5nLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwg
TWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9y
eUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDgwMjFhMDkyODI1ZGQxYTZmZGEyOGNiODc2Yzg3ZThm
NTY2ODNmMjUuLmYxOTUxODFlNzVlODRiY2YwMDEyMzM2MTlhYjViNzQ0OTExNDA0YmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgdHlwZWRlZiBjb25zdCBjaGFyKiBNZW1vcnlPYmplY3RUeXBlOwogCiBjbGFzcyBHZW5lcmlj
TWVtb3J5VHlwZXMgewogcHVibGljOgotICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIE90aGVy
OworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFVuZGVmaW5lZDsKIH07CiAKIGVudW0gTWVt
b3J5T3duaW5nVHlwZSB7CkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgVCYgdCkKICAgICB7Ci0gICAg
ICAgIGFkZEluc3RydW1lbnRlZE9iamVjdCh0LCBHZW5lcmljTWVtb3J5VHlwZXM6Ok90aGVyKTsK
KyAgICAgICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0KHQsIEdlbmVyaWNNZW1vcnlUeXBlczo6VW5k
ZWZpbmVkKTsKICAgICAgICAgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKTsK
ICAgICB9CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYg
KCFtX29iamVjdFNpemUpIHsKICAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9IGFjdHVhbFNpemUg
PyBhY3R1YWxTaXplIDogc2l6ZW9mKFQpOwotICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUgIT0g
R2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlcikKKyAgICAgICAgICAgIGlmIChvYmplY3RUeXBlICE9
IEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVkKQogICAgICAgICAgICAgICAgIG1fb2JqZWN0
VHlwZSA9IG9iamVjdFR5cGU7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDgsMTAgKzQwOCwxMyBA
QCB0ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8
Y29uc3QgQXRvbWljU3RyaW5nPihNZW1vcgogCiBjbGFzcyBXZWJDb3JlTWVtb3J5VHlwZXMgewog
cHVibGljOgorICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFBhZ2U7CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgRE9NOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIENTUzsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBCaW5kaW5nOwogICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIExvYWRlcjsKKworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIE1lbW9yeUNhY2hl
OwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIE1lbW9yeUNhY2hlU3RydWN0dXJlczsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBDYWNoZWRSZXNvdXJjZTsKICAgICBzdGF0aWMgTWVt
b3J5T2JqZWN0VHlwZSBDYWNoZWRSZXNvdXJjZUNTUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IDgxMGE4MGE3ZGIwOWM2MzMw
ODk4Y2I1YjRkMDNjMWU0MmQzZWIzNDIuLmQ4YmZhOWVjODE1OTdjZWE2Y2QzMzRkODczOWU2ODU5
YzE4Y2VkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50LmNwcApAQCAtODMsMjggKzgzLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW5zcGVj
dG9yRE9NRGF0YVtdID0gIkluc3BlY3RvckRPTURhdGEiOwogc3RhdGljIGNvbnN0IGNoYXIgaW5z
cGVjdG9ySlNIZWFwRGF0YVtdID0gIkluc3BlY3RvckpTSGVhcERhdGEiOwogc3RhdGljIGNvbnN0
IGNoYXIgcHJvY2Vzc1ByaXZhdGVNZW1vcnlbXSA9ICJQcm9jZXNzUHJpdmF0ZU1lbW9yeSI7CiAK
LXN0YXRpYyBjb25zdCBjaGFyIG1lbW9yeUNhY2hlW10gPSAiTWVtb3J5Q2FjaGUiOwotc3RhdGlj
IGNvbnN0IGNoYXIgbWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzW10gPSAiTWVtb3J5Q2FjaGVTdHJ1Y3R1
cmVzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlW10gPSAiQ2FjaGVkUmVzb3Vy
Y2UiOwotc3RhdGljIGNvbnN0IGNoYXIgY2FjaGVkUmVzb3VyY2VJbWFnZVtdID0gIkNhY2hlZElt
YWdlcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZUNTU1tdID0gIkNhY2hlZENz
c1N0eWxlU2hlZXRzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlU2NyaXB0W10g
PSAiQ2FjaGVkU2NyaXB0cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVhTTFtd
ID0gIkNhY2hlZFhzbFN0eWxlU2hlZXRzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291
cmNlRm9udFtdID0gIkNhY2hlZEZvbnRzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291
cmNlU1ZHW10gPSAiQ2FjaGVkU1ZHR3JhcGhpY3MiOwotc3RhdGljIGNvbnN0IGNoYXIgY2FjaGVk
UmVzb3VyY2VTaGFkZXJbXSA9ICJDYWNoZWRTaGFkZXJzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNh
Y2hlZFJlc291cmNlWFNMVFtdID0gIkNhY2hlZFNoYWRlcnNYU0xUIjsKLQogc3RhdGljIGNvbnN0
IGNoYXIgcmVuZGVyVHJlZVVzZWRbXSA9ICJSZW5kZXJUcmVlVXNlZCI7CiBzdGF0aWMgY29uc3Qg
Y2hhciByZW5kZXJUcmVlQWxsb2NhdGVkW10gPSAiUmVuZGVyVHJlZUFsbG9jYXRlZCI7CiAKLXN0
YXRpYyBjb25zdCBjaGFyIGRvbVtdID0gIkRPTSI7Ci1zdGF0aWMgY29uc3QgY2hhciBkb21UcmVl
T3RoZXJbXSA9ICJET01UcmVlT3RoZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZURPTVtd
ID0gIkRPTVRyZWVET00iOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZUNTU1tdID0gIkRPTVRy
ZWVDU1MiOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZUJpbmRpbmdbXSA9ICJET01UcmVlQmlu
ZGluZyI7Ci1zdGF0aWMgY29uc3QgY2hhciBkb21UcmVlTG9hZGVyW10gPSAiRE9NVHJlZUxvYWRl
ciI7Ci0KIHN0YXRpYyBjb25zdCBjaGFyIGRvbVN0b3JhZ2VDYWNoZVtdID0gIkRPTVN0b3JhZ2VD
YWNoZSI7CiB9CiAKQEAgLTQ0MCwxNCArNDIxLDYgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yTWVtb3J5QmxvY2s+IHJlbmRlclRyZWVJbmZvKFBhZ2UqIHBhZ2UpCiAgICAgcmV0dXJuIHJl
bmRlclRyZWVBbGxvY2F0ZWQucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgc2l6ZV90IGFkZE1lbW9y
eUJsb2NrRm9yKFR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz4qIGFycmF5
LCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogbmFtZSkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9y
TWVtb3J5QmxvY2s+IHJlc3VsdCA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXRO
YW1lKG5hbWUpOwotICAgIHJlc3VsdC0+c2V0U2l6ZShzaXplKTsKLSAgICBhcnJheS0+YWRkSXRl
bShyZXN1bHQpOwotICAgIHJldHVybiBzaXplOwotfQotCiBuYW1lc3BhY2UgewogCiBjbGFzcyBE
T01UcmVlc0l0ZXJhdG9yIDogcHVibGljIE5vZGVXcmFwcGVyVmlzaXRvciB7CkBAIC00ODYsMzQg
KzQ1OSwzMyBAQCBwdWJsaWM6CiAgICAgICAgIHNpemVfdCB0b3RhbFNpemUgPSAwOwogCiAgICAg
ICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gY2hp
bGRyZW4gPSBUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUo
KTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgp
LCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpN
ZW1vcnlDYWNoZVN0cnVjdHVyZXMpLCBNZW1vcnlCbG9ja05hbWU6Om1lbW9yeUNhY2hlU3RydWN0
dXJlcyk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5n
ZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBl
czo6Q2FjaGVkUmVzb3VyY2UpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlKTsKLSAg
ICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRS
ZXNvdXJjZUNTUyksIE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VDU1MpOwotICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291
cmNlRm9udCksIE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VGb250KTsKLSAgICAgICAg
dG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJj
ZUltYWdlKSwgTWVtb3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZUltYWdlKTsKLSAgICAgICAg
dG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJj
ZVNjcmlwdCksIE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VTY3JpcHQpOwotICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291
cmNlU1ZHKSwgTWVtb3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZVNWRyk7Ci0gICAgICAgIHRv
dGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VT
aGFkZXIpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlU2hhZGVyKTsKLSAgICAgICAg
dG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJj
ZVhTTFQpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlWFNMVCk7Ci0KLSAgICAgICAg
UmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBibG9jayA9IEluc3BlY3Rvck1lbW9yeUJsb2Nr
OjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6bWVtb3J5Q2FjaGUpOworICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVN
ZW1vcnlUeXBlczo6TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzKTsKKyAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNh
Y2hlZFJlc291cmNlKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNo
aWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlQ1NTKTsKKyAg
ICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlRm9udCk7CisgICAgICAgIHRvdGFsU2l6ZSAr
PSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpD
YWNoZWRSZXNvdXJjZUltYWdlKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2Nr
Rm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2Ny
aXB0KTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdl
dCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU1ZHKTsKKyAgICAgICAgdG90
YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVyKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1l
bW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJl
c291cmNlWFNMVCk7CisKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBibG9j
ayA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKFdlYkNvcmVNZW1vcnlU
eXBlczo6TWVtb3J5Q2FjaGUpOwogICAgICAgICBibG9jay0+c2V0U2l6ZSh0b3RhbFNpemUpOwog
ICAgICAgICBibG9jay0+c2V0Q2hpbGRyZW4oY2hpbGRyZW4ucmVsZWFzZSgpKTsKICAgICAgICAg
cmV0dXJuIGJsb2NrLnJlbGVhc2UoKTsKICAgICB9CiAKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rv
ck1lbW9yeUJsb2NrPiBidWlsZE9iamVjdEZvckRPTSgpIGNvbnN0CisgICAgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JNZW1vcnlCbG9jaz4gYnVpbGRPYmplY3RGb3JQYWdlKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHNpemVfdCB0b3RhbFNpemUgPSAwOwogCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gZG9tQ2hpbGRyZW4gPSBUeXBlQnVpbGRl
cjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKLSAgICAgICAgdG90YWxT
aXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbi50b3RhbFNpemUoR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlciksIE1lbW9yeUJs
b2NrTmFtZTo6ZG9tVHJlZU90aGVyKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJs
b2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNp
emUoV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pLCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVET00p
OwotICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0
KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6
OkNTUyksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUNTUyk7Ci0gICAgICAgIHRvdGFsU2l6ZSAr
PSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyksIE1lbW9yeUJsb2Nr
TmFtZTo6ZG9tVHJlZUJpbmRpbmcpOwotICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5Qmxv
Y2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6
ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlciksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUxv
YWRlcik7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJl
bi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgICAgICB0b3RhbFNpemUgKz0g
YWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6
Q1NTKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVu
LmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOworICAgICAgICB0b3RhbFNpemUg
Kz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBl
czo6TG9hZGVyKTsKIAotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGRvbSA9
IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6
ZG9tKTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkb20gPSBJbnNwZWN0
b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6OlBhZ2Up
OwogICAgICAgICBkb20tPnNldFNpemUodG90YWxTaXplKTsKICAgICAgICAgZG9tLT5zZXRDaGls
ZHJlbihkb21DaGlsZHJlbi5yZWxlYXNlKCkpOwogICAgICAgICByZXR1cm4gZG9tLnJlbGVhc2Uo
KTsKQEAgLTUyMiwxMSArNDk0LDIxIEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBTdGF0aXN0aWNz
KFR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz4qIGNoaWxkcmVuLCBJbnNw
ZWN0b3JEYXRhQ291bnRlciogaW5zcGVjdG9yRGF0YSkKICAgICB7CiAgICAgICAgIGNoaWxkcmVu
LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTWVtb3J5Q2FjaGUoKSk7Ci0gICAgICAgIGNoaWxkcmVu
LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yRE9NKCkpOworICAgICAgICBjaGlsZHJlbi0+YWRkSXRl
bShidWlsZE9iamVjdEZvclBhZ2UoKSk7CisKICAgICAgICAgaW5zcGVjdG9yRGF0YS0+YWRkQ29t
cG9uZW50KE1lbW9yeUJsb2NrTmFtZTo6aW5zcGVjdG9yRE9NRGF0YSwgbV9tZW1vcnlJbnN0cnVt
ZW50YXRpb24uc2VsZlNpemUoKSk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIHNpemVfdCBhZGRN
ZW1vcnlCbG9ja0ZvcihUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBh
cnJheSwgTWVtb3J5T2JqZWN0VHlwZSB0eXBlTmFtZSkgY29uc3QKKyAgICB7CisgICAgICAgIFJl
ZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gcmVzdWx0ID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6
OmNyZWF0ZSgpLnNldE5hbWUodHlwZU5hbWUpOworICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fbWVt
b3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZSh0eXBlTmFtZSk7CisgICAgICAgIHJlc3VsdC0+
c2V0U2l6ZShzaXplKTsKKyAgICAgICAgYXJyYXktPmFkZEl0ZW0ocmVzdWx0KTsKKyAgICAgICAg
cmV0dXJuIHNpemU7CisgICAgfQorCiAgICAgUGFnZSogbV9wYWdlOwogICAgIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkltcGwmIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcApp
bmRleCAzNmM0MzUxOTgzMzNlMDM5NGYwYjE3MGI1NjFhMjY2MDJjYjE4NWZjLi40N2E5MWQ1YjMx
YjU2OGY1OTgxMWFiN2UyMDYwYWUzOGQwMzBkNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuY3BwCkBAIC01Miw2ICs1
Miw3IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbDo6cHJvY2Vzc0RlZmVycmVkSW5z
dHJ1bWVudGVkUG9pbnRlcnMoKQogCiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OmNv
dW50T2JqZWN0U2l6ZShNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBzaXplKQog
eworICAgIEFTU0VSVChvYmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVk
KTsKICAgICBUeXBlVG9TaXplTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV90b3RhbFNpemVzLmFk
ZChvYmplY3RUeXBlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAg
ICByZXN1bHQuaXRlcmF0b3ItPnNlY29uZCArPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmll
dy5qcwppbmRleCAxYjBjZTFlMDZlMDRmYzYyYWU0ZTQwZjUxY2FjZWE5ZjRlNmY1YTE0Li5lMzI5
NTkyNjhhNTEwZGNmODMxYmZkNTc5NWI0ZDE5MDQwZjY4NzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBz
aG90Vmlldy5qcwpAQCAtMjE2LDggKzIxNiw5IEBAIFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1Zp
ZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXplID0gZnVuY3Rpb24oKQogICAgICAgICBXZWJJbnNwZWN0
b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3NbbmFtZV0gPSBuZXcg
V2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMoZmlsbFN0eWxlLCBuYW1lLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoZGVzY3JpcHRpb24pKTsKICAgICB9CiAgICAgYWRkQmxvY2so
ImhzbCggIDAsICAwJSwgMTAwJSkiLCAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiVG90YWwiKTsK
KyAgICBhZGRCbG9jaygiaHNsKCAgMCwgIDAlLCAgODAlKSIsICJPd25lcnNUeXBlUGxhY2Vob2xk
ZXIiLCAiT3duZXJzVHlwZVBsYWNlaG9sZGVyIik7CiAgICAgYWRkQmxvY2soImhzbCggIDAsICAw
JSwgIDgwJSkiLCAiT3RoZXIiLCAiT3RoZXIiKTsKLSAgICBhZGRCbG9jaygiaHNsKDMwMCwgMzAl
LCAgODAlKSIsICJET00iLCAiRE9NIHRyZWUgc3RydWN0dXJlcyIpOworICAgIGFkZEJsb2NrKCJo
c2woMzAwLCAzMCUsICA4MCUpIiwgIlBhZ2UiLCAiUGFnZSdzIHN0cnVjdHVyZXMiKTsKICAgICBh
ZGRCbG9jaygiaHNsKCA5MCwgNjAlLCAgODAlKSIsICJKU0hlYXBBbGxvY2F0ZWQiLCAiSmF2YVNj
cmlwdCBoZWFwIik7CiAgICAgYWRkQmxvY2soImhzbCggOTAsIDgwJSwgIDgwJSkiLCAiSlNIZWFw
VXNlZCIsICJVc2VkIEphdmFTY3JpcHQgaGVhcCIpOwogICAgIGFkZEJsb2NrKCJoc2woIDkwLCAz
MCUsICA4MCUpIiwgIkpTRXh0ZXJuYWxSZXNvdXJjZXMiLCAiSmF2YVNjcmlwdCBleHRlcm5hbCBy
ZXNvdXJjZXMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4
IGMxZTczMzA0MzAwYmQyZWZhYTUzMmU2NDExNmM0YTM5N2E3MzczMTAuLjZhZTgzMWMyNDU3YTBh
ODZkZjNhMDIwNTBmNjZjNmM3NmU0MzJkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIGNvbnN0IFZlY3RvcjxjaGFyPiYgU2hh
cmVkQnVmZmVyOjpidWZmZXIoKSBjb25zdAogCiB2b2lkIFNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKLSAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBHZW5lcmljTWVt
b3J5VHlwZXM6Ok90aGVyKTsKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCk7CiAgICAgaW5mby5hZGRW
ZWN0b3IobV9idWZmZXIpOwogICAgIGluZm8uYWRkVmVjdG9yKG1fc2VnbWVudHMpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgKytpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdC5jcHAKaW5kZXggNDExYThhOTBhNThhMDhiZGE1ZWVlZTNiYzc3MTg3MzU3NjA1NzBmZS4u
M2Q0NjY1NmFhZGQyYzU2NDFlMjE0YTJhMzdmMTcwODc5MjBmNGE0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QuY3BwCkBAIC0xNzIsMjcgKzE3MiwyNyBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIG93blB0ck5vdEluc3RydW1lbnRlZCkKICAgICBFWFBFQ1RfRVEoMiwgdmlzaXRlZE9iamVj
dHMuc2l6ZSgpKTsKIH0KIAotY2xhc3MgSW5zdHJ1bWVudGVkT3RoZXIgeworY2xhc3MgSW5zdHJ1
bWVudGVkVW5kZWZpbmVkIHsKIHB1YmxpYzoKLSAgICBJbnN0cnVtZW50ZWRPdGhlcigpIDogbV9k
YXRhKDApIHsgfQorICAgIEluc3RydW1lbnRlZFVuZGVmaW5lZCgpIDogbV9kYXRhKDApIHsgfQog
CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogICAgIHsKLSAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlcik7CisgICAgICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIEdlbmVyaWNNZW1vcnlU
eXBlczo6VW5kZWZpbmVkKTsKICAgICB9CiAgICAgaW50IG1fZGF0YTsKIH07CiAKIGNsYXNzIElu
c3RydW1lbnRlZERPTSB7CiBwdWJsaWM6Ci0gICAgSW5zdHJ1bWVudGVkRE9NKCkgOiBtX2luc3Ry
dW1lbnRlZE90aGVyKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRPdGhlcikpIHsgfQorICAgIElu
c3RydW1lbnRlZERPTSgpIDogbV9pbnN0cnVtZW50ZWRVbmRlZmluZWQoYWRvcHRQdHIobmV3IElu
c3RydW1lbnRlZFVuZGVmaW5lZCkpIHsgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOwotICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2luc3Ry
dW1lbnRlZE90aGVyKTsKKyAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9pbnN0
cnVtZW50ZWRVbmRlZmluZWQpOwogICAgIH0KLSAgICBPd25QdHI8SW5zdHJ1bWVudGVkT3RoZXI+
IG1faW5zdHJ1bWVudGVkT3RoZXI7CisgICAgT3duUHRyPEluc3RydW1lbnRlZFVuZGVmaW5lZD4g
bV9pbnN0cnVtZW50ZWRVbmRlZmluZWQ7CiB9OwogCiBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlv
blRlc3QsIG93bmVyVHlwZVByb3BhZ2F0aW9uKQpAQCAtMjAxLDggKzIwMSw4IEBAIFRFU1QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgb3duZXJUeXBlUHJvcGFnYXRpb24pCiAgICAgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKICAgICBPd25QdHI8SW5z
dHJ1bWVudGVkRE9NPiBpbnN0cnVtZW50ZWRET00oYWRvcHRQdHIobmV3IEluc3RydW1lbnRlZERP
TSkpOwogICAgIGltcGwuYWRkUm9vdE9iamVjdChpbnN0cnVtZW50ZWRET00pOwotICAgIEVYUEVD
VF9FUShzaXplb2YoSW5zdHJ1bWVudGVkRE9NKSArIHNpemVvZihJbnN0cnVtZW50ZWRPdGhlciks
IGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7Ci0gICAgRVhQRUNUX0VRKHNpemVvZihJ
bnN0cnVtZW50ZWRET00pICsgc2l6ZW9mKEluc3RydW1lbnRlZE90aGVyKSwgaW1wbC50b3RhbFNp
emUoV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pKTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3Ry
dW1lbnRlZERPTSkgKyBzaXplb2YoSW5zdHJ1bWVudGVkVW5kZWZpbmVkKSwgaW1wbC5yZXBvcnRl
ZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3RydW1lbnRlZERP
TSkgKyBzaXplb2YoSW5zdHJ1bWVudGVkVW5kZWZpbmVkKSwgaW1wbC50b3RhbFNpemUoV2ViQ29y
ZU1lbW9yeVR5cGVzOjpET00pKTsKICAgICBFWFBFQ1RfRVEoMiwgdmlzaXRlZE9iamVjdHMuc2l6
ZSgpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162487</attachid>
            <date>2012-09-06 06:01:11 -0700</date>
            <delta_ts>2012-09-06 06:19:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95957-20120906170051.patch</filename>
            <type>text/plain</type>
            <size>22917</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY5YzgwOWMyNjM3ZjI3
NThhNmZhNGNmNjRlZjZkNjJjN2FmYTg0NC4uZmVmMWQ0Mzk2NDQ2NmM0NWI4NjNhNTcwNzMwNmFi
OTFjZThlYmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTA2ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUk6IHN3aXRjaCB0byBoaWVyYXJjaGljYWwgaWRlbnRpZmllcnMgb2YgTWVtb3J5Qmxv
Y2tUeXBlcyBhbmQgdXNlIHRoZXNlIGlkZW50aWZpZXJzIGluIHByb3RvY29sLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgd2hlbiB3ZSB1c2Ugc3Ry
aW5nIGlkZW50aWZpZXJzIGFzIE1lbW9yeU9iamVjdFR5cGUgd2UgY2FuIHVzZSB0aGVtIGFzIHRo
ZSBpZGVudGlmaWVycyBmb3IgdGhlIHByb3RvY29sCisgICAgICAgIGluc3RlYWQgb2YgTWVtb3J5
QmxvY2tOYW1lcyBoYXJkY29kZWQgaW4gSW5zcGVjdG9yTWVtb3J5QWdlbnQuLgorICAgICAgICBB
dCBhIGxhdGVyIHN0YWdlLCB3aGVuIGVhY2ggdHlwZSBvZiBtZW1vcnkgd2lsbCBiZSBjb3VudGVk
IGluIE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9j
a3MgaGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAg
KiBkb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEdlbmVyaWNNZW1v
cnlUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJv
b3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5T2JqZWN0SW5mbzo6cmVwb3J0T2Jq
ZWN0SW5mbyk6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChNZW1vcnlCbG9ja05hbWUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL01lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbDo6Y291bnRPYmplY3RTaXplKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05h
dGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlC
bG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXplKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3Vy
Y2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOjpyZXBvcnRNZW1v
cnlVc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTA1
ICBBbmRyZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFByb3RvY29sIEV4dGVuc2lvbjogQWRkICJyZWdpb25MYXlvdXRVcGRhdGUiIGV2ZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIwODBhZTUyMjFiOWQ2YjU3ZWQ3OTA3ZDY0
NGNmMDJjOGUwNWJiMDguLjU5MTgxYWNiZjE2YzhhMjYyMDg1MDExNmEzM2Y5MTM3MWQzZDBjZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDktMDYg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE5NSTogc3dpdGNoIHRvIGhpZXJhcmNoaWNhbCBpZGVudGlmaWVycyBvZiBNZW1v
cnlCbG9ja1R5cGVzIGFuZCB1c2UgdGhlc2UgaWRlbnRpZmllcnMgaW4gcHJvdG9jb2wuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB3aGVuIHdlIHVz
ZSBzdHJpbmcgaWRlbnRpZmllcnMgYXMgTWVtb3J5T2JqZWN0VHlwZSB3ZSBjYW4gdXNlIHRoZW0g
YXMgdGhlIGlkZW50aWZpZXJzIGZvciB0aGUgcHJvdG9jb2wKKyAgICAgICAgaW5zdGVhZCBvZiBN
ZW1vcnlCbG9ja05hbWVzIGhhcmRjb2RlZCBpbiBJbnNwZWN0b3JNZW1vcnlBZ2VudC4uCisgICAg
ICAgIEF0IGEgbGF0ZXIgc3RhZ2UsIHdoZW4gZWFjaCBtZW1vcnkgdHlwZSBpcyBjb3VudGVkIGlu
IE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9ja3Mg
aGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAgKiB0
ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3RydW1lbnRlZFVuZGVmaW5lZDo6SW5zdHJ1bWVudGVkVW5kZWZpbmVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3RydW1lbnRlZFVuZGVmaW5lZDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkRE9NOjpJbnN0cnVtZW50ZWRET00pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zdHJ1bWVudGVkRE9NOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChJ
bnN0cnVtZW50ZWRET00pOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTItMDktMDUg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBBZGQgYSBjb3B5KCkgbWV0aG9kIHRvIENDRHJhd1F1YWQgYW5kIENDU2hhcmVkUXVhZFN0YXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg3
NDY1ZGQzYzcyOTUzMWQ5YTEyNTIzNzIwZWJhNGJkMDgxOWRlMzguLjMzMGYyNTI5ZTUzYmIwYjI2
MWRkNDE2YmMxMmUxYTU3MjM0YjY2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNywyMSArMzcsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1NZW1vcnlPYmplY3RUeXBlIEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIgPSAiT3Ro
ZXIiOworTWVtb3J5T2JqZWN0VHlwZSBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCA9IDA7
CiAKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAiRE9NIjsKLU1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MgPSAiQ1NTIjsKLU1lbW9yeU9i
amVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nID0gIkJpbmRpbmciOwotTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJMb2FkZXIiOwotTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlU3RydWN0dXJlcyA9ICJN
ZW1vcnlDYWNoZVN0cnVjdHVyZXMiOwotTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkNhY2hlZFJlc291cmNlID0gIkNhY2hlZFJlc291cmNlIjsKLU1lbW9yeU9iamVjdFR5cGUg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUNTUyA9ICJDYWNoZWRSZXNvdXJjZUNT
UyI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VG
b250ID0gIkNhY2hlZFJlc291cmNlRm9udCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSA9ICJDYWNoZWRSZXNvdXJjZUltYWdlIjsKLU1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNjcmlwdCA9
ICJDYWNoZWRSZXNvdXJjZVNjcmlwdCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q2FjaGVkUmVzb3VyY2VTVkcgPSAiQ2FjaGVkUmVzb3VyY2VTVkciOwotTWVtb3J5T2Jq
ZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVyID0gIkNhY2hl
ZFJlc291cmNlU2hhZGVyIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpD
YWNoZWRSZXNvdXJjZVhTTFQgPSAiQ2FjaGVkUmVzb3VyY2VYU0xUIjsKK01lbW9yeU9iamVjdFR5
cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpQYWdlID0gIlBhZ2UiOworTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSA9ICJQYWdlLkRPTSI7CitNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTID0gIlBhZ2UuQ1NTIjsKK01lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nID0gIlBhZ2UuQmluZGluZyI7CitNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKKworTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlID0gIk1lbW9yeUNhY2hl
IjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVj
dHVyZXMgPSAiTWVtb3J5Q2FjaGUuSW50ZXJuYWxTdHJ1Y3R1cmVzIjsKK01lbW9yeU9iamVjdFR5
cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVJhdyA9ICJNZW1vcnlDYWNoZS5S
YXdSZXNvdXJjZSI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVk
UmVzb3VyY2VDU1MgPSAiTWVtb3J5Q2FjaGUuQ1NTIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUZvbnQgPSAiTWVtb3J5Q2FjaGUuRm9udCI7CitN
ZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSA9
ICJNZW1vcnlDYWNoZS5JbWFnZSI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBl
czo6Q2FjaGVkUmVzb3VyY2VTY3JpcHQgPSAiTWVtb3J5Q2FjaGUuU2NyaXB0IjsKK01lbW9yeU9i
amVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNWRyA9ICJNZW1vcnlD
YWNoZS5TVkciOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJl
c291cmNlU2hhZGVyID0gIk1lbW9yeUNhY2hlLlNoYWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VYU0xUID0gIk1lbW9yeUNhY2hlLlhTTFQi
OwogCiB0ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0
cnVtZW50ZWRPYmplY3Q8U3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgU3RyaW5nKiBjb25zdCYgc3RyaW5nLCBNZW1vcnlPYmplY3RUeXBlIG93bmVy
T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDgwMjFhMDkyODI1ZGQxYTZmZGEy
OGNiODc2Yzg3ZThmNTY2ODNmMjUuLjAzMmU1MDg2YTk1MjFlMTZiODQ1Y2M3ZTRkZTJkODVmMmJh
MDEwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBNZW1vcnlPYmplY3RUeXBlOwogCiBj
bGFzcyBHZW5lcmljTWVtb3J5VHlwZXMgewogcHVibGljOgotICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIE90aGVyOworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFVuZGVmaW5lZDsKIH07
CiAKIGVudW0gTWVtb3J5T3duaW5nVHlwZSB7CkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgVCYgdCkK
ICAgICB7Ci0gICAgICAgIGFkZEluc3RydW1lbnRlZE9iamVjdCh0LCBHZW5lcmljTWVtb3J5VHlw
ZXM6Ok90aGVyKTsKKyAgICAgICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0KHQsIEdlbmVyaWNNZW1v
cnlUeXBlczo6VW5kZWZpbmVkKTsKICAgICAgICAgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVk
UG9pbnRlcnMoKTsKICAgICB9CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHsK
ICAgICAgICAgaWYgKCFtX29iamVjdFNpemUpIHsKICAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9
IGFjdHVhbFNpemUgPyBhY3R1YWxTaXplIDogc2l6ZW9mKFQpOwotICAgICAgICAgICAgaWYgKG9i
amVjdFR5cGUgIT0gR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlcikKKyAgICAgICAgICAgIGlmIChv
YmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVkKQogICAgICAgICAgICAg
ICAgIG1fb2JqZWN0VHlwZSA9IG9iamVjdFR5cGU7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDgs
MTIgKzQwOCwxNSBAQCB0ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRz
OjphZGRPYmplY3Q8Y29uc3QgQXRvbWljU3RyaW5nPihNZW1vcgogCiBjbGFzcyBXZWJDb3JlTWVt
b3J5VHlwZXMgewogcHVibGljOgorICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFBhZ2U7CiAg
ICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgRE9NOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RU
eXBlIENTUzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBCaW5kaW5nOwogICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIExvYWRlcjsKKworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBl
IE1lbW9yeUNhY2hlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIE1lbW9yeUNhY2hlU3Ry
dWN0dXJlczsKLSAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBDYWNoZWRSZXNvdXJjZTsKKyAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBDYWNoZWRSZXNvdXJjZVJhdzsKICAgICBzdGF0aWMg
TWVtb3J5T2JqZWN0VHlwZSBDYWNoZWRSZXNvdXJjZUNTUzsKICAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBDYWNoZWRSZXNvdXJjZUZvbnQ7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUg
Q2FjaGVkUmVzb3VyY2VJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IDgxMGE4MGE3ZGIwOWM2MzMwODk4Y2I1YjRkMDNj
MWU0MmQzZWIzNDIuLmU4ODc0Y2NlNTNmM2M5NmRhMTAyZDQxNTllZmRlYjE2MWIzZmVmZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNw
cApAQCAtODMsMjggKzgzLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW5zcGVjdG9yRE9NRGF0YVtd
ID0gIkluc3BlY3RvckRPTURhdGEiOwogc3RhdGljIGNvbnN0IGNoYXIgaW5zcGVjdG9ySlNIZWFw
RGF0YVtdID0gIkluc3BlY3RvckpTSGVhcERhdGEiOwogc3RhdGljIGNvbnN0IGNoYXIgcHJvY2Vz
c1ByaXZhdGVNZW1vcnlbXSA9ICJQcm9jZXNzUHJpdmF0ZU1lbW9yeSI7CiAKLXN0YXRpYyBjb25z
dCBjaGFyIG1lbW9yeUNhY2hlW10gPSAiTWVtb3J5Q2FjaGUiOwotc3RhdGljIGNvbnN0IGNoYXIg
bWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzW10gPSAiTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzIjsKLXN0YXRp
YyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlW10gPSAiQ2FjaGVkUmVzb3VyY2UiOwotc3RhdGlj
IGNvbnN0IGNoYXIgY2FjaGVkUmVzb3VyY2VJbWFnZVtdID0gIkNhY2hlZEltYWdlcyI7Ci1zdGF0
aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZUNTU1tdID0gIkNhY2hlZENzc1N0eWxlU2hlZXRz
IjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlU2NyaXB0W10gPSAiQ2FjaGVkU2Ny
aXB0cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVhTTFtdID0gIkNhY2hlZFhz
bFN0eWxlU2hlZXRzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlRm9udFtdID0g
IkNhY2hlZEZvbnRzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlU1ZHW10gPSAi
Q2FjaGVkU1ZHR3JhcGhpY3MiOwotc3RhdGljIGNvbnN0IGNoYXIgY2FjaGVkUmVzb3VyY2VTaGFk
ZXJbXSA9ICJDYWNoZWRTaGFkZXJzIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNl
WFNMVFtdID0gIkNhY2hlZFNoYWRlcnNYU0xUIjsKLQogc3RhdGljIGNvbnN0IGNoYXIgcmVuZGVy
VHJlZVVzZWRbXSA9ICJSZW5kZXJUcmVlVXNlZCI7CiBzdGF0aWMgY29uc3QgY2hhciByZW5kZXJU
cmVlQWxsb2NhdGVkW10gPSAiUmVuZGVyVHJlZUFsbG9jYXRlZCI7CiAKLXN0YXRpYyBjb25zdCBj
aGFyIGRvbVtdID0gIkRPTSI7Ci1zdGF0aWMgY29uc3QgY2hhciBkb21UcmVlT3RoZXJbXSA9ICJE
T01UcmVlT3RoZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZURPTVtdID0gIkRPTVRyZWVE
T00iOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZUNTU1tdID0gIkRPTVRyZWVDU1MiOwotc3Rh
dGljIGNvbnN0IGNoYXIgZG9tVHJlZUJpbmRpbmdbXSA9ICJET01UcmVlQmluZGluZyI7Ci1zdGF0
aWMgY29uc3QgY2hhciBkb21UcmVlTG9hZGVyW10gPSAiRE9NVHJlZUxvYWRlciI7Ci0KIHN0YXRp
YyBjb25zdCBjaGFyIGRvbVN0b3JhZ2VDYWNoZVtdID0gIkRPTVN0b3JhZ2VDYWNoZSI7CiB9CiAK
QEAgLTQ0MCwxNCArNDIxLDYgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5Qmxv
Y2s+IHJlbmRlclRyZWVJbmZvKFBhZ2UqIHBhZ2UpCiAgICAgcmV0dXJuIHJlbmRlclRyZWVBbGxv
Y2F0ZWQucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgc2l6ZV90IGFkZE1lbW9yeUJsb2NrRm9yKFR5
cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz4qIGFycmF5LCBzaXplX3Qgc2l6
ZSwgY29uc3QgY2hhciogbmFtZSkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+
IHJlc3VsdCA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKG5hbWUpOwot
ICAgIHJlc3VsdC0+c2V0U2l6ZShzaXplKTsKLSAgICBhcnJheS0+YWRkSXRlbShyZXN1bHQpOwot
ICAgIHJldHVybiBzaXplOwotfQotCiBuYW1lc3BhY2UgewogCiBjbGFzcyBET01UcmVlc0l0ZXJh
dG9yIDogcHVibGljIE5vZGVXcmFwcGVyVmlzaXRvciB7CkBAIC00ODYsMzQgKzQ1OSwzMyBAQCBw
dWJsaWM6CiAgICAgICAgIHNpemVfdCB0b3RhbFNpemUgPSAwOwogCiAgICAgICAgIFJlZlB0cjxU
eXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gY2hpbGRyZW4gPSBUeXBl
QnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKLSAgICAgICAg
dG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0
cnVjdHVyZXMpLCBNZW1vcnlCbG9ja05hbWU6Om1lbW9yeUNhY2hlU3RydWN0dXJlcyk7Ci0gICAg
ICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1v
cnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVz
b3VyY2UpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlKTsKLSAgICAgICAgdG90YWxT
aXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1l
bnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUNTUyks
IE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VDU1MpOwotICAgICAgICB0b3RhbFNpemUg
Kz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlRm9udCksIE1l
bW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VGb250KTsKLSAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUltYWdlKSwgTWVt
b3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZUltYWdlKTsKLSAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNjcmlwdCksIE1l
bW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VTY3JpcHQpOwotICAgICAgICB0b3RhbFNpemUg
Kz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU1ZHKSwgTWVt
b3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZVNWRyk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBh
ZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24u
dG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VTaGFkZXIpLCBNZW1v
cnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlU2hhZGVyKTsKLSAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVhTTFQpLCBNZW1v
cnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlWFNMVCk7Ci0KLSAgICAgICAgUmVmUHRyPEluc3Bl
Y3Rvck1lbW9yeUJsb2NrPiBibG9jayA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5z
ZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6bWVtb3J5Q2FjaGUpOworICAgICAgICB0b3RhbFNpemUg
Kz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6
TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJs
b2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNl
UmF3KTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdl
dCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlQ1NTKTsKKyAgICAgICAgdG90
YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkNhY2hlZFJlc291cmNlRm9udCk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1v
cnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNv
dXJjZUltYWdlKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxk
cmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2NyaXB0KTsKKyAg
ICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU1ZHKTsKKyAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNh
Y2hlZFJlc291cmNlU2hhZGVyKTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2Nr
Rm9yKGNoaWxkcmVuLmdldCgpLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlWFNM
VCk7CisKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBibG9jayA9IEluc3Bl
Y3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKFdlYkNvcmVNZW1vcnlUeXBlczo6TWVt
b3J5Q2FjaGUpOwogICAgICAgICBibG9jay0+c2V0U2l6ZSh0b3RhbFNpemUpOwogICAgICAgICBi
bG9jay0+c2V0Q2hpbGRyZW4oY2hpbGRyZW4ucmVsZWFzZSgpKTsKICAgICAgICAgcmV0dXJuIGJs
b2NrLnJlbGVhc2UoKTsKICAgICB9CiAKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJs
b2NrPiBidWlsZE9iamVjdEZvckRPTSgpIGNvbnN0CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JN
ZW1vcnlCbG9jaz4gYnVpbGRPYmplY3RGb3JQYWdlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHNp
emVfdCB0b3RhbFNpemUgPSAwOwogCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gZG9tQ2hpbGRyZW4gPSBUeXBlQnVpbGRlcjo6QXJyYXk8
SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFk
ZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi50b3RhbFNpemUoR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlciksIE1lbW9yeUJsb2NrTmFtZTo6
ZG9tVHJlZU90aGVyKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRv
bUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29y
ZU1lbW9yeVR5cGVzOjpET00pLCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVET00pOwotICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIG1fbWVt
b3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyksIE1l
bW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUNTUyk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1v
cnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90
YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyksIE1lbW9yeUJsb2NrTmFtZTo6ZG9t
VHJlZUJpbmRpbmcpOwotICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9t
Q2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3Jl
TWVtb3J5VHlwZXM6OkxvYWRlciksIE1lbW9yeUJsb2NrTmFtZTo6ZG9tVHJlZUxvYWRlcik7Cisg
ICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwg
V2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5
QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAg
ICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVt
b3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVy
KTsKIAotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGRvbSA9IEluc3BlY3Rv
ck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6ZG9tKTsKKyAg
ICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkb20gPSBJbnNwZWN0b3JNZW1vcnlC
bG9jazo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6OlBhZ2UpOwogICAgICAg
ICBkb20tPnNldFNpemUodG90YWxTaXplKTsKICAgICAgICAgZG9tLT5zZXRDaGlsZHJlbihkb21D
aGlsZHJlbi5yZWxlYXNlKCkpOwogICAgICAgICByZXR1cm4gZG9tLnJlbGVhc2UoKTsKQEAgLTUy
MiwxMSArNDk0LDIxIEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBTdGF0aXN0aWNzKFR5cGVCdWls
ZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz4qIGNoaWxkcmVuLCBJbnNwZWN0b3JEYXRh
Q291bnRlciogaW5zcGVjdG9yRGF0YSkKICAgICB7CiAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVt
KGJ1aWxkT2JqZWN0Rm9yTWVtb3J5Q2FjaGUoKSk7Ci0gICAgICAgIGNoaWxkcmVuLT5hZGRJdGVt
KGJ1aWxkT2JqZWN0Rm9yRE9NKCkpOworICAgICAgICBjaGlsZHJlbi0+YWRkSXRlbShidWlsZE9i
amVjdEZvclBhZ2UoKSk7CisKICAgICAgICAgaW5zcGVjdG9yRGF0YS0+YWRkQ29tcG9uZW50KE1l
bW9yeUJsb2NrTmFtZTo6aW5zcGVjdG9yRE9NRGF0YSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24u
c2VsZlNpemUoKSk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIHNpemVfdCBhZGRNZW1vcnlCbG9j
a0ZvcihUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBhcnJheSwgTWVt
b3J5T2JqZWN0VHlwZSB0eXBlTmFtZSkgY29uc3QKKyAgICB7CisgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JNZW1vcnlCbG9jaz4gcmVzdWx0ID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgp
LnNldE5hbWUodHlwZU5hbWUpOworICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLnRvdGFsU2l6ZSh0eXBlTmFtZSk7CisgICAgICAgIHJlc3VsdC0+c2V0U2l6ZShz
aXplKTsKKyAgICAgICAgYXJyYXktPmFkZEl0ZW0ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNp
emU7CisgICAgfQorCiAgICAgUGFnZSogbV9wYWdlOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
bkltcGwmIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcAppbmRleCAzNmM0
MzUxOTgzMzNlMDM5NGYwYjE3MGI1NjFhMjY2MDJjYjE4NWZjLi40N2E5MWQ1YjMxYjU2OGY1OTgx
MWFiN2UyMDYwYWUzOGQwMzBkNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuY3BwCkBAIC01Miw2ICs1Miw3IEBAIHZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbDo6cHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVk
UG9pbnRlcnMoKQogCiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OmNvdW50T2JqZWN0
U2l6ZShNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogeworICAgIEFT
U0VSVChvYmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVkKTsKICAgICBU
eXBlVG9TaXplTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV90b3RhbFNpemVzLmFkZChvYmplY3RU
eXBlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICByZXN1bHQu
aXRlcmF0b3ItPnNlY29uZCArPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwppbmRl
eCAxYjBjZTFlMDZlMDRmYzYyYWU0ZTQwZjUxY2FjZWE5ZjRlNmY1YTE0Li5lMzI5NTkyNjhhNTEw
ZGNmODMxYmZkNTc5NWI0ZDE5MDQwZjY4NzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5q
cwpAQCAtMjE2LDggKzIxNiw5IEBAIFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzLl9pbml0aWFsaXplID0gZnVuY3Rpb24oKQogICAgICAgICBXZWJJbnNwZWN0b3IuTWVtb3J5
QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3NbbmFtZV0gPSBuZXcgV2ViSW5zcGVj
dG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMoZmlsbFN0eWxlLCBuYW1lLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoZGVzY3JpcHRpb24pKTsKICAgICB9CiAgICAgYWRkQmxvY2soImhzbCggIDAs
ICAwJSwgMTAwJSkiLCAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiVG90YWwiKTsKKyAgICBhZGRC
bG9jaygiaHNsKCAgMCwgIDAlLCAgODAlKSIsICJPd25lcnNUeXBlUGxhY2Vob2xkZXIiLCAiT3du
ZXJzVHlwZVBsYWNlaG9sZGVyIik7CiAgICAgYWRkQmxvY2soImhzbCggIDAsICAwJSwgIDgwJSki
LCAiT3RoZXIiLCAiT3RoZXIiKTsKLSAgICBhZGRCbG9jaygiaHNsKDMwMCwgMzAlLCAgODAlKSIs
ICJET00iLCAiRE9NIHRyZWUgc3RydWN0dXJlcyIpOworICAgIGFkZEJsb2NrKCJoc2woMzAwLCAz
MCUsICA4MCUpIiwgIlBhZ2UiLCAiUGFnZSdzIHN0cnVjdHVyZXMiKTsKICAgICBhZGRCbG9jaygi
aHNsKCA5MCwgNjAlLCAgODAlKSIsICJKU0hlYXBBbGxvY2F0ZWQiLCAiSmF2YVNjcmlwdCBoZWFw
Iik7CiAgICAgYWRkQmxvY2soImhzbCggOTAsIDgwJSwgIDgwJSkiLCAiSlNIZWFwVXNlZCIsICJV
c2VkIEphdmFTY3JpcHQgaGVhcCIpOwogICAgIGFkZEJsb2NrKCJoc2woIDkwLCAzMCUsICA4MCUp
IiwgIkpTRXh0ZXJuYWxSZXNvdXJjZXMiLCAiSmF2YVNjcmlwdCBleHRlcm5hbCByZXNvdXJjZXMi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IGY5ZDBmZDM2MTBlZDJiMDljNGExNjA4NjQ1YmQ5ZjIwODFjMmZkMzkuLmNkN2Ex
MWRjNmMxYWY3NDMxY2E2NTRhOWJlNjBlZjdjZjM4NDVkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMTYyLDcgKzE2Miw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKLSAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNhY2hlZFJlc291cmNlKTsKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlUmF3
KTsKICAgICBDYWNoZWRSZXNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5m
byk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCmluZGV4IGExYjJiZGFkYTQ1MDE2M2RiMWRjMzJlYzI1MDM0ZmQ0NTQxYzYyMTguLjU4MjQ0
NWJhYzliYzMwYjgxMWE2ZWEwNDUyNWZkNjFmMzA0YzQ4ZDkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtODAzLDcgKzgwMyw3IEBAIHZv
aWQgQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlQ2FsbGJhY2s6OnRpbWVyRmlyZWQoVGlt
ZXI8Q2FjaGVkUmVzb3VyY2VDYWxsCiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7Ci0gICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDYWNoZWRSZXNvdXJjZSk7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVzOjpVbmRlZmluZWQpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcmVzb3VyY2VSZXF1ZXN0KTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9j
bGllbnRzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2FjY2VwdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmNw
cAppbmRleCBhZDM3ZmU0MzdjYTU2NDEzZjkwZmU1NDk3NGQ0ZWQ5ZmZjOGEzODY2Li42ZWFjNmI0
YjZmMTljMDVjMWU3OWRjYmM1OTBlMDQyODAzYmY2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2U6OnNldFJlc291cmNlKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKIAogdm9pZCBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2U6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7
Ci0gICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSk7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0
cnVjdHVyZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVzb3VyY2UpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBjMWU3MzMw
NDMwMGJkMmVmYWE1MzJlNjQxMTZjNGEzOTdhNzM3MzEwLi42YWU4MzFjMjQ1N2EwYTg2ZGYzYTAy
MDUwZjY2YzZjNzZlNDMyZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZl
cjo6YnVmZmVyKCkgY29uc3QKIAogdm9pZCBTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7Ci0gICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVz
OjpPdGhlcik7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgR2VuZXJpY01lbW9yeVR5cGVzOjpVbmRlZmluZWQpOwogICAgIGluZm8uYWRkVmVjdG9yKG1f
YnVmZmVyKTsKICAgICBpbmZvLmFkZFZlY3RvcihtX3NlZ21lbnRzKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
CmluZGV4IDQxMWE4YTkwYTU4YTA4YmRhNWVlZWUzYmM3NzE4NzM1NzYwNTcwZmUuLjNkNDY2NTZh
YWRkMmM1NjQxZTIxNGEyYTM3ZjE3MDg3OTIwZjRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApA
QCAtMTcyLDI3ICsxNzIsMjcgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBvd25Q
dHJOb3RJbnN0cnVtZW50ZWQpCiAgICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUo
KSk7CiB9CiAKLWNsYXNzIEluc3RydW1lbnRlZE90aGVyIHsKK2NsYXNzIEluc3RydW1lbnRlZFVu
ZGVmaW5lZCB7CiBwdWJsaWM6Ci0gICAgSW5zdHJ1bWVudGVkT3RoZXIoKSA6IG1fZGF0YSgwKSB7
IH0KKyAgICBJbnN0cnVtZW50ZWRVbmRlZmluZWQoKSA6IG1fZGF0YSgwKSB7IH0KIAogICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIpOworICAgICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBHZW5lcmljTWVtb3J5VHlwZXM6OlVu
ZGVmaW5lZCk7CiAgICAgfQogICAgIGludCBtX2RhdGE7CiB9OwogCiBjbGFzcyBJbnN0cnVtZW50
ZWRET00gewogcHVibGljOgotICAgIEluc3RydW1lbnRlZERPTSgpIDogbV9pbnN0cnVtZW50ZWRP
dGhlcihhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkT3RoZXIpKSB7IH0KKyAgICBJbnN0cnVtZW50
ZWRET00oKSA6IG1faW5zdHJ1bWVudGVkVW5kZWZpbmVkKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50
ZWRVbmRlZmluZWQpKSB7IH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6
RE9NKTsKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9pbnN0cnVtZW50ZWRP
dGhlcik7CisgICAgICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1faW5zdHJ1bWVudGVk
VW5kZWZpbmVkKTsKICAgICB9Ci0gICAgT3duUHRyPEluc3RydW1lbnRlZE90aGVyPiBtX2luc3Ry
dW1lbnRlZE90aGVyOworICAgIE93blB0cjxJbnN0cnVtZW50ZWRVbmRlZmluZWQ+IG1faW5zdHJ1
bWVudGVkVW5kZWZpbmVkOwogfTsKIAogVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBv
d25lclR5cGVQcm9wYWdhdGlvbikKQEAgLTIwMSw4ICsyMDEsOCBAQCBURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIG93bmVyVHlwZVByb3BhZ2F0aW9uKQogICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CiAgICAgT3duUHRyPEluc3RydW1lbnRl
ZERPTT4gaW5zdHJ1bWVudGVkRE9NKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRET00pKTsKICAg
ICBpbXBsLmFkZFJvb3RPYmplY3QoaW5zdHJ1bWVudGVkRE9NKTsKLSAgICBFWFBFQ1RfRVEoc2l6
ZW9mKEluc3RydW1lbnRlZERPTSkgKyBzaXplb2YoSW5zdHJ1bWVudGVkT3RoZXIpLCBpbXBsLnJl
cG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOwotICAgIEVYUEVDVF9FUShzaXplb2YoSW5zdHJ1bWVu
dGVkRE9NKSArIHNpemVvZihJbnN0cnVtZW50ZWRPdGhlciksIGltcGwudG90YWxTaXplKFdlYkNv
cmVNZW1vcnlUeXBlczo6RE9NKSk7CisgICAgRVhQRUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRE
T00pICsgc2l6ZW9mKEluc3RydW1lbnRlZFVuZGVmaW5lZCksIGltcGwucmVwb3J0ZWRTaXplRm9y
QWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRET00pICsgc2l6
ZW9mKEluc3RydW1lbnRlZFVuZGVmaW5lZCksIGltcGwudG90YWxTaXplKFdlYkNvcmVNZW1vcnlU
eXBlczo6RE9NKSk7CiAgICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162489</attachid>
            <date>2012-09-06 06:19:31 -0700</date>
            <delta_ts>2012-09-06 07:23:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95957-20120906171911.patch</filename>
            <type>text/plain</type>
            <size>22212</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY5YzgwOWMyNjM3ZjI3
NThhNmZhNGNmNjRlZjZkNjJjN2FmYTg0NC4uZmVmMWQ0Mzk2NDQ2NmM0NWI4NjNhNTcwNzMwNmFi
OTFjZThlYmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTA2ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUk6IHN3aXRjaCB0byBoaWVyYXJjaGljYWwgaWRlbnRpZmllcnMgb2YgTWVtb3J5Qmxv
Y2tUeXBlcyBhbmQgdXNlIHRoZXNlIGlkZW50aWZpZXJzIGluIHByb3RvY29sLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgd2hlbiB3ZSB1c2Ugc3Ry
aW5nIGlkZW50aWZpZXJzIGFzIE1lbW9yeU9iamVjdFR5cGUgd2UgY2FuIHVzZSB0aGVtIGFzIHRo
ZSBpZGVudGlmaWVycyBmb3IgdGhlIHByb3RvY29sCisgICAgICAgIGluc3RlYWQgb2YgTWVtb3J5
QmxvY2tOYW1lcyBoYXJkY29kZWQgaW4gSW5zcGVjdG9yTWVtb3J5QWdlbnQuLgorICAgICAgICBB
dCBhIGxhdGVyIHN0YWdlLCB3aGVuIGVhY2ggdHlwZSBvZiBtZW1vcnkgd2lsbCBiZSBjb3VudGVk
IGluIE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9j
a3MgaGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAg
KiBkb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEdlbmVyaWNNZW1v
cnlUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJv
b3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5T2JqZWN0SW5mbzo6cmVwb3J0T2Jq
ZWN0SW5mbyk6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChNZW1vcnlCbG9ja05hbWUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL01lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbDo6Y291bnRPYmplY3RTaXplKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05h
dGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlC
bG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXplKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3Vy
Y2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOjpyZXBvcnRNZW1v
cnlVc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTA1
ICBBbmRyZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFByb3RvY29sIEV4dGVuc2lvbjogQWRkICJyZWdpb25MYXlvdXRVcGRhdGUiIGV2ZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIwODBhZTUyMjFiOWQ2YjU3ZWQ3OTA3ZDY0
NGNmMDJjOGUwNWJiMDguLjU5MTgxYWNiZjE2YzhhMjYyMDg1MDExNmEzM2Y5MTM3MWQzZDBjZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDktMDYg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE5NSTogc3dpdGNoIHRvIGhpZXJhcmNoaWNhbCBpZGVudGlmaWVycyBvZiBNZW1v
cnlCbG9ja1R5cGVzIGFuZCB1c2UgdGhlc2UgaWRlbnRpZmllcnMgaW4gcHJvdG9jb2wuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB3aGVuIHdlIHVz
ZSBzdHJpbmcgaWRlbnRpZmllcnMgYXMgTWVtb3J5T2JqZWN0VHlwZSB3ZSBjYW4gdXNlIHRoZW0g
YXMgdGhlIGlkZW50aWZpZXJzIGZvciB0aGUgcHJvdG9jb2wKKyAgICAgICAgaW5zdGVhZCBvZiBN
ZW1vcnlCbG9ja05hbWVzIGhhcmRjb2RlZCBpbiBJbnNwZWN0b3JNZW1vcnlBZ2VudC4uCisgICAg
ICAgIEF0IGEgbGF0ZXIgc3RhZ2UsIHdoZW4gZWFjaCBtZW1vcnkgdHlwZSBpcyBjb3VudGVkIGlu
IE1lbW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICB3ZSB3aWxsIGJ1aWxkIHRoZSBibG9ja3Mg
aGllcmFyY2h5IGZvciB0aGUgZnJvbnQtZW5kIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAgKiB0
ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3RydW1lbnRlZFVuZGVmaW5lZDo6SW5zdHJ1bWVudGVkVW5kZWZpbmVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3RydW1lbnRlZFVuZGVmaW5lZDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkRE9NOjpJbnN0cnVtZW50ZWRET00pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zdHJ1bWVudGVkRE9NOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChJ
bnN0cnVtZW50ZWRET00pOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTItMDktMDUg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBBZGQgYSBjb3B5KCkgbWV0aG9kIHRvIENDRHJhd1F1YWQgYW5kIENDU2hhcmVkUXVhZFN0YXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg3
NDY1ZGQzYzcyOTUzMWQ5YTEyNTIzNzIwZWJhNGJkMDgxOWRlMzguLjU1ZjQ0OTI4OTU5ZDZmZGU2
NWM5Mzc4YTcyNTI1MGRmZmQ1NDExN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNywyMSArMzcsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1NZW1vcnlPYmplY3RUeXBlIEdlbmVyaWNNZW1vcnlUeXBlczo6T3RoZXIgPSAiT3Ro
ZXIiOworTWVtb3J5T2JqZWN0VHlwZSBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCA9IDA7
CiAKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAiRE9NIjsKLU1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MgPSAiQ1NTIjsKLU1lbW9yeU9i
amVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nID0gIkJpbmRpbmciOwotTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJMb2FkZXIiOwotTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlU3RydWN0dXJlcyA9ICJN
ZW1vcnlDYWNoZVN0cnVjdHVyZXMiOwotTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkNhY2hlZFJlc291cmNlID0gIkNhY2hlZFJlc291cmNlIjsKLU1lbW9yeU9iamVjdFR5cGUg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUNTUyA9ICJDYWNoZWRSZXNvdXJjZUNT
UyI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VG
b250ID0gIkNhY2hlZFJlc291cmNlRm9udCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSA9ICJDYWNoZWRSZXNvdXJjZUltYWdlIjsKLU1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNjcmlwdCA9
ICJDYWNoZWRSZXNvdXJjZVNjcmlwdCI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q2FjaGVkUmVzb3VyY2VTVkcgPSAiQ2FjaGVkUmVzb3VyY2VTVkciOwotTWVtb3J5T2Jq
ZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVyID0gIkNhY2hl
ZFJlc291cmNlU2hhZGVyIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpD
YWNoZWRSZXNvdXJjZVhTTFQgPSAiQ2FjaGVkUmVzb3VyY2VYU0xUIjsKK01lbW9yeU9iamVjdFR5
cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpQYWdlID0gIlBhZ2UiOworTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSA9ICJQYWdlLkRPTSI7CitNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTID0gIlBhZ2UuQ1NTIjsKK01lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nID0gIlBhZ2UuQmluZGluZyI7CitNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKKworTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlID0gIk1lbW9yeUNhY2hl
IjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVj
dHVyZXMgPSAiTWVtb3J5Q2FjaGUuSW50ZXJuYWxTdHJ1Y3R1cmVzIjsKK01lbW9yeU9iamVjdFR5
cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSA9ICJNZW1vcnlDYWNoZS5SZXNv
dXJjZSI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3Vy
Y2VSYXcgPSAiTWVtb3J5Q2FjaGUuUmF3UmVzb3VyY2UiOworTWVtb3J5T2JqZWN0VHlwZSBXZWJD
b3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlQ1NTID0gIk1lbW9yeUNhY2hlLkNTUyI7CitN
ZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VGb250ID0g
Ik1lbW9yeUNhY2hlLkZvbnQiOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6
OkNhY2hlZFJlc291cmNlSW1hZ2UgPSAiTWVtb3J5Q2FjaGUuSW1hZ2UiOworTWVtb3J5T2JqZWN0
VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2NyaXB0ID0gIk1lbW9yeUNh
Y2hlLlNjcmlwdCI7CitNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVk
UmVzb3VyY2VTVkcgPSAiTWVtb3J5Q2FjaGUuU1ZHIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNoYWRlciA9ICJNZW1vcnlDYWNoZS5TaGFkZXIi
OworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlWFNM
VCA9ICJNZW1vcnlDYWNoZS5YU0xUIjsKIAogdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PFN0cmluZz4oTWVtb3J5SW5zdHJ1
bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFN0cmluZyogY29uc3QmIHN0cmluZywg
TWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5n
VHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRl
eCA4MDIxYTA5MjgyNWRkMWE2ZmRhMjhjYjg3NmM4N2U4ZjU2NjgzZjI1Li5iM2NhYTRkMWVkYTc5
MmYzNDc2MDNiOWNmOGZjZjZjZTkzYTQxYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9y
eUluc3RydW1lbnRhdGlvbi5oCkBAIC00OSw3ICs0OSw3IEBAIHR5cGVkZWYgY29uc3QgY2hhciog
TWVtb3J5T2JqZWN0VHlwZTsKIAogY2xhc3MgR2VuZXJpY01lbW9yeVR5cGVzIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBPdGhlcjsKKyAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBVbmRlZmluZWQ7CiB9OwogCiBlbnVtIE1lbW9yeU93bmluZ1R5cGUgewpAQCAtNjks
NyArNjksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRS
b290T2JqZWN0KGNvbnN0IFQmIHQpCiAgICAgewotICAgICAgICBhZGRJbnN0cnVtZW50ZWRPYmpl
Y3QodCwgR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlcik7CisgICAgICAgIGFkZEluc3RydW1lbnRl
ZE9iamVjdCh0LCBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCk7CiAgICAgICAgIHByb2Nl
c3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCk7CiAgICAgfQogCkBAIC0xODgsNyArMTg4
LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIGlmICghbV9vYmplY3RTaXplKSB7CiAgICAg
ICAgICAgICBtX29iamVjdFNpemUgPSBhY3R1YWxTaXplID8gYWN0dWFsU2l6ZSA6IHNpemVvZihU
KTsKLSAgICAgICAgICAgIGlmIChvYmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6T3Ro
ZXIpCisgICAgICAgICAgICBpZiAob2JqZWN0VHlwZSAhPSBHZW5lcmljTWVtb3J5VHlwZXM6OlVu
ZGVmaW5lZCkKICAgICAgICAgICAgICAgICBtX29iamVjdFR5cGUgPSBvYmplY3RUeXBlOwogICAg
ICAgICB9CiAgICAgfQpAQCAtNDA4LDEyICs0MDgsMTYgQEAgdGVtcGxhdGU8PiB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PGNvbnN0IEF0b21pY1N0cmluZz4oTWVt
b3IKIAogY2xhc3MgV2ViQ29yZU1lbW9yeVR5cGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgTWVt
b3J5T2JqZWN0VHlwZSBQYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIERPTTsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBDU1M7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQmluZGluZzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisKKyAgICBz
dGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBNZW1vcnlDYWNoZTsKICAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBNZW1vcnlDYWNoZVN0cnVjdHVyZXM7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQ2FjaGVkUmVzb3VyY2U7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ2FjaGVkUmVz
b3VyY2VSYXc7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ2FjaGVkUmVzb3VyY2VDU1M7
CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ2FjaGVkUmVzb3VyY2VGb250OwogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIENhY2hlZFJlc291cmNlSW1hZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAppbmRleCA4MTBhODBh
N2RiMDljNjMzMDg5OGNiNWI0ZDAzYzFlNDJkM2ViMzQyLi5lODg3NGNjZTUzZjNjOTZkYTEwMmQ0
MTU5ZWZkZWIxNjFiM2ZlZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTgzLDI4ICs4Myw5IEBAIHN0YXRpYyBjb25zdCBj
aGFyIGluc3BlY3RvckRPTURhdGFbXSA9ICJJbnNwZWN0b3JET01EYXRhIjsKIHN0YXRpYyBjb25z
dCBjaGFyIGluc3BlY3RvckpTSGVhcERhdGFbXSA9ICJJbnNwZWN0b3JKU0hlYXBEYXRhIjsKIHN0
YXRpYyBjb25zdCBjaGFyIHByb2Nlc3NQcml2YXRlTWVtb3J5W10gPSAiUHJvY2Vzc1ByaXZhdGVN
ZW1vcnkiOwogCi1zdGF0aWMgY29uc3QgY2hhciBtZW1vcnlDYWNoZVtdID0gIk1lbW9yeUNhY2hl
IjsKLXN0YXRpYyBjb25zdCBjaGFyIG1lbW9yeUNhY2hlU3RydWN0dXJlc1tdID0gIk1lbW9yeUNh
Y2hlU3RydWN0dXJlcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJjZVtdID0gIkNh
Y2hlZFJlc291cmNlIjsKLXN0YXRpYyBjb25zdCBjaGFyIGNhY2hlZFJlc291cmNlSW1hZ2VbXSA9
ICJDYWNoZWRJbWFnZXMiOwotc3RhdGljIGNvbnN0IGNoYXIgY2FjaGVkUmVzb3VyY2VDU1NbXSA9
ICJDYWNoZWRDc3NTdHlsZVNoZWV0cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBjYWNoZWRSZXNvdXJj
ZVNjcmlwdFtdID0gIkNhY2hlZFNjcmlwdHMiOwotc3RhdGljIGNvbnN0IGNoYXIgY2FjaGVkUmVz
b3VyY2VYU0xbXSA9ICJDYWNoZWRYc2xTdHlsZVNoZWV0cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBj
YWNoZWRSZXNvdXJjZUZvbnRbXSA9ICJDYWNoZWRGb250cyI7Ci1zdGF0aWMgY29uc3QgY2hhciBj
YWNoZWRSZXNvdXJjZVNWR1tdID0gIkNhY2hlZFNWR0dyYXBoaWNzIjsKLXN0YXRpYyBjb25zdCBj
aGFyIGNhY2hlZFJlc291cmNlU2hhZGVyW10gPSAiQ2FjaGVkU2hhZGVycyI7Ci1zdGF0aWMgY29u
c3QgY2hhciBjYWNoZWRSZXNvdXJjZVhTTFRbXSA9ICJDYWNoZWRTaGFkZXJzWFNMVCI7Ci0KIHN0
YXRpYyBjb25zdCBjaGFyIHJlbmRlclRyZWVVc2VkW10gPSAiUmVuZGVyVHJlZVVzZWQiOwogc3Rh
dGljIGNvbnN0IGNoYXIgcmVuZGVyVHJlZUFsbG9jYXRlZFtdID0gIlJlbmRlclRyZWVBbGxvY2F0
ZWQiOwogCi1zdGF0aWMgY29uc3QgY2hhciBkb21bXSA9ICJET00iOwotc3RhdGljIGNvbnN0IGNo
YXIgZG9tVHJlZU90aGVyW10gPSAiRE9NVHJlZU90aGVyIjsKLXN0YXRpYyBjb25zdCBjaGFyIGRv
bVRyZWVET01bXSA9ICJET01UcmVlRE9NIjsKLXN0YXRpYyBjb25zdCBjaGFyIGRvbVRyZWVDU1Nb
XSA9ICJET01UcmVlQ1NTIjsKLXN0YXRpYyBjb25zdCBjaGFyIGRvbVRyZWVCaW5kaW5nW10gPSAi
RE9NVHJlZUJpbmRpbmciOwotc3RhdGljIGNvbnN0IGNoYXIgZG9tVHJlZUxvYWRlcltdID0gIkRP
TVRyZWVMb2FkZXIiOwotCiBzdGF0aWMgY29uc3QgY2hhciBkb21TdG9yYWdlQ2FjaGVbXSA9ICJE
T01TdG9yYWdlQ2FjaGUiOwogfQogCkBAIC00NDAsMTQgKzQyMSw2IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiByZW5kZXJUcmVlSW5mbyhQYWdlKiBwYWdlKQogICAg
IHJldHVybiByZW5kZXJUcmVlQWxsb2NhdGVkLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIHNpemVf
dCBhZGRNZW1vcnlCbG9ja0ZvcihUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5Qmxv
Y2s+KiBhcnJheSwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIqIG5hbWUpCi17Ci0gICAgUmVmUHRy
PEluc3BlY3Rvck1lbW9yeUJsb2NrPiByZXN1bHQgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3Jl
YXRlKCkuc2V0TmFtZShuYW1lKTsKLSAgICByZXN1bHQtPnNldFNpemUoc2l6ZSk7Ci0gICAgYXJy
YXktPmFkZEl0ZW0ocmVzdWx0KTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQogbmFtZXNwYWNlIHsK
IAogY2xhc3MgRE9NVHJlZXNJdGVyYXRvciA6IHB1YmxpYyBOb2RlV3JhcHBlclZpc2l0b3IgewpA
QCAtNDg2LDM0ICs0NTksMzMgQEAgcHVibGljOgogICAgICAgICBzaXplX3QgdG90YWxTaXplID0g
MDsKIAogICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvck1lbW9yeUJs
b2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvck1lbW9yeUJsb2Nr
Pjo6Y3JlYXRlKCk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGls
ZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1v
cnlUeXBlczo6TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzKSwgTWVtb3J5QmxvY2tOYW1lOjptZW1vcnlD
YWNoZVN0cnVjdHVyZXMpOwotICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3Io
Y2hpbGRyZW4uZ2V0KCksIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3Jl
TWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlKSwgTWVtb3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNv
dXJjZSk7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5n
ZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBl
czo6Q2FjaGVkUmVzb3VyY2VDU1MpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlQ1NT
KTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgp
LCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpD
YWNoZWRSZXNvdXJjZUZvbnQpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlRm9udCk7
Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2VJbWFnZSksIE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VJbWFnZSk7
Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2VTY3JpcHQpLCBNZW1vcnlCbG9ja05hbWU6OmNhY2hlZFJlc291cmNlU2NyaXB0
KTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgp
LCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpD
YWNoZWRSZXNvdXJjZVNWRyksIE1lbW9yeUJsb2NrTmFtZTo6Y2FjaGVkUmVzb3VyY2VTVkcpOwot
ICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIG1f
bWVtb3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hl
ZFJlc291cmNlU2hhZGVyKSwgTWVtb3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZVNoYWRlcik7
Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2VYU0xUKSwgTWVtb3J5QmxvY2tOYW1lOjpjYWNoZWRSZXNvdXJjZVhTTFQpOwot
Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JN
ZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6Om1lbW9yeUNhY2hl
KTsKKyAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGNoaWxkcmVuLmdldCgp
LCBXZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlU3RydWN0dXJlcyk7CisgICAgICAgIHRv
dGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDYWNoZWRSZXNvdXJjZVJhdyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1v
cnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNv
dXJjZUNTUyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJl
bi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZUZvbnQpOworICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoY2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVN
ZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2VJbWFnZSk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBh
ZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNo
ZWRSZXNvdXJjZVNjcmlwdCk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zv
cihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNWRyk7
CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNoYWRlcik7CisgICAgICAgIHRvdGFs
U2l6ZSArPSBhZGRNZW1vcnlCbG9ja0ZvcihjaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5
cGVzOjpDYWNoZWRSZXNvdXJjZVhTTFQpOworCisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1v
cnlCbG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShX
ZWJDb3JlTWVtb3J5VHlwZXM6Ok1lbW9yeUNhY2hlKTsKICAgICAgICAgYmxvY2stPnNldFNpemUo
dG90YWxTaXplKTsKICAgICAgICAgYmxvY2stPnNldENoaWxkcmVuKGNoaWxkcmVuLnJlbGVhc2Uo
KSk7CiAgICAgICAgIHJldHVybiBibG9jay5yZWxlYXNlKCk7CiAgICAgfQogCi0gICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gYnVpbGRPYmplY3RGb3JET00oKSBjb25zdAorICAg
IFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGJ1aWxkT2JqZWN0Rm9yUGFnZSgpIGNv
bnN0CiAgICAgewogICAgICAgICBzaXplX3QgdG90YWxTaXplID0gMDsKIAogICAgICAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvck1lbW9yeUJsb2NrPiA+IGRvbUNoaWxkcmVu
ID0gVHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvck1lbW9yeUJsb2NrPjo6Y3JlYXRlKCk7Ci0g
ICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24udG90YWxTaXplKEdlbmVyaWNNZW1vcnlUeXBlczo6T3Ro
ZXIpLCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVPdGhlcik7Ci0gICAgICAgIHRvdGFsU2l6ZSAr
PSBhZGRNZW1vcnlCbG9ja0Zvcihkb21DaGlsZHJlbi5nZXQoKSwgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24udG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKSwgTWVtb3J5QmxvY2tOYW1l
Ojpkb21UcmVlRE9NKTsKLSAgICAgICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRv
bUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUoV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDU1MpLCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVDU1MpOwotICAgICAg
ICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tGb3IoZG9tQ2hpbGRyZW4uZ2V0KCksIG1fbWVt
b3J5SW5zdHJ1bWVudGF0aW9uLnRvdGFsU2l6ZShXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcp
LCBNZW1vcnlCbG9ja05hbWU6OmRvbVRyZWVCaW5kaW5nKTsKLSAgICAgICAgdG90YWxTaXplICs9
IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi50b3RhbFNpemUoV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2FkZXIpLCBNZW1vcnlCbG9ja05h
bWU6OmRvbVRyZWVMb2FkZXIpOworICAgICAgICB0b3RhbFNpemUgKz0gYWRkTWVtb3J5QmxvY2tG
b3IoZG9tQ2hpbGRyZW4uZ2V0KCksIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICAgICAg
dG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBXZWJDb3Jl
TWVtb3J5VHlwZXM6OkNTUyk7CisgICAgICAgIHRvdGFsU2l6ZSArPSBhZGRNZW1vcnlCbG9ja0Zv
cihkb21DaGlsZHJlbi5nZXQoKSwgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nKTsKKyAgICAg
ICAgdG90YWxTaXplICs9IGFkZE1lbW9yeUJsb2NrRm9yKGRvbUNoaWxkcmVuLmdldCgpLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkxvYWRlcik7CiAKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9y
eUJsb2NrPiBkb20gPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1v
cnlCbG9ja05hbWU6OmRvbSk7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4g
ZG9tID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUoV2ViQ29yZU1lbW9y
eVR5cGVzOjpQYWdlKTsKICAgICAgICAgZG9tLT5zZXRTaXplKHRvdGFsU2l6ZSk7CiAgICAgICAg
IGRvbS0+c2V0Q2hpbGRyZW4oZG9tQ2hpbGRyZW4ucmVsZWFzZSgpKTsKICAgICAgICAgcmV0dXJu
IGRvbS5yZWxlYXNlKCk7CkBAIC01MjIsMTEgKzQ5NCwyMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
dW1wU3RhdGlzdGljcyhUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBj
aGlsZHJlbiwgSW5zcGVjdG9yRGF0YUNvdW50ZXIqIGluc3BlY3RvckRhdGEpCiAgICAgewogICAg
ICAgICBjaGlsZHJlbi0+YWRkSXRlbShidWlsZE9iamVjdEZvck1lbW9yeUNhY2hlKCkpOwotICAg
ICAgICBjaGlsZHJlbi0+YWRkSXRlbShidWlsZE9iamVjdEZvckRPTSgpKTsKKyAgICAgICAgY2hp
bGRyZW4tPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JQYWdlKCkpOworCiAgICAgICAgIGluc3BlY3Rv
ckRhdGEtPmFkZENvbXBvbmVudChNZW1vcnlCbG9ja05hbWU6Omluc3BlY3RvckRPTURhdGEsIG1f
bWVtb3J5SW5zdHJ1bWVudGF0aW9uLnNlbGZTaXplKCkpOwogICAgIH0KIAogcHJpdmF0ZToKKyAg
ICBzaXplX3QgYWRkTWVtb3J5QmxvY2tGb3IoVHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvck1l
bW9yeUJsb2NrPiogYXJyYXksIE1lbW9yeU9iamVjdFR5cGUgdHlwZU5hbWUpIGNvbnN0CisgICAg
eworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IHJlc3VsdCA9IEluc3BlY3Rv
ck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKHR5cGVOYW1lKTsKKyAgICAgICAgc2l6ZV90
IHNpemUgPSBtX21lbW9yeUluc3RydW1lbnRhdGlvbi50b3RhbFNpemUodHlwZU5hbWUpOworICAg
ICAgICByZXN1bHQtPnNldFNpemUoc2l6ZSk7CisgICAgICAgIGFycmF5LT5hZGRJdGVtKHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiBzaXplOworICAgIH0KKwogICAgIFBhZ2UqIG1fcGFnZTsKICAg
ICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsJiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uSW1wbC5jcHAKaW5kZXggMzZjNDM1MTk4MzMzZTAzOTRmMGIxNzBiNTYxYTI2NjAyY2IxODVm
Yy4uNDdhOTFkNWIzMWI1NjhmNTk4MTFhYjdlMjA2MGFlMzhkMDMwZDQ3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNw
cApAQCAtNTIsNiArNTIsNyBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OnByb2Nl
c3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkKIAogdm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb25JbXBsOjpjb3VudE9iamVjdFNpemUoTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBz
aXplX3Qgc2l6ZSkKIHsKKyAgICBBU1NFUlQob2JqZWN0VHlwZSAhPSBHZW5lcmljTWVtb3J5VHlw
ZXM6OlVuZGVmaW5lZCk7CiAgICAgVHlwZVRvU2l6ZU1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1f
dG90YWxTaXplcy5hZGQob2JqZWN0VHlwZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQuaXNOZXdF
bnRyeSkKICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgKz0gc2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNo
b3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcuanMKaW5kZXggMWIwY2UxZTA2ZTA0ZmM2MmFlNGU0MGY1MWNhY2VhOWY0
ZTZmNWExNC4uZTMyOTU5MjY4YTUxMGRjZjgzMWJmZDU3OTViNGQxOTA0MGY2ODczNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRp
dmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAgLTIxNiw4ICsyMTYsOSBAQCBXZWJJbnNwZWN0b3Iu
TWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5faW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tz
W25hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzKGZpbGxT
dHlsZSwgbmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKGRlc2NyaXB0aW9uKSk7CiAgICAgfQog
ICAgIGFkZEJsb2NrKCJoc2woICAwLCAgMCUsIDEwMCUpIiwgIlByb2Nlc3NQcml2YXRlTWVtb3J5
IiwgIlRvdGFsIik7CisgICAgYWRkQmxvY2soImhzbCggIDAsICAwJSwgIDgwJSkiLCAiT3duZXJz
VHlwZVBsYWNlaG9sZGVyIiwgIk93bmVyc1R5cGVQbGFjZWhvbGRlciIpOwogICAgIGFkZEJsb2Nr
KCJoc2woICAwLCAgMCUsICA4MCUpIiwgIk90aGVyIiwgIk90aGVyIik7Ci0gICAgYWRkQmxvY2so
ImhzbCgzMDAsIDMwJSwgIDgwJSkiLCAiRE9NIiwgIkRPTSB0cmVlIHN0cnVjdHVyZXMiKTsKKyAg
ICBhZGRCbG9jaygiaHNsKDMwMCwgMzAlLCAgODAlKSIsICJQYWdlIiwgIlBhZ2UncyBzdHJ1Y3R1
cmVzIik7CiAgICAgYWRkQmxvY2soImhzbCggOTAsIDYwJSwgIDgwJSkiLCAiSlNIZWFwQWxsb2Nh
dGVkIiwgIkphdmFTY3JpcHQgaGVhcCIpOwogICAgIGFkZEJsb2NrKCJoc2woIDkwLCA4MCUsICA4
MCUpIiwgIkpTSGVhcFVzZWQiLCAiVXNlZCBKYXZhU2NyaXB0IGhlYXAiKTsKICAgICBhZGRCbG9j
aygiaHNsKCA5MCwgMzAlLCAgODAlKSIsICJKU0V4dGVybmFsUmVzb3VyY2VzIiwgIkphdmFTY3Jp
cHQgZXh0ZXJuYWwgcmVzb3VyY2VzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCBmOWQwZmQzNjEwZWQyYjA5YzRhMTYwODY0
NWJkOWYyMDgxYzJmZDM5Li5jZDdhMTFkYzZjMWFmNzQzMWNhNjU0YTliZTYwZWY3Y2YzODQ1ZGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHAKQEAgLTE2Miw3ICsxNjIsNyBAQCBib29sIENhY2hlZFJhd1Jlc291cmNlOjpjYW5SZXVz
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpIGNvbnN0CiAKIHZvaWQgQ2FjaGVk
UmF3UmVzb3VyY2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiB7Ci0gICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSk7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5
cGVzOjpDYWNoZWRSZXNvdXJjZVJhdyk7CiAgICAgQ2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9y
eVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmNwcAppbmRleCBhZDM3ZmU0MzdjYTU2
NDEzZjkwZmU1NDk3NGQ0ZWQ5ZmZjOGEzODY2Li42ZWFjNmI0YjZmMTljMDVjMWU3OWRjYmM1OTBl
MDQyODAzYmY2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZUhhbmRsZUJhc2U6OnNldFJlc291cmNlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAog
dm9pZCBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7Ci0gICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDYWNoZWRS
ZXNvdXJjZSk7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVjdHVyZXMpOwogICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVzb3VyY2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBjMWU3MzMwNDMwMGJkMmVmYWE1MzJlNjQxMTZj
NGEzOTdhNzM3MzEwLi42YWU4MzFjMjQ1N2EwYTg2ZGYzYTAyMDUwZjY2YzZjNzZlNDMyZGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTI1MCw3ICsyNTAs
NyBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZlcjo6YnVmZmVyKCkgY29uc3QKIAog
dm9pZCBTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiB7Ci0gICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVzOjpPdGhlcik7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVz
OjpVbmRlZmluZWQpOwogICAgIGluZm8uYWRkVmVjdG9yKG1fYnVmZmVyKTsKICAgICBpbmZvLmFk
ZFZlY3RvcihtX3NlZ21lbnRzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdt
ZW50cy5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDQxMWE4YTkwYTU4YTA4
YmRhNWVlZWUzYmM3NzE4NzM1NzYwNTcwZmUuLjNkNDY2NTZhYWRkMmM1NjQxZTIxNGEyYTM3ZjE3
MDg3OTIwZjRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMTcyLDI3ICsxNzIsMjcgQEAg
VEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBvd25QdHJOb3RJbnN0cnVtZW50ZWQpCiAg
ICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7CiB9CiAKLWNsYXNzIEluc3Ry
dW1lbnRlZE90aGVyIHsKK2NsYXNzIEluc3RydW1lbnRlZFVuZGVmaW5lZCB7CiBwdWJsaWM6Ci0g
ICAgSW5zdHJ1bWVudGVkT3RoZXIoKSA6IG1fZGF0YSgwKSB7IH0KKyAgICBJbnN0cnVtZW50ZWRV
bmRlZmluZWQoKSA6IG1fZGF0YSgwKSB7IH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7Ci0gICAgICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIEdlbmVyaWNNZW1v
cnlUeXBlczo6T3RoZXIpOworICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5lZCk7CiAgICAgfQogICAg
IGludCBtX2RhdGE7CiB9OwogCiBjbGFzcyBJbnN0cnVtZW50ZWRET00gewogcHVibGljOgotICAg
IEluc3RydW1lbnRlZERPTSgpIDogbV9pbnN0cnVtZW50ZWRPdGhlcihhZG9wdFB0cihuZXcgSW5z
dHJ1bWVudGVkT3RoZXIpKSB7IH0KKyAgICBJbnN0cnVtZW50ZWRET00oKSA6IG1faW5zdHJ1bWVu
dGVkVW5kZWZpbmVkKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRVbmRlZmluZWQpKSB7IH0KIAog
ICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKLSAgICAgICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9pbnN0cnVtZW50ZWRPdGhlcik7CisgICAgICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1faW5zdHJ1bWVudGVkVW5kZWZpbmVkKTsKICAgICB9Ci0g
ICAgT3duUHRyPEluc3RydW1lbnRlZE90aGVyPiBtX2luc3RydW1lbnRlZE90aGVyOworICAgIE93
blB0cjxJbnN0cnVtZW50ZWRVbmRlZmluZWQ+IG1faW5zdHJ1bWVudGVkVW5kZWZpbmVkOwogfTsK
IAogVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBvd25lclR5cGVQcm9wYWdhdGlvbikK
QEAgLTIwMSw4ICsyMDEsOCBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIG93bmVy
VHlwZVByb3BhZ2F0aW9uKQogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNp
dGVkT2JqZWN0cyk7CiAgICAgT3duUHRyPEluc3RydW1lbnRlZERPTT4gaW5zdHJ1bWVudGVkRE9N
KGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRET00pKTsKICAgICBpbXBsLmFkZFJvb3RPYmplY3Qo
aW5zdHJ1bWVudGVkRE9NKTsKLSAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3RydW1lbnRlZERPTSkg
KyBzaXplb2YoSW5zdHJ1bWVudGVkT3RoZXIpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVz
KCkpOwotICAgIEVYUEVDVF9FUShzaXplb2YoSW5zdHJ1bWVudGVkRE9NKSArIHNpemVvZihJbnN0
cnVtZW50ZWRPdGhlciksIGltcGwudG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKSk7
CisgICAgRVhQRUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRET00pICsgc2l6ZW9mKEluc3RydW1l
bnRlZFVuZGVmaW5lZCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQ
RUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRET00pICsgc2l6ZW9mKEluc3RydW1lbnRlZFVuZGVm
aW5lZCksIGltcGwudG90YWxTaXplKFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKSk7CiAgICAgRVhQ
RUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7CiB9CiAK
</data>
<flag name="review"
          id="173613"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>