<?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>130926</bug_id>
          
          <creation_ts>2014-03-29 05:12:23 -0700</creation_ts>
          <short_desc>[iOS WebKit2] Disable tile cohort retention for now</short_desc>
          <delta_ts>2014-03-31 12:38:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995565</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-29 05:12:23 -0700</bug_when>
    <thetext>At the moment, we retain unparented cohorts of tiles for four-ish seconds after they leave the tile coverage rect.

However, since the remote layer tree code doesn&apos;t support purgeable unparented tiles, this means that scrolling quickly leads to a backing store explosion with no recourse.

We should disable tile cohort retention for now (I have confirmed that it hugely improves performance/reduces process death when scrolling quickly). We will enable aggressive tile retention (like Mac uses) once we have purgeable unparented tile support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995566</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-03-29 05:12:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/16465413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995567</commentid>
    <comment_count>2</comment_count>
      <attachid>228106</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-29 05:23:54 -0700</bug_when>
    <thetext>Created attachment 228106
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995618</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-29 15:33:57 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; ...retain unparented cohorts of tiles for four-ish seconds after they leave...

two-ish actually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995930</commentid>
    <comment_count>4</comment_count>
      <attachid>228106</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-03-31 11:55:03 -0700</bug_when>
    <thetext>Comment on attachment 228106
patch

I thought this would be just  prefs change but there are a bunch of structural changes that I don&apos;t entirely follow. If I&apos;m understanding this correctly, what this patch actually seems to do is introduce a new setting that retains tile cohorts temporarily instead of indefinitely. Is that correct? I&apos;m not sure &quot;disable tile cohort retention for now&quot; is the clearest way to express that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995931</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-31 11:59:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 228106 [details])
&gt; I thought this would be just  prefs change but there are a bunch of structural changes that I don&apos;t entirely follow. If I&apos;m understanding this correctly, what this patch actually seems to do is introduce a new setting that retains tile cohorts temporarily instead of indefinitely. Is that correct? I&apos;m not sure &quot;disable tile cohort retention for now&quot; is the clearest way to express that.

No, it adds a new setting (which previously was not a setting, just was always true) to enable temporary retention, and turns that setting *off* on iOS. Thus, disabling retention of cohorts.

There has long been a setting for indefinite (&quot;aggressive&quot;) retention, and that one is off by default as well (but gets turned on on Mac by clients).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995941</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-31 12:38:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/166516</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228106</attachid>
            <date>2014-03-29 05:23:54 -0700</date>
            <delta_ts>2014-03-31 12:03:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>retention.diff</filename>
            <type>text/plain</type>
            <size>22817</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4N2NjMWFlLi41MTgxYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTQtMDMtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPUyBXZWJLaXQyXSBEaXNhYmxlIHRpbGUgY29ob3J0IHJldGVudGlvbiBmb3Ig
bm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5
MjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NDY1NDEzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgQWRkIGEgcHJl
ZmVyZW5jZSBmb3IgdGVtcG9yYXJ5IHRpbGUgY29ob3J0IHJldGVudGlvbiAoZXNzZW50aWFsbHks
IHByb3ZpZGUgYSBzZXR0aW5nCisgICAgICAgIHRoYXQgbWVhbnMgdGhhdCB3ZSB3aWxsIG5ldmVy
IHJldGFpbiB0aWxlcyBhdCBhbGwgb25jZSB0aGV5IGxlYXZlIHRoZSB0aWxlIGNvdmVyYWdlIHJl
Y3QpLgorICAgICAgICBEZWZhdWx0cyB0byB0cnVlIHRvIG1haW50YWluIGV4aXN0aW5nIGJlaGF2
aW9yLCBleGNlcHQgZm9yIGlPUyBXZWJLaXQyLCB3aGVyZQorICAgICAgICBpdCBkZWZhdWx0cyB0
byBmYWxzZSBiZWNhdXNlIHdlIGRvbid0IGhhdmUgdGhlIHJlcXVpc2l0ZSBzdXBwb3J0IGZvciBw
dXJnZWFibGUgdGlsZXMgeWV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdl
YktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKToKKwogMjAxNC0wMy0yNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBfIHByZWZpeCB0byBXS1JlbW90ZU9iamVjdFJlZ2lzdGVyeSBhbmQg
V0tSZW1vdGVPYmplY3RJbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ODc2MWI2Li5hOWM4MTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTQtMDMtMjkgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXZWJLaXQyXSBEaXNhYmxlIHRp
bGUgY29ob3J0IHJldGVudGlvbiBmb3Igbm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5MjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NDY1
NDEzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OnNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnNldEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OmFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgVXNlIFNldHRpbmdzLmluIGZvciB0aGVzZSBzaW1wbGUg
c2V0dGluZ3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50OjpzaG91bGRBZ2dy
ZXNzaXZlbHlSZXRhaW5UaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xp
ZW50OjpzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBv
cmFyaWx5UmV0YWluVGlsZUNvaG9ydHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xp
ZW50OjpwbGF0Zm9ybUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ6OnBsYXRmb3JtQ0FMYXllclNob3Vs
ZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
OjpzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgUGx1bWIgdGhl
IHR3byB0aWxlLXJldGVudGlvbiBzZXR0aW5ncyB0aHJvdWdoIHRvIFRpbGVDb250cm9sbGVyIGlu
IGEgcHVsbCBtYW5uZXIKKyAgICAgICAgaW5zdGVhZCBvZiBhIHB1c2ggbWFubmVyLCBhcyB0aGVy
ZSB3ZXJlIHNvbWUgY2FzZXMgKGVzcGVjaWFsbHkgb24gaU9TKSB3aGVyZQorICAgICAgICB0aGUg
c2V0dGluZ3Mgd2VyZW4ndCBhbHdheXMgZ2V0dGluZyBwdXNoZWQgZG93bi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbGVDb250cm9sbGVyOjpUaWxlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlQ29udHJvbGxlcjo6dGlsZVJldmFsaWRhdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6VGlsZUNvbnRyb2xsZXI6OnJldmFsaWRhdGVUaWxlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpUaWxlQ29udHJvbGxlcjo6ZHJhd1RpbGVNYXBDb250ZW50cyk6CisgICAgICAgIEFnZ3Jlc3Np
dmUgdGlsZSByZXRlbnRpb24gd2lucyBvdmVyIHRlbXBvcmFyeSByZXRlbnRpb24uIElmIHdlIGFy
ZW4ndAorICAgICAgICB1c2luZyB0ZW1wb3JhcnkgKGNvaG9ydCkgcmV0ZW50aW9uLCB0aHJvdyBh
d2F5IHRoZSBjb2hvcnQgYXMgc29vbiBhcyBpdAorICAgICAgICBpcyBjcmVhdGVkLgorCiAyMDE0
LTAzLTI3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY2MzYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA3NmVhYmM3Li43ZjliNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTI4MSw3ICsxMjgx
LDYgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMzJkZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRl
cnZhbEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2Fk
aW5nUXVpcmtFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRTY3JlZW5Gb250U3Vic3RpdHV0
aW9uRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzM3NldEFnZ3Jlc3NpdmVUaWxlUmV0
ZW50aW9uRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzM3NldEZvbnRGYWxsYmFja1By
ZWZlcnNQaWN0b2dyYXBoc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzNXNldEJhY2tncm91bmRT
aG91bGRFeHRlbmRCZXlvbmRQYWdlRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczM3c2V0U2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCkBAIC0xNjQ5LDcgKzE2NDgsOSBAQCBfX1pO
SzdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyNmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlRXYK
IF9fWk5LN1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMwdmlzaWJsZVJlY3RDaGFuZ2VSZXF1aXJl
c0ZsdXNoRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk5LN1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMy
cGxhdGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3JFdgogX19aTks3V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMzNwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXJFUE5TXzE1UGxhdGZv
cm1DQUxheWVyRQorX19aTks3V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDRwbGF0Zm9ybUNBTGF5
ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlc0VQTlNfMTVQbGF0Zm9ybUNBTGF5ZXJFCiBf
X1pOSzdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E0OXBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2Nh
bGVNdWx0aXBsaWVyRm9yTmV3VGlsZXNFUE5TXzE1UGxhdGZvcm1DQUxheWVyRQorX19aTks3V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBNDlwbGF0Zm9ybUNBTGF5ZXJTaG91bGRUZW1wb3JhcmlseVJl
dGFpblRpbGVDb2hvcnRzRVBOU18xNVBsYXRmb3JtQ0FMYXllckUKIF9fWk5LN1dlYkNvcmUxNVBy
b2dyZXNzVHJhY2tlcjE3ZXN0aW1hdGVkUHJvZ3Jlc3NFdgogX19aTks3V2ViQ29yZTE1UHJvdGVj
dGlvblNwYWNlMTBzZXJ2ZXJUeXBlRXYKIF9fWk5LN1dlYkNvcmUxNVByb3RlY3Rpb25TcGFjZTI2
cmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHlFdgpAQCAtMTk1OSw3ICsxOTYwLDkgQEAgX19aVGhu
Pz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1Rv
UmV2YWxpZGF0ZVRpbGVzRXYKIF9fWlRobj8/P19OSzdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ey
NnBsYXRmb3JtQ0FMYXllckV4cG9zZWRSZWN0RXYKIF9fWlRobj8/P19OSzdXZWJDb3JlMTVHcmFw
aGljc0xheWVyQ0EzMnBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yRXYKIF9fWlRobj8/
P19OSzdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EzM3BsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50
Q291bnRlckVQTlNfMTVQbGF0Zm9ybUNBTGF5ZXJFCitfX1pUaG4/Pz9fTks3V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBNDRwbGF0Zm9ybUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxl
c0VQTlNfMTVQbGF0Zm9ybUNBTGF5ZXJFCiBfX1pUaG4/Pz9fTks3V2ViQ29yZTE1R3JhcGhpY3NM
YXllckNBNDlwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVz
RVBOU18xNVBsYXRmb3JtQ0FMYXllckUKK19fWlRobj8/P19OSzdXZWJDb3JlMTVHcmFwaGljc0xh
eWVyQ0E0OXBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHNF
UE5TXzE1UGxhdGZvcm1DQUxheWVyRQogX2ZpbGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hhcmFjdGVy
cwogX2hhc0Nhc2VJbnNlbnNpdGl2ZVByZWZpeAogX2hhc0Nhc2VJbnNlbnNpdGl2ZVN1YnN0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAzMmI1YTdmLi44ZTBlZDJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTg2LDcgKzE4Niw2IEBAIFNldHRpbmdzOjpTZXR0aW5n
cyhQYWdlKiBwYWdlKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChmYWxzZSkK
ICNlbmRpZgogICAgICwgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNl
KQotICAgICwgbV9hZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X3RpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKDMpCiAgICAgLCBt
X3NldEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXIodGhpcywgJlNldHRpbmdzOjppbWFnZUxvYWRp
bmdTZXR0aW5nc1RpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKEhJRERFTl9QQUdFX0RPTV9USU1FUl9U
SFJPVFRMSU5HKQpAQCAtNjI4LDExICs2MjcsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRTY3JvbGxp
bmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBpZiAobV9wYWdl
LT5tYWluRnJhbWUoKS52aWV3KCkpCiAgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygp
LT5zZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGVuYWJsZWQpOwogfQotICAg
IAotdm9pZCBTZXR0aW5nczo6c2V0QWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBtX2FnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCA9IGVuYWJs
ZWQ7Ci19CiAKIHZvaWQgU2V0dGluZ3M6OnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGZs
YWcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNTE2ZjBkYy4uYTRlYzkzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMjMzLDkgKzIzMyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sKTsKICAgICBib29sIHNj
cm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKSB7IHJldHVybiBtX3Njcm9sbGluZ1Bl
cmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgdm9pZCBzZXRBZ2dyZXNz
aXZlVGlsZVJldGVudGlvbkVuYWJsZWQoYm9vbCk7Ci0gICAgYm9vbCBhZ2dyZXNzaXZlVGlsZVJl
dGVudGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2FnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxl
ZDsgfQogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKGJvb2wpOwogICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3BlY3RQcmlvcml0
eUluQ1NTQXR0cmlidXRlU2V0dGVycygpOwpAQCAtMzE3LDcgKzMxNCw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkIDogMTsKICNlbmRpZgogICAgIGJv
b2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkIDogMTsKLSAgICBib29sIG1f
YWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkIDogMTsKIAogICAgIGRvdWJsZSBtX3RpbWVX
aXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbgppbmRleCBmZmFmMTU2Li43Zjc1ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4K
QEAgLTIyMCwzICsyMjAsNiBAQCBpbWFnZUNvbnRyb2xzRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBj
b25kaXRpb25hbD1JTUFHRV9DT05UUk9MUwogYWx3YXlzVXNlQmFzZWxpbmVPZlByaW1hcnlGb250
IGluaXRpYWw9ZmFsc2UKIAogZW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50IGluaXRpYWw9
ZmFsc2UKKworYWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3Rl
bXBvcmFyeVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CmluZGV4IDNkMjQyMjQuLjVhYWRiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTk1LDYgKzk1LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFy
KikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZEFnZ3Jl
c3NpdmVseVJldGFpblRpbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hv
cnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICNpZiBF
TkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFMYXll
ck11c3RCZVVwZGF0ZWRPbk1haW5UaHJlYWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CmluZGV4IGUwMTY1ZTAuLjQ4MzA3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC03NSw5ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQo
KSBjb25zdCA9IDA7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldEFnZ3Jlc3NpdmVseVJldGFp
bnNUaWxlcyhib29sKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGFnZ3Jlc3NpdmVseVJldGFpbnNU
aWxlcygpIGNvbnN0ID0gMDsKLSAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VW5wYXJlbnRzT2Zm
c2NyZWVuVGlsZXMoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1bnBhcmVudHNPZmZzY3Jl
ZW5UaWxlcygpIGNvbnN0ID0gMDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDE0MzUxMGEuLjIz
YWRiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTI5NCw2ICsxMjk0LDE2IEBAIGZsb2F0IEdyYXBo
aWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdU
aWxlcyhQbGF0Zm9yCiAgICAgcmV0dXJuIGNsaWVudCgpID8gY2xpZW50KCktPmNvbnRlbnRzU2Nh
bGVNdWx0aXBsaWVyRm9yTmV3VGlsZXModGhpcykgOiAxOwogfQogCitib29sIEdyYXBoaWNzTGF5
ZXJDQTo6cGxhdGZvcm1DQUxheWVyU2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoUGxhdGZv
cm1DQUxheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCkgPyBjbGllbnQoKS0+c2hv
dWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXModGhpcykgOiBmYWxzZTsKK30KKworYm9vbCBHcmFw
aGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNv
aG9ydHMoUGxhdGZvcm1DQUxheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCkgPyBj
bGllbnQoKS0+c2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyh0aGlzKSA6IHRydWU7
Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJs
YXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsIGNvbnN0IEZsb2F0UmVjdCYg
b2xkVmlzaWJsZVJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KiB0cmFuc2Zvcm1Gcm9tUm9vdCkK
IHsKICAgICArK2NvbW1pdFN0YXRlLnRyZWVEZXB0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggMmE0M2QxZi4u
ZmIyYWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE5Myw2ICsxOTMsOCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRpbGVzKCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1DQUxheWVyQ29u
dGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvdWxkQWdncmVzc2l2
ZWx5UmV0YWluVGlsZXMoUGxhdGZvcm1DQUxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9y
dHMoUGxhdGZvcm1DQUxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNDb21taXR0aW5nQ2hhbmdlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNDb21taXR0
aW5nQ2hhbmdlczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCmluZGV4IDliMjM0MzIuLjZmNTY2
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRp
cGxpZXJGb3JOZXdUaWxlcyhQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCB7IHJldHVybiAxOyB9CiAK
KyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvdWxkQWdncmVzc2l2ZWx5UmV0YWlu
VGlsZXMoUGxhdGZvcm1DQUxheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0
cyhQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICAgICB2aXJ0dWFs
IGJvb2wgaXNDb21taXR0aW5nQ2hhbmdlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHBy
b3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9UaWxlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLmgKaW5kZXggZjc0ZTA4Yi4uNDE4ZjM4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250
cm9sbGVyLmgKQEAgLTExOCw4ICsxMTgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVj
dCB0aWxlR3JpZEV4dGVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykgb3ZlcnJpZGUgeyBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgPSBmbGFnOyB9CiAgICAgdmlydHVh
bCBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0QWdncmVzc2l2ZWx5UmV0YWluc1RpbGVzKGJvb2wgZmxhZykgb3ZlcnJp
ZGUgeyBtX2FnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcyA9IGZsYWc7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgYWdncmVzc2l2ZWx5UmV0YWluc1RpbGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9h
Z2dyZXNzaXZlbHlSZXRhaW5zVGlsZXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VW5wYXJlbnRz
T2Zmc2NyZWVuVGlsZXMoYm9vbCBmbGFnKSBvdmVycmlkZSB7IG1fdW5wYXJlbnRzT2Zmc2NyZWVu
VGlsZXMgPSBmbGFnOyB9CiAgICAgdmlydHVhbCBib29sIHVucGFyZW50c09mZnNjcmVlblRpbGVz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV91bnBhcmVudHNPZmZzY3JlZW5UaWxlczsgfQog
ICAgIHZpcnR1YWwgZG91YmxlIHJldGFpbmVkVGlsZUJhY2tpbmdTdG9yZU1lbW9yeSgpIGNvbnN0
IG92ZXJyaWRlOwpAQCAtMjQ1LDcgKzI0Myw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNJ
bldpbmRvdzsKICAgICBib29sIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsK
LSAgICBib29sIG1fYWdncmVzc2l2ZWx5UmV0YWluc1RpbGVzOwogICAgIGJvb2wgbV91bnBhcmVu
dHNPZmZzY3JlZW5UaWxlczsKICAgICBib29sIG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGJv
b2wgbV90aWxlc0FyZU9wYXF1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQppbmRleCBmZTNlODBlLi41ZDg1
N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
VGlsZUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLm1tCkBAIC02Nyw3ICs2Nyw2IEBAIFRpbGVDb250cm9sbGVy
OjpUaWxlQ29udHJvbGxlcihQbGF0Zm9ybUNBTGF5ZXIqIHJvb3RQbGF0Zm9ybUxheWVyKQogICAg
ICwgbV9tYXJnaW5SaWdodCgwKQogICAgICwgbV9pc0luV2luZG93KGZhbHNlKQogICAgICwgbV9z
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNlKQotICAgICwgbV9hZ2dyZXNz
aXZlbHlSZXRhaW5zVGlsZXMoZmFsc2UpCiAgICAgLCBtX3VucGFyZW50c09mZnNjcmVlblRpbGVz
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAgLCBtX3RpbGVz
QXJlT3BhcXVlKGZhbHNlKQpAQCAtNTQzLDcgKzU0Miw3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6
OnRpbGVSZXZhbGlkYXRpb25UaW1lckZpcmVkKFRpbWVyPFRpbGVDb250cm9sbGVyPiopCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVn
cm91bmRWYWxpZGF0aW9uUG9saWN5ID0gbV9hZ2dyZXNzaXZlbHlSZXRhaW5zVGlsZXMgPyAwIDog
UHJ1bmVTZWNvbmRhcnlUaWxlczsKKyAgICBUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVn
cm91bmRWYWxpZGF0aW9uUG9saWN5ID0gb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNB
TGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhtX3RpbGVDYWNoZUxheWVyKSA/IDAg
OiBQcnVuZVNlY29uZGFyeVRpbGVzOwogICAgIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgYmFj
a2dyb3VuZFZhbGlkYXRpb25Qb2xpY3kgPSBmb3JlZ3JvdW5kVmFsaWRhdGlvblBvbGljeSB8IFVu
cGFyZW50QWxsVGlsZXM7CiAKICAgICByZXZhbGlkYXRlVGlsZXMoZm9yZWdyb3VuZFZhbGlkYXRp
b25Qb2xpY3ksIGJhY2tncm91bmRWYWxpZGF0aW9uUG9saWN5KTsKQEAgLTY5OCw4ICs2OTcsMTIg
QEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9uUG9s
aWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXQKICAgICBpZiAodGlsZXNJbkNvaG9ydCkKICAgICAg
ICAgc3RhcnRlZE5ld0NvaG9ydChjdXJyQ29ob3J0KTsKIAotICAgIGlmICghbV9hZ2dyZXNzaXZl
bHlSZXRhaW5zVGlsZXMpCi0gICAgICAgIHNjaGVkdWxlQ29ob3J0UmVtb3ZhbCgpOworICAgIGlm
ICghb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZl
bHlSZXRhaW5UaWxlcyhtX3RpbGVDYWNoZUxheWVyKSkgeworICAgICAgICBpZiAob3duaW5nR3Jh
cGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVD
b2hvcnRzKG1fdGlsZUNhY2hlTGF5ZXIpKQorICAgICAgICAgICAgc2NoZWR1bGVDb2hvcnRSZW1v
dmFsKCk7CisgICAgICAgIGVsc2UgaWYgKHRpbGVzSW5Db2hvcnQpCisgICAgICAgICAgICByZW1v
dmVUaWxlc0luQ29ob3J0KGN1cnJDb2hvcnQpOworICAgIH0KIAogICAgIC8vIEVuc3VyZSBwcmlt
YXJ5IHRpbGUgY292ZXJhZ2UgdGlsZXMuCiAgICAgbV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCA9
IGVuc3VyZVRpbGVzRm9yUmVjdCh0aWxlQ292ZXJhZ2VSZWN0LCBDb3ZlcmFnZVR5cGU6OlByaW1h
cnlUaWxlcyk7CkBAIC0xMTE0LDcgKzExMTcsNyBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjpkcmF3
VGlsZU1hcENvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgbGF5ZXJCb3VuZAog
ICAgICAgICBUaWxlQ29ob3J0IG5ld2VzdENvaG9ydCA9IG5ld2VzdFRpbGVDb2hvcnQoKTsKICAg
ICAgICAgVGlsZUNvaG9ydCBvbGRlc3RDb2hvcnQgPSBvbGRlc3RUaWxlQ29ob3J0KCk7CiAKLSAg
ICAgICAgaWYgKCFtX2FnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcyAmJiB0aWxlSW5mby5jb2hvcnQg
IT0gVmlzaWJsZVRpbGVDb2hvcnQgJiYgbmV3ZXN0Q29ob3J0ID4gb2xkZXN0Q29ob3J0KSB7Cisg
ICAgICAgIGlmICghb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG91bGRB
Z2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhtX3RpbGVDYWNoZUxheWVyKSAmJiB0aWxlSW5mby5jb2hv
cnQgIT0gVmlzaWJsZVRpbGVDb2hvcnQgJiYgbmV3ZXN0Q29ob3J0ID4gb2xkZXN0Q29ob3J0KSB7
CiAgICAgICAgICAgICBmbG9hdCBjb2hvcnRQcm9wb3J0aW9uID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KChuZXdlc3RDb2hvcnQgLSB0aWxlSW5mby5jb2hvcnQpKSAvIChuZXdlc3RDb2hvcnQgLSBvbGRl
c3RDb2hvcnQpOwogICAgICAgICAgICAgQ0dDb250ZXh0U2V0UkdCRmlsbENvbG9yKGNvbnRleHQs
IHJlZCwgZ3JlZW4sIGJsdWUsIDEgLSBjb2hvcnRQcm9wb3J0aW9uKTsKICAgICAgICAgfSBlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IGE4MzA4NzUuLjk0MTY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yMzE1LDYgKzIzMTUsMjEgQEAgYm9vbCBSZW5kZXJM
YXllckJhY2tpbmc6OnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGxheWVyLAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFJlbmRlckxheWVyQmFja2lu
Zzo6c2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNv
bnN0Cit7CisgICAgLy8gT25seSB0aGUgbWFpbiBmcmFtZSBUaWxlQ29udHJvbGxlciBoYXMgZW5v
dWdoIGluZm9ybWF0aW9uIGFib3V0IGluLXdpbmRvdyBzdGF0ZSB0bworICAgIC8vIGNvcnJlY3Rs
eSBpbXBsZW1lbnQgYWdncmVzc2l2ZSB0aWxlIHJldGVudGlvbi4KKyAgICBpZiAoIW1faXNNYWlu
RnJhbWVSZW5kZXJWaWV3TGF5ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biByZW5kZXJlcigpLmZyYW1lKCkucGFnZSgpICYmIHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkt
PnNldHRpbmdzKCkuYWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKCk7Cit9CisKK2Jvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLmZyYW1l
KCkucGFnZSgpICYmIHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCktPnNldHRpbmdzKCkudGVtcG9y
YXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQoKTsKK30KKwogI2lmbmRlZiBOREVCVUcKIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp2ZXJpZnlOb3RQYWludGluZygpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMjVjZTdmYy4uYWNk
MGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aApAQCAtMTg3LDYgKzE4Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2tp
cExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciosIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZW1wb3JhcmlseVJl
dGFpblRpbGVDb2hvcnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKKwog
I2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogICAgIHZpcnR1YWwgYm9vbCBtZWRp
YUxheWVyTXVzdEJlVXBkYXRlZE9uTWFpblRocmVhZCgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA5YTUz
MjZhLi45ZjQwOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmgKQEAgLTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAjZGVmaW5lIERFRkFV
TFRfUEFTU1dPUkRfRUNIT19FTkFCTEVEIHRydWUKICNkZWZpbmUgREVGQVVMVF9NRURJQV9QTEFZ
QkFDS19BTExPV1NfSU5MSU5FIGZhbHNlCiAjZGVmaW5lIERFRkFVTFRfTUVESUFfUExBWUJBQ0tf
UkVRVUlSRVNfVVNFUl9HRVNUVVJFIHRydWUKKyNkZWZpbmUgREVGQVVMVF9URU1QT1JBUllfVElM
RV9DT0hPUlRfUkVURU5USU9OX0VOQUJMRUQgZmFsc2UKICNlbHNlCiAjZGVmaW5lIERFRkFVTFRf
RlJBTUVfRkxBVFRFTklOR19FTkFCTEVEIGZhbHNlCiAjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1BS
SU5UX0JBQ0tHUk9VTkRTIGZhbHNlCkBAIC04NCw2ICs4NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogI2RlZmluZSBERUZBVUxUX1BBU1NXT1JEX0VDSE9fRU5BQkxFRCBmYWxzZQogI2RlZmluZSBE
RUZBVUxUX01FRElBX1BMQVlCQUNLX0FMTE9XU19JTkxJTkUgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVSRSBmYWxzZQorI2RlZmluZSBERUZB
VUxUX1RFTVBPUkFSWV9USUxFX0NPSE9SVF9SRVRFTlRJT05fRU5BQkxFRCB0cnVlCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCkBAIC0xODcs
NiArMTg5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgbWFjcm8oVXNlc0VuY29kaW5nRGV0
ZWN0b3IsIHVzZXNFbmNvZGluZ0RldGVjdG9yLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1h
Y3JvKFRleHRBdXRvc2l6aW5nRW5hYmxlZCwgdGV4dEF1dG9zaXppbmdFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSkgXAogICAgIG1hY3JvKEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCwg
YWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAg
IG1hY3JvKFRlbXBvcmFyeVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkLCB0ZW1wb3JhcnlUaWxl
Q29ob3J0UmV0ZW50aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9URU1QT1JBUllfVElM
RV9DT0hPUlRfUkVURU5USU9OX0VOQUJMRUQpIFwKICAgICBtYWNybyhRVEtpdEVuYWJsZWQsIGlz
UVRLaXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9nc1BhZ2VNZXNz
YWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQsIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFBhZ2VWaXNpYmlsaXR5
QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCBwYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVkNDEzMzIuLjNkN2JhMmQ0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMjU0Niw2ICsyNTQ2LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRTaG93UmVwYWlu
dENvdW50ZXIoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpjb21w
b3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGVLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFNo
b3dUaWxlZFNjcm9sbGluZ0luZGljYXRvcihzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZUtleSgpKSk7CiAgICAg
c2V0dGluZ3Muc2V0QWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFi
bGVkS2V5KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRUZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9u
RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRlbXBv
cmFyeVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkS2V5KCkpKTsKICAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU1JlZ2lvbnNFbmFibGVkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6Y3NzUmVnaW9uc0VuYWJsZWRLZXko
KSkpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NT
Q29tcG9zaXRpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6Y3NzQ29tcG9zaXRpbmdFbmFibGVkS2V5KCkpKTsKICNpZiBFTkFCTEUoQ1NTX0dSSURf
TEFZT1VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXgg
M2JhNmNmZC4uODM4NmYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCkBAIC0yNjAsOSArMjYwLDYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYKICAgICB9
CiAjZW5kaWYKIAotICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IG1haW5GcmFt
ZVRpbGVkQmFja2luZygpKQotICAgICAgICB0aWxlZEJhY2tpbmctPnNldEFnZ3Jlc3NpdmVseVJl
dGFpbnNUaWxlcyhzZXR0aW5ncy5hZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQoKSk7Ci0K
ICAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3Zlcmxh
eUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKICAgICAgICAgaXQtPnZhbHVlLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoc2V0
dGluZ3MuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpKTsKICAgICAgICAgaXQtPnZhbHVlLT5z
ZXRTaG93RGVidWdCb3JkZXIoc2V0dGluZ3Muc2hvd0RlYnVnQm9yZGVycygpKTsKQEAgLTU4Myw5
ICs1ODAsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290Q29t
cG9zaXRpbmdMYXllcihDQUxheWVyICpsYXllcikKICAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3Bh
Z2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIFttX2hvc3Rp
bmdMYXllciBhZGRTdWJsYXllcjppdC0+dmFsdWUtPnBsYXRmb3JtTGF5ZXIoKV07CiAKLSAgICBp
ZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSkK
LSAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRBZ2dyZXNzaXZlbHlSZXRhaW5zVGlsZXMobV93ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxl
ZCgpKTsKLQogICAgIHVwZGF0ZURlYnVnSW5mb0xheWVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+
c2V0dGluZ3MoKS5zaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKSk7CiAKICAgICBbQ0FUcmFu
c2FjdGlvbiBjb21taXRdOwo=
</data>
<flag name="review"
          id="252376"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>