<?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>98839</bug_id>
          
          <creation_ts>2012-10-09 18:04:58 -0700</creation_ts>
          <short_desc>Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText</short_desc>
          <delta_ts>2012-10-15 21:25:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>na7jun8gi</cc>
    
    <cc>philn</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>738390</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-09 18:04:58 -0700</bug_when>
    <thetext>Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738395</commentid>
    <comment_count>1</comment_count>
      <attachid>167890</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-09 18:11:31 -0700</bug_when>
    <thetext>Created attachment 167890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738448</commentid>
    <comment_count>2</comment_count>
      <attachid>167890</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 19:29:46 -0700</bug_when>
    <thetext>Comment on attachment 167890
Patch

Attachment 167890 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14250146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738453</commentid>
    <comment_count>3</comment_count>
      <attachid>167890</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-09 19:44:48 -0700</bug_when>
    <thetext>Comment on attachment 167890
Patch

Attachment 167890 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14215982</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738469</commentid>
    <comment_count>4</comment_count>
      <attachid>167890</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-09 20:16:57 -0700</bug_when>
    <thetext>Comment on attachment 167890
Patch

Attachment 167890 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14245339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738473</commentid>
    <comment_count>5</comment_count>
      <attachid>167890</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 20:23:25 -0700</bug_when>
    <thetext>Comment on attachment 167890
Patch

Attachment 167890 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14250158</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738498</commentid>
    <comment_count>6</comment_count>
      <attachid>167890</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-09 21:20:56 -0700</bug_when>
    <thetext>Comment on attachment 167890
Patch

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

Looks good, but more things need to build.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:695
&gt; +    WTF::String output = layer-&gt;layerTreeAsText(LayerTreeAsTextDebug | LayerTreeAsTextIncludeVisibleRects);

Not new, but the WTF:: here is not necessary.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:439
&gt; +    static void writeIndent(TextStream&amp;, int /*indent*/);

There is no reason to comment out the word indent here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739032</commentid>
    <comment_count>7</comment_count>
      <attachid>168016</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-10 09:45:25 -0700</bug_when>
    <thetext>Created attachment 168016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739033</commentid>
    <comment_count>8</comment_count>
      <attachid>168017</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-10 09:46:45 -0700</bug_when>
    <thetext>Created attachment 168017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739044</commentid>
    <comment_count>9</comment_count>
      <attachid>168017</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-10 10:00:52 -0700</bug_when>
    <thetext>Comment on attachment 168017
Patch

Attachment 168017 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14254221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739045</commentid>
    <comment_count>10</comment_count>
      <attachid>168021</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-10 10:01:02 -0700</bug_when>
    <thetext>Created attachment 168021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739072</commentid>
    <comment_count>11</comment_count>
      <attachid>168021</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-10 10:27:09 -0700</bug_when>
    <thetext>Comment on attachment 168021
Patch

Attachment 168021 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14245581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739112</commentid>
    <comment_count>12</comment_count>
      <attachid>168021</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-10 10:50:04 -0700</bug_when>
    <thetext>Comment on attachment 168021
Patch

Attachment 168021 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14260089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739113</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-10 10:50:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130927

This will break the Windows build with a link error, which I&apos;ll use to get the right mangled symbol to export.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167890</attachid>
            <date>2012-10-09 18:11:31 -0700</date>
            <delta_ts>2012-10-10 09:45:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98839-20121009181038.patch</filename>
            <type>text/plain</type>
            <size>19652</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQxMjM2OTljNGMxMDg0
NDljYjVlZDM2Yjk2MWU0MjI0ZDhhZTcxMi4uOTU3YmJmMjlmZDE4NmRjM2E1NWY3YWRlMTg5YTkz
MjA3Mjg2MmY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlz
aWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxh
eWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQgdG8g
YmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVyLAor
ICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxlcy4g
UmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAorICAg
ICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAgICAg
ICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0ZXN0
cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAgIGxh
eWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMsIHNv
IHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46IFNpZ25hdHVyZSBvZiBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY2hhbmdl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjps
YXllclRyZWVBc1RleHQpOiBDaGFuZ2UgdG8gdGFrZSBzb21lIGVudW0gZmxhZ3MgcmF0aGVyIHRo
YW4ganVzdCBhIGJvb2wuCisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6d3JpdGVJbmRlbnQpOiBNYWtlIGludG8gYSBzdGF0aWMgY2xhc3MgbWV0aG9kIHNv
IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKTogQ2FsbCBhIHZpcnR1YWwgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KCkgZm9yIHN1YmNsYXNzZXMuCisgICAgICAgIChzaG93R3JhcGhpY3NMYXllclRyZWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIpOiBOZXcgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyBmbGFnLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KTogTmV3IHZpcnR1YWwgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJl
Y3Vyc2l2ZUNvbW1pdENoYW5nZXMpOiBjbGlwUmVjdEZvckNoaWxkcmVuIGFuZCBjbGlwUmVjdEZv
clNlbGYKKyAgICAgICAgd2VyZSBwcmV2aW91c2x5IHVudXNlZCBhbmQgYnVnZ3kuIEZpeCB0byBj
b3JyZWN0bHkgY29tcHV0ZSBjbGlwUmVjdEZvclNlbGYsIHRvIGFzc2lnbgorICAgICAgICB0byBt
X3Zpc2libGVSZWN0LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpkdW1wQWRk
aXRpb25hbFByb3BlcnRpZXMpOiBEdW1wIG1fdmlzaWJsZVJlY3QuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
Q0EpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOiBD
b252ZXJ0IHRoZSBmbGFncyBmcm9tIEZyYW1lIGZsYWdzCisgICAgICAgIHRvIEdyYXBoaWNzTGF5
ZXJGbGFncyBhbmQgcGFzcyB0aGVtIGFsb25nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpsYXllclRyZWVBc1RleHQpOiBPdmVybG9hZGVkIG1ldGhvZCB0byBoYW5kbGUgdGhlIG9wdGlv
bmFsIElETCBhcmd1bWVudHMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkIGVu
dW0uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBBZGQgb3B0aW9uYWwgZmxhZ3Ms
IGFuZCBhIGNvbnN0IHNob3J0IHRvIGRlc2NyaWJlIHRoZSBmbGFncy4KKwogMjAxMi0xMC0wOSAg
UHJhdmluIEQgIDxwcmF2aW5kLjJrNEBnbWFpbC5jb20+CiAKICAgICAgICAgbWF4LXdpZHRoIHBy
b3BlcnR5IGlzIGRvZXMgbm90IG92ZXJyaWRpbmcgdGhlIHdpZHRoIHByb3BlcnRpZXMgZm9yIGNz
cyB0YWJsZXMoZGlzcGxheTp0YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmMmQxZTU0M2I4YzEy
MWFlNTkyOGI4Y2UxYmQ0Yzg5ZTM0MTI3MzJiLi4xZjA4YmM4NTI3Mzc3MGRiZmE1MmE5NmE2NDYz
YzQ5ZjBlYWIwODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTAt
MDkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3Rv
cmUgYSB2aXNpYmxlIHJlY3QgaW4gR3JhcGhpY3NMYXllcnMsIGFuZCBvcHRpb25hbGx5IGR1bXAg
aXQgaW4gbGF5ZXJUcmVlQXNUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRvIHJlcGxhY2UgQ0FUaWxlZExheWVyIHdpdGggVGlsZUNhY2hlcywgd2Ug
bmVlZCB0byBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIHZpc2libGUgcGFydCBvZiBhIEdyYXBoaWNz
TGF5ZXIsCisgICAgICAgIGluIG9yZGVyIHRvIGxpbWl0IHRoZSBleHRlbnQgb2YgVGlsZUNhY2hl
IHRpbGVzLiBSZXVzZSB0aGUgZXhpc3RpbmcgY29kZSBpbiBHcmFwaGljc0xheWVyQ0EgZm9yIHRo
aXMsCisgICAgICAgIGJ1dCBzdG9yZSB0aGUgY29tcHV0ZWQgcmVjdCBpbiBtX3Zpc2libGVSZWN0
LgorICAgICAgICAKKyAgICAgICAgQWRkIGEgZmxhZyB0byBsYXllclRyZWVBc1RleHQoKSBzbyB0
aGF0IHRlc3RzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgdGhpcyB2aXNpYmxlIHJlY3QgaW4KKyAg
ICAgICAgbGF5ZXIgdHJlZSBkdW1wcy4gVGhpcyBvdXRwdXQgd2lsbCBiZSBwbGF0Zm9ybS1zcGVj
aWZpYywgc28gd2UgZG9uJ3Qgd2FudCB0byBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfbGF5ZXJUcmVl
QXNUZXh0XSk6CisKIDIwMTItMTAtMDggIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5j
b20+CiAKICAgICAgICAgVGhyb3R0bGUgRE9NIHRpbWVycyBvbiBoaWRkZW4gcGFnZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggNDY4OTc3Y2E4Y2IxMmZjODdkOTQxZjQ0MmFjYjBiOWM5MTQ5YmU0Zi4uN2ZjYWVk
ODQ5Njg3YjNiZjQxYjkwMjIxMDMwOGQ0ZDUwZWViMzFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTEwLTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFN0b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQg
b3B0aW9uYWxseSBkdW1wIGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRo
IFRpbGVDYWNoZXMsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBh
cnQgb2YgYSBHcmFwaGljc0xheWVyLAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0
ZW50IG9mIFRpbGVDYWNoZSB0aWxlcy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhp
Y3NMYXllckNBIGZvciB0aGlzLAorICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3Qg
aW4gbV92aXNpYmxlUmVjdC4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJU
cmVlQXNUZXh0KCkgc28gdGhhdCB0ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlz
aWJsZSByZWN0IGluCisgICAgICAgIGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwg
YmUgcGxhdGZvcm0tc3BlY2lmaWMsIHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRp
b25hbGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6CisKIDIwMTItMTAtMDkg
IFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2lu
ZyBjb21waWxlIGZsYWcgZm9yIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJi
NGNmZGE5YjFiNWVkZWU3NTM4MDIzYjI5NGY2NDU5YjU3YjIwNjguLjEwMzIyZjFjNzVhZjgyN2Ni
MGQwMWYxMTgzNmYxMmQ1YjAyNjI4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMzE0LDcg
KzEzMTQsNyBAQCBfX1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5L
N1dlYkNvcmU1RnJhbWUxM293bmVyUmVuZGVyZXJFdgogX19aTks3V2ViQ29yZTVGcmFtZTE0c2Vs
ZWN0aW9uSW1hZ2VFYgogX19aTks3V2ViQ29yZTVGcmFtZTE1Y29udGVudFJlbmRlcmVyRXYKLV9f
Wk5LN1dlYkNvcmU1RnJhbWUxNWxheWVyVHJlZUFzVGV4dEViCitfX1pOSzdXZWJDb3JlNUZyYW1l
MTVsYXllclRyZWVBc1RleHRFagogX19aTks3V2ViQ29yZTVGcmFtZTE2ZnJhbWVTY2FsZUZhY3Rv
ckV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMThkb2N1bWVudFR5cGVTdHJpbmdFdgogX19aTks3V2Vi
Q29yZTVGcmFtZTMxZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmlu
Z0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2ZhYzkxMmRkMTc2ZWRmYTlmNGRkYzJlZjU1YWNk
YjQ2OGJiODdlYS4uNzM3MzM2YzM5YzJjNGM5YTIzYTY5NDhhNDk5NTY0ODIyNzdkYjNhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKQEAgLTg3Niw3ICs4NzYsNyBAQCBDb2xvciBGcmFtZTo6dGlsZWRC
YWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogfQogI2VuZGlmCiAKLVN0cmluZyBG
cmFtZTo6bGF5ZXJUcmVlQXNUZXh0KGJvb2wgc2hvd0RlYnVnSW5mbykgY29uc3QKK1N0cmluZyBG
cmFtZTo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdzKSBjb25zdAogewogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlv
dXQoKTsKQEAgLTg4NCw3ICs4ODQsNyBAQCBTdHJpbmcgRnJhbWU6OmxheWVyVHJlZUFzVGV4dChi
b29sIHNob3dEZWJ1Z0luZm8pIGNvbnN0CiAgICAgaWYgKCFjb250ZW50UmVuZGVyZXIoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5j
b21wb3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChzaG93RGVidWdJbmZvKTsKKyAgICByZXR1cm4g
Y29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNob3dEZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJp
bmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA3MTk2OTIyNjk1OGJhNmYwODg4Yjc2YzVhN2I5ZDhh
ZjYzNWJmYWQwLi40MDQ4ZjQzZGVmMzgwMjYwMWMwNDM2NmQ2NDliMGI0YjE0ODI2ZDBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCkBAIC03Niw2ICs3NiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBUcmVlU2NvcGU7CiAKKyAgICBlbnVtIHsKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlRGVidWdJbmZvID0gMSA8PCAwLAorICAgICAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVW
aXNpYmxlUmVjdHMgPSAxIDw8IDIKKyAgICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJU
cmVlRmxhZ3M7CisKICAgICBjbGFzcyBGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZyYW1lPiwg
cHVibGljIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGUoUGFnZSosIEhUTUxGcmFtZU93bmVyRWxlbWVu
dCosIEZyYW1lTG9hZGVyQ2xpZW50Kik7CkBAIC0xMjUsNyArMTMxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVj
dGlvblRpbWUpOwogICAgICAgICAKLSAgICAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChib29s
IHNob3dEZWJ1Z0luZm8gPSBmYWxzZSkgY29uc3Q7CisgICAgICAgIFN0cmluZyBsYXllclRyZWVB
c1RleHQoTGF5ZXJUcmVlRmxhZ3MpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBGcmFtZSogZnJh
bWVGb3JXaWRnZXQoY29uc3QgV2lkZ2V0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZjg1NDQ1ZjRiYTUzNDcxN2Iz
ZjcxODMxMjc3MmNlNGZiOTUzY2NkMS4uZmQ2MjY4ODM2YWUwMjQxZDVmMWE1OWEwNDllY2I4MTc2
N2U4Mzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTUzNiw3ICs1MzYsNyBAQCBkb3VibGUgR3JhcGhpY3NMYXllcjo6
YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KDQgKiBzaXplKCkud2lkdGgoKSkgKiBzaXplKCkuaGVpZ2h0KCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdyaXRlSW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KQordm9pZCBH
cmFwaGljc0xheWVyOjp3cml0ZUluZGVudChUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkKIHsK
ICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBpbmRlbnQ7ICsraSkKICAgICAgICAgdHMgPDwgIiAg
IjsKQEAgLTY2Miw2ICs2NjIsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAgICB0
cyA8PCAiKVxuIjsKICAgICB9CiAgICAgCisgICAgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKHRz
LCBpbmRlbnQsIGJlaGF2aW9yKTsKKyAgICAKICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkpIHsK
ICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOwogICAgICAgICB0cyA8PCAiKGNo
aWxkcmVuICIgPDwgbV9jaGlsZHJlbi5zaXplKCkgPDwgIlxuIjsKQEAgLTY5MCw3ICs2OTIsNyBA
QCB2b2lkIHNob3dHcmFwaGljc0xheWVyVHJlZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiBsYXllcikKICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBXVEY6OlN0
cmluZyBvdXRwdXQgPSBsYXllci0+bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUFzVGV4dERlYnVn
KTsKKyAgICBXVEY6OlN0cmluZyBvdXRwdXQgPSBsYXllci0+bGF5ZXJUcmVlQXNUZXh0KExheWVy
VHJlZUFzVGV4dERlYnVnIHwgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyk7CiAg
ICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKaW5kZXggNTQwMzZhZjNlOWJlYTA2NTkyOWU0ZDQ5YTg3YjdmZjc4ZjcwNDMxNC4uNDBlYmMz
MGVjYzU1MzFlZmVkZGEyYmNhN2Y4Zjc4YTM5ZjQwNTM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDcsNiArNDcsNyBAQAog
ZW51bSBMYXllclRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKICAgICBMYXllclRyZWVBc1RleHRC
ZWhhdmlvck5vcm1hbCA9IDAsCiAgICAgTGF5ZXJUcmVlQXNUZXh0RGVidWcgPSAxIDw8IDAsIC8v
IER1bXAgZXh0cmEgZGVidWdnaW5nIGluZm8gbGlrZSBsYXllciBhZGRyZXNzZXMuCisgICAgTGF5
ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyA9IDEgPDwgMSwKIH07CiB0eXBlZGVmIHVu
c2lnbmVkIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yOwogCkBAIC00MzUsNyArNDM2LDExIEBAIHBy
b3RlY3RlZDoKIAogICAgIEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogCisg
ICAgc3RhdGljIHZvaWQgd3JpdGVJbmRlbnQoVGV4dFN0cmVhbSYsIGludCAvKmluZGVudCovKTsK
KwogICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQsIExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcEFkZGl0aW9u
YWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgLyppbmRlbnQqLywgTGF5ZXJUcmVlQXNUZXh0
QmVoYXZpb3IpIGNvbnN0IHsgfQorCiAgICAgdmlydHVhbCB2b2lkIGdldERlYnVnQm9yZGVySW5m
byhDb2xvciYsIGZsb2F0JiB3aWR0aCkgY29uc3Q7CiAKICAgICBHcmFwaGljc0xheWVyQ2xpZW50
KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDQxZmNmZjFkMTgzOGM1NWJhMDZhMWE3NDNk
OGU3NGYwZjgyYTljMTEuLmRkNGZhMWVmNDFkOWQ5YzMxY2I1ZDc0NjgzMWZiYmU2ZGQ2MDlmYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJvdGF0ZVRyYW5z
Zm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAj
aW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRl
ICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgpAQCAtOTMyLDI1ICs5
MzMsMjAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoY29u
c3QgVHJhbnNmb3JtU3RhdGUmIHN0YXRlLCBmbG9hdAogICAgIH0KICAgICAKICAgICBGbG9hdFJl
Y3QgY2xpcFJlY3RGb3JDaGlsZHJlbiA9IGxvY2FsU3RhdGUubGFzdFBsYW5hclF1YWQoKS5ib3Vu
ZGluZ0JveCgpOwotICAgIEZsb2F0UmVjdCBjbGlwUmVjdEZvclNlbGY7CisgICAgRmxvYXRSZWN0
IGNsaXBSZWN0Rm9yU2VsZigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsK
KyAgICBjbGlwUmVjdEZvclNlbGYuaW50ZXJzZWN0KGNsaXBSZWN0Rm9yQ2hpbGRyZW4pOwogICAg
IAogICAgIGlmIChtYXNrc1RvQm91bmRzKCkpIHsKICAgICAgICAgQVNTRVJUKGFjY3VtdWxhdGlv
biA9PSBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Ci0gICAgICAgIAogICAgICAg
ICAvLyBSZXBsYWNlIHRoZSBxdWFkIGluIHRoZSBUcmFuc2Zvcm1TdGF0ZSB3aXRoIG9uZSB0aGF0
IGlzIGNsaXBwZWQgdG8gdGhpcyBsYXllcidzIGJvdW5kcwotICAgICAgICBjbGlwUmVjdEZvclNl
bGYgPSBGbG9hdFJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7Ci0g
ICAgICAgIGNsaXBSZWN0Rm9yU2VsZi5pbnRlcnNlY3QoY2xpcFJlY3RGb3JDaGlsZHJlbik7CiAg
ICAgICAgIGxvY2FsU3RhdGUuc2V0UXVhZChjbGlwUmVjdEZvclNlbGYpOwogICAgIH0KIAorICAg
IG1fdmlzaWJsZVJlY3QgPSBjbGlwUmVjdEZvclNlbGY7CisgICAgCiAjaWZkZWYgVklTSUJMRV9U
SUxFX1dBU0gKLSAgICBpZiAobV92aXNpYmxlVGlsZVdhc2hMYXllcikgewotICAgICAgICBpZiAo
Y2xpcFJlY3RGb3JTZWxmLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgY2xpcFJlY3RGb3JTZWxm
ID0gRmxvYXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOwotICAg
ICAgICAgICAgY2xpcFJlY3RGb3JTZWxmLmludGVyc2VjdChjbGlwUmVjdEZvckNoaWxkcmVuKTsK
LSAgICAgICAgfQorICAgIGlmIChtX3Zpc2libGVUaWxlV2FzaExheWVyKQogICAgICAgICBtX3Zp
c2libGVUaWxlV2FzaExheWVyLT5zZXRGcmFtZShjbGlwUmVjdEZvclNlbGYpOwotICAgIH0KICNl
bmRpZgogCiAgICAgYm9vbCBoYWRDaGFuZ2VzID0gbV91bmNvbW1pdHRlZENoYW5nZXM7CkBAIC0y
NDEzLDYgKzI0MDksMTQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmdldERlYnVnQm9yZGVySW5m
byhDb2xvciYgY29sb3IsIGZsb2F0JiB3aWR0aCkgY29uc3QKICAgICBHcmFwaGljc0xheWVyOjpn
ZXREZWJ1Z0JvcmRlckluZm8oY29sb3IsIHdpZHRoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVy
Q0E6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBpbnQg
aW5kZW50LCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK3sKKyAgICBp
ZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzKSB7CisgICAg
ICAgIHdyaXRlSW5kZW50KHRleHRTdHJlYW0sIGluZGVudCArIDEpOworICAgICAgICB0ZXh0U3Ry
ZWFtIDw8ICIodmlzaWJsZSByZWN0ICIgPDwgbV92aXNpYmxlUmVjdC54KCkgPDwgIiwgIiA8PCBt
X3Zpc2libGVSZWN0LnkoKSA8PCAiICIgPDwgbV92aXNpYmxlUmVjdC53aWR0aCgpIDw8ICIgeCAi
IDw8IG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkgPDwgIilcbiI7CisgICAgfQorfQorCiB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBi
b3JkZXJXaWR0aCkKIHsgICAgCiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApp
bmRleCAyNTM1ZDI5Y2IwY2JiYWQxNDc4MDMyODdkNzdmZTEyZjUzYzNhMTU4Li5mNmVmYmZlNDI2
MTBlZTZkODVlZmM2MTRmOTZlY2NmMDY3ODgxODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjI5LDYgKzIy
OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFJlcGxpY2F0ZWRCeUxheWVyKEdy
YXBoaWNzTGF5ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29s
b3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkdW1wQWRkaXRpb25h
bFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yKSBjb25zdDsKIAogICAgIHZvaWQgY29tcHV0ZVBpeGVsQWxpZ25tZW50KGZsb2F0IHBpeGVs
QWxpZ25tZW50U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2Us
CiAgICAgICAgIEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBGbG9hdFNpemUmLCBGbG9hdFBvaW50M0Qm
IGFuY2hvclBvaW50LCBGbG9hdFNpemUmIGFsaWdubWVudE9mZnNldCkgY29uc3Q7CkBAIC0zOTMs
NiArMzk0LDcgQEAgcHJpdmF0ZToKICNpZmRlZiBWSVNJQkxFX1RJTEVfV0FTSAogICAgIFJlZlB0
cjxQbGF0Zm9ybUNBTGF5ZXI+IG1fdmlzaWJsZVRpbGVXYXNoTGF5ZXI7CiAjZW5kaWYKKyAgICBG
bG9hdFJlY3QgbV92aXNpYmxlUmVjdDsKICAgICAKICAgICBlbnVtIENvbnRlbnRzTGF5ZXJQdXJw
b3NlIHsKICAgICAgICAgTm9Db250ZW50c0xheWVyID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMjA0YjBkMGJkYWE2
M2E2ZjdkZWVkNTE2MTg1OWFmMjY3NWQwNzcwNC4uZGZjMThiN2EyMDI2ODEwZGY2N2U4Mjg0ZGQ2
MGMzYWU5ZjVhM2YyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEwOTksMTYgKzEwOTksMjIgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnNjcm9sbGluZ0xheWVyRGlkQ2hhbmdlKFJlbmRlckxheWVyKiBsYXll
cikKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5
ZXJEaWRDaGFuZ2UobGF5ZXIsIGJhY2tpbmcgPyBiYWNraW5nLT5zY3JvbGxpbmdDb250ZW50c0xh
eWVyKCkgOiAwKTsKIH0KIAotU3RyaW5nIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVl
QXNUZXh0KGJvb2wgc2hvd0RlYnVnSW5mbykKK1N0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyBmbGFncykKIHsKICAgICB1cGRhdGVDb21w
b3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZUFmdGVyTGF5b3V0KTsKIAogICAgIGlmICgh
bV9yb290Q29udGVudExheWVyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKKyAgICBMYXll
clRyZWVBc1RleHRCZWhhdmlvciBsYXllclRyZWVCZWhhdmlvciA9IExheWVyVHJlZUFzVGV4dEJl
aGF2aW9yTm9ybWFsOworICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZURlYnVn
SW5mbykKKyAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0RGVidWc7
CisgICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVmlzaWJsZVJlY3RzKQorICAg
ICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJl
Y3RzOworICAgIAogICAgIC8vIFdlIHNraXAgZHVtcGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxh
eWVycyB0byBrZWVwIGxheWVyVHJlZUFzVGV4dCBvdXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdl
ZW4gcGxhdGZvcm1zLgotICAgIHJldHVybiBtX3Jvb3RDb250ZW50TGF5ZXItPmxheWVyVHJlZUFz
VGV4dChzaG93RGVidWdJbmZvID8gTGF5ZXJUcmVlQXNUZXh0RGVidWcgOiBMYXllclRyZWVBc1Rl
eHRCZWhhdmlvck5vcm1hbCk7CisgICAgcmV0dXJuIG1fcm9vdENvbnRlbnRMYXllci0+bGF5ZXJU
cmVlQXNUZXh0KGxheWVyVHJlZUJlaGF2aW9yKTsKIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lQ29udGVudHNDb21wb3NpdG9yKFJlbmRlclBh
cnQqIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCmluZGV4IGM4NDI4Y2JkNzQ0MTNkYmZkZjFjMmRlNzc5NjI4ZjEzOWRiNjM0
NWIuLjM4NjExOTk0NzhhYTM4MGU4Y2RjMTM2MzgxNTFiOTdiNmNiY2Q1NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgUmVuZGVyTGF5ZXJDb21wb3NpdG9yX2gKIAogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKIApAQCAtMTk1LDcgKzE5Niw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsaW5nTGF5ZXJEaWRDaGFuZ2UoUmVuZGVyTGF5ZXIq
KTsKIAotICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoYm9vbCBzaG93RGVidWdJbmZvID0gZmFs
c2UpOworICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MpOwogCiAgICAg
Ly8gVGhlc2UgYXJlIG5hbWVkIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRoZSBmdW5jdGlvbnMg
aW4gR3JhcGhpY3NMYXllckNsaWVudAogICAgIC8vIFRoZXNlIHJldHVybiB0aGUgYWN0dWFsIGlu
dGVybmFsIHZhcmlhYmxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBi
NWQ3ZDY3NTlkMGM2MzQxNGI3MDE5MzJmNmVmYWIzZmZmYWZiNTc0Li5jMjZkNmVhNGY5NzhhNzU0
MjcwMmEwNmY1YTRlNjM4MTI3YTM0NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0xMjI0LDEyICsxMjI0LDIxIEBAIHZvaWQgSW50ZXJuYWxzOjpyZXN1bWVBbmltYXRp
b25zKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAKIFN0cmlu
ZyBJbnRlcm5hbHM6OmxheWVyVHJlZUFzVGV4dChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAogeworICAgIHJldHVybiBsYXllclRyZWVBc1RleHQoZG9jdW1lbnQs
IDAsIGVjKTsKK30KKworU3RyaW5nIEludGVybmFsczo6bGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50
KiBkb2N1bWVudCwgdW5zaWduZWQgZmxhZ3MsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAorewog
ICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQotICAg
IAotICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+bGF5ZXJUcmVlQXNUZXh0KCk7CisKKyAg
ICBMYXllclRyZWVGbGFncyBsYXllclRyZWVGbGFncyA9IDA7CisgICAgaWYgKGZsYWdzICYgTEFZ
RVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTKQorICAgICAgICBsYXllclRyZWVGbGFncyB8
PSBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHM7CisKKyAgICByZXR1cm4gZG9jdW1l
bnQtPmZyYW1lKCktPmxheWVyVHJlZUFzVGV4dChsYXllclRyZWVGbGFncyk7CiB9CiAKIHZvaWQg
SW50ZXJuYWxzOjpnYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2VzKERvY3VtZW50KiBkb2N1
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCAzYmQ0NzVlNGU1OGE5YWFjNDVhZDU3YzU4NTI0YTJjNzFlZjk0ZDcwLi5iYmM1YzVi
N2I5ZDUxOTUyM2E4YWJlNmVlZWQ1OTVjYWQwYjNmNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTE4Nyw2ICsxODcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCByZXN1
bWVBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCisgICAgZW51
bSB7CisgICAgICAgIExBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyA9IDEgLy8gVmFs
dWVzIG5lZWQgdG8ga2VwdCBpbiBzeW5jIHdpdGggSW50ZXJuYWxzLmlkbC4KKyAgICB9OworICAg
IFN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBmbGFncywgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQqLCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICB2b2lkIGdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRS
ZXNvdXJjZXMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDNjZWEyNDA1YzQ0MDhiMjA5YmExNDljMWE1MTEyN2M3
MjdkYTExNC4uNDM0NThlMGMxNTNmZTk2NzM4YzYxOGM0ZTQ5NTg0MTNjZjA5YjhlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTU3LDcgKzE1Nyw5IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3Vt
ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9u
cyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAg
IERPTVN0cmluZyBsYXllclRyZWVBc1RleHQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgLy8gRmxhZ3MgZm9yIGxheWVyVHJlZUFzVGV4dC4KKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JF
Q1RTID0gMTsKKyAgICAgICAgRE9NU3RyaW5nIGxheWVyVHJlZUFzVGV4dChpbiBEb2N1bWVudCBk
b2N1bWVudCwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBmbGFncykgcmFpc2VzIChET01F
eGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgZ2FyYmFnZUNvbGxlY3REb2N1bWVudFJlc291cmNl
cyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBmOTFmZmQ4ZTUxYmQ0ZGFjYjdhZjBhMWNj
NGYyNjUxM2MzZWRhODMyLi42M2MzOTEzNDZiZTAyYjI3M2RmYmFlYTFhOWI1NGFlZWVmNWI4ZThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTExNzgsNyArMTE3OCw3
IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gQCIiOwogCi0g
ICAgcmV0dXJuIGNvcmVGcmFtZS0+bGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgcmV0dXJuIGNvcmVG
cmFtZS0+bGF5ZXJUcmVlQXNUZXh0KDApOwogfQogCiAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXgg
ZDA0ZjRkYjdmNzNjODgzMTc4OGI3NTJkODAxNTI4OWEzNTlmYzZiMC4uOWM1MWNlNmNmNGJkODhl
N2QxNjE0YmJmNTNiNGI4Yjc4NzIxY2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgU3RyaW5nIFdlYkZy
YW1lOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogICAgIGlmICghbV9jb3JlRnJhbWUpCiAgICAg
ICAgIHJldHVybiAiIjsKIAotICAgIHJldHVybiBtX2NvcmVGcmFtZS0+bGF5ZXJUcmVlQXNUZXh0
KCk7CisgICAgcmV0dXJuIG1fY29yZUZyYW1lLT5sYXllclRyZWVBc1RleHQoMCk7CiB9CiAKIHVu
c2lnbmVkIFdlYkZyYW1lOjpwZW5kaW5nVW5sb2FkQ291bnQoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168016</attachid>
            <date>2012-10-10 09:45:25 -0700</date>
            <delta_ts>2012-10-10 09:46:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98839-20121010094425.patch</filename>
            <type>text/plain</type>
            <size>21376</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5ZTgyZmVlZGRlYzM2
MDc2NTAxNTAwOWViZDBlZmI5MDhiOTk3My4uODgyMDUzYjE3NDQ4OTE5ZDg2OWYzOGIyYjljMDg3
OGM5M2VjYzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlz
aWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxh
eWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQgdG8g
YmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVyLAor
ICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxlcy4g
UmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAorICAg
ICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAgICAg
ICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0ZXN0
cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAgIGxh
eWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMsIHNv
IHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46IFNpZ25hdHVyZSBvZiBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY2hhbmdl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjps
YXllclRyZWVBc1RleHQpOiBDaGFuZ2UgdG8gdGFrZSBzb21lIGVudW0gZmxhZ3MgcmF0aGVyIHRo
YW4ganVzdCBhIGJvb2wuCisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6d3JpdGVJbmRlbnQpOiBNYWtlIGludG8gYSBzdGF0aWMgY2xhc3MgbWV0aG9kIHNv
IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKTogQ2FsbCBhIHZpcnR1YWwgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KCkgZm9yIHN1YmNsYXNzZXMuCisgICAgICAgIChzaG93R3JhcGhpY3NMYXllclRyZWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIpOiBOZXcgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyBmbGFnLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KTogTmV3IHZpcnR1YWwgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJl
Y3Vyc2l2ZUNvbW1pdENoYW5nZXMpOiBjbGlwUmVjdEZvckNoaWxkcmVuIGFuZCBjbGlwUmVjdEZv
clNlbGYKKyAgICAgICAgd2VyZSBwcmV2aW91c2x5IHVudXNlZCBhbmQgYnVnZ3kuIEZpeCB0byBj
b3JyZWN0bHkgY29tcHV0ZSBjbGlwUmVjdEZvclNlbGYsIHRvIGFzc2lnbgorICAgICAgICB0byBt
X3Zpc2libGVSZWN0LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpkdW1wQWRk
aXRpb25hbFByb3BlcnRpZXMpOiBEdW1wIG1fdmlzaWJsZVJlY3QuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
Q0EpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOiBD
b252ZXJ0IHRoZSBmbGFncyBmcm9tIEZyYW1lIGZsYWdzCisgICAgICAgIHRvIEdyYXBoaWNzTGF5
ZXJGbGFncyBhbmQgcGFzcyB0aGVtIGFsb25nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpsYXllclRyZWVBc1RleHQpOiBPdmVybG9hZGVkIG1ldGhvZCB0byBoYW5kbGUgdGhlIG9wdGlv
bmFsIElETCBhcmd1bWVudHMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkIGVu
dW0uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBBZGQgb3B0aW9uYWwgZmxhZ3Ms
IGFuZCBhIGNvbnN0IHNob3J0IHRvIGRlc2NyaWJlIHRoZSBmbGFncy4KKwogMjAxMi0xMC0xMCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBwcm90ZWN0IG5vZGUgaW4gdGhlIEluc3BlY3RvckRPTU5vZGU6Omluc3BlY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTA0OWI0YTFiMjc0ZTJlNzdiMjI1ZjViYjNjZWVi
ZjIxMGVhN2E1Mi4uZjdjY2M3NzliYTc0MDczMGFiOTk5ZTI2MzNlOGM1ZTI1ZTM0OGVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yZSBhIHZp
c2libGUgcmVjdCBpbiBHcmFwaGljc0xheWVycywgYW5kIG9wdGlvbmFsbHkgZHVtcCBpdCBpbiBs
YXllclRyZWVBc1RleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgZmxhZyB0byBsYXllclRyZWVBc1RleHQoKSBzbyB0aGF0IHRlc3RzIGNhbiBv
cHRpb25hbGx5IGluY2x1ZGUgdGhpcyB2aXNpYmxlIHJlY3QgaW4KKyAgICAgICAgbGF5ZXIgdHJl
ZSBkdW1wcy4gVGhpcyBvdXRwdXQgd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYywgc28gd2UgZG9u
J3Qgd2FudCB0byBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsYXllclRyZWVBc1Rl
eHQpOgorCiAyMDEyLTEwLTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJFbGVtZW50OjpoYXNIVE1MVGFnTmFtZSwgYW5kIGRl
cHJlY2F0ZSBoYXNUYWdOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDk1MWVlM2Y0MjhjYTFhYzAz
ZTcwNGFkM2EyODJmOTg5Mjc5NzdkNC4uNjg1NTg4YmI5ZDI1MTQ3YmE3ZmYwNTk1MmQ0MGUzMzlm
MzJjMmRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEg
dmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGlu
IGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQg
dG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVy
LAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxl
cy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAor
ICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAg
ICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0
ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAg
IGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMs
IHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2xheWVyVHJlZUFzVGV4
dF0pOgorCiAyMDEyLTEwLTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVcGRhdGUgdGhlIENTUyBwcm9wZXJ0eSB1c2VkIHRvIHN1cHBvcnQgZHJhZ2dhYmxlIHJl
Z2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWVhMDRmZjMyYTY2MGQxYjQxZTg3YWJjYmU5NDhhMGQ5ZDRk
ZWEzYS4uNzFmOWM5ZmRhZGNiYzFjMGI5OTJhNmFiM2ZmN2ZmZWVkNTllOTA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNz
TGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnIHRvIGxh
eWVyVHJlZUFzVGV4dCgpIHNvIHRoYXQgdGVzdHMgY2FuIG9wdGlvbmFsbHkgaW5jbHVkZSB0aGlz
IHZpc2libGUgcmVjdCBpbgorICAgICAgICBsYXllciB0cmVlIGR1bXBzLiBUaGlzIG91dHB1dCB3
aWxsIGJlIHBsYXRmb3JtLXNwZWNpZmljLCBzbyB3ZSBkb24ndCB3YW50IHRvIGRvIGl0IHVuY29u
ZGl0aW9uYWxseS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorCisyMDEyLTEw
LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0
b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1w
IGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdl
IG5lZWQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGlj
c0xheWVyLAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNo
ZSB0aWxlcy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0
aGlzLAorICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVj
dC4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28g
dGhhdCB0ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisg
ICAgICAgIGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3Bl
Y2lmaWMsIHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6CisKIDIwMTItMTAtMTAgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gUkVH
UkVTU0lPTihyMTMwODc5KTogSXQgbWFkZSBmYXN0L2V2ZW50cy90b3VjaC8qIHRlc3RzIGNyYXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJjNGYxNDM4MzdkYWFkZGI0ZjAzNjhhYmUzNzU0NjNk
MzBjOTkwYWYuLjUyY2U3N2MxNDM2Y2UyYzg1NjdkMjk0NGYzNDVkN2ExOGJhYjc4MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0xMzE0LDcgKzEzMTQsNyBAQCBfX1pOSzdXZWJDb3JlNUNvbG9y
N2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1RnJhbWUxM293bmVyUmVuZGVyZXJF
dgogX19aTks3V2ViQ29yZTVGcmFtZTE0c2VsZWN0aW9uSW1hZ2VFYgogX19aTks3V2ViQ29yZTVG
cmFtZTE1Y29udGVudFJlbmRlcmVyRXYKLV9fWk5LN1dlYkNvcmU1RnJhbWUxNWxheWVyVHJlZUFz
VGV4dEViCitfX1pOSzdXZWJDb3JlNUZyYW1lMTVsYXllclRyZWVBc1RleHRFagogX19aTks3V2Vi
Q29yZTVGcmFtZTE2ZnJhbWVTY2FsZUZhY3RvckV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMThkb2N1
bWVudFR5cGVTdHJpbmdFdgogX19aTks3V2ViQ29yZTVGcmFtZTMxZGlzcGxheVN0cmluZ01vZGlm
aWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2Zh
YzkxMmRkMTc2ZWRmYTlmNGRkYzJlZjU1YWNkYjQ2OGJiODdlYS4uNzM3MzM2YzM5YzJjNGM5YTIz
YTY5NDhhNDk5NTY0ODIyNzdkYjNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTg3Niw3ICs4
NzYsNyBAQCBDb2xvciBGcmFtZTo6dGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdAogfQogI2VuZGlmCiAKLVN0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KGJvb2wgc2hv
d0RlYnVnSW5mbykgY29uc3QKK1N0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJl
ZUZsYWdzIGZsYWdzKSBjb25zdAogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKQEAgLTg4NCw3ICs4ODQsNyBAQCBTdHJp
bmcgRnJhbWU6OmxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8pIGNvbnN0CiAgICAg
aWYgKCFjb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
cmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChz
aG93RGVidWdJbmZvKTsKKyAgICByZXR1cm4gY29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3Io
KS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNob3dE
ZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA3MTk2
OTIyNjk1OGJhNmYwODg4Yjc2YzVhN2I5ZDhhZjYzNWJmYWQwLi4wYTA3YzQyMjA4ZmEzYmUwZGU1
ODA1MmVjYjYyY2NhNGFiNzkxODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC03Niw2ICs3NiwxMiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlU2NvcGU7CiAKKyAgICBlbnVt
IHsKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvID0gMSA8PCAwLAorICAg
ICAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMgPSAxIDw8IDIKKyAgICB9Owor
ICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlRmxhZ3M7CisKICAgICBjbGFzcyBGcmFtZSA6
IHB1YmxpYyBSZWZDb3VudGVkPEZyYW1lPiwgcHVibGljIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGUo
UGFnZSosIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIEZyYW1lTG9hZGVyQ2xpZW50Kik7CkBAIC0x
MjUsNyArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgaW5qZWN0
VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwogICAgICAgICAKLSAgICAgICAg
U3RyaW5nIGxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8gPSBmYWxzZSkgY29uc3Q7
CisgICAgICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgPSAwKSBjb25z
dDsKIAogICAgICAgICBzdGF0aWMgRnJhbWUqIGZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IGY4NTQ0NWY0YmE1MzQ3MTdiM2Y3MTgzMTI3NzJjZTRmYjk1M2NjZDEuLmZk
NjI2ODgzNmFlMDI0MWQ1ZjFhNTlhMDQ5ZWNiODE3NjdlODM3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC01MzYsNyAr
NTM2LDcgQEAgZG91YmxlIEdyYXBoaWNzTGF5ZXI6OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRl
KCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPig0ICogc2l6ZSgpLndpZHRo
KCkpICogc2l6ZSgpLmhlaWdodCgpOwogfQogCi1zdGF0aWMgdm9pZCB3cml0ZUluZGVudChUZXh0
U3RyZWFtJiB0cywgaW50IGluZGVudCkKK3ZvaWQgR3JhcGhpY3NMYXllcjo6d3JpdGVJbmRlbnQo
VGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpCiB7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0g
aW5kZW50OyArK2kpCiAgICAgICAgIHRzIDw8ICIgICI7CkBAIC02NjIsNiArNjYyLDggQEAgdm9p
ZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVu
dCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgdHMgPDwgIilcbiI7CiAgICAgfQogICAgIAor
ICAgIGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyh0cywgaW5kZW50LCBiZWhhdmlvcik7CisgICAg
CiAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpKSB7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBp
bmRlbnQgKyAxKTsKICAgICAgICAgdHMgPDwgIihjaGlsZHJlbiAiIDw8IG1fY2hpbGRyZW4uc2l6
ZSgpIDw8ICJcbiI7CkBAIC02OTAsNyArNjkyLDcgQEAgdm9pZCBzaG93R3JhcGhpY3NMYXllclRy
ZWUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgaWYgKCFsYXllcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV1RGOjpTdHJpbmcgb3V0cHV0ID0gbGF5ZXItPmxheWVy
VHJlZUFzVGV4dChMYXllclRyZWVBc1RleHREZWJ1Zyk7CisgICAgV1RGOjpTdHJpbmcgb3V0cHV0
ID0gbGF5ZXItPmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHREZWJ1ZyB8IExheWVyVHJl
ZUFzVGV4dEluY2x1ZGVWaXNpYmxlUmVjdHMpOwogICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIs
IG91dHB1dC51dGY4KCkuZGF0YSgpKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDU0MDM2YWYzZTliZWEwNjU5
MjllNGQ0OWE4N2I3ZmY3OGY3MDQzMTQuLjQwZWJjMzBlY2M1NTMxZWZlZGRhMmJjYTdmOGY3OGEz
OWY0MDUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKIGVudW0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZp
b3JGbGFncyB7CiAgICAgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgPSAwLAogICAgIExh
eWVyVHJlZUFzVGV4dERlYnVnID0gMSA8PCAwLCAvLyBEdW1wIGV4dHJhIGRlYnVnZ2luZyBpbmZv
IGxpa2UgbGF5ZXIgYWRkcmVzc2VzLgorICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNpYmxl
UmVjdHMgPSAxIDw8IDEsCiB9OwogdHlwZWRlZiB1bnNpZ25lZCBMYXllclRyZWVBc1RleHRCZWhh
dmlvcjsKIApAQCAtNDM1LDcgKzQzNiwxMSBAQCBwcm90ZWN0ZWQ6CiAKICAgICBHcmFwaGljc0xh
eWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKIAorICAgIHN0YXRpYyB2b2lkIHdyaXRlSW5kZW50
KFRleHRTdHJlYW0mLCBpbnQgLyppbmRlbnQqLyk7CisKICAgICB2b2lkIGR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwg
aW50IC8qaW5kZW50Ki8sIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCB7IH0KKwogICAg
IHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNv
bnN0OwogCiAgICAgR3JhcGhpY3NMYXllckNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA0MWZjZmYxZDE4MzhjNTViYTA2YTFhNzQzZDhlNzRmMGY4MmE5YzExLi5kZDRmYTFlZjQx
ZDlkOWMzMWNiNWQ3NDY4MzFmYmJlNmRkNjA5ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRl
ICJTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNp
bmNsdWRlICJUZXh0U3RyZWFtLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNs
dWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxRdWFydHpDb3Jl
L0NBVHJhbnNmb3JtM0QuaD4KQEAgLTkzMiwyNSArOTMzLDIwIEBAIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBzdGF0ZSwg
ZmxvYXQKICAgICB9CiAgICAgCiAgICAgRmxvYXRSZWN0IGNsaXBSZWN0Rm9yQ2hpbGRyZW4gPSBs
b2NhbFN0YXRlLmxhc3RQbGFuYXJRdWFkKCkuYm91bmRpbmdCb3goKTsKLSAgICBGbG9hdFJlY3Qg
Y2xpcFJlY3RGb3JTZWxmOworICAgIEZsb2F0UmVjdCBjbGlwUmVjdEZvclNlbGYoMCwgMCwgbV9z
aXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7CisgICAgY2xpcFJlY3RGb3JTZWxmLmludGVy
c2VjdChjbGlwUmVjdEZvckNoaWxkcmVuKTsKICAgICAKICAgICBpZiAobWFza3NUb0JvdW5kcygp
KSB7CiAgICAgICAgIEFTU0VSVChhY2N1bXVsYXRpb24gPT0gVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm0pOwotICAgICAgICAKICAgICAgICAgLy8gUmVwbGFjZSB0aGUgcXVhZCBpbiB0
aGUgVHJhbnNmb3JtU3RhdGUgd2l0aCBvbmUgdGhhdCBpcyBjbGlwcGVkIHRvIHRoaXMgbGF5ZXIn
cyBib3VuZHMKLSAgICAgICAgY2xpcFJlY3RGb3JTZWxmID0gRmxvYXRSZWN0KDAsIDAsIG1fc2l6
ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOwotICAgICAgICBjbGlwUmVjdEZvclNlbGYuaW50
ZXJzZWN0KGNsaXBSZWN0Rm9yQ2hpbGRyZW4pOwogICAgICAgICBsb2NhbFN0YXRlLnNldFF1YWQo
Y2xpcFJlY3RGb3JTZWxmKTsKICAgICB9CiAKKyAgICBtX3Zpc2libGVSZWN0ID0gY2xpcFJlY3RG
b3JTZWxmOworICAgIAogI2lmZGVmIFZJU0lCTEVfVElMRV9XQVNICi0gICAgaWYgKG1fdmlzaWJs
ZVRpbGVXYXNoTGF5ZXIpIHsKLSAgICAgICAgaWYgKGNsaXBSZWN0Rm9yU2VsZi5pc0VtcHR5KCkp
IHsKLSAgICAgICAgICAgIGNsaXBSZWN0Rm9yU2VsZiA9IEZsb2F0UmVjdCgwLCAwLCBtX3NpemUu
d2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKLSAgICAgICAgICAgIGNsaXBSZWN0Rm9yU2VsZi5p
bnRlcnNlY3QoY2xpcFJlY3RGb3JDaGlsZHJlbik7Ci0gICAgICAgIH0KKyAgICBpZiAobV92aXNp
YmxlVGlsZVdhc2hMYXllcikKICAgICAgICAgbV92aXNpYmxlVGlsZVdhc2hMYXllci0+c2V0RnJh
bWUoY2xpcFJlY3RGb3JTZWxmKTsKLSAgICB9CiAjZW5kaWYKIAogICAgIGJvb2wgaGFkQ2hhbmdl
cyA9IG1fdW5jb21taXR0ZWRDaGFuZ2VzOwpAQCAtMjQxMyw2ICsyNDA5LDE0IEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjpnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImIGNvbG9yLCBmbG9hdCYgd2lk
dGgpIGNvbnN0CiAgICAgR3JhcGhpY3NMYXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKGNvbG9yLCB3
aWR0aCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMoVGV4dFN0cmVhbSYgdGV4dFN0cmVhbSwgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmVo
YXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit7CisgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNU
ZXh0SW5jbHVkZVZpc2libGVSZWN0cykgeworICAgICAgICB3cml0ZUluZGVudCh0ZXh0U3RyZWFt
LCBpbmRlbnQgKyAxKTsKKyAgICAgICAgdGV4dFN0cmVhbSA8PCAiKHZpc2libGUgcmVjdCAiIDw8
IG1fdmlzaWJsZVJlY3QueCgpIDw8ICIsICIgPDwgbV92aXNpYmxlUmVjdC55KCkgPDwgIiAiIDw8
IG1fdmlzaWJsZVJlY3Qud2lkdGgoKSA8PCAiIHggIiA8PCBtX3Zpc2libGVSZWN0LmhlaWdodCgp
IDw8ICIpXG4iOworICAgIH0KK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVnQm9y
ZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgpCiB7ICAgIAogICAgIGlm
IChjb2xvci5pc1ZhbGlkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggMjUzNWQyOWNiMGNiYmFkMTQ3ODAz
Mjg3ZDc3ZmUxMmY1M2MzYTE1OC4uZjZlZmJmZTQyNjEwZWU2ZDg1ZWZjNjE0Zjk2ZWNjZjA2Nzg4
MTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBp
bnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKICAgICB2b2lkIGNv
bXB1dGVQaXhlbEFsaWdubWVudChmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxlLCBjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlLAogICAgICAgICBGbG9hdFBvaW50JiBwb3Np
dGlvbiwgRmxvYXRTaXplJiwgRmxvYXRQb2ludDNEJiBhbmNob3JQb2ludCwgRmxvYXRTaXplJiBh
bGlnbm1lbnRPZmZzZXQpIGNvbnN0OwpAQCAtMzkzLDYgKzM5NCw3IEBAIHByaXZhdGU6CiAjaWZk
ZWYgVklTSUJMRV9USUxFX1dBU0gKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX3Zpc2li
bGVUaWxlV2FzaExheWVyOwogI2VuZGlmCisgICAgRmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAg
ICAgCiAgICAgZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7CiAgICAgICAgIE5vQ29udGVudHNM
YXllciA9IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IGM5YWUzM2Y5NzE3NmU4YjRmNDg5MzNkNmQ1ZDBjNDIxYzcyNTQy
ZjMuLmM4ZjE3OGM2ODYzMzc2MjI2MGEyYWEzNjljYTVlYzRjMmMzZTcwNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0x
MTA1LDE2ICsxMTA1LDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY3JvbGxpbmdM
YXllckRpZENoYW5nZShSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5zY3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKGxheWVyLCBiYWNraW5n
ID8gYmFja2luZy0+c2Nyb2xsaW5nQ29udGVudHNMYXllcigpIDogMCk7CiB9CiAKLVN0cmluZyBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8p
CitTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVl
RmxhZ3MgZmxhZ3MpCiB7CiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdV
cGRhdGVBZnRlckxheW91dCk7CiAKICAgICBpZiAoIW1fcm9vdENvbnRlbnRMYXllcikKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogCisgICAgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgbGF5ZXJU
cmVlQmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbDsKKyAgICBpZiAoZmxh
Z3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVEZWJ1Z0luZm8pCisgICAgICAgIGxheWVyVHJlZUJl
aGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dERlYnVnOworICAgIGlmIChmbGFncyAmIExheWVyVHJl
ZUZsYWdzSW5jbHVkZVZpc2libGVSZWN0cykKKyAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0g
TGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0czsKKyAgICAKICAgICAvLyBXZSBza2lw
IGR1bXBpbmcgdGhlIHNjcm9sbCBhbmQgY2xpcCBsYXllcnMgdG8ga2VlcCBsYXllclRyZWVBc1Rl
eHQgb3V0cHV0CiAgICAgLy8gc2ltaWxhciBiZXR3ZWVuIHBsYXRmb3Jtcy4KLSAgICByZXR1cm4g
bV9yb290Q29udGVudExheWVyLT5sYXllclRyZWVBc1RleHQoc2hvd0RlYnVnSW5mbyA/IExheWVy
VHJlZUFzVGV4dERlYnVnIDogTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpOworICAgIHJl
dHVybiBtX3Jvb3RDb250ZW50TGF5ZXItPmxheWVyVHJlZUFzVGV4dChsYXllclRyZWVCZWhhdmlv
cik7CiB9CiAKIFJlbmRlckxheWVyQ29tcG9zaXRvciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpm
cmFtZUNvbnRlbnRzQ29tcG9zaXRvcihSZW5kZXJQYXJ0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBjODQyOGNi
ZDc0NDEzZGJmZGYxYzJkZTc3OTYyOGYxMzlkYjYzNDViLi4zODYxMTk5NDc4YWEzODBlOGNkYzEz
NjM4MTUxYjk3YjZjYmNkNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFJlbmRlckxh
eWVyQ29tcG9zaXRvcl9oCiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJC
YWNraW5nLmgiCiAKQEAgLTE5NSw3ICsxOTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9s
bGluZ0xheWVyRGlkQ2hhbmdlKFJlbmRlckxheWVyKik7CiAKLSAgICBTdHJpbmcgbGF5ZXJUcmVl
QXNUZXh0KGJvb2wgc2hvd0RlYnVnSW5mbyA9IGZhbHNlKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVl
QXNUZXh0KExheWVyVHJlZUZsYWdzKTsKIAogICAgIC8vIFRoZXNlIGFyZSBuYW1lZCB0byBhdm9p
ZCBjb25mbGljdHMgd2l0aCB0aGUgZnVuY3Rpb25zIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAg
ICAvLyBUaGVzZSByZXR1cm4gdGhlIGFjdHVhbCBpbnRlcm5hbCB2YXJpYWJsZXMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjVkN2Q2NzU5ZDBjNjM0MTRiNzAxOTMyZjZl
ZmFiM2ZmZmFmYjU3NC4uYzI2ZDZlYTRmOTc4YTc1NDI3MDJhMDZmNWE0ZTYzODEyN2EzNDVkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTIyNCwxMiArMTIyNCwyMSBA
QCB2b2lkIEludGVybmFsczo6cmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogCiBTdHJpbmcgSW50ZXJuYWxzOjpsYXllclRyZWVBc1Rl
eHQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyAgICBy
ZXR1cm4gbGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCAwLCBlYyk7Cit9CisKK1N0cmluZyBJbnRl
cm5hbHM6OmxheWVyVHJlZUFzVGV4dChEb2N1bWVudCogZG9jdW1lbnQsIHVuc2lnbmVkIGZsYWdz
LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+ZnJhbWUoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KLSAgICAKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZy
YW1lKCktPmxheWVyVHJlZUFzVGV4dCgpOworCisgICAgTGF5ZXJUcmVlRmxhZ3MgbGF5ZXJUcmVl
RmxhZ3MgPSAwOworICAgIGlmIChmbGFncyAmIExBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9S
RUNUUykKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVmlz
aWJsZVJlY3RzOworCisgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5sYXllclRyZWVBc1Rl
eHQobGF5ZXJUcmVlRmxhZ3MpOwogfQogCiB2b2lkIEludGVybmFsczo6Z2FyYmFnZUNvbGxlY3RE
b2N1bWVudFJlc291cmNlcyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggM2JkNDc1ZTRlNThhOWFhYzQ1
YWQ1N2M1ODUyNGEyYzcxZWY5NGQ3MC4uYmJjNWM1YjdiOWQ1MTk1MjNhOGFiZTZlZWVkNTk1Y2Fk
MGIzZjZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xODcsNiArMTg3LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAorICAgIGVudW0geworICAgICAgICBMQVlFUl9UUkVFX0lO
Q0xVREVTX1ZJU0lCTEVfUkVDVFMgPSAxIC8vIFZhbHVlcyBuZWVkIHRvIGtlcHQgaW4gc3luYyB3
aXRoIEludGVybmFscy5pZGwuCisgICAgfTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KERv
Y3VtZW50KiwgdW5zaWduZWQgZmxhZ3MsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBTdHJp
bmcgbGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCiAg
ICAgdm9pZCBnYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2VzKERvY3VtZW50KiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQz
Y2VhMjQwNWM0NDA4YjIwOWJhMTQ5YzFhNTExMjdjNzI3ZGExMTQuLjQzNDU4ZTBjMTUzZmU5Njcz
OGM2MThjNGU0OTU4NDEzY2YwOWI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTE1Nyw3ICsxNTcsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzdXNw
ZW5kQW5pbWF0aW9ucyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBET01TdHJpbmcgbGF5ZXJUcmVlQXNUZXh0
KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIC8v
IEZsYWdzIGZvciBsYXllclRyZWVBc1RleHQuCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IExBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyA9IDE7CisgICAgICAgIERPTVN0cmlu
ZyBsYXllclRyZWVBc1RleHQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIFtPcHRpb25hbF0gdW5z
aWduZWQgc2hvcnQgZmxhZ3MpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lk
IGdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKaW5kZXggMWI5ZTVlYTRlODI5Y2RkZDJhNTA4OWM3NTRiNDIxOTAyNGM4ODA0
Ny4uNDljY2E2MzkwOWM1MDI1N2U1MWM5OTc5YjZiOTJiY2MwMTkwNTlmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0yMTU2LDcgKzIxNTYsOSBA
QCBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpsYXllclRyZWVBc1RleHQoYm9vbCBzaG93RGVidWdJ
bmZvKSBjb25zdAogewogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIFdlYlN0cmlu
ZygpOwotICAgIHJldHVybiBXZWJTdHJpbmcoZnJhbWUoKS0+bGF5ZXJUcmVlQXNUZXh0KHNob3dE
ZWJ1Z0luZm8pKTsKKyAgICAKKyAgICBMYXllclRyZWVGbGFncyBmbGFncyA9IHNob3dEZWJ1Z0lu
Zm8gPyBMYXllclRyZWVGbGFnc0luY2x1ZGVEZWJ1Z0luZm8gOiAwOworICAgIHJldHVybiBXZWJT
dHJpbmcoZnJhbWUoKS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKSk7CiB9CiAKIC8vIFdlYkZyYW1l
SW1wbCBwdWJsaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAppbmRleCBkMDRmNGRiN2Y3M2M4ODMxNzg4Yjc1MmQ4MDE1Mjg5YTM1OWZjNmIwLi45
YzUxY2U2Y2Y0YmQ4OGU3ZDE2MTRiYmY1M2I0YjhiNzg3MjFjYzVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTUxMyw3ICs1MTMsNyBA
QCBTdHJpbmcgV2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFtX2Nv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgcmV0dXJuIG1fY29yZUZyYW1lLT5s
YXllclRyZWVBc1RleHQoKTsKKyAgICByZXR1cm4gbV9jb3JlRnJhbWUtPmxheWVyVHJlZUFzVGV4
dCgwKTsKIH0KIAogdW5zaWduZWQgV2ViRnJhbWU6OnBlbmRpbmdVbmxvYWRDb3VudCgpIGNvbnN0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168017</attachid>
            <date>2012-10-10 09:46:45 -0700</date>
            <delta_ts>2012-10-10 10:00:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98839-20121010094544.patch</filename>
            <type>text/plain</type>
            <size>21367</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5ZTgyZmVlZGRlYzM2
MDc2NTAxNTAwOWViZDBlZmI5MDhiOTk3My4uODgyMDUzYjE3NDQ4OTE5ZDg2OWYzOGIyYjljMDg3
OGM5M2VjYzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlz
aWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxh
eWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQgdG8g
YmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVyLAor
ICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxlcy4g
UmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAorICAg
ICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAgICAg
ICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0ZXN0
cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAgIGxh
eWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMsIHNv
IHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46IFNpZ25hdHVyZSBvZiBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY2hhbmdl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjps
YXllclRyZWVBc1RleHQpOiBDaGFuZ2UgdG8gdGFrZSBzb21lIGVudW0gZmxhZ3MgcmF0aGVyIHRo
YW4ganVzdCBhIGJvb2wuCisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6d3JpdGVJbmRlbnQpOiBNYWtlIGludG8gYSBzdGF0aWMgY2xhc3MgbWV0aG9kIHNv
IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKTogQ2FsbCBhIHZpcnR1YWwgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KCkgZm9yIHN1YmNsYXNzZXMuCisgICAgICAgIChzaG93R3JhcGhpY3NMYXllclRyZWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIpOiBOZXcgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyBmbGFnLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KTogTmV3IHZpcnR1YWwgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJl
Y3Vyc2l2ZUNvbW1pdENoYW5nZXMpOiBjbGlwUmVjdEZvckNoaWxkcmVuIGFuZCBjbGlwUmVjdEZv
clNlbGYKKyAgICAgICAgd2VyZSBwcmV2aW91c2x5IHVudXNlZCBhbmQgYnVnZ3kuIEZpeCB0byBj
b3JyZWN0bHkgY29tcHV0ZSBjbGlwUmVjdEZvclNlbGYsIHRvIGFzc2lnbgorICAgICAgICB0byBt
X3Zpc2libGVSZWN0LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpkdW1wQWRk
aXRpb25hbFByb3BlcnRpZXMpOiBEdW1wIG1fdmlzaWJsZVJlY3QuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
Q0EpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOiBD
b252ZXJ0IHRoZSBmbGFncyBmcm9tIEZyYW1lIGZsYWdzCisgICAgICAgIHRvIEdyYXBoaWNzTGF5
ZXJGbGFncyBhbmQgcGFzcyB0aGVtIGFsb25nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpsYXllclRyZWVBc1RleHQpOiBPdmVybG9hZGVkIG1ldGhvZCB0byBoYW5kbGUgdGhlIG9wdGlv
bmFsIElETCBhcmd1bWVudHMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkIGVu
dW0uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBBZGQgb3B0aW9uYWwgZmxhZ3Ms
IGFuZCBhIGNvbnN0IHNob3J0IHRvIGRlc2NyaWJlIHRoZSBmbGFncy4KKwogMjAxMi0xMC0xMCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBwcm90ZWN0IG5vZGUgaW4gdGhlIEluc3BlY3RvckRPTU5vZGU6Omluc3BlY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTA0OWI0YTFiMjc0ZTJlNzdiMjI1ZjViYjNjZWVi
ZjIxMGVhN2E1Mi4uZjdjY2M3NzliYTc0MDczMGFiOTk5ZTI2MzNlOGM1ZTI1ZTM0OGVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yZSBhIHZp
c2libGUgcmVjdCBpbiBHcmFwaGljc0xheWVycywgYW5kIG9wdGlvbmFsbHkgZHVtcCBpdCBpbiBs
YXllclRyZWVBc1RleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgZmxhZyB0byBsYXllclRyZWVBc1RleHQoKSBzbyB0aGF0IHRlc3RzIGNhbiBv
cHRpb25hbGx5IGluY2x1ZGUgdGhpcyB2aXNpYmxlIHJlY3QgaW4KKyAgICAgICAgbGF5ZXIgdHJl
ZSBkdW1wcy4gVGhpcyBvdXRwdXQgd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYywgc28gd2UgZG9u
J3Qgd2FudCB0byBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsYXllclRyZWVBc1Rl
eHQpOgorCiAyMDEyLTEwLTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJFbGVtZW50OjpoYXNIVE1MVGFnTmFtZSwgYW5kIGRl
cHJlY2F0ZSBoYXNUYWdOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDk1MWVlM2Y0MjhjYTFhYzAz
ZTcwNGFkM2EyODJmOTg5Mjc5NzdkNC4uNjg1NTg4YmI5ZDI1MTQ3YmE3ZmYwNTk1MmQ0MGUzMzlm
MzJjMmRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEg
dmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGlu
IGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQg
dG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVy
LAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxl
cy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAor
ICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAg
ICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0
ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAg
IGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMs
IHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2xheWVyVHJlZUFzVGV4
dF0pOgorCiAyMDEyLTEwLTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVcGRhdGUgdGhlIENTUyBwcm9wZXJ0eSB1c2VkIHRvIHN1cHBvcnQgZHJhZ2dhYmxlIHJl
Z2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWVhMDRmZjMyYTY2MGQxYjQxZTg3YWJjYmU5NDhhMGQ5ZDRk
ZWEzYS4uNzFmOWM5ZmRhZGNiYzFjMGI5OTJhNmFiM2ZmN2ZmZWVkNTllOTA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNz
TGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnIHRvIGxh
eWVyVHJlZUFzVGV4dCgpIHNvIHRoYXQgdGVzdHMgY2FuIG9wdGlvbmFsbHkgaW5jbHVkZSB0aGlz
IHZpc2libGUgcmVjdCBpbgorICAgICAgICBsYXllciB0cmVlIGR1bXBzLiBUaGlzIG91dHB1dCB3
aWxsIGJlIHBsYXRmb3JtLXNwZWNpZmljLCBzbyB3ZSBkb24ndCB3YW50IHRvIGRvIGl0IHVuY29u
ZGl0aW9uYWxseS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorCisyMDEyLTEw
LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0
b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1w
IGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdl
IG5lZWQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGlj
c0xheWVyLAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNo
ZSB0aWxlcy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0
aGlzLAorICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVj
dC4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28g
dGhhdCB0ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisg
ICAgICAgIGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3Bl
Y2lmaWMsIHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6CisKIDIwMTItMTAtMTAgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gUkVH
UkVTU0lPTihyMTMwODc5KTogSXQgbWFkZSBmYXN0L2V2ZW50cy90b3VjaC8qIHRlc3RzIGNyYXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJjNGYxNDM4MzdkYWFkZGI0ZjAzNjhhYmUzNzU0NjNk
MzBjOTkwYWYuLjUyY2U3N2MxNDM2Y2UyYzg1NjdkMjk0NGYzNDVkN2ExOGJhYjc4MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0xMzE0LDcgKzEzMTQsNyBAQCBfX1pOSzdXZWJDb3JlNUNvbG9y
N2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1RnJhbWUxM293bmVyUmVuZGVyZXJF
dgogX19aTks3V2ViQ29yZTVGcmFtZTE0c2VsZWN0aW9uSW1hZ2VFYgogX19aTks3V2ViQ29yZTVG
cmFtZTE1Y29udGVudFJlbmRlcmVyRXYKLV9fWk5LN1dlYkNvcmU1RnJhbWUxNWxheWVyVHJlZUFz
VGV4dEViCitfX1pOSzdXZWJDb3JlNUZyYW1lMTVsYXllclRyZWVBc1RleHRFagogX19aTks3V2Vi
Q29yZTVGcmFtZTE2ZnJhbWVTY2FsZUZhY3RvckV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMThkb2N1
bWVudFR5cGVTdHJpbmdFdgogX19aTks3V2ViQ29yZTVGcmFtZTMxZGlzcGxheVN0cmluZ01vZGlm
aWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2Zh
YzkxMmRkMTc2ZWRmYTlmNGRkYzJlZjU1YWNkYjQ2OGJiODdlYS4uNzM3MzM2YzM5YzJjNGM5YTIz
YTY5NDhhNDk5NTY0ODIyNzdkYjNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTg3Niw3ICs4
NzYsNyBAQCBDb2xvciBGcmFtZTo6dGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdAogfQogI2VuZGlmCiAKLVN0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KGJvb2wgc2hv
d0RlYnVnSW5mbykgY29uc3QKK1N0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJl
ZUZsYWdzIGZsYWdzKSBjb25zdAogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKQEAgLTg4NCw3ICs4ODQsNyBAQCBTdHJp
bmcgRnJhbWU6OmxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8pIGNvbnN0CiAgICAg
aWYgKCFjb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
cmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChz
aG93RGVidWdJbmZvKTsKKyAgICByZXR1cm4gY29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3Io
KS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNob3dE
ZWJ1Z0luZm8pOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA3MTk2
OTIyNjk1OGJhNmYwODg4Yjc2YzVhN2I5ZDhhZjYzNWJmYWQwLi4wYTA3YzQyMjA4ZmEzYmUwZGU1
ODA1MmVjYjYyY2NhNGFiNzkxODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC03Niw2ICs3NiwxMiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlU2NvcGU7CiAKKyAgICBlbnVt
IHsKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvID0gMSA8PCAwLAorICAg
ICAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMgPSAxIDw8IDIKKyAgICB9Owor
ICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlRmxhZ3M7CisKICAgICBjbGFzcyBGcmFtZSA6
IHB1YmxpYyBSZWZDb3VudGVkPEZyYW1lPiwgcHVibGljIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGUo
UGFnZSosIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIEZyYW1lTG9hZGVyQ2xpZW50Kik7CkBAIC0x
MjUsNyArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgaW5qZWN0
VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwogICAgICAgICAKLSAgICAgICAg
U3RyaW5nIGxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8gPSBmYWxzZSkgY29uc3Q7
CisgICAgICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgPSAwKSBjb25z
dDsKIAogICAgICAgICBzdGF0aWMgRnJhbWUqIGZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IGY4NTQ0NWY0YmE1MzQ3MTdiM2Y3MTgzMTI3NzJjZTRmYjk1M2NjZDEuLjNh
MzJiNTE0NWI5MjdlZGFlZDQ1ZjkxOWU1ZDYwOTUxNTFjNDQzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC01MzYsNyAr
NTM2LDcgQEAgZG91YmxlIEdyYXBoaWNzTGF5ZXI6OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRl
KCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPig0ICogc2l6ZSgpLndpZHRo
KCkpICogc2l6ZSgpLmhlaWdodCgpOwogfQogCi1zdGF0aWMgdm9pZCB3cml0ZUluZGVudChUZXh0
U3RyZWFtJiB0cywgaW50IGluZGVudCkKK3ZvaWQgR3JhcGhpY3NMYXllcjo6d3JpdGVJbmRlbnQo
VGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpCiB7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0g
aW5kZW50OyArK2kpCiAgICAgICAgIHRzIDw8ICIgICI7CkBAIC02NjIsNiArNjYyLDggQEAgdm9p
ZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVu
dCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgdHMgPDwgIilcbiI7CiAgICAgfQogICAgIAor
ICAgIGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyh0cywgaW5kZW50LCBiZWhhdmlvcik7CisgICAg
CiAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpKSB7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBp
bmRlbnQgKyAxKTsKICAgICAgICAgdHMgPDwgIihjaGlsZHJlbiAiIDw8IG1fY2hpbGRyZW4uc2l6
ZSgpIDw8ICJcbiI7CkBAIC02OTAsNyArNjkyLDcgQEAgdm9pZCBzaG93R3JhcGhpY3NMYXllclRy
ZWUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgaWYgKCFsYXllcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV1RGOjpTdHJpbmcgb3V0cHV0ID0gbGF5ZXItPmxheWVy
VHJlZUFzVGV4dChMYXllclRyZWVBc1RleHREZWJ1Zyk7CisgICAgU3RyaW5nIG91dHB1dCA9IGxh
eWVyLT5sYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0RGVidWcgfCBMYXllclRyZWVBc1Rl
eHRJbmNsdWRlVmlzaWJsZVJlY3RzKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBvdXRw
dXQudXRmOCgpLmRhdGEoKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA1NDAzNmFmM2U5YmVhMDY1OTI5ZTRk
NDlhODdiN2ZmNzhmNzA0MzE0Li4zYTNmMzAzMGEzOTUxM2Q2ZGY2ZmJiOTVkYTVjOTU3MWQwNThi
ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCkBAIC00Nyw2ICs0Nyw3IEBACiBlbnVtIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yRmxh
Z3MgewogICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsID0gMCwKICAgICBMYXllclRy
ZWVBc1RleHREZWJ1ZyA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5mbyBsaWtl
IGxheWVyIGFkZHJlc3Nlcy4KKyAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3Rz
ID0gMSA8PCAxLAogfTsKIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3I7
CiAKQEAgLTQzNSw3ICs0MzYsMTEgQEAgcHJvdGVjdGVkOgogCiAgICAgR3JhcGhpY3NMYXllcihH
cmFwaGljc0xheWVyQ2xpZW50Kik7CiAKKyAgICBzdGF0aWMgdm9pZCB3cml0ZUluZGVudChUZXh0
U3RyZWFtJiwgaW50IGluZGVudCk7CisKICAgICB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IC8qaW5k
ZW50Ki8sIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCB7IH0KKwogICAgIHZpcnR1YWwg
dm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0OwogCiAg
ICAgR3JhcGhpY3NMYXllckNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA0MWZj
ZmYxZDE4MzhjNTViYTA2YTFhNzQzZDhlNzRmMGY4MmE5YzExLi5kZDRmYTFlZjQxZDlkOWMzMWNi
NWQ3NDY4MzFmYmJlNmRkNjA5ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJTY2FsZVRy
YW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlICJU
ZXh0U3RyZWFtLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBVHJhbnNm
b3JtM0QuaD4KQEAgLTkzMiwyNSArOTMzLDIwIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1
cnNpdmVDb21taXRDaGFuZ2VzKGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBzdGF0ZSwgZmxvYXQKICAg
ICB9CiAgICAgCiAgICAgRmxvYXRSZWN0IGNsaXBSZWN0Rm9yQ2hpbGRyZW4gPSBsb2NhbFN0YXRl
Lmxhc3RQbGFuYXJRdWFkKCkuYm91bmRpbmdCb3goKTsKLSAgICBGbG9hdFJlY3QgY2xpcFJlY3RG
b3JTZWxmOworICAgIEZsb2F0UmVjdCBjbGlwUmVjdEZvclNlbGYoMCwgMCwgbV9zaXplLndpZHRo
KCksIG1fc2l6ZS5oZWlnaHQoKSk7CisgICAgY2xpcFJlY3RGb3JTZWxmLmludGVyc2VjdChjbGlw
UmVjdEZvckNoaWxkcmVuKTsKICAgICAKICAgICBpZiAobWFza3NUb0JvdW5kcygpKSB7CiAgICAg
ICAgIEFTU0VSVChhY2N1bXVsYXRpb24gPT0gVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zv
cm0pOwotICAgICAgICAKICAgICAgICAgLy8gUmVwbGFjZSB0aGUgcXVhZCBpbiB0aGUgVHJhbnNm
b3JtU3RhdGUgd2l0aCBvbmUgdGhhdCBpcyBjbGlwcGVkIHRvIHRoaXMgbGF5ZXIncyBib3VuZHMK
LSAgICAgICAgY2xpcFJlY3RGb3JTZWxmID0gRmxvYXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgp
LCBtX3NpemUuaGVpZ2h0KCkpOwotICAgICAgICBjbGlwUmVjdEZvclNlbGYuaW50ZXJzZWN0KGNs
aXBSZWN0Rm9yQ2hpbGRyZW4pOwogICAgICAgICBsb2NhbFN0YXRlLnNldFF1YWQoY2xpcFJlY3RG
b3JTZWxmKTsKICAgICB9CiAKKyAgICBtX3Zpc2libGVSZWN0ID0gY2xpcFJlY3RGb3JTZWxmOwor
ICAgIAogI2lmZGVmIFZJU0lCTEVfVElMRV9XQVNICi0gICAgaWYgKG1fdmlzaWJsZVRpbGVXYXNo
TGF5ZXIpIHsKLSAgICAgICAgaWYgKGNsaXBSZWN0Rm9yU2VsZi5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgICAgIGNsaXBSZWN0Rm9yU2VsZiA9IEZsb2F0UmVjdCgwLCAwLCBtX3NpemUud2lkdGgoKSwg
bV9zaXplLmhlaWdodCgpKTsKLSAgICAgICAgICAgIGNsaXBSZWN0Rm9yU2VsZi5pbnRlcnNlY3Qo
Y2xpcFJlY3RGb3JDaGlsZHJlbik7Ci0gICAgICAgIH0KKyAgICBpZiAobV92aXNpYmxlVGlsZVdh
c2hMYXllcikKICAgICAgICAgbV92aXNpYmxlVGlsZVdhc2hMYXllci0+c2V0RnJhbWUoY2xpcFJl
Y3RGb3JTZWxmKTsKLSAgICB9CiAjZW5kaWYKIAogICAgIGJvb2wgaGFkQ2hhbmdlcyA9IG1fdW5j
b21taXR0ZWRDaGFuZ2VzOwpAQCAtMjQxMyw2ICsyNDA5LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjpnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImIGNvbG9yLCBmbG9hdCYgd2lkdGgpIGNvbnN0
CiAgICAgR3JhcGhpY3NMYXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKGNvbG9yLCB3aWR0aCk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdGV4dFN0cmVhbSwgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpIGNvbnN0Cit7CisgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVk
ZVZpc2libGVSZWN0cykgeworICAgICAgICB3cml0ZUluZGVudCh0ZXh0U3RyZWFtLCBpbmRlbnQg
KyAxKTsKKyAgICAgICAgdGV4dFN0cmVhbSA8PCAiKHZpc2libGUgcmVjdCAiIDw8IG1fdmlzaWJs
ZVJlY3QueCgpIDw8ICIsICIgPDwgbV92aXNpYmxlUmVjdC55KCkgPDwgIiAiIDw8IG1fdmlzaWJs
ZVJlY3Qud2lkdGgoKSA8PCAiIHggIiA8PCBtX3Zpc2libGVSZWN0LmhlaWdodCgpIDw8ICIpXG4i
OworICAgIH0KK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0
IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgpCiB7ICAgIAogICAgIGlmIChjb2xvci5p
c1ZhbGlkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggMjUzNWQyOWNiMGNiYmFkMTQ3ODAzMjg3ZDc3ZmUx
MmY1M2MzYTE1OC4uZjZlZmJmZTQyNjEwZWU2ZDg1ZWZjNjE0Zjk2ZWNjZjA2Nzg4MTg3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50
LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKICAgICB2b2lkIGNvbXB1dGVQaXhl
bEFsaWdubWVudChmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBw
b3NpdGlvblJlbGF0aXZlVG9CYXNlLAogICAgICAgICBGbG9hdFBvaW50JiBwb3NpdGlvbiwgRmxv
YXRTaXplJiwgRmxvYXRQb2ludDNEJiBhbmNob3JQb2ludCwgRmxvYXRTaXplJiBhbGlnbm1lbnRP
ZmZzZXQpIGNvbnN0OwpAQCAtMzkzLDYgKzM5NCw3IEBAIHByaXZhdGU6CiAjaWZkZWYgVklTSUJM
RV9USUxFX1dBU0gKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX3Zpc2libGVUaWxlV2Fz
aExheWVyOwogI2VuZGlmCisgICAgRmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgCiAgICAg
ZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7CiAgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IGM5YWUzM2Y5NzE3NmU4YjRmNDg5MzNkNmQ1ZDBjNDIxYzcyNTQyZjMuLmM4ZjE3
OGM2ODYzMzc2MjI2MGEyYWEzNjljYTVlYzRjMmMzZTcwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMTA1LDE2ICsx
MTA1LDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY3JvbGxpbmdMYXllckRpZENo
YW5nZShSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5z
Y3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKGxheWVyLCBiYWNraW5nID8gYmFja2lu
Zy0+c2Nyb2xsaW5nQ29udGVudHNMYXllcigpIDogMCk7CiB9CiAKLVN0cmluZyBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8pCitTdHJpbmcg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgZmxh
Z3MpCiB7CiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRl
ckxheW91dCk7CiAKICAgICBpZiAoIW1fcm9vdENvbnRlbnRMYXllcikKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogCisgICAgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgbGF5ZXJUcmVlQmVoYXZp
b3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbDsKKyAgICBpZiAoZmxhZ3MgJiBMYXll
clRyZWVGbGFnc0luY2x1ZGVEZWJ1Z0luZm8pCisgICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9
IExheWVyVHJlZUFzVGV4dERlYnVnOworICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5j
bHVkZVZpc2libGVSZWN0cykKKyAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZVZpc2libGVSZWN0czsKKyAgICAKICAgICAvLyBXZSBza2lwIGR1bXBpbmcg
dGhlIHNjcm9sbCBhbmQgY2xpcCBsYXllcnMgdG8ga2VlcCBsYXllclRyZWVBc1RleHQgb3V0cHV0
CiAgICAgLy8gc2ltaWxhciBiZXR3ZWVuIHBsYXRmb3Jtcy4KLSAgICByZXR1cm4gbV9yb290Q29u
dGVudExheWVyLT5sYXllclRyZWVBc1RleHQoc2hvd0RlYnVnSW5mbyA/IExheWVyVHJlZUFzVGV4
dERlYnVnIDogTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpOworICAgIHJldHVybiBtX3Jv
b3RDb250ZW50TGF5ZXItPmxheWVyVHJlZUFzVGV4dChsYXllclRyZWVCZWhhdmlvcik7CiB9CiAK
IFJlbmRlckxheWVyQ29tcG9zaXRvciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRl
bnRzQ29tcG9zaXRvcihSZW5kZXJQYXJ0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBjODQyOGNiZDc0NDEzZGJm
ZGYxYzJkZTc3OTYyOGYxMzlkYjYzNDViLi4zODYxMTk5NDc4YWEzODBlOGNkYzEzNjM4MTUxYjk3
YjZjYmNkNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFJlbmRlckxheWVyQ29tcG9z
aXRvcl9oCiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgi
CiAKQEAgLTE5NSw3ICsxOTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbGluZ0xheWVy
RGlkQ2hhbmdlKFJlbmRlckxheWVyKik7CiAKLSAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KGJv
b2wgc2hvd0RlYnVnSW5mbyA9IGZhbHNlKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExh
eWVyVHJlZUZsYWdzKTsKIAogICAgIC8vIFRoZXNlIGFyZSBuYW1lZCB0byBhdm9pZCBjb25mbGlj
dHMgd2l0aCB0aGUgZnVuY3Rpb25zIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAvLyBUaGVz
ZSByZXR1cm4gdGhlIGFjdHVhbCBpbnRlcm5hbCB2YXJpYWJsZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggYjVkN2Q2NzU5ZDBjNjM0MTRiNzAxOTMyZjZlZmFiM2ZmZmFm
YjU3NC4uYzI2ZDZlYTRmOTc4YTc1NDI3MDJhMDZmNWE0ZTYzODEyN2EzNDVkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTIyNCwxMiArMTIyNCwyMSBAQCB2b2lkIElu
dGVybmFsczo6cmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogCiBTdHJpbmcgSW50ZXJuYWxzOjpsYXllclRyZWVBc1RleHQoRG9jdW1l
bnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyAgICByZXR1cm4gbGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCAwLCBlYyk7Cit9CisKK1N0cmluZyBJbnRlcm5hbHM6Omxh
eWVyVHJlZUFzVGV4dChEb2N1bWVudCogZG9jdW1lbnQsIHVuc2lnbmVkIGZsYWdzLCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKK3sKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJh
bWUoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogICAgIH0KLSAgICAKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmxh
eWVyVHJlZUFzVGV4dCgpOworCisgICAgTGF5ZXJUcmVlRmxhZ3MgbGF5ZXJUcmVlRmxhZ3MgPSAw
OworICAgIGlmIChmbGFncyAmIExBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUykKKyAg
ICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVmlzaWJsZVJlY3Rz
OworCisgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5sYXllclRyZWVBc1RleHQobGF5ZXJU
cmVlRmxhZ3MpOwogfQogCiB2b2lkIEludGVybmFsczo6Z2FyYmFnZUNvbGxlY3REb2N1bWVudFJl
c291cmNlcyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggM2JkNDc1ZTRlNThhOWFhYzQ1YWQ1N2M1ODUy
NGEyYzcxZWY5NGQ3MC4uYmJjNWM1YjdiOWQ1MTk1MjNhOGFiZTZlZWVkNTk1Y2FkMGIzZjZlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xODcsNiArMTg3LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKIAorICAgIGVudW0geworICAgICAgICBMQVlFUl9UUkVFX0lOQ0xVREVTX1ZJ
U0lCTEVfUkVDVFMgPSAxIC8vIFZhbHVlcyBuZWVkIHRvIGtlcHQgaW4gc3luYyB3aXRoIEludGVy
bmFscy5pZGwuCisgICAgfTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50Kiwg
dW5zaWduZWQgZmxhZ3MsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBTdHJpbmcgbGF5ZXJU
cmVlQXNUZXh0KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCiAgICAgdm9pZCBn
YXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2VzKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQzY2VhMjQwNWM0
NDA4YjIwOWJhMTQ5YzFhNTExMjdjNzI3ZGExMTQuLjQzNDU4ZTBjMTUzZmU5NjczOGM2MThjNGU0
OTU4NDEzY2YwOWI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE1
Nyw3ICsxNTcsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzdXNwZW5kQW5pbWF0
aW9ucyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKIAotICAgICAgICBET01TdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KGluIERvY3Vt
ZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIC8vIEZsYWdzIGZv
ciBsYXllclRyZWVBc1RleHQuCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExBWUVSX1RS
RUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyA9IDE7CisgICAgICAgIERPTVN0cmluZyBsYXllclRy
ZWVBc1RleHQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hv
cnQgZmxhZ3MpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lkIGdhcmJhZ2VD
b2xsZWN0RG9jdW1lbnRSZXNvdXJjZXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKaW5kZXggMWI5ZTVlYTRlODI5Y2RkZDJhNTA4OWM3NTRiNDIxOTAyNGM4ODA0Ny4uNDljY2E2
MzkwOWM1MDI1N2U1MWM5OTc5YjZiOTJiY2MwMTkwNTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0yMTU2LDcgKzIxNTYsOSBAQCBXZWJTdHJp
bmcgV2ViRnJhbWVJbXBsOjpsYXllclRyZWVBc1RleHQoYm9vbCBzaG93RGVidWdJbmZvKSBjb25z
dAogewogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOwotICAg
IHJldHVybiBXZWJTdHJpbmcoZnJhbWUoKS0+bGF5ZXJUcmVlQXNUZXh0KHNob3dEZWJ1Z0luZm8p
KTsKKyAgICAKKyAgICBMYXllclRyZWVGbGFncyBmbGFncyA9IHNob3dEZWJ1Z0luZm8gPyBMYXll
clRyZWVGbGFnc0luY2x1ZGVEZWJ1Z0luZm8gOiAwOworICAgIHJldHVybiBXZWJTdHJpbmcoZnJh
bWUoKS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKSk7CiB9CiAKIC8vIFdlYkZyYW1lSW1wbCBwdWJs
aWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApp
bmRleCBkMDRmNGRiN2Y3M2M4ODMxNzg4Yjc1MmQ4MDE1Mjg5YTM1OWZjNmIwLi45YzUxY2U2Y2Y0
YmQ4OGU3ZDE2MTRiYmY1M2I0YjhiNzg3MjFjYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTUxMyw3ICs1MTMsNyBAQCBTdHJpbmcg
V2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFtX2NvcmVGcmFtZSkK
ICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgcmV0dXJuIG1fY29yZUZyYW1lLT5sYXllclRyZWVB
c1RleHQoKTsKKyAgICByZXR1cm4gbV9jb3JlRnJhbWUtPmxheWVyVHJlZUFzVGV4dCgwKTsKIH0K
IAogdW5zaWduZWQgV2ViRnJhbWU6OnBlbmRpbmdVbmxvYWRDb3VudCgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168021</attachid>
            <date>2012-10-10 10:01:02 -0700</date>
            <delta_ts>2012-10-10 10:50:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98839-20121010100001.patch</filename>
            <type>text/plain</type>
            <size>21404</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5ZTgyZmVlZGRlYzM2
MDc2NTAxNTAwOWViZDBlZmI5MDhiOTk3My4uODgyMDUzYjE3NDQ4OTE5ZDg2OWYzOGIyYjljMDg3
OGM5M2VjYzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlz
aWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxh
eWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQgdG8g
YmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVyLAor
ICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxlcy4g
UmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAorICAg
ICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAgICAg
ICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0ZXN0
cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAgIGxh
eWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMsIHNv
IHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46IFNpZ25hdHVyZSBvZiBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY2hhbmdl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjps
YXllclRyZWVBc1RleHQpOiBDaGFuZ2UgdG8gdGFrZSBzb21lIGVudW0gZmxhZ3MgcmF0aGVyIHRo
YW4ganVzdCBhIGJvb2wuCisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6d3JpdGVJbmRlbnQpOiBNYWtlIGludG8gYSBzdGF0aWMgY2xhc3MgbWV0aG9kIHNv
IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKTogQ2FsbCBhIHZpcnR1YWwgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KCkgZm9yIHN1YmNsYXNzZXMuCisgICAgICAgIChzaG93R3JhcGhpY3NMYXllclRyZWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIpOiBOZXcgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyBmbGFnLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KTogTmV3IHZpcnR1YWwgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJl
Y3Vyc2l2ZUNvbW1pdENoYW5nZXMpOiBjbGlwUmVjdEZvckNoaWxkcmVuIGFuZCBjbGlwUmVjdEZv
clNlbGYKKyAgICAgICAgd2VyZSBwcmV2aW91c2x5IHVudXNlZCBhbmQgYnVnZ3kuIEZpeCB0byBj
b3JyZWN0bHkgY29tcHV0ZSBjbGlwUmVjdEZvclNlbGYsIHRvIGFzc2lnbgorICAgICAgICB0byBt
X3Zpc2libGVSZWN0LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpkdW1wQWRk
aXRpb25hbFByb3BlcnRpZXMpOiBEdW1wIG1fdmlzaWJsZVJlY3QuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
Q0EpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOiBD
b252ZXJ0IHRoZSBmbGFncyBmcm9tIEZyYW1lIGZsYWdzCisgICAgICAgIHRvIEdyYXBoaWNzTGF5
ZXJGbGFncyBhbmQgcGFzcyB0aGVtIGFsb25nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpsYXllclRyZWVBc1RleHQpOiBPdmVybG9hZGVkIG1ldGhvZCB0byBoYW5kbGUgdGhlIG9wdGlv
bmFsIElETCBhcmd1bWVudHMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkIGVu
dW0uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBBZGQgb3B0aW9uYWwgZmxhZ3Ms
IGFuZCBhIGNvbnN0IHNob3J0IHRvIGRlc2NyaWJlIHRoZSBmbGFncy4KKwogMjAxMi0xMC0xMCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBwcm90ZWN0IG5vZGUgaW4gdGhlIEluc3BlY3RvckRPTU5vZGU6Omluc3BlY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTA0OWI0YTFiMjc0ZTJlNzdiMjI1ZjViYjNjZWVi
ZjIxMGVhN2E1Mi4uZjdjY2M3NzliYTc0MDczMGFiOTk5ZTI2MzNlOGM1ZTI1ZTM0OGVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yZSBhIHZp
c2libGUgcmVjdCBpbiBHcmFwaGljc0xheWVycywgYW5kIG9wdGlvbmFsbHkgZHVtcCBpdCBpbiBs
YXllclRyZWVBc1RleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgZmxhZyB0byBsYXllclRyZWVBc1RleHQoKSBzbyB0aGF0IHRlc3RzIGNhbiBv
cHRpb25hbGx5IGluY2x1ZGUgdGhpcyB2aXNpYmxlIHJlY3QgaW4KKyAgICAgICAgbGF5ZXIgdHJl
ZSBkdW1wcy4gVGhpcyBvdXRwdXQgd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYywgc28gd2UgZG9u
J3Qgd2FudCB0byBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsYXllclRyZWVBc1Rl
eHQpOgorCiAyMDEyLTEwLTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJFbGVtZW50OjpoYXNIVE1MVGFnTmFtZSwgYW5kIGRl
cHJlY2F0ZSBoYXNUYWdOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDk1MWVlM2Y0MjhjYTFhYzAz
ZTcwNGFkM2EyODJmOTg5Mjc5NzdkNC4uNjg1NTg4YmI5ZDI1MTQ3YmE3ZmYwNTk1MmQ0MGUzMzlm
MzJjMmRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEg
dmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGlu
IGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdlIG5lZWQg
dG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGljc0xheWVy
LAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNoZSB0aWxl
cy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0aGlzLAor
ICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVjdC4KKyAg
ICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28gdGhhdCB0
ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisgICAgICAg
IGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3BlY2lmaWMs
IHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2xheWVyVHJlZUFzVGV4
dF0pOgorCiAyMDEyLTEwLTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVcGRhdGUgdGhlIENTUyBwcm9wZXJ0eSB1c2VkIHRvIHN1cHBvcnQgZHJhZ2dhYmxlIHJl
Z2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWVhMDRmZjMyYTY2MGQxYjQxZTg3YWJjYmU5NDhhMGQ5ZDRk
ZWEzYS4uNzFmOWM5ZmRhZGNiYzFjMGI5OTJhNmFiM2ZmN2ZmZWVkNTllOTA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNz
TGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1wIGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnIHRvIGxh
eWVyVHJlZUFzVGV4dCgpIHNvIHRoYXQgdGVzdHMgY2FuIG9wdGlvbmFsbHkgaW5jbHVkZSB0aGlz
IHZpc2libGUgcmVjdCBpbgorICAgICAgICBsYXllciB0cmVlIGR1bXBzLiBUaGlzIG91dHB1dCB3
aWxsIGJlIHBsYXRmb3JtLXNwZWNpZmljLCBzbyB3ZSBkb24ndCB3YW50IHRvIGRvIGl0IHVuY29u
ZGl0aW9uYWxseS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpsYXllclRyZWVBc1RleHQpOgorCisyMDEyLTEw
LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0
b3JlIGEgdmlzaWJsZSByZWN0IGluIEdyYXBoaWNzTGF5ZXJzLCBhbmQgb3B0aW9uYWxseSBkdW1w
IGl0IGluIGxheWVyVHJlZUFzVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUbyByZXBsYWNlIENBVGlsZWRMYXllciB3aXRoIFRpbGVDYWNoZXMsIHdl
IG5lZWQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSB2aXNpYmxlIHBhcnQgb2YgYSBHcmFwaGlj
c0xheWVyLAorICAgICAgICBpbiBvcmRlciB0byBsaW1pdCB0aGUgZXh0ZW50IG9mIFRpbGVDYWNo
ZSB0aWxlcy4gUmV1c2UgdGhlIGV4aXN0aW5nIGNvZGUgaW4gR3JhcGhpY3NMYXllckNBIGZvciB0
aGlzLAorICAgICAgICBidXQgc3RvcmUgdGhlIGNvbXB1dGVkIHJlY3QgaW4gbV92aXNpYmxlUmVj
dC4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIGZsYWcgdG8gbGF5ZXJUcmVlQXNUZXh0KCkgc28g
dGhhdCB0ZXN0cyBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHRoaXMgdmlzaWJsZSByZWN0IGluCisg
ICAgICAgIGxheWVyIHRyZWUgZHVtcHMuIFRoaXMgb3V0cHV0IHdpbGwgYmUgcGxhdGZvcm0tc3Bl
Y2lmaWMsIHNvIHdlIGRvbid0IHdhbnQgdG8gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6CisKIDIwMTItMTAtMTAgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gUkVH
UkVTU0lPTihyMTMwODc5KTogSXQgbWFkZSBmYXN0L2V2ZW50cy90b3VjaC8qIHRlc3RzIGNyYXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJjNGYxNDM4MzdkYWFkZGI0ZjAzNjhhYmUzNzU0NjNk
MzBjOTkwYWYuLjUyY2U3N2MxNDM2Y2UyYzg1NjdkMjk0NGYzNDVkN2ExOGJhYjc4MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0xMzE0LDcgKzEzMTQsNyBAQCBfX1pOSzdXZWJDb3JlNUNvbG9y
N2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1RnJhbWUxM293bmVyUmVuZGVyZXJF
dgogX19aTks3V2ViQ29yZTVGcmFtZTE0c2VsZWN0aW9uSW1hZ2VFYgogX19aTks3V2ViQ29yZTVG
cmFtZTE1Y29udGVudFJlbmRlcmVyRXYKLV9fWk5LN1dlYkNvcmU1RnJhbWUxNWxheWVyVHJlZUFz
VGV4dEViCitfX1pOSzdXZWJDb3JlNUZyYW1lMTVsYXllclRyZWVBc1RleHRFagogX19aTks3V2Vi
Q29yZTVGcmFtZTE2ZnJhbWVTY2FsZUZhY3RvckV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMThkb2N1
bWVudFR5cGVTdHJpbmdFdgogX19aTks3V2ViQ29yZTVGcmFtZTMxZGlzcGxheVN0cmluZ01vZGlm
aWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2Zh
YzkxMmRkMTc2ZWRmYTlmNGRkYzJlZjU1YWNkYjQ2OGJiODdlYS4uNjIwNWZhNmNlMTJmMjUwODkx
MGQ1OWE0MmY1NDNiYmVlYzljMmI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTg3Niw3ICs4
NzYsNyBAQCBDb2xvciBGcmFtZTo6dGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdAogfQogI2VuZGlmCiAKLVN0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KGJvb2wgc2hv
d0RlYnVnSW5mbykgY29uc3QKK1N0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJl
ZUZsYWdzIGZsYWdzKSBjb25zdAogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKQEAgLTg4NCw5ICs4ODQsOSBAQCBTdHJp
bmcgRnJhbWU6OmxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8pIGNvbnN0CiAgICAg
aWYgKCFjb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
cmV0dXJuIGNvbnRlbnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCktPmxheWVyVHJlZUFzVGV4dChz
aG93RGVidWdJbmZvKTsKKyAgICByZXR1cm4gY29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3Io
KS0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzKTsKICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNob3dE
ZWJ1Z0luZm8pOworICAgIFVOVVNFRF9QQVJBTShmbGFncyk7CiAgICAgcmV0dXJuIFN0cmluZygp
OwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggNzE5NjkyMjY5NThiYTZmMDg4OGI3NmM1
YTdiOWQ4YWY2MzViZmFkMC4uMGEwN2M0MjIwOGZhM2JlMGRlNTgwNTJlY2I2MmNjYTRhYjc5MTgw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtNzYsNiArNzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgVHJlZVNjb3BlOwogCisgICAgZW51bSB7CisgICAgICAgIExheWVyVHJl
ZUZsYWdzSW5jbHVkZURlYnVnSW5mbyA9IDEgPDwgMCwKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlVmlzaWJsZVJlY3RzID0gMSA8PCAyCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVk
IExheWVyVHJlZUZsYWdzOworCiAgICAgY2xhc3MgRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxG
cmFtZT4sIHB1YmxpYyBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudCB7CiAgICAgcHVibGljOgogICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlKFBhZ2UqLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqLCBGcmFtZUxvYWRlckNsaWVudCopOwpAQCAtMTI1LDcgKzEzMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGluamVjdFVzZXJTY3JpcHRzKFVzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lKTsKICAgICAgICAgCi0gICAgICAgIFN0cmluZyBsYXllclRyZWVBc1Rl
eHQoYm9vbCBzaG93RGVidWdJbmZvID0gZmFsc2UpIGNvbnN0OworICAgICAgICBTdHJpbmcgbGF5
ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzID0gMCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGlj
IEZyYW1lKiBmcmFtZUZvcldpZGdldChjb25zdCBXaWRnZXQqKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBmODU0NDVm
NGJhNTM0NzE3YjNmNzE4MzEyNzcyY2U0ZmI5NTNjY2QxLi4zYTMyYjUxNDViOTI3ZWRhZWQ0NWY5
MTllNWQ2MDk1MTUxYzQ0M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNTM2LDcgKzUzNiw3IEBAIGRvdWJsZSBHcmFw
aGljc0xheWVyOjpiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4oNCAqIHNpemUoKS53aWR0aCgpKSAqIHNpemUoKS5oZWlnaHQo
KTsKIH0KIAotc3RhdGljIHZvaWQgd3JpdGVJbmRlbnQoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRl
bnQpCit2b2lkIEdyYXBoaWNzTGF5ZXI6OndyaXRlSW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQg
aW5kZW50KQogewogICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGluZGVudDsgKytpKQogICAgICAg
ICB0cyA8PCAiICAiOwpAQCAtNjYyLDYgKzY2Miw4IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVt
cFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJl
CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgIH0KICAgICAKKyAgICBkdW1wQWRkaXRpb25hbFBy
b3BlcnRpZXModHMsIGluZGVudCwgYmVoYXZpb3IpOworICAgIAogICAgIGlmIChtX2NoaWxkcmVu
LnNpemUoKSkgewogICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7CiAgICAgICAg
IHRzIDw8ICIoY2hpbGRyZW4gIiA8PCBtX2NoaWxkcmVuLnNpemUoKSA8PCAiXG4iOwpAQCAtNjkw
LDcgKzY5Miw3IEBAIHZvaWQgc2hvd0dyYXBoaWNzTGF5ZXJUcmVlKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdURjo6U3RyaW5nIG91dHB1dCA9IGxheWVyLT5sYXllclRyZWVBc1RleHQoTGF5ZXJUcmVl
QXNUZXh0RGVidWcpOworICAgIFN0cmluZyBvdXRwdXQgPSBsYXllci0+bGF5ZXJUcmVlQXNUZXh0
KExheWVyVHJlZUFzVGV4dERlYnVnIHwgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0
cyk7CiAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKaW5kZXggNTQwMzZhZjNlOWJlYTA2NTkyOWU0ZDQ5YTg3YjdmZjc4ZjcwNDMxNC4u
M2EzZjMwMzBhMzk1MTNkNmRmNmZiYjk1ZGE1Yzk1NzFkMDU4Yjg2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDcsNiArNDcs
NyBAQAogZW51bSBMYXllclRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKICAgICBMYXllclRyZWVB
c1RleHRCZWhhdmlvck5vcm1hbCA9IDAsCiAgICAgTGF5ZXJUcmVlQXNUZXh0RGVidWcgPSAxIDw8
IDAsIC8vIER1bXAgZXh0cmEgZGVidWdnaW5nIGluZm8gbGlrZSBsYXllciBhZGRyZXNzZXMuCisg
ICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyA9IDEgPDwgMSwKIH07CiB0eXBl
ZGVmIHVuc2lnbmVkIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yOwogCkBAIC00MzUsNyArNDM2LDEx
IEBAIHByb3RlY3RlZDoKIAogICAgIEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCop
OwogCisgICAgc3RhdGljIHZvaWQgd3JpdGVJbmRlbnQoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQp
OworCiAgICAgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCwgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkdW1wQWRkaXRp
b25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCAvKmluZGVudCovLCBMYXllclRyZWVBc1Rl
eHRCZWhhdmlvcikgY29uc3QgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGVidWdCb3JkZXJJ
bmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKIAogICAgIEdyYXBoaWNzTGF5ZXJDbGll
bnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNDFmY2ZmMWQxODM4YzU1YmEwNmExYTc0
M2Q4ZTc0ZjBmODJhOWMxMS4uZGQ0ZmExZWY0MWQ5ZDljMzFjYjVkNzQ2ODMxZmJiZTZkZDYwOWZi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIK
ICNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQVRyYW5zZm9ybTNELmg+CkBAIC05MzIsMjUg
KzkzMywyMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhj
b25zdCBUcmFuc2Zvcm1TdGF0ZSYgc3RhdGUsIGZsb2F0CiAgICAgfQogICAgIAogICAgIEZsb2F0
UmVjdCBjbGlwUmVjdEZvckNoaWxkcmVuID0gbG9jYWxTdGF0ZS5sYXN0UGxhbmFyUXVhZCgpLmJv
dW5kaW5nQm94KCk7Ci0gICAgRmxvYXRSZWN0IGNsaXBSZWN0Rm9yU2VsZjsKKyAgICBGbG9hdFJl
Y3QgY2xpcFJlY3RGb3JTZWxmKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkp
OworICAgIGNsaXBSZWN0Rm9yU2VsZi5pbnRlcnNlY3QoY2xpcFJlY3RGb3JDaGlsZHJlbik7CiAg
ICAgCiAgICAgaWYgKG1hc2tzVG9Cb3VuZHMoKSkgewogICAgICAgICBBU1NFUlQoYWNjdW11bGF0
aW9uID09IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKLSAgICAgICAgCiAgICAg
ICAgIC8vIFJlcGxhY2UgdGhlIHF1YWQgaW4gdGhlIFRyYW5zZm9ybVN0YXRlIHdpdGggb25lIHRo
YXQgaXMgY2xpcHBlZCB0byB0aGlzIGxheWVyJ3MgYm91bmRzCi0gICAgICAgIGNsaXBSZWN0Rm9y
U2VsZiA9IEZsb2F0UmVjdCgwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsK
LSAgICAgICAgY2xpcFJlY3RGb3JTZWxmLmludGVyc2VjdChjbGlwUmVjdEZvckNoaWxkcmVuKTsK
ICAgICAgICAgbG9jYWxTdGF0ZS5zZXRRdWFkKGNsaXBSZWN0Rm9yU2VsZik7CiAgICAgfQogCisg
ICAgbV92aXNpYmxlUmVjdCA9IGNsaXBSZWN0Rm9yU2VsZjsKKyAgICAKICNpZmRlZiBWSVNJQkxF
X1RJTEVfV0FTSAotICAgIGlmIChtX3Zpc2libGVUaWxlV2FzaExheWVyKSB7Ci0gICAgICAgIGlm
IChjbGlwUmVjdEZvclNlbGYuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBjbGlwUmVjdEZvclNl
bGYgPSBGbG9hdFJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7Ci0g
ICAgICAgICAgICBjbGlwUmVjdEZvclNlbGYuaW50ZXJzZWN0KGNsaXBSZWN0Rm9yQ2hpbGRyZW4p
OwotICAgICAgICB9CisgICAgaWYgKG1fdmlzaWJsZVRpbGVXYXNoTGF5ZXIpCiAgICAgICAgIG1f
dmlzaWJsZVRpbGVXYXNoTGF5ZXItPnNldEZyYW1lKGNsaXBSZWN0Rm9yU2VsZik7Ci0gICAgfQog
I2VuZGlmCiAKICAgICBib29sIGhhZENoYW5nZXMgPSBtX3VuY29tbWl0dGVkQ2hhbmdlczsKQEAg
LTI0MTMsNiArMjQwOSwxNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Z2V0RGVidWdCb3JkZXJJ
bmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25zdAogICAgIEdyYXBoaWNzTGF5ZXI6
OmdldERlYnVnQm9yZGVySW5mbyhjb2xvciwgd2lkdGgpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRTdHJlYW0sIGlu
dCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2aW9yKSBjb25zdAoreworICAg
IGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNpYmxlUmVjdHMpIHsKKyAg
ICAgICAgd3JpdGVJbmRlbnQodGV4dFN0cmVhbSwgaW5kZW50ICsgMSk7CisgICAgICAgIHRleHRT
dHJlYW0gPDwgIih2aXNpYmxlIHJlY3QgIiA8PCBtX3Zpc2libGVSZWN0LngoKSA8PCAiLCAiIDw8
IG1fdmlzaWJsZVJlY3QueSgpIDw8ICIgIiA8PCBtX3Zpc2libGVSZWN0LndpZHRoKCkgPDwgIiB4
ICIgPDwgbV92aXNpYmxlUmVjdC5oZWlnaHQoKSA8PCAiKVxuIjsKKyAgICB9Cit9CisKIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0
IGJvcmRlcldpZHRoKQogeyAgICAKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
CmluZGV4IDI1MzVkMjljYjBjYmJhZDE0NzgwMzI4N2Q3N2ZlMTJmNTNjM2ExNTguLmY2ZWZiZmU0
MjYxMGVlNmQ4NWVmYzYxNGY5NmVjY2YwNjc4ODE4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0yMjksNiAr
MjI5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIo
R3JhcGhpY3NMYXllciopOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERlYnVnQm9yZGVySW5mbyhD
b2xvciYsIGZsb2F0JiB3aWR0aCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGR1bXBBZGRpdGlv
bmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmVo
YXZpb3IpIGNvbnN0OwogCiAgICAgdm9pZCBjb21wdXRlUGl4ZWxBbGlnbm1lbnQoZmxvYXQgcGl4
ZWxBbGlnbm1lbnRTY2FsZSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFz
ZSwKICAgICAgICAgRmxvYXRQb2ludCYgcG9zaXRpb24sIEZsb2F0U2l6ZSYsIEZsb2F0UG9pbnQz
RCYgYW5jaG9yUG9pbnQsIEZsb2F0U2l6ZSYgYWxpZ25tZW50T2Zmc2V0KSBjb25zdDsKQEAgLTM5
Myw2ICszOTQsNyBAQCBwcml2YXRlOgogI2lmZGVmIFZJU0lCTEVfVElMRV9XQVNICiAgICAgUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4gbV92aXNpYmxlVGlsZVdhc2hMYXllcjsKICNlbmRpZgorICAg
IEZsb2F0UmVjdCBtX3Zpc2libGVSZWN0OwogICAgIAogICAgIGVudW0gQ29udGVudHNMYXllclB1
cnBvc2UgewogICAgICAgICBOb0NvbnRlbnRzTGF5ZXIgPSAwLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjOWFlMzNmOTcx
NzZlOGI0ZjQ4OTMzZDZkNWQwYzQyMWM3MjU0MmYzLi5jOGYxNzhjNjg2MzM3NjIyNjBhMmFhMzY5
Y2E1ZWM0YzJjM2U3MDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTEwNSwxNiArMTEwNSwyMiBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6c2Nyb2xsaW5nTGF5ZXJEaWRDaGFuZ2UoUmVuZGVyTGF5ZXIqIGxh
eWVyKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsYWJsZUFyZWFTY3JvbGxM
YXllckRpZENoYW5nZShsYXllciwgYmFja2luZyA/IGJhY2tpbmctPnNjcm9sbGluZ0NvbnRlbnRz
TGF5ZXIoKSA6IDApOwogfQogCi1TdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRy
ZWVBc1RleHQoYm9vbCBzaG93RGVidWdJbmZvKQorU3RyaW5nIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdzKQogewogICAgIHVwZGF0ZUNv
bXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlQWZ0ZXJMYXlvdXQpOwogCiAgICAgaWYg
KCFtX3Jvb3RDb250ZW50TGF5ZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAorICAgIExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yIGxheWVyVHJlZUJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0
QmVoYXZpb3JOb3JtYWw7CisgICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVi
dWdJbmZvKQorICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHREZWJ1
ZzsKKyAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMpCisg
ICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNpYmxl
UmVjdHM7CisgICAgCiAgICAgLy8gV2Ugc2tpcCBkdW1waW5nIHRoZSBzY3JvbGwgYW5kIGNsaXAg
bGF5ZXJzIHRvIGtlZXAgbGF5ZXJUcmVlQXNUZXh0IG91dHB1dAogICAgIC8vIHNpbWlsYXIgYmV0
d2VlbiBwbGF0Zm9ybXMuCi0gICAgcmV0dXJuIG1fcm9vdENvbnRlbnRMYXllci0+bGF5ZXJUcmVl
QXNUZXh0KHNob3dEZWJ1Z0luZm8gPyBMYXllclRyZWVBc1RleHREZWJ1ZyA6IExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yTm9ybWFsKTsKKyAgICByZXR1cm4gbV9yb290Q29udGVudExheWVyLT5sYXll
clRyZWVBc1RleHQobGF5ZXJUcmVlQmVoYXZpb3IpOwogfQogCiBSZW5kZXJMYXllckNvbXBvc2l0
b3IqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVy
UGFydCogcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgKaW5kZXggYzg0MjhjYmQ3NDQxM2RiZmRmMWMyZGU3Nzk2MjhmMTM5ZGI2
MzQ1Yi4uMzg2MTE5OTQ3OGFhMzgwZThjZGMxMzYzODE1MWI5N2I2Y2JjZDU3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBSZW5kZXJMYXllckNvbXBvc2l0b3JfaAogCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogCkBAIC0xOTUsNyArMTk2LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzY3JvbGxpbmdMYXllckRpZENoYW5nZShSZW5kZXJMYXll
ciopOwogCi0gICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8gPSBm
YWxzZSk7CisgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyk7CiAKICAg
ICAvLyBUaGVzZSBhcmUgbmFtZWQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdGhlIGZ1bmN0aW9u
cyBpbiBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgLy8gVGhlc2UgcmV0dXJuIHRoZSBhY3R1YWwg
aW50ZXJuYWwgdmFyaWFibGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IGI1ZDdkNjc1OWQwYzYzNDE0YjcwMTkzMmY2ZWZhYjNmZmZhZmI1NzQuLmMyNmQ2ZWE0Zjk3OGE3
NTQyNzAyYTA2ZjVhNGU2MzgxMjdhMzQ1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTEyMjQsMTIgKzEyMjQsMjEgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc3VtZUFuaW1h
dGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIAogU3Ry
aW5nIEludGVybmFsczo6bGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisgICAgcmV0dXJuIGxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwgMCwgZWMpOworfQorCitTdHJpbmcgSW50ZXJuYWxzOjpsYXllclRyZWVBc1RleHQoRG9jdW1l
bnQqIGRvY3VtZW50LCB1bnNpZ25lZCBmbGFncywgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7
CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5sYXllclRyZWVBc1RleHQoKTsKKwor
ICAgIExheWVyVHJlZUZsYWdzIGxheWVyVHJlZUZsYWdzID0gMDsKKyAgICBpZiAoZmxhZ3MgJiBM
QVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMpCisgICAgICAgIGxheWVyVHJlZUZsYWdz
IHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVZpc2libGVSZWN0czsKKworICAgIHJldHVybiBkb2N1
bWVudC0+ZnJhbWUoKS0+bGF5ZXJUcmVlQXNUZXh0KGxheWVyVHJlZUZsYWdzKTsKIH0KIAogdm9p
ZCBJbnRlcm5hbHM6OmdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXMoRG9jdW1lbnQqIGRv
Y3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCmluZGV4IDNiZDQ3NWU0ZTU4YTlhYWM0NWFkNTdjNTg1MjRhMmM3MWVmOTRkNzAuLmJiYzVj
NWI3YjlkNTE5NTIzYThhYmU2ZWVlZDU5NWNhZDBiM2Y2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaApAQCAtMTg3LDYgKzE4NywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIHJl
c3VtZUFuaW1hdGlvbnMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKKyAgICBl
bnVtIHsKKyAgICAgICAgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTID0gMSAvLyBW
YWx1ZXMgbmVlZCB0byBrZXB0IGluIHN5bmMgd2l0aCBJbnRlcm5hbHMuaWRsLgorICAgIH07Cisg
ICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChEb2N1bWVudCosIHVuc2lnbmVkIGZsYWdzLCBFeGNl
cHRpb25Db2RlJikgY29uc3Q7CiAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChEb2N1bWVudCos
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIHZvaWQgZ2FyYmFnZUNvbGxlY3REb2N1bWVu
dFJlc291cmNlcyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0M2NlYTI0MDVjNDQwOGIyMDliYTE0OWMxYTUxMTI3
YzcyN2RhMTE0Li40MzQ1OGUwYzE1M2ZlOTY3MzhjNjE4YzRlNDk1ODQxM2NmMDliOGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNTcsNyArMTU3LDkgQEAgbW9kdWxl
IHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZXN1bWVBbmltYXRp
b25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAg
ICAgRE9NU3RyaW5nIGxheWVyVHJlZUFzVGV4dChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICAvLyBGbGFncyBmb3IgbGF5ZXJUcmVlQXNUZXh0Lgor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVf
UkVDVFMgPSAxOworICAgICAgICBET01TdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KGluIERvY3VtZW50
IGRvY3VtZW50LCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IGZsYWdzKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBnYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3Vy
Y2VzKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDFiOWU1ZWE0ZTgy
OWNkZGQyYTUwODljNzU0YjQyMTkwMjRjODgwNDcuLjQ5Y2NhNjM5MDljNTAyNTdlNTFjOTk3OWI2
YjkyYmNjMDE5MDU5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcApAQCAtMjE1Niw3ICsyMTU2LDkgQEAgV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6bGF5
ZXJUcmVlQXNUZXh0KGJvb2wgc2hvd0RlYnVnSW5mbykgY29uc3QKIHsKICAgICBpZiAoIWZyYW1l
KCkpCiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKLSAgICByZXR1cm4gV2ViU3RyaW5nKGZy
YW1lKCktPmxheWVyVHJlZUFzVGV4dChzaG93RGVidWdJbmZvKSk7CisgICAgCisgICAgTGF5ZXJU
cmVlRmxhZ3MgZmxhZ3MgPSBzaG93RGVidWdJbmZvID8gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVi
dWdJbmZvIDogMDsKKyAgICByZXR1cm4gV2ViU3RyaW5nKGZyYW1lKCktPmxheWVyVHJlZUFzVGV4
dChmbGFncykpOwogfQogCiAvLyBXZWJGcmFtZUltcGwgcHVibGljIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggZDA0ZjRkYjdmNzNjODgz
MTc4OGI3NTJkODAxNTI4OWEzNTlmYzZiMC4uOWM1MWNlNmNmNGJkODhlN2QxNjE0YmJmNTNiNGI4
Yjc4NzIxY2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgU3RyaW5nIFdlYkZyYW1lOjpsYXllclRyZWVB
c1RleHQoKSBjb25zdAogICAgIGlmICghbV9jb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAiIjsK
IAotICAgIHJldHVybiBtX2NvcmVGcmFtZS0+bGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgcmV0dXJu
IG1fY29yZUZyYW1lLT5sYXllclRyZWVBc1RleHQoMCk7CiB9CiAKIHVuc2lnbmVkIFdlYkZyYW1l
OjpwZW5kaW5nVW5sb2FkQ291bnQoKSBjb25zdAo=
</data>
<flag name="review"
          id="180885"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="180892"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>