<?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>39304</bug_id>
          
          <creation_ts>2010-05-18 11:49:32 -0700</creation_ts>
          <short_desc>Add an inlineCapacity template parameter to ListHashSet and use it to shrink the positioned object list hash set.</short_desc>
          <delta_ts>2010-05-18 12:52:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>227406</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-18 11:49:32 -0700</bug_when>
    <thetext>Add an inlineCapacity template parameter to ListHashSet and use it to shrink the positioned object list hash set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227408</commentid>
    <comment_count>1</comment_count>
      <attachid>56395</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-18 11:52:28 -0700</bug_when>
    <thetext>Created attachment 56395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227409</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-18 11:53:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/7998366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227411</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-18 11:55:55 -0700</bug_when>
    <thetext>Attachment 56395 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/rendering/RenderBlock.cpp:1989:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
JavaScriptCore/wtf/ListHashSet.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227414</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-18 11:58:37 -0700</bug_when>
    <thetext>Committed r59678: &lt;http://trac.webkit.org/changeset/59678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227445</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-18 12:52:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59678 might have broken Chromium Win Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56395</attachid>
            <date>2010-05-18 11:52:28 -0700</date>
            <delta_ts>2010-05-18 11:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39304-20100518115227.patch</filename>
            <type>text/plain</type>
            <size>26599</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU5Njc3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDUtMTggIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW5saW5lQ2FwYWNpdHkgdGVtcGxhdGUgcGFy
YW1ldGVyIHRvIExpc3RIYXNoU2V0IGFuZCB1c2UgaXQgdG8gc2hyaW5rIHRoZSBwb3NpdGlvbmVk
IG9iamVjdCBsaXN0IGhhc2ggc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzkzMDQKKworICAgICAgICBBZGQgYW4gaW5saW5lQ2FwYWNpdHkgdGVt
cGxhdGUgcGFyYW1ldGVyIHRvIExpc3RIYXNoU2V0LgorCisgICAgICAgICogd3RmL0xpc3RIYXNo
U2V0Lmg6CisgICAgICAgIChXVEY6Ojo6TGlzdEhhc2hTZXQpOgorICAgICAgICAoV1RGOjo6Om9w
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6Ojpzd2FwKToKKyAgICAgICAgKFdURjo6Ojp+TGlzdEhh
c2hTZXQpOgorICAgICAgICAoV1RGOjo6OnNpemUpOgorICAgICAgICAoV1RGOjo6OmNhcGFjaXR5
KToKKyAgICAgICAgKFdURjo6Ojppc0VtcHR5KToKKyAgICAgICAgKFdURjo6OjpiZWdpbik6Cisg
ICAgICAgIChXVEY6Ojo6ZW5kKToKKyAgICAgICAgKFdURjo6OjpmaW5kKToKKyAgICAgICAgKFdU
Rjo6Ojpjb250YWlucyk6CisgICAgICAgIChXVEY6Ojo6YWRkKToKKyAgICAgICAgKFdURjo6Ojpp
bnNlcnRCZWZvcmUpOgorICAgICAgICAoV1RGOjo6OnJlbW92ZSk6CisgICAgICAgIChXVEY6Ojo6
Y2xlYXIpOgorICAgICAgICAoV1RGOjo6OnVubGlua0FuZERlbGV0ZSk6CisgICAgICAgIChXVEY6
Ojo6YXBwZW5kTm9kZSk6CisgICAgICAgIChXVEY6Ojo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAg
ICAgIChXVEY6Ojo6ZGVsZXRlQWxsTm9kZXMpOgorICAgICAgICAoV1RGOjo6Om1ha2VJdGVyYXRv
cik6CisgICAgICAgIChXVEY6Ojo6bWFrZUNvbnN0SXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpk
ZWxldGVBbGxWYWx1ZXMpOgorCiAyMDEwLTA1LTE4ICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogSmF2YVNjcmlw
dENvcmUvd3RmL0xpc3RIYXNoU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3Rm
L0xpc3RIYXNoU2V0LmgJKHJldmlzaW9uIDU5NjcyKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0xp
c3RIYXNoU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDI3ICszNywyNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICAvLyBhbmQgYW4gYXBwZW5kIHRoYXQgbW92ZXMgdGhlIGVsZW1lbnQgdG8gdGhl
IGVuZCBldmVuIGlmIGFscmVhZHkgcHJlc2VudCwKICAgICAvLyBidXQgdW5jbGVhciB5ZXQgaWYg
dGhlc2UgYXJlIG5lZWRlZC4KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBIYXNoRnVuY3Rpb25zPiBjbGFzcyBMaXN0SGFzaFNldDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZSwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zPiBj
bGFzcyBMaXN0SGFzaFNldDsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJZGVu
dGl0eUV4dHJhY3RvcjsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBI
YXNoRnVuY3Rpb25zPgotICAgIHZvaWQgZGVsZXRlQWxsVmFsdWVzKGNvbnN0IExpc3RIYXNoU2V0
PFZhbHVlLCBIYXNoRnVuY3Rpb25zPiYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCBz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnM+CisgICAgdm9pZCBk
ZWxldGVBbGxWYWx1ZXMoY29uc3QgTGlzdEhhc2hTZXQ8VmFsdWUsIGlubGluZUNhcGFjaXR5LCBI
YXNoRnVuY3Rpb25zPiYpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmcsIHR5cGVu
YW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0SXRlcmF0b3I7Ci0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0Q29uc3RJ
dGVyYXRvcjsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFyZywgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBIYXNoQXJnPiBjbGFzcyBMaXN0SGFzaFNldEl0ZXJhdG9yOworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0Q29uc3RJdGVyYXRvcjsKIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlQXJnPiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlOwotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlQXJnPiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yOwot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJnPiBzdHJ1Y3Qg
TGlzdEhhc2hTZXROb2RlSGFzaEZ1bmN0aW9uczsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1
ZUFyZywgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlOworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHN0cnVj
dCBMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVB
cmcsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEFyZz4gc3RydWN0IExpc3RI
YXNoU2V0Tm9kZUhhc2hGdW5jdGlvbnM7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFy
ZywgdHlwZW5hbWUgSGFzaEFyZyA9IHR5cGVuYW1lIERlZmF1bHRIYXNoPFZhbHVlQXJnPjo6SGFz
aD4gY2xhc3MgTGlzdEhhc2hTZXQgOiBwdWJsaWMgRmFzdEFsbG9jQmFzZSB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVmFsdWVBcmcsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IDI1NiwgdHlwZW5h
bWUgSGFzaEFyZyA9IHR5cGVuYW1lIERlZmF1bHRIYXNoPFZhbHVlQXJnPjo6SGFzaD4gY2xhc3Mg
TGlzdEhhc2hTZXQgOiBwdWJsaWMgRmFzdEFsbG9jQmFzZSB7CiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgdHlwZWRlZiBMaXN0SGFzaFNldE5vZGU8VmFsdWVBcmc+IE5vZGU7Ci0gICAgICAgIHR5cGVk
ZWYgTGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFZhbHVlQXJnPiBOb2RlQWxsb2NhdG9yOworICAg
ICAgICB0eXBlZGVmIExpc3RIYXNoU2V0Tm9kZTxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHk+IE5v
ZGU7CisgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFZhbHVlQXJnLCBp
bmxpbmVDYXBhY2l0eT4gTm9kZUFsbG9jYXRvcjsKIAogICAgICAgICB0eXBlZGVmIEhhc2hUcmFp
dHM8Tm9kZSo+IE5vZGVUcmFpdHM7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXROb2RlSGFz
aEZ1bmN0aW9uczxWYWx1ZUFyZywgSGFzaEFyZz4gTm9kZUhhc2g7CisgICAgICAgIHR5cGVkZWYg
TGlzdEhhc2hTZXROb2RlSGFzaEZ1bmN0aW9uczxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhh
c2hBcmc+IE5vZGVIYXNoOwogCiAgICAgICAgIHR5cGVkZWYgSGFzaFRhYmxlPE5vZGUqLCBOb2Rl
KiwgSWRlbnRpdHlFeHRyYWN0b3I8Tm9kZSo+LCBOb2RlSGFzaCwgTm9kZVRyYWl0cywgTm9kZVRy
YWl0cz4gSW1wbFR5cGU7CiAgICAgICAgIHR5cGVkZWYgSGFzaFRhYmxlSXRlcmF0b3I8Tm9kZSos
IE5vZGUqLCBJZGVudGl0eUV4dHJhY3RvcjxOb2RlKj4sIE5vZGVIYXNoLCBOb2RlVHJhaXRzLCBO
b2RlVHJhaXRzPiBJbXBsVHlwZUl0ZXJhdG9yOwpAQCAtNjcsMTAgKzY3LDEwIEBAIG5hbWVzcGFj
ZSBXVEYgewogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIFZhbHVlQXJnIFZhbHVlVHlw
ZTsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldEl0ZXJhdG9yPFZhbHVlVHlwZSwgSGFzaEFy
Zz4gaXRlcmF0b3I7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRDb25zdEl0ZXJhdG9yPFZh
bHVlVHlwZSwgSGFzaEFyZz4gY29uc3RfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgTGlzdEhh
c2hTZXRJdGVyYXRvcjxWYWx1ZVR5cGUsIGlubGluZUNhcGFjaXR5LCBIYXNoQXJnPiBpdGVyYXRv
cjsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldENvbnN0SXRlcmF0b3I8VmFsdWVUeXBlLCBp
bmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4gY29uc3RfaXRlcmF0b3I7CiAKLSAgICAgICAgZnJpZW5k
IGNsYXNzIExpc3RIYXNoU2V0Q29uc3RJdGVyYXRvcjxWYWx1ZVR5cGUsIEhhc2hBcmc+OworICAg
ICAgICBmcmllbmQgY2xhc3MgTGlzdEhhc2hTZXRDb25zdEl0ZXJhdG9yPFZhbHVlVHlwZSwgaW5s
aW5lQ2FwYWNpdHksIEhhc2hBcmc+OwogCiAgICAgICAgIExpc3RIYXNoU2V0KCk7CiAgICAgICAg
IExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0Jik7CkBAIC0xMTksOSArMTE5LDkgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgICAgIE93blB0cjxOb2RlQWxsb2NhdG9yPiBtX2FsbG9jYXRvcjsK
ICAgICB9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmc+IHN0cnVjdCBMaXN0SGFz
aFNldE5vZGVBbGxvY2F0b3IgewotICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0Tm9kZTxWYWx1
ZUFyZz4gTm9kZTsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I8VmFs
dWVBcmc+IE5vZGVBbGxvY2F0b3I7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmcsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eT4gc3RydWN0IExpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvciB7Cisg
ICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXROb2RlPFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eT4g
Tm9kZTsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I8VmFsdWVBcmcs
IGlubGluZUNhcGFjaXR5PiBOb2RlQWxsb2NhdG9yOwogCiAgICAgICAgIExpc3RIYXNoU2V0Tm9k
ZUFsbG9jYXRvcigpIAogICAgICAgICAgICAgOiBtX2ZyZWVMaXN0KHBvb2woKSkKQEAgLTE4MSwx
NSArMTgxLDE1IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIE5vZGUqIG1fZnJlZUxpc3Q7
CiAgICAgICAgIGJvb2wgbV9pc0RvbmVXaXRoSW5pdGlhbEZyZWVMaXN0OwotICAgICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IG1fcG9vbFNpemUgPSAyNTY7CisgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbV9wb29sU2l6ZSA9IGlubGluZUNhcGFjaXR5OwogICAgICAgICB1bmlvbiB7CiAgICAg
ICAgICAgICBjaGFyIHBvb2xbc2l6ZW9mKE5vZGUpICogbV9wb29sU2l6ZV07CiAgICAgICAgICAg
ICBkb3VibGUgZm9yQWxpZ25tZW50OwogICAgICAgICB9IG1fcG9vbDsKICAgICB9OwogCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmc+IHN0cnVjdCBMaXN0SGFzaFNldE5vZGUgewotICAg
ICAgICB0eXBlZGVmIExpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcjxWYWx1ZUFyZz4gTm9kZUFsbG9j
YXRvcjsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFyZywgc2l6ZV90IGlubGluZUNhcGFj
aXR5PiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlIHsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNl
dE5vZGVBbGxvY2F0b3I8VmFsdWVBcmcsIGlubGluZUNhcGFjaXR5PiBOb2RlQWxsb2NhdG9yOwog
CiAgICAgICAgIExpc3RIYXNoU2V0Tm9kZShWYWx1ZUFyZyB2YWx1ZSkKICAgICAgICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKQEAgLTIyMCwyNSArMjIwLDI1IEBAIG5hbWVzcGFjZSBXVEYgewogI2Vu
ZGlmCiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBI
YXNoQXJnPiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlSGFzaEZ1bmN0aW9ucyB7Ci0gICAgICAgIHR5
cGVkZWYgTGlzdEhhc2hTZXROb2RlPFZhbHVlQXJnPiBOb2RlOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+IHN0
cnVjdCBMaXN0SGFzaFNldE5vZGVIYXNoRnVuY3Rpb25zIHsKKyAgICAgICAgdHlwZWRlZiBMaXN0
SGFzaFNldE5vZGU8VmFsdWVBcmcsIGlubGluZUNhcGFjaXR5PiBOb2RlOwogICAgICAgICAKICAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goTm9kZSogY29uc3QmIGtleSkgeyByZXR1cm4gSGFz
aEFyZzo6aGFzaChrZXktPm1fdmFsdWUpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKE5v
ZGUqIGNvbnN0JiBhLCBOb2RlKiBjb25zdCYgYikgeyByZXR1cm4gSGFzaEFyZzo6ZXF1YWwoYS0+
bV92YWx1ZSwgYi0+bV92YWx1ZSk7IH0KICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0SXRl
cmF0b3IgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0SXRlcmF0b3IgewogICAg
IHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8VmFsdWVBcmcsIEhhc2hBcmc+
IExpc3RIYXNoU2V0VHlwZTsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldEl0ZXJhdG9yPFZh
bHVlQXJnLCBIYXNoQXJnPiBpdGVyYXRvcjsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldENv
bnN0SXRlcmF0b3I8VmFsdWVBcmcsIEhhc2hBcmc+IGNvbnN0X2l0ZXJhdG9yOwotICAgICAgICB0
eXBlZGVmIExpc3RIYXNoU2V0Tm9kZTxWYWx1ZUFyZz4gTm9kZTsKKyAgICAgICAgdHlwZWRlZiBM
aXN0SGFzaFNldDxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhhc2hBcmc+IExpc3RIYXNoU2V0
VHlwZTsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldEl0ZXJhdG9yPFZhbHVlQXJnLCBpbmxp
bmVDYXBhY2l0eSwgSGFzaEFyZz4gaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hT
ZXRDb25zdEl0ZXJhdG9yPFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4gY29uc3Rf
aXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXROb2RlPFZhbHVlQXJnLCBpbmxp
bmVDYXBhY2l0eT4gTm9kZTsKICAgICAgICAgdHlwZWRlZiBWYWx1ZUFyZyBWYWx1ZVR5cGU7CiAg
ICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlJiBSZWZlcmVuY2VUeXBlOwogICAgICAgICB0eXBlZGVm
IFZhbHVlVHlwZSogUG9pbnRlclR5cGU7CiAKLSAgICAgICAgZnJpZW5kIGNsYXNzIExpc3RIYXNo
U2V0PFZhbHVlQXJnLCBIYXNoQXJnPjsKKyAgICAgICAgZnJpZW5kIGNsYXNzIExpc3RIYXNoU2V0
PFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz47CiAKICAgICAgICAgTGlzdEhhc2hT
ZXRJdGVyYXRvcihjb25zdCBMaXN0SGFzaFNldFR5cGUqIHNldCwgTm9kZSogcG9zaXRpb24pIDog
bV9pdGVyYXRvcihzZXQsIHBvc2l0aW9uKSB7IH0KIApAQCAtMjcxLDE4ICsyNzEsMTggQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIG1faXRlcmF0b3I7CiAgICAgfTsK
IAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJnPiBjbGFz
cyBMaXN0SGFzaFNldENvbnN0SXRlcmF0b3IgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVl
QXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RI
YXNoU2V0Q29uc3RJdGVyYXRvciB7CiAgICAgcHJpdmF0ZToKLSAgICAgICAgdHlwZWRlZiBMaXN0
SGFzaFNldDxWYWx1ZUFyZywgSGFzaEFyZz4gTGlzdEhhc2hTZXRUeXBlOwotICAgICAgICB0eXBl
ZGVmIExpc3RIYXNoU2V0SXRlcmF0b3I8VmFsdWVBcmcsIEhhc2hBcmc+IGl0ZXJhdG9yOwotICAg
ICAgICB0eXBlZGVmIExpc3RIYXNoU2V0Q29uc3RJdGVyYXRvcjxWYWx1ZUFyZywgSGFzaEFyZz4g
Y29uc3RfaXRlcmF0b3I7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXROb2RlPFZhbHVlQXJn
PiBOb2RlOworICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFZhbHVlQXJnLCBpbmxpbmVDYXBh
Y2l0eSwgSGFzaEFyZz4gTGlzdEhhc2hTZXRUeXBlOworICAgICAgICB0eXBlZGVmIExpc3RIYXNo
U2V0SXRlcmF0b3I8VmFsdWVBcmcsIGlubGluZUNhcGFjaXR5LCBIYXNoQXJnPiBpdGVyYXRvcjsK
KyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldENvbnN0SXRlcmF0b3I8VmFsdWVBcmcsIGlubGlu
ZUNhcGFjaXR5LCBIYXNoQXJnPiBjb25zdF9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBMaXN0
SGFzaFNldE5vZGU8VmFsdWVBcmcsIGlubGluZUNhcGFjaXR5PiBOb2RlOwogICAgICAgICB0eXBl
ZGVmIFZhbHVlQXJnIFZhbHVlVHlwZTsKICAgICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZVR5cGUm
IFJlZmVyZW5jZVR5cGU7CiAgICAgICAgIHR5cGVkZWYgY29uc3QgVmFsdWVUeXBlKiBQb2ludGVy
VHlwZTsKIAotICAgICAgICBmcmllbmQgY2xhc3MgTGlzdEhhc2hTZXQ8VmFsdWVBcmcsIEhhc2hB
cmc+OwotICAgICAgICBmcmllbmQgY2xhc3MgTGlzdEhhc2hTZXRJdGVyYXRvcjxWYWx1ZUFyZywg
SGFzaEFyZz47CisgICAgICAgIGZyaWVuZCBjbGFzcyBMaXN0SGFzaFNldDxWYWx1ZUFyZywgaW5s
aW5lQ2FwYWNpdHksIEhhc2hBcmc+OworICAgICAgICBmcmllbmQgY2xhc3MgTGlzdEhhc2hTZXRJ
dGVyYXRvcjxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhhc2hBcmc+OwogCiAgICAgICAgIExp
c3RIYXNoU2V0Q29uc3RJdGVyYXRvcihjb25zdCBMaXN0SGFzaFNldFR5cGUqIHNldCwgTm9kZSog
cG9zaXRpb24pCiAgICAgICAgICAgICA6IG1fc2V0KHNldCkKQEAgLTM0MSwxMSArMzQxLDExIEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIH07CiAKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVl
VHlwZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucz4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1
ZVR5cGUsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucz4KICAg
ICBzdHJ1Y3QgTGlzdEhhc2hTZXRUcmFuc2xhdG9yIHsKICAgICBwcml2YXRlOgotICAgICAgICB0
eXBlZGVmIExpc3RIYXNoU2V0Tm9kZTxWYWx1ZVR5cGU+IE5vZGU7Ci0gICAgICAgIHR5cGVkZWYg
TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFZhbHVlVHlwZT4gTm9kZUFsbG9jYXRvcjsKKyAgICAg
ICAgdHlwZWRlZiBMaXN0SGFzaFNldE5vZGU8VmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0eT4gTm9k
ZTsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I8VmFsdWVUeXBlLCBp
bmxpbmVDYXBhY2l0eT4gTm9kZUFsbG9jYXRvcjsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IFZhbHVlVHlwZSYga2V5KSB7IHJldHVybiBIYXNoRnVuY3Rp
b25zOjpoYXNoKGtleSk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoTm9kZSogY29uc3Qm
IGEsIGNvbnN0IFZhbHVlVHlwZSYgYikgeyByZXR1cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYS0+
bV92YWx1ZSwgYik7IH0KQEAgLTM1NSwxNiArMzU1LDE2IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0g
ICAgaW5saW5lIExpc3RIYXNoU2V0PFQsIFU+OjpMaXN0SGFzaFNldCgpCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgorICAgIGlubGlu
ZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Okxpc3RIYXNoU2V0KCkKICAgICAg
ICAgOiBtX2hlYWQoMCkKICAgICAgICAgLCBtX3RhaWwoMCkKICAgICAgICAgLCBtX2FsbG9jYXRv
cihuZXcgTm9kZUFsbG9jYXRvcikKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4KLSAgICBpbmxpbmUgTGlzdEhhc2hTZXQ8VCwgVT46Okxpc3RIYXNo
U2V0KGNvbnN0IExpc3RIYXNoU2V0JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIExpc3RIYXNoU2V0
PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXQmIG90
aGVyKQogICAgICAgICA6IG1faGVhZCgwKQogICAgICAgICAsIG1fdGFpbCgwKQogICAgICAgICAs
IG1fYWxsb2NhdG9yKG5ldyBOb2RlQWxsb2NhdG9yKQpAQCAtMzc0LDE2ICszNzQsMTYgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgICAgICAgICBhZGQoKml0KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgIGlubGluZSBMaXN0SGFzaFNldDxULCBVPiYg
TGlzdEhhc2hTZXQ8VCwgVT46Om9wZXJhdG9yPShjb25zdCBMaXN0SGFzaFNldCYgb3RoZXIpCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBV
PgorICAgIGlubGluZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT4mIExpc3RIYXNo
U2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6b3BlcmF0b3I9KGNvbnN0IExpc3RIYXNoU2V0JiBv
dGhlcikKICAgICB7CiAgICAgICAgIExpc3RIYXNoU2V0IHRtcChvdGhlcik7CiAgICAgICAgIHN3
YXAodG1wKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIHZvaWQgTGlzdEhhc2hTZXQ8VCwgVT46
OnN3YXAoTGlzdEhhc2hTZXQmIG90aGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBpbmxpbmUgdm9pZCBMaXN0SGFzaFNl
dDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnN3YXAoTGlzdEhhc2hTZXQmIG90aGVyKQogICAgIHsK
ICAgICAgICAgbV9pbXBsLnN3YXAob3RoZXIubV9pbXBsKTsKICAgICAgICAgc3RkOjpzd2FwKG1f
aGVhZCwgb3RoZXIubV9oZWFkKTsKQEAgLTM5MSw5NSArMzkxLDk1IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICBtX2FsbG9jYXRvci5zd2FwKG90aGVyLm1fYWxsb2NhdG9yKTsKICAgICB9CiAK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgIGlubGluZSBMaXN0SGFz
aFNldDxULCBVPjo6fkxpc3RIYXNoU2V0KCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIExpc3RIYXNoU2V0PFQs
IGlubGluZUNhcGFjaXR5LCBVPjo6fkxpc3RIYXNoU2V0KCkKICAgICB7CiAgICAgICAgIGRlbGV0
ZUFsbE5vZGVzKCk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4KLSAgICBpbmxpbmUgaW50IExpc3RIYXNoU2V0PFQsIFU+OjpzaXplKCkgY29uc3QKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+Cisg
ICAgaW5saW5lIGludCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnNpemUoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1faW1wbC5zaXplKCk7IAogICAgIH0KIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIGludCBMaXN0SGFz
aFNldDxULCBVPjo6Y2FwYWNpdHkoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBpbmxpbmUgaW50IExpc3RIYXNo
U2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6Y2FwYWNpdHkoKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1faW1wbC5jYXBhY2l0eSgpOyAKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPgotICAgIGlubGluZSBib29sIExpc3RIYXNoU2V0PFQsIFU+Ojpp
c0VtcHR5KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIGJvb2wgTGlzdEhhc2hTZXQ8VCwgaW5saW5l
Q2FwYWNpdHksIFU+Ojppc0VtcHR5KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2lt
cGwuaXNFbXB0eSgpOyAKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPgotICAgIGlubGluZSB0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBVPjo6aXRlcmF0b3IgTGlz
dEhhc2hTZXQ8VCwgVT46OmJlZ2luKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3Qg
aW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNo
U2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IgTGlzdEhhc2hTZXQ8VCwgaW5saW5l
Q2FwYWNpdHksIFU+OjpiZWdpbigpCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZUl0ZXJhdG9y
KG1faGVhZCk7IAogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
Ci0gICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIFU+OjppdGVyYXRvciBMaXN0SGFz
aFNldDxULCBVPjo6ZW5kKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5l
Q2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNoU2V0PFQs
IGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNp
dHksIFU+OjplbmQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VJdGVyYXRvcigwKTsKICAg
ICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgIGlubGluZSB0
eXBlbmFtZSBMaXN0SGFzaFNldDxULCBVPjo6Y29uc3RfaXRlcmF0b3IgTGlzdEhhc2hTZXQ8VCwg
VT46OmJlZ2luKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5l
Q2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNoU2V0PFQs
IGlubGluZUNhcGFjaXR5LCBVPjo6Y29uc3RfaXRlcmF0b3IgTGlzdEhhc2hTZXQ8VCwgaW5saW5l
Q2FwYWNpdHksIFU+OjpiZWdpbigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbWFrZUNv
bnN0SXRlcmF0b3IobV9oZWFkKTsgCiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4KLSAgICBpbmxpbmUgdHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgVT46OmNvbnN0
X2l0ZXJhdG9yIExpc3RIYXNoU2V0PFQsIFU+OjplbmQoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBpbmxpbmUg
dHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojpjb25zdF9pdGVyYXRv
ciBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmVuZCgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbWFrZUNvbnN0SXRlcmF0b3IoMCk7IAogICAgIH0KIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNo
U2V0PFQsIFU+OjppdGVyYXRvciBMaXN0SGFzaFNldDxULCBVPjo6ZmluZChjb25zdCBWYWx1ZVR5
cGUmIHZhbHVlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eSwgdHlwZW5hbWUgVT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5l
Q2FwYWNpdHksIFU+OjppdGVyYXRvciBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46
OmZpbmQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlz
dEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVlVHlwZSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsK
KyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVD
YXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKICAgICAgICAgSW1wbFR5cGVJdGVy
YXRvciBpdCA9IG1faW1wbC50ZW1wbGF0ZSBmaW5kPFZhbHVlVHlwZSwgVHJhbnNsYXRvcj4odmFs
dWUpOwogICAgICAgICBpZiAoaXQgPT0gbV9pbXBsLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJu
IGVuZCgpOwogICAgICAgICByZXR1cm4gbWFrZUl0ZXJhdG9yKCppdCk7IAogICAgIH0KIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIHR5cGVuYW1lIExp
c3RIYXNoU2V0PFQsIFU+Ojpjb25zdF9pdGVyYXRvciBMaXN0SGFzaFNldDxULCBVPjo6ZmluZChj
b25zdCBWYWx1ZVR5cGUmIHZhbHVlKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgTGlz
dEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojpjb25zdF9pdGVyYXRvciBMaXN0SGFzaFNl
dDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmZpbmQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgY29u
c3QKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVlVHlw
ZSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNl
dFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJh
bnNsYXRvcjsKICAgICAgICAgSW1wbFR5cGVDb25zdEl0ZXJhdG9yIGl0ID0gbV9pbXBsLnRlbXBs
YXRlIGZpbmQ8VmFsdWVUeXBlLCBUcmFuc2xhdG9yPih2YWx1ZSk7CiAgICAgICAgIGlmIChpdCA9
PSBtX2ltcGwuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gZW5kKCk7CiAgICAgICAgIHJldHVy
biBtYWtlQ29uc3RJdGVyYXRvcigqaXQpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIGJvb2wgTGlzdEhhc2hTZXQ8VCwgVT46OmNvbnRh
aW5zKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgorICAgIGlubGluZSBib29sIExp
c3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6Y29udGFpbnMoY29uc3QgVmFsdWVUeXBl
JiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xh
dG9yPFZhbHVlVHlwZSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKKyAgICAgICAgdHlwZWRl
ZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEZ1
bmN0aW9ucz4gVHJhbnNsYXRvcjsKICAgICAgICAgcmV0dXJuIG1faW1wbC50ZW1wbGF0ZSBjb250
YWluczxWYWx1ZVR5cGUsIFRyYW5zbGF0b3I+KHZhbHVlKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgIHBhaXI8dHlwZW5hbWUgTGlzdEhhc2hTZXQ8
VCwgVT46Oml0ZXJhdG9yLCBib29sPiBMaXN0SGFzaFNldDxULCBVPjo6YWRkKGNvbnN0IFZhbHVl
VHlwZSAmdmFsdWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFj
aXR5LCB0eXBlbmFtZSBVPgorICAgIHBhaXI8dHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5l
Q2FwYWNpdHksIFU+OjppdGVyYXRvciwgYm9vbD4gTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNp
dHksIFU+OjphZGQoY29uc3QgVmFsdWVUeXBlICZ2YWx1ZSkKICAgICB7Ci0gICAgICAgIHR5cGVk
ZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVlVHlwZSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNs
YXRvcjsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBp
bmxpbmVDYXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKICAgICAgICAgcGFpcjx0
eXBlbmFtZSBJbXBsVHlwZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0
ZSBhZGQ8VmFsdWVUeXBlLCBOb2RlQWxsb2NhdG9yKiwgVHJhbnNsYXRvcj4odmFsdWUsIG1fYWxs
b2NhdG9yLmdldCgpKTsKICAgICAgICAgaWYgKHJlc3VsdC5zZWNvbmQpCiAgICAgICAgICAgICBh
cHBlbmROb2RlKCpyZXN1bHQuZmlyc3QpOwogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIo
bWFrZUl0ZXJhdG9yKCpyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKICAgICB9CiAKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgIHBhaXI8dHlwZW5hbWUgTGlz
dEhhc2hTZXQ8VCwgVT46Oml0ZXJhdG9yLCBib29sPiBMaXN0SGFzaFNldDxULCBVPjo6aW5zZXJ0
QmVmb3JlKGl0ZXJhdG9yIGl0LCBjb25zdCBWYWx1ZVR5cGUmIG5ld1ZhbHVlKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBw
YWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3Is
IGJvb2w+IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aW5zZXJ0QmVmb3JlKGl0
ZXJhdG9yIGl0LCBjb25zdCBWYWx1ZVR5cGUmIG5ld1ZhbHVlKQogICAgIHsKLSAgICAgICAgdHlw
ZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBIYXNoRnVuY3Rpb25zPiBUcmFu
c2xhdG9yOworICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0VHJhbnNsYXRvcjxWYWx1ZVR5cGUs
IGlubGluZUNhcGFjaXR5LCBIYXNoRnVuY3Rpb25zPiBUcmFuc2xhdG9yOwogICAgICAgICBwYWly
PHR5cGVuYW1lIEltcGxUeXBlOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gbV9pbXBsLnRlbXBs
YXRlIGFkZDxWYWx1ZVR5cGUsIE5vZGVBbGxvY2F0b3IqLCBUcmFuc2xhdG9yPihuZXdWYWx1ZSwg
bV9hbGxvY2F0b3IuZ2V0KCkpOwogICAgICAgICBpZiAocmVzdWx0LnNlY29uZCkKICAgICAgICAg
ICAgIGluc2VydE5vZGVCZWZvcmUoaXQubm9kZSgpLCAqcmVzdWx0LmZpcnN0KTsKQEAgLTQ4Nywx
NCArNDg3LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVT4KLSAgICBwYWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIFU+
OjppdGVyYXRvciwgYm9vbD4gTGlzdEhhc2hTZXQ8VCwgVT46Omluc2VydEJlZm9yZShjb25zdCBW
YWx1ZVR5cGUmIGJlZm9yZVZhbHVlLCBjb25zdCBWYWx1ZVR5cGUmIG5ld1ZhbHVlKQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAg
ICBwYWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0
b3IsIGJvb2w+IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aW5zZXJ0QmVmb3Jl
KGNvbnN0IFZhbHVlVHlwZSYgYmVmb3JlVmFsdWUsIGNvbnN0IFZhbHVlVHlwZSYgbmV3VmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlKGZpbmQoYmVmb3JlVmFsdWUpLCBu
ZXdWYWx1ZSk7IAogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
Ci0gICAgaW5saW5lIHZvaWQgTGlzdEhhc2hTZXQ8VCwgVT46OnJlbW92ZShpdGVyYXRvciBpdCkK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1l
IFU+CisgICAgaW5saW5lIHZvaWQgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojpy
ZW1vdmUoaXRlcmF0b3IgaXQpCiAgICAgewogICAgICAgICBpZiAoaXQgPT0gZW5kKCkpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC01MDIsMTQgKzUwMiwxNCBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICAgICAgdW5saW5rQW5kRGVsZXRlKGl0Lm5vZGUoKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLSAgICBpbmxpbmUgdm9pZCBMaXN0SGFzaFNldDxULCBV
Pjo6cmVtb3ZlKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgorICAgIGlubGluZSB2b2lkIExp
c3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6cmVtb3ZlKGNvbnN0IFZhbHVlVHlwZSYg
dmFsdWUpCiAgICAgewogICAgICAgICByZW1vdmUoZmluZCh2YWx1ZSkpOwogICAgIH0KIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIHZvaWQgTGlzdEhh
c2hTZXQ8VCwgVT46OmNsZWFyKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIHZvaWQgTGlzdEhhc2hTZXQ8VCwg
aW5saW5lQ2FwYWNpdHksIFU+OjpjbGVhcigpCiAgICAgewogICAgICAgICBkZWxldGVBbGxOb2Rl
cygpOwogICAgICAgICBtX2ltcGwuY2xlYXIoKTsgCkBAIC01MTcsOCArNTE3LDggQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgICAgIG1fdGFpbCA9IDA7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVT4KLSAgICB2b2lkIExpc3RIYXNoU2V0PFQsIFU+Ojp1bmxpbmtB
bmREZWxldGUoTm9kZSogbm9kZSkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgdm9pZCBMaXN0SGFzaFNldDxULCBpbmxpbmVD
YXBhY2l0eSwgVT46OnVubGlua0FuZERlbGV0ZShOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAg
aWYgKCFub2RlLT5tX3ByZXYpIHsKICAgICAgICAgICAgIEFTU0VSVChub2RlID09IG1faGVhZCk7
CkBAIC01MzksOCArNTM5LDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIG5vZGUtPmRlc3Ry
b3kobV9hbGxvY2F0b3IuZ2V0KCkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+Ci0gICAgdm9pZCBMaXN0SGFzaFNldDxULCBVPjo6YXBwZW5kTm9kZShOb2Rl
KiBub2RlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwg
dHlwZW5hbWUgVT4KKyAgICB2b2lkIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6
YXBwZW5kTm9kZShOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgbm9kZS0+bV9wcmV2ID0gbV90
YWlsOwogICAgICAgICBub2RlLT5tX25leHQgPSAwOwpAQCAtNTU2LDggKzU1Niw4IEBAIG5hbWVz
cGFjZSBXVEYgewogICAgICAgICBtX3RhaWwgPSBub2RlOwogICAgIH0KIAotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgdm9pZCBMaXN0SGFzaFNldDxULCBVPjo6aW5z
ZXJ0Tm9kZUJlZm9yZShOb2RlKiBiZWZvcmVOb2RlLCBOb2RlKiBuZXdOb2RlKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICB2
b2lkIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aW5zZXJ0Tm9kZUJlZm9yZShO
b2RlKiBiZWZvcmVOb2RlLCBOb2RlKiBuZXdOb2RlKQogICAgIHsKICAgICAgICAgaWYgKCFiZWZv
cmVOb2RlKQogICAgICAgICAgICAgcmV0dXJuIGFwcGVuZE5vZGUobmV3Tm9kZSk7CkBAIC01NzIs
OCArNTcyLDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICBtX2hlYWQgPSBuZXdOb2Rl
OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICAgdm9p
ZCBMaXN0SGFzaFNldDxULCBVPjo6ZGVsZXRlQWxsTm9kZXMoKQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICB2b2lkIExpc3RI
YXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6ZGVsZXRlQWxsTm9kZXMoKQogICAgIHsKICAg
ICAgICAgaWYgKCFtX2hlYWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01ODIsMTYgKzU4Miwx
NiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAgIG5vZGUtPmRlc3Ryb3kobV9hbGxvY2F0
b3IuZ2V0KCkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
Ci0gICAgaW5saW5lIExpc3RIYXNoU2V0SXRlcmF0b3I8VCwgVT4gTGlzdEhhc2hTZXQ8VCwgVT46
Om1ha2VJdGVyYXRvcihOb2RlKiBwb3NpdGlvbikgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgorICAgIGlubGluZSBMaXN0SGFzaFNl
dEl0ZXJhdG9yPFQsIGlubGluZUNhcGFjaXR5LCBVPiBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBh
Y2l0eSwgVT46Om1ha2VJdGVyYXRvcihOb2RlKiBwb3NpdGlvbikgCiAgICAgewotICAgICAgICBy
ZXR1cm4gTGlzdEhhc2hTZXRJdGVyYXRvcjxULCBVPih0aGlzLCBwb3NpdGlvbik7IAorICAgICAg
ICByZXR1cm4gTGlzdEhhc2hTZXRJdGVyYXRvcjxULCBpbmxpbmVDYXBhY2l0eSwgVT4odGhpcywg
cG9zaXRpb24pOyAKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PgotICAgIGlubGluZSBMaXN0SGFzaFNldENvbnN0SXRlcmF0b3I8VCwgVT4gTGlzdEhhc2hTZXQ8
VCwgVT46Om1ha2VDb25zdEl0ZXJhdG9yKE5vZGUqIHBvc2l0aW9uKSBjb25zdAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBp
bmxpbmUgTGlzdEhhc2hTZXRDb25zdEl0ZXJhdG9yPFQsIGlubGluZUNhcGFjaXR5LCBVPiBMaXN0
SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Om1ha2VDb25zdEl0ZXJhdG9yKE5vZGUqIHBv
c2l0aW9uKSBjb25zdAogICAgIHsgCi0gICAgICAgIHJldHVybiBMaXN0SGFzaFNldENvbnN0SXRl
cmF0b3I8VCwgVT4odGhpcywgcG9zaXRpb24pOyAKKyAgICAgICAgcmV0dXJuIExpc3RIYXNoU2V0
Q29uc3RJdGVyYXRvcjxULCBpbmxpbmVDYXBhY2l0eSwgVT4odGhpcywgcG9zaXRpb24pOyAKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTxib29sLCB0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEhh
c2hUYWJsZVR5cGU+CkBAIC02MDMsMTAgKzYwMywxMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAg
ICAgICAgIGRlbGV0ZSAoKml0KS0+bV92YWx1ZTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPgotICAgIGlubGluZSB2b2lkIGRlbGV0ZUFsbFZhbHVlcyhjb25z
dCBMaXN0SGFzaFNldDxULCBVPiYgY29sbGVjdGlvbikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgaW5saW5lIHZvaWQgZGVs
ZXRlQWxsVmFsdWVzKGNvbnN0IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPiYgY29s
bGVjdGlvbikKICAgICB7Ci0gICAgICAgIGRlbGV0ZUFsbFZhbHVlczx0cnVlLCB0eXBlbmFtZSBM
aXN0SGFzaFNldDxULCBVPjo6VmFsdWVUeXBlPihjb2xsZWN0aW9uLm1faW1wbCk7CisgICAgICAg
IGRlbGV0ZUFsbFZhbHVlczx0cnVlLCB0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBh
Y2l0eSwgVT46OlZhbHVlVHlwZT4oY29sbGVjdGlvbi5tX2ltcGwpOwogICAgIH0KIAogfSAvLyBu
YW1lc3BhY2UgV1RGCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTk2NzcpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTE4ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGlubGluZUNhcGFjaXR5IHRlbXBsYXRlIHBhcmFtZXRlciB0
byBMaXN0SGFzaFNldCBhbmQgdXNlIGl0IHRvIHNocmluayB0aGUgcG9zaXRpb25lZCBvYmplY3Qg
bGlzdCBoYXNoIHNldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM5MzA0CisKKyAgICAgICAgU2V0IHRoZSBpbmxpbmVDYXBhY2l0eSBmb3IgdGhlIHBv
c2l0aW9uZWRPYmplY3RzIExpc3RIYXNoU2V0IHRvIDQgaW5zdGVhZCBvZiAyNTYuIFNpbmNlIGEg
UmVuZGVyQmxvY2sgdXN1YWxseSBoYXMgCisgICAgICAgIGZldyBwb3NpdGlvbmVkIG9iamVjdHMs
IHRoaXMgc2F2ZXMgbWVtb3J5LgorCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcE91
dFBvc2l0aW9uZWRPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbnNl
cnRQb3NpdGlvbmVkT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwb3NpdGlvbmVkT2JqZWN0cyk6CisKIDIw
MTAtMDUtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDU5NjcyKQorKysgV2Vi
Q29yZS9XZWJDb3JlLmJhc2UuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC05MDIsNyArOTAyLDcgQEAg
X19aTks3V2ViQ29yZTRLVVJMNGhvc3RFdgogX19aTks3V2ViQ29yZTRLVVJMNHBhdGhFdgogX19a
Tks3V2ViQ29yZTRLVVJMY3ZQNU5TVVJMRXYKIF9fWk5LN1dlYkNvcmU0Tm9kZTE0aXNEZXNjZW5k
YW50T2ZFUEtTMF8KLV9fWk5LN1dlYkNvcmU0Tm9kZTE4Z2V0U3VicmVzb3VyY2VVUkxzRVJOM1dU
RjExTGlzdEhhc2hTZXRJTlNfNEtVUkxFTlNfOEtVUkxIYXNoRUVFCitfX1pOSzdXZWJDb3JlNE5v
ZGUxOGdldFN1YnJlc291cmNlVVJMc0VSTjNXVEYxMUxpc3RIYXNoU2V0SU5TXzRLVVJMRUxtMjU2
RU5TXzhLVVJMSGFzaEVFRQogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CiBfX1pOSzdX
ZWJDb3JlNFBhZ2UxMHBsdWdpbkRhdGFFdgogX19aTks3V2ViQ29yZTRQYWdlMzRpbkxvd1F1YWxp
dHlJbWFnZUludGVycG9sYXRpb25Nb2RlRXYKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHJldmlzaW9uIDU5NjcyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTg2LDEzICsxOTg2LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6
OnBhaW50U2VsZWN0aW9uKFBhaW50SW4KIH0KIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgot
c3RhdGljIHZvaWQgY2xpcE91dFBvc2l0aW9uZWRPYmplY3RzKGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvKiBwYWludEluZm8sIGludCB0eCwgaW50IHR5LCBMaXN0SGFzaFNldDxSZW5kZXJC
b3gqPiogcG9zaXRpb25lZE9iamVjdHMpCisgICAgc3RhdGljIHZvaWQgY2xpcE91dFBvc2l0aW9u
ZWRPYmplY3RzKGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvKiBwYWludEluZm8sIGludCB0
eCwgaW50IHR5LCBSZW5kZXJCbG9jazo6UG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldCogcG9z
aXRpb25lZE9iamVjdHMpCiB7CiAgICAgaWYgKCFwb3NpdGlvbmVkT2JqZWN0cykKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIExpc3RIYXNoU2V0PFJlbmRlckJveCo+Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBwb3NpdGlvbmVkT2JqZWN0cy0+ZW5kKCk7Ci0gICAgZm9yIChMaXN0SGFzaFNldDxS
ZW5kZXJCb3gqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwb3NpdGlvbmVkT2JqZWN0cy0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgUmVuZGVyQmxvY2s6OlBvc2l0aW9uZWRPYmplY3Rz
TGlzdEhhc2hTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHBvc2l0aW9uZWRPYmplY3RzLT5lbmQo
KTsKKyAgICBmb3IgKFJlbmRlckJsb2NrOjpQb3NpdGlvbmVkT2JqZWN0c0xpc3RIYXNoU2V0Ojpj
b25zdF9pdGVyYXRvciBpdCA9IHBvc2l0aW9uZWRPYmplY3RzLT5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgUmVuZGVyQm94KiByID0gKml0OwogICAgICAgICBwYWludEluZm8t
PmNvbnRleHQtPmNsaXBPdXQoSW50UmVjdCh0eCArIHItPngoKSwgdHkgKyByLT55KCksIHItPndp
ZHRoKCksIHItPmhlaWdodCgpKSk7CiAgICAgfQpAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6aW5zZXJ0UG9zaXRpb25lZE9iamVjdAogewogICAgIC8vIENyZWF0ZSB0aGUg
bGlzdCBvZiBzcGVjaWFsIG9iamVjdHMgaWYgd2UgZG9uJ3QgYWxlYWR5IGhhdmUgb25lCiAgICAg
aWYgKCFtX3Bvc2l0aW9uZWRPYmplY3RzKQotICAgICAgICBtX3Bvc2l0aW9uZWRPYmplY3RzID0g
bmV3IExpc3RIYXNoU2V0PFJlbmRlckJveCo+OworICAgICAgICBtX3Bvc2l0aW9uZWRPYmplY3Rz
ID0gbmV3IFJlbmRlckJsb2NrOjpQb3NpdGlvbmVkT2JqZWN0c0xpc3RIYXNoU2V0OwogCiAgICAg
bV9wb3NpdGlvbmVkT2JqZWN0cy0+YWRkKG8pOwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCShyZXZpc2lvbiA1OTY3MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0
UG9zaXRpb25lZE9iamVjdChSZW5kZXJCb3gqKTsKICAgICB2b2lkIHJlbW92ZVBvc2l0aW9uZWRP
YmplY3QoUmVuZGVyQm94Kik7CiAgICAgdm9pZCByZW1vdmVQb3NpdGlvbmVkT2JqZWN0cyhSZW5k
ZXJCbG9jayopOwotICAgIExpc3RIYXNoU2V0PFJlbmRlckJveCo+KiBwb3NpdGlvbmVkT2JqZWN0
cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZE9iamVjdHM7IH0KKworICAgIHR5cGVkZWYg
TGlzdEhhc2hTZXQ8UmVuZGVyQm94KiwgND4gUG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldDsK
KyAgICBQb3NpdGlvbmVkT2JqZWN0c0xpc3RIYXNoU2V0KiBwb3NpdGlvbmVkT2JqZWN0cygpIGNv
bnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZE9iamVjdHM7IH0KIAogICAgIHZvaWQgYWRkUGVyY2Vu
dEhlaWdodERlc2NlbmRhbnQoUmVuZGVyQm94Kik7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlUGVy
Y2VudEhlaWdodERlc2NlbmRhbnQoUmVuZGVyQm94Kik7CkBAIC00ODMsOSArNDg1LDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4oY29uc3QgTWFyZ2luSW5m
byYpOwogICAgIC8vIEVuZCBoZWxwZXIgZnVuY3Rpb25zIGFuZCBzdHJ1Y3RzIHVzZWQgYnkgbGF5
b3V0QmxvY2tDaGlsZHJlbi4KIAotICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyQm94Kj46
OmNvbnN0X2l0ZXJhdG9yIEl0ZXJhdG9yOworICAgIHR5cGVkZWYgUG9zaXRpb25lZE9iamVjdHNM
aXN0SGFzaFNldDo6Y29uc3RfaXRlcmF0b3IgSXRlcmF0b3I7CiAgICAgRGVwcmVjYXRlZFB0ckxp
c3Q8RmxvYXRpbmdPYmplY3Q+KiBtX2Zsb2F0aW5nT2JqZWN0czsKLSAgICBMaXN0SGFzaFNldDxS
ZW5kZXJCb3gqPiogbV9wb3NpdGlvbmVkT2JqZWN0czsKKyAgICAKKyAgICBQb3NpdGlvbmVkT2Jq
ZWN0c0xpc3RIYXNoU2V0KiBtX3Bvc2l0aW9uZWRPYmplY3RzOwogCiAgICAgLy8gQW4gaW5saW5l
IGNhbiBiZSBzcGxpdCB3aXRoIGJsb2NrcyBvY2N1cnJpbmcgaW4gYmV0d2VlbiB0aGUgaW5saW5l
IGNvbnRlbnQuCiAgICAgLy8gV2hlbiB0aGlzIG9jY3VycyB3ZSBuZWVkIGEgcG9pbnRlciB0byBv
dXIgbmV4dCBvYmplY3QuICBXZSBjYW4gYmFzaWNhbGx5IGJlCg==
</data>
<flag name="review"
          id="40806"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>