<?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>221665</bug_id>
          
          <creation_ts>2021-02-10 00:32:16 -0800</creation_ts>
          <short_desc>Move vertex array functionality from ExtensionsGL to GraphicsContextGL</short_desc>
          <delta_ts>2021-03-15 05:45:34 -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>WebGL</component>
          <version>WebKit Local 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>
          <dependson>221396</dependson>
          <blocked>221664</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727451</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-10 00:32:16 -0800</bug_when>
    <thetext>Move vertex array functionality from ExtensionsGL to GraphicsContextGL
ExtensionsGL and GraphicsContextGL is the same object, it never fulfilled the envisioned goal. This is work towards merging ExtensionsGL and GraphicsContextGL.

There&apos;s no distinct difference with the implementation of OES vertex arrays and WebGL2 vertex arrays for any of the current implementations.
Vertex arrays are not optional for WebGL2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727456</commentid>
    <comment_count>1</comment_count>
      <attachid>419822</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-10 00:41:14 -0800</bug_when>
    <thetext>Created attachment 419822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730182</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-17 00:33:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74424948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739353</commentid>
    <comment_count>3</comment_count>
      <attachid>423154</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-15 03:47:59 -0700</bug_when>
    <thetext>Created attachment 423154
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739384</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-15 05:45:30 -0700</bug_when>
    <thetext>Committed r274414: &lt;https://commits.webkit.org/r274414&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423154.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419822</attachid>
            <date>2021-02-10 00:41:14 -0800</date>
            <delta_ts>2021-03-15 03:47:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221665-20210210104112.patch</filename>
            <type>text/plain</type>
            <size>24309</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZjOGExMDY3YzNjZTFm
NGQxZTE3OTdiMjYyNjQwMzEyNDk2OGMxNy4uOGYxZDA1Y2NhYWUzY2QyYzZjMzY5Y2IxYmY2NTAy
ODJkNDZmMzFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAyLTEwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB2ZXJ0ZXgg
YXJyYXkgZnVuY3Rpb25hbGl0eSBmcm9tIEV4dGVuc2lvbnNHTCB0byBHcmFwaGljc0NvbnRleHRH
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUn
cyBubyBiZW5lZml0IGluIHVzaW5nIEV4dGVuc2lvbnNHTCwgaXQgaXMganVzdCBhZGRpbmcgYnVn
cy4KKyAgICAgICAgVGhpcyBjb21taXQgaXMgd29ya2luZyB0b3dhcmRzIHJlbW92aW5nIEV4dGVu
c2lvbnNHTC4KKworICAgICAgICBUaGUgdmVydGV4IGFycmF5IGZ1bmN0aW9uYWxpdHkgYWxyZWFk
eSBleGlzdHMgaW4gR3JhcGhpY3NDb250ZXh0R0wsIHVzZQorICAgICAgICBpdCBmcm9tIHRoZXJl
LgorCisgICAgICAgIEluIFdlYkdMMSBjYXNlLCB0aGUgT0VTIGV4dGVuc2lvbiBpcyB1c2VkLgor
CisgICAgICAgIEluIFdlYkdMMiBjYXNlLCBhbGwgdGhlIGZ1bmN0aW9ucyBlbmQgdXAgY2FsbGlu
ZyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5CisgICAgICAgIHVuZGVybmVhdGgsIHJlZ2FyZGxlc3Mg
aWYgY2xpZW50IGNhbGxzIFdlYkdMMiBmdW5jdGlvbiBvciBXZWJHTDEKKyAgICAgICAgZXh0ZW5z
aW9uIGZ1bmN0aW9uLgorCisgICAgICAgIEFOR0xFIEdlblZlcnRleEFycmF5cyBpcyB0aGUgc2Ft
ZSBmdW5jdGlvbiBhcyBHZW5WZXJ0ZXhBcnJheXNPRVMgZXhjZXB0CisgICAgICAgIEdlblZlcnRl
eEFycmF5cyBpcyBub3QgZW5hYmxlZCBmb3IgRVMgMi4wIGNvbnRleHRzLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgdGVzdGVkIGJ5IFdlYkdMIGNvbmZvcm1hbmNlLgorCisgICAgICAgICogaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T0VT
VmVydGV4QXJyYXlPYmplY3Q6OmlzVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2ViQ29yZTo6
T0VTVmVydGV4QXJyYXlPYmplY3Q6OmJpbmRWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVPYmpl
Y3RJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zR0wuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZWxldGVWZXJ0
ZXhBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNW
ZXJ0ZXhBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
YmluZFZlcnRleEFycmF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uc0dMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5H
TDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uc0dM
T3BlbkdMOjpkZWxldGVWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zR0xPcGVuR0w6OmlzVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMOjpiaW5kVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb21tb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZVZlcnRleEFy
cmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZWxldGVW
ZXJ0ZXhBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
aXNWZXJ0ZXhBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6YmluZFZlcnRleEFycmF5KToKKwogMjAyMS0wMi0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3Ig
TWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWNkY2EyYjFlNDZhNGRi
NmNhZmFkM2VjYjEyYmI5N2VkZTM4Y2U1MC4uZGE4MmUzNmM1YmMwOWIxOWIzYmQ2ZmNmN2FiZGMx
YzhjM2VlMGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMi0xMCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgdmVydGV4IGFy
cmF5IGZ1bmN0aW9uYWxpdHkgZnJvbSBFeHRlbnNpb25zR0wgdG8gR3JhcGhpY3NDb250ZXh0R0wK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTY2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRl
IFdlYkdMIEdQVVAgaW1wbGVtZW50YXRpb24gYWZ0ZXIgdGhlIGNoYW5nZS4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW46
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1
bmN0aW9uc0dlbmVyYXRlZC5oOgorICAgICAgICAoZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwOgorCiAyMDIxLTAyLTA5ICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViR0wgR1BV
IHByb2Nlc3MgSVBDIHNob3VsZCB1c2Ugc2hhcmVkIG1lbW9yeSBmb3IgYXN5bmNocm9ub3VzIG1l
c3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHAKaW5kZXggNzhmZDRmODFmMDJiZjhmODE5OTM0OTA2ZDY3NjI4ZWQ1ZWZiMjAw
ZS4uZGJlNTRkYzY4ODEyYmJkMzA2NTViOWI5MWZlYjE3NjI5MWVhMmMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcApAQCAt
ODAsNyArODAsNyBAQCBHQ0dMYm9vbGVhbiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6aXNWZXJ0ZXhB
cnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBhcgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICByZXR1cm4gYXJyYXlPYmplY3QgJiYgIW1fY29udGV4dC0+aXNDb250ZXh0TG9z
dCgpICYmIGFycmF5T2JqZWN0LT5oYXNFdmVyQmVlbkJvdW5kKCkKLSAgICAgICAgJiYgbV9jb250
ZXh0LT5ncmFwaGljc0NvbnRleHRHTCgpLT5nZXRFeHRlbnNpb25zKCkuaXNWZXJ0ZXhBcnJheU9F
UyhhcnJheU9iamVjdC0+b2JqZWN0KCkpOworICAgICAgICAmJiBtX2NvbnRleHQtPmdyYXBoaWNz
Q29udGV4dEdMKCktPmlzVmVydGV4QXJyYXkoYXJyYXlPYmplY3QtPm9iamVjdCgpKTsKIH0KIAog
dm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMqIGFycmF5T2JqZWN0KQpAQCAtOTgsMTQgKzk4LDE0IEBAIHZvaWQgT0VT
VmVydGV4QXJyYXlPYmplY3Q6OmJpbmRWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKiBhcnJheU9iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvJiBleHRl
bnNpb25zID0gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHRHTCgpLT5nZXRFeHRlbnNpb25zKCk7
CisgICAgYXV0byogY29udGV4dEdMID0gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHRHTCgpOwog
ICAgIGF1dG8mIGNvbnRleHQgPSBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2Nv
bnRleHQpOwogICAgIGlmIChhcnJheU9iamVjdCAmJiAhYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9i
amVjdCgpICYmIGFycmF5T2JqZWN0LT5vYmplY3QoKSkgewotICAgICAgICBleHRlbnNpb25zLmJp
bmRWZXJ0ZXhBcnJheU9FUyhhcnJheU9iamVjdC0+b2JqZWN0KCkpOworICAgICAgICBjb250ZXh0
R0wtPmJpbmRWZXJ0ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogICAgICAgICBhcnJh
eU9iamVjdC0+c2V0SGFzRXZlckJlZW5Cb3VuZCgpOwogICAgICAgICBjb250ZXh0LnNldEJvdW5k
VmVydGV4QXJyYXlPYmplY3QobG9ja2VyLCBhcnJheU9iamVjdCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgZXh0ZW5zaW9ucy5iaW5kVmVydGV4QXJyYXlPRVMoMCk7CisgICAgICAgIGNvbnRleHRH
TC0+YmluZFZlcnRleEFycmF5KDApOwogICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJy
YXlPYmplY3QobG9ja2VyLCBudWxscHRyKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4
IDM4MTU5YmZiNzE4OGRiNzkzNjg2YjYyYmM2Mjk3NzJjYjg2MTg5M2MuLmJhMTVjNDE4Yjc4MmIx
NDk3ZWRmNzcwYmFlZDA5ZmFhZDFlNzIxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zMTU4LDcg
KzMxNTgsNyBAQCBXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQYXJhbWV0
ZXIoR0NHTGVudW0gcG5hbWUpCiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpWRVJURVhf
QVJSQVlfQklORElOR19PRVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4
X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewogICAg
ICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCmluZGV4IGRl
NGFmN2U3YTZhNTkxZDYyODQ1OTE2YzkzOGNkY2Y0Y2NjMjBjZTEuLjExMGNjNzc1YTRmZDc4ZWEz
MjkzNGE1NjAxYjQ5NWIyZDllMGQ1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYKICAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVHlwZTo6VXNlcjoKLSAgICAgICAgc2V0T2JqZWN0KHRoaXMt
PmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0woKS0+Z2V0RXh0ZW5zaW9ucygpLmNyZWF0ZVZl
cnRleEFycmF5T0VTKCkpOworICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4dCgpLT5ncmFw
aGljc0NvbnRleHRHTCgpLT5jcmVhdGVWZXJ0ZXhBcnJheSgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYgbG9jawogICAgIGNh
c2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUeXBlOjpVc2VyOgot
ICAgICAgICBjb250ZXh0M2QtPmdldEV4dGVuc2lvbnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhv
YmplY3QpOworICAgICAgICBjb250ZXh0M2QtPmRlbGV0ZVZlcnRleEFycmF5KG9iamVjdCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9FeHRlbnNpb25zR0wuaAppbmRleCBhYzhjODg5MzIzNDU2NzJlOWQwNTNmY2Q5N2EyMmRh
OGU5OTA1ZThjLi42Zjk5MGZkZjg3ZTBhMGJiZmU2NmFkMzY2OGY4YTY2ZmYzNjQ1NWM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zR0wuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zR0wuaApAQCAt
MjgxLDEyICsyODEsNiBAQCBwdWJsaWM6CiAgICAgLy8gZXh0ZXJuYWxseS4KICAgICB2aXJ0dWFs
IEdDR0xpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpID0gMDsKIAotICAgIC8vIEdMX09F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdMT2JqZWN0IGNyZWF0
ZVZlcnRleEFycmF5T0VTKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybUdMT2JqZWN0KSA9IDA7Ci0gICAgdmlydHVhbCBHQ0dMYm9vbGVhbiBpc1Zl
cnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmlu
ZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpID0gMDsKLQogICAgIC8vIEdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQogICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0
ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0KSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4
IDAwMjYyNDVlNDc5NzI3ZGVmY2MwMTFlNmU4YTFmZGM1NGUzMzFjNmUuLjNkYmU2NTc0MTcyZDQ1
ZDExMmFiYWU0ZmM4MDkzNWRjYWJjZWUwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNTc2LDYgKzU3Niw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdDR0xlbnVtIFJHMzJJID0gMHg4MjNCOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgR0NHTGVudW0gUkczMlVJID0gMHg4MjNDOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgR0NHTGVudW0gVkVSVEVYX0FSUkFZX0JJTkRJTkcgPSAweDg1QjU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBHQ0dMZW51bSBWRVJURVhfQVJSQVlfQklORElOR19PRVMgPSAweDg1
QjU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHQ0dMZW51bSBSOF9TTk9STSA9IDB4OEY5NDsKICAg
ICBzdGF0aWMgY29uc3RleHByIEdDR0xlbnVtIFJHOF9TTk9STSA9IDB4OEY5NTsKICAgICBzdGF0
aWMgY29uc3RleHByIEdDR0xlbnVtIFJHQjhfU05PUk0gPSAweDhGOTY7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xB
TkdMRS5jcHAKaW5kZXggZjU0MGFiM2NhODUwYjFmMjdjYzYyZWU5NjRjZjA0ZTFkODE1ZThhYS4u
YzJmMDQ4MjM5OTVmNzQwMjQxMzYwMmRmMzE0YzhiNjI3N2NhYjcyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNH
TEFOR0xFLmNwcApAQCAtMTA3LDQ2ICsxMDcsNiBAQCB2b2lkIEV4dGVuc2lvbnNHTEFOR0xFOjpp
bml0aWFsaXplQXZhaWxhYmxlRXh0ZW5zaW9ucygpCiAgICAgbV9pbml0aWFsaXplZEF2YWlsYWJs
ZUV4dGVuc2lvbnMgPSB0cnVlOwogfQogCi1QbGF0Zm9ybUdMT2JqZWN0IEV4dGVuc2lvbnNHTEFO
R0xFOjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdMdWludCBhcnJheSA9
IDA7Ci0gICAgZ2w6OkdlblZlcnRleEFycmF5c09FUygxLCAmYXJyYXkpOwotICAgIHJldHVybiBh
cnJheTsKLX0KLQotdm9pZCBFeHRlbnNpb25zR0xBTkdMRTo6ZGVsZXRlVmVydGV4QXJyYXlPRVMo
UGxhdGZvcm1HTE9iamVjdCBhcnJheSkKLXsKLSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGdsOjpEZWxldGVWZXJ0ZXhBcnJheXNPRVMoMSwgJmFycmF5KTsKLX0K
LQotR0NHTGJvb2xlYW4gRXh0ZW5zaW9uc0dMQU5HTEU6OmlzVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm1HTE9iamVjdCBhcnJheSkKLXsKLSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1cm4gR0xf
RkFMU0U7Ci0KLSAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAg
ICAgIHJldHVybiBHTF9GQUxTRTsKLQotICAgIHJldHVybiBnbDo6SXNWZXJ0ZXhBcnJheU9FUyhh
cnJheSk7Ci19Ci0KLXZvaWQgRXh0ZW5zaW9uc0dMQU5HTEU6OmJpbmRWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybUdMT2JqZWN0IGFycmF5KQotewotICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4
dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2w6OkJpbmRWZXJ0ZXhBcnJheU9F
UyhhcnJheSk7Ci19Ci0KIGJvb2wgRXh0ZW5zaW9uc0dMQU5HTEU6OnN1cHBvcnRzRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25z
LmNvbnRhaW5zKG5hbWUpIHx8IG1fcmVxdWVzdGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0
ZW5zaW9uc0dMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0V4dGVuc2lvbnNHTEFOR0xFLmgKaW5kZXggODllZGMxNzkxYzhlM2U0MTYzNjRiODU2MGM2Mzhj
NDg2OWViMzMwOC4uYTFkNWJiYjljN2ViOTkwYzczMDU1MjEzZjgxMGQxMTcxMTI3NjI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
c0dMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9F
eHRlbnNpb25zR0xBTkdMRS5oCkBAIC00NywxMCArNDcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0VuYWJsZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgR0NHTGludCBnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzQVJCKCkgb3ZlcnJpZGU7CiAKLSAgICBQbGF0Zm9ybUdMT2JqZWN0IGNyZWF0
ZVZlcnRleEFycmF5T0VTKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsKLSAgICBHQ0dMYm9vbGVhbiBpc1ZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlOwotICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0J1ZmZlcnNF
WFQoR0NHTFNwYW48Y29uc3QgR0NHTGVudW0+KSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBnZXRU
cmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDg3OGQ4ZGYxMWRiYmRmZmFkMGIy
OGFkYzE3MTM1M2E0MmNiMDRmZDcuLjU3NGU5ODVkZDk5MzRjNzMwNGVjZjgxY2VhZTRkYTdlMjJh
OWUyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0xNzEwLDcgKzE3
MTAsMTAgQEAgUGxhdGZvcm1HTE9iamVjdCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRl
VmVydGV4QXJyYXkoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEdMdWludCBhcnJheSA9IDA7
Ci0gICAgZ2w6OkdlblZlcnRleEFycmF5cygxLCAmYXJyYXkpOworICAgIGlmIChtX2lzRm9yV2Vi
R0wyKQorICAgICAgICBnbDo6R2VuVmVydGV4QXJyYXlzKDEsICZhcnJheSk7CisgICAgZWxzZQor
ICAgICAgICBnbDo6R2VuVmVydGV4QXJyYXlzT0VTKDEsICZhcnJheSk7CiAgICAgcmV0dXJuIGFy
cmF5OwogfQogCkBAIC0xNzIwLDggKzE3MjMsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm1HTE9iamVjdCBhcnJheSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsK
LQotICAgIGdsOjpEZWxldGVWZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKKyAgICBpZiAobV9pc0Zv
cldlYkdMMikKKyAgICAgICAgZ2w6OkRlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJyYXkpOworICAg
IGVsc2UKKyAgICAgICAgZ2w6OkRlbGV0ZVZlcnRleEFycmF5c09FUygxLCAmYXJyYXkpOwogfQog
CiBHQ0dMYm9vbGVhbiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWZXJ0ZXhBcnJheShQbGF0
Zm9ybUdMT2JqZWN0IGFycmF5KQpAQCAtMTczMSwxNSArMTczNiwxOSBAQCBHQ0dMYm9vbGVhbiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWZXJ0ZXhBcnJheShQbGF0Zm9ybUdMT2JqZWN0IGFy
cmF5KQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBHTF9G
QUxTRTsKIAotICAgIHJldHVybiBnbDo6SXNWZXJ0ZXhBcnJheShhcnJheSk7CisgICAgaWYgKG1f
aXNGb3JXZWJHTDIpCisgICAgICAgIHJldHVybiBnbDo6SXNWZXJ0ZXhBcnJheShhcnJheSk7Cisg
ICAgcmV0dXJuIGdsOjpJc1ZlcnRleEFycmF5T0VTKGFycmF5KTsKIH0KIAogdm9pZCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6YmluZFZlcnRleEFycmF5KFBsYXRmb3JtR0xPYmplY3QgYXJyYXkp
CiB7CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwotCi0g
ICAgZ2w6OkJpbmRWZXJ0ZXhBcnJheShhcnJheSk7CisgICAgaWYgKG1faXNGb3JXZWJHTDIpCisg
ICAgICAgIGdsOjpCaW5kVmVydGV4QXJyYXkoYXJyYXkpOworICAgIGVsc2UKKyAgICAgICAgZ2w6
OkJpbmRWZXJ0ZXhBcnJheU9FUyhhcnJheSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmdldEJvb2xlYW52KEdDR0xlbnVtIHBuYW1lLCBHQ0dMU3BhbjxHQ0dMYm9vbGVhbj4g
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCmluZGV4IDg2ZDE5Y2FhZmI2ZTNmMGUz
MjFkZTE3MzIxMmE1NGZjZTYxZjcxZWMuLjUxY2JlNmI3ZTEzYjgwYWY3MTJlM2VmZTc2YjYyNTE1
ODM0OWZmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCkBAIC01Nyw4ICs1Nyw2IEBA
IFBsYXRmb3JtR0xPYmplY3QgRXh0ZW5zaW9uc0dMT3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJheU9F
UygpCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgaWYgKGlzVmVydGV4
QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgZ2xHZW5WZXJ0ZXhBcnJheXMoMSwgJmFy
cmF5KTsKLSNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xf
QVBQTEVfdmVydGV4X2FycmF5X29iamVjdAotICAgIGdsR2VuVmVydGV4QXJyYXlzQVBQTEUoMSwg
JmFycmF5KTsKICNlbmRpZgogICAgIHJldHVybiBhcnJheTsKIH0KQEAgLTc0LDggKzcyLDYgQEAg
dm9pZCBFeHRlbnNpb25zR0xPcGVuR0w6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xP
YmplY3QgYXJyYXkpCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgaWYg
KGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgZ2xEZWxldGVWZXJ0ZXhB
cnJheXMoMSwgJmFycmF5KTsKLSNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29i
amVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdAotICAgIGdsRGVsZXRlVmVydGV4
QXJyYXlzQVBQTEUoMSwgJmFycmF5KTsKICNlbmRpZgogfQogCkBAIC05MCw4ICs4Niw2IEBAIEdD
R0xib29sZWFuIEV4dGVuc2lvbnNHTE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdM
T2JqZWN0IGFycmF5KQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQogICAgIGlm
IChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCiAgICAgICAgIHJldHVybiBnbElzVmVy
dGV4QXJyYXkoYXJyYXkpOwotI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2Jq
ZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0Ci0gICAgcmV0dXJuIGdsSXNWZXJ0
ZXhBcnJheUFQUExFKGFycmF5KTsKICNlbmRpZgogICAgIHJldHVybiBHTF9GQUxTRTsKIH0KQEAg
LTEwNCwxMCArOTgsNiBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6YmluZFZlcnRleEFycmF5
T0VTKFBsYXRmb3JtR0xPYmplY3QgYXJyYXkpCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXSU4pCiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAg
Z2xCaW5kVmVydGV4QXJyYXkoYXJyYXkpOwotI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhf
YXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0Ci0gICAgZ2xCaW5k
VmVydGV4QXJyYXlBUFBMRShhcnJheSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShhcnJheSk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5oCmluZGV4IGFk
ODQzNTlkODNiZGFjZmYyM2I3M2E2NTc0MzQ2NzBjNTdmNjM0Y2MuLmI1MWU2MmZlZTk4OWZmZTIw
MGU5YzVhOGU1OGE1NWQ5NzFiZTRkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29t
bW9uLmgKQEAgLTQ2LDEwICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VuYWJsZWQoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIo
KSBvdmVycmlkZTsKIAotICAgIFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMo
KSBvdmVycmlkZSA9IDA7Ci0gICAgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdM
T2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgR0NHTGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgdm9pZCBiaW5kVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGUgPSAwOworICAgIC8vIEdMX09FU192ZXJ0ZXhf
YXJyYXlfb2JqZWN0CisgICAgdmlydHVhbCBQbGF0Zm9ybUdMT2JqZWN0IGNyZWF0ZVZlcnRleEFy
cmF5T0VTKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybUdMT2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCBHQ0dMYm9vbGVhbiBpc1ZlcnRleEFycmF5
T0VTKFBsYXRmb3JtR0xPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpID0gMDsKIAogICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQo
R0NHTFNwYW48Y29uc3QgR0NHTGVudW0+KSBvdmVycmlkZSA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb21tb24uY3BwCmluZGV4IDJiOWNhNGQyMDUzNjhlYjAx
YmM3ZDI3ZGU4ZWFkMzk4YTNhODc4YTUuLmE3NmFjOGI1NzQ3NzAxNGYwOGNmMjhjNGMwOTEyZjQ4
YThhODVhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29tbW9u
LmNwcApAQCAtMTU5MSw1MyArMTU5MSwyMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Ojp2aWV3cG9ydChHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQwogCiBQ
bGF0Zm9ybUdMT2JqZWN0IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJh
eSgpCiB7Ci0gICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBHTHVpbnQgYXJyYXkgPSAwOwotI2lmICghVVNFKE9QRU5HTF9FUykgJiYgKFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkpIHx8IFBMQVRGT1JNKENPQ09BKQotICAgIDo6Z2xH
ZW5WZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKLSNlbmRpZgotICAgIHJldHVybiBhcnJheTsKKyAg
ICByZXR1cm4gZ2V0RXh0ZW5zaW9ucygpLmNyZWF0ZVZlcnRleEFycmF5T0VTKCk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRlbGV0ZVZlcnRleEFycmF5KFBsYXRmb3JtR0xP
YmplY3QgYXJyYXkpCiB7Ci0gICAgaWYgKCFhcnJheSkKLSAgICAgICAgcmV0dXJuOwotICAgIAot
ICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotI2lmICgh
VVNFKE9QRU5HTF9FUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkpIHx8IFBM
QVRGT1JNKENPQ09BKQotICAgIDo6Z2xEZWxldGVWZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKLSNl
bmRpZgorICAgIGdldEV4dGVuc2lvbnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhhcnJheSk7CiB9
CiAKIEdDR0xib29sZWFuIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZlcnRleEFycmF5KFBs
YXRmb3JtR0xPYmplY3QgYXJyYXkpCiB7Ci0gICAgaWYgKCFhcnJheSkKLSAgICAgICAgcmV0dXJu
IEdMX0ZBTFNFOwotICAgIAotICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAgICAg
IHJldHVybiBHTF9GQUxTRTsKLQotI2lmICghVVNFKE9QRU5HTF9FUykgJiYgKFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV0lOKSkpIHx8IFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiA6Omds
SXNWZXJ0ZXhBcnJheShhcnJheSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gR0xfRkFMU0U7CisgICAg
cmV0dXJuIGdldEV4dGVuc2lvbnMoKS5pc1ZlcnRleEFycmF5T0VTKGFycmF5KTsKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YmluZFZlcnRleEFycmF5KFBsYXRmb3JtR0xPYmpl
Y3QgYXJyYXkpCiB7Ci0gICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0jaWYgKCFVU0UoT1BFTkdMX0VTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXSU4pKSkgfHwgUExBVEZPUk0oQ09DT0EpCi0gICAgOjpnbEJpbmRWZXJ0ZXhBcnJheShhcnJh
eSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShhcnJheSk7Ci0jZW5kaWYKKyAgICBnZXRFeHRl
bnNpb25zKCkuYmluZFZlcnRleEFycmF5T0VTKGFycmF5KTsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0Qm9vbGVhbnYoR0NHTGVudW0gcG5hbWUsIEdDR0xTcGFuPEdDR0xi
b29sZWFuPiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpp
bmRleCAyZDUzOWU5MjNiNzRmODg2NzA4MWI4ZjRhY2ViOTliZjlmYWY4YzE5Li41ZWY4Y2UzYmIx
NjhkNTNjOWMwNGU0YTQ4YzE5ODZjYzMzYjE0MGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLm1lc3NhZ2VzLmluCkBAIC0yNzQsMTAgKzI3NCw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIFVuaWZv
cm1CbG9ja0JpbmRpbmcodWludDMyX3QgcHJvZ3JhbSwgdWludDMyX3QgdW5pZm9ybUJsb2NrSW5k
ZXgsIHVpbnQzMl90IHVuaWZvcm1CbG9ja0JpbmRpbmcpCiAgICAgdm9pZCBHZXRBY3RpdmVVbmlm
b3JtQmxvY2tpdih1aW50MzJfdCBwcm9ncmFtLCB1aW50MzJfdCB1bmlmb3JtQmxvY2tJbmRleCwg
dWludDMyX3QgcG5hbWUsIHVpbnQ2NF90IHBhcmFtc1NpemUpIC0+IChJUEM6OkFycmF5UmVmZXJl
bmNlPGludDMyX3Q+IHBhcmFtcykgU3luY2hyb25vdXMKICAgICB2b2lkIEdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIoKSAtPiAoaW50MzJfdCByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMKLSAgICB2
b2lkIENyZWF0ZVZlcnRleEFycmF5T0VTKCkgLT4gKHVpbnQzMl90IHJldHVyblZhbHVlKSBTeW5j
aHJvbm91cwotICAgIHZvaWQgRGVsZXRlVmVydGV4QXJyYXlPRVModWludDMyX3QgYXJnMCkKLSAg
ICB2b2lkIElzVmVydGV4QXJyYXlPRVModWludDMyX3QgYXJnMCkgLT4gKGJvb2wgcmV0dXJuVmFs
dWUpIFN5bmNocm9ub3VzCi0gICAgdm9pZCBCaW5kVmVydGV4QXJyYXlPRVModWludDMyX3QgYXJn
MCkKICAgICB2b2lkIEdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSh1aW50MzJfdCBhcmcw
KSAtPiAoU3RyaW5nIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwogICAgIHZvaWQgRHJhd0J1ZmZl
cnNFWFQoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50MzJfdD4gYnVmcykKICAgICB2b2lkIERyYXdB
cnJheXNJbnN0YW5jZWRBTkdMRSh1aW50MzJfdCBtb2RlLCBpbnQzMl90IGZpcnN0LCBpbnQzMl90
IGNvdW50LCBpbnQzMl90IHByaW1jb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRl
ZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgKaW5kZXggYmRlNzZmOWJlN2U4ZWYwYzUwMjFjYTc0
MDAzNTk5YzBhZmM0ZDdjMC4uNTA5ZjU4NTQwNjRjYjI2N2RhOGI3ZDMxMDM0NDU3NjNhOWJiMTcw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJh
dGVkLmgKQEAgLTExMDgsMjYgKzExMDgsNiBAQAogICAgICAgICByZXR1cm5WYWx1ZSA9IG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocmV0dXJuVmFsdWUpOwogICAgIH0KLSAgICB2b2lkIGNyZWF0
ZVZlcnRleEFycmF5T0VTKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDMyX3QpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotICAgIHsKLSAgICAgICAgUGxhdGZvcm1HTE9iamVjdCByZXR1cm5WYWx1
ZSA9IHsgfTsKLSAgICAgICAgcmV0dXJuVmFsdWUgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXR1
cm5WYWx1ZSk7Ci0gICAgfQotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVModWludDMyX3Qg
YXJnMCkKLSAgICB7Ci0gICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmRlbGV0ZVZl
cnRleEFycmF5T0VTKGFyZzApOwotICAgIH0KLSAgICB2b2lkIGlzVmVydGV4QXJyYXlPRVModWlu
dDMyX3QgYXJnMCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKLSAgICB7Ci0gICAgICAgIEdDR0xib29sZWFuIHJldHVyblZhbHVlID0geyB9OwotICAg
ICAgICByZXR1cm5WYWx1ZSA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmlzVmVydGV4QXJy
YXlPRVMoYXJnMCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0YXRpY19jYXN0PGJvb2w+
KHJldHVyblZhbHVlKSk7Ci0gICAgfQotICAgIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKHVpbnQz
Ml90IGFyZzApCi0gICAgewotICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5iaW5k
VmVydGV4QXJyYXlPRVMoYXJnMCk7Ci0gICAgfQogICAgIHZvaWQgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKHVpbnQzMl90IGFyZzAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgU3RyaW5nIHJldHVyblZh
bHVlID0geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCBi
NDQwYjAwYjkxZjYwNjFhNThkZmYxMzhmOGJiYjY0Yjc2NTYyZWFhLi5hZTJjY2RmYThmODlkYTMw
NmE4MDkyNDU3ZDI4MTIwZWE5ODIzMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuaApAQCAtMzA4LDEwICszMDgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmlmb3Jt
QmxvY2tCaW5kaW5nKFBsYXRmb3JtR0xPYmplY3QgcHJvZ3JhbSwgR0NHTHVpbnQgdW5pZm9ybUJs
b2NrSW5kZXgsIEdDR0x1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpIGZpbmFsOwogICAgIHZvaWQg
Z2V0QWN0aXZlVW5pZm9ybUJsb2NraXYoR0NHTHVpbnQgcHJvZ3JhbSwgR0NHTHVpbnQgdW5pZm9y
bUJsb2NrSW5kZXgsIEdDR0xlbnVtIHBuYW1lLCBHQ0dMU3BhbjxHQ0dMaW50PiBwYXJhbXMpIGZp
bmFsOwogICAgIEdDR0xpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIGZpbmFsOwotICAg
IFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMoKSBmaW5hbDsKLSAgICB2b2lk
IGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QgYXJnMCkgZmluYWw7Ci0gICAg
R0NHTGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdMT2JqZWN0IGFyZzApIGZpbmFs
OwotICAgIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QgYXJnMCkgZmlu
YWw7CiAgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybUdM
T2JqZWN0IGFyZzApIGZpbmFsOwogICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0NHTFNwYW48Y29u
c3QgR0NHTGVudW0+IGJ1ZnMpIGZpbmFsOwogICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZEFO
R0xFKEdDR0xlbnVtIG1vZGUsIEdDR0xpbnQgZmlyc3QsIEdDR0xzaXplaSBjb3VudCwgR0NHTHNp
emVpIHByaW1jb3VudCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5l
cmF0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcAppbmRleCAyOTQ3NWUx
MTQ3YzE3ZGU1OTk1ZDg4MjQzMTUwNTBmOGNkMGMzM2I1Li4wMTU1MzllZWE2YWViZjhiYTQ5OWEx
ZDVkY2ZkOTYzN2YwOTkzMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKQEAgLTIzMDcsNDYg
KzIzMDcsNiBAQCBHQ0dMaW50IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmdldEdyYXBo
aWNzUmVzZXRTdGF0dXNBUkIoKQogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAotUGxhdGZv
cm1HTE9iamVjdCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGVWZXJ0ZXhBcnJh
eU9FUygpCi17Ci0gICAgdWludDMyX3QgcmV0dXJuVmFsdWUgPSB7IH07Ci0gICAgaWYgKCFpc0Nv
bnRleHRMb3N0KCkpIHsKLSAgICAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2Fn
ZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpDcmVhdGVWZXJ0ZXhBcnJheU9FUygpLCBNZXNz
YWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNyZWF0ZVZlcnRleEFycmF5T0VTOjpSZXBs
eShyZXR1cm5WYWx1ZSkpOwotICAgICAgICBpZiAoIXNlbmRSZXN1bHQpCi0gICAgICAgICAgICBt
YXJrQ29udGV4dExvc3QoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJldHVyblZhbHVlOwotfQotCi12
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFBs
YXRmb3JtR0xPYmplY3QgYXJnMCkKLXsKLSAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewotICAg
ICAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6RGVsZXRlVmVydGV4QXJyYXlPRVMoYXJnMCkpOwotICAgICAgICBpZiAoIXNlbmRSZXN1
bHQpCi0gICAgICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICB9Ci19Ci0KLUdDR0xib29s
ZWFuIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmlzVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm1HTE9iamVjdCBhcmcwKQotewotICAgIGJvb2wgcmV0dXJuVmFsdWUgPSB7IH07Ci0gICAgaWYg
KCFpc0NvbnRleHRMb3N0KCkpIHsKLSAgICAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpJc1ZlcnRleEFycmF5T0VTKGFyZzAp
LCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OklzVmVydGV4QXJyYXlPRVM6OlJl
cGx5KHJldHVyblZhbHVlKSk7Ci0gICAgICAgIGlmICghc2VuZFJlc3VsdCkKLSAgICAgICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgIH0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R0NHTGJv
b2xlYW4+KHJldHVyblZhbHVlKTsKLX0KLQotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5OjpiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9iamVjdCBhcmcwKQotewotICAgIGlm
ICghaXNDb250ZXh0TG9zdCgpKSB7Ci0gICAgICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmQoTWVz
c2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpCaW5kVmVydGV4QXJyYXlPRVMoYXJnMCkp
OwotICAgICAgICBpZiAoIXNlbmRSZXN1bHQpCi0gICAgICAgICAgICBtYXJrQ29udGV4dExvc3Qo
KTsKLSAgICB9Ci19Ci0KIFN0cmluZyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpnZXRU
cmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm1HTE9iamVjdCBhcmcwKQogewogICAg
IFN0cmluZyByZXR1cm5WYWx1ZSA9IHsgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423154</attachid>
            <date>2021-03-15 03:47:59 -0700</date>
            <delta_ts>2021-03-15 05:45:32 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>bug-221665-20210315124757.patch</filename>
            <type>text/plain</type>
            <size>24350</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE0MDFjMTk5MzcwNmM5
Y2QxNmY0NmI4YzAxZDQ4ZjEyMGRhZGMwNi4uMzZlMGEzM2NmZjA5NGI2NzczZDliNzdlZWQ4N2M1
NTVjMmViODczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAzLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB2ZXJ0ZXgg
YXJyYXkgZnVuY3Rpb25hbGl0eSBmcm9tIEV4dGVuc2lvbnNHTCB0byBHcmFwaGljc0NvbnRleHRH
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoZXJlJ3Mg
bm8gYmVuZWZpdCBpbiB1c2luZyBFeHRlbnNpb25zR0wsIGl0IGlzIGp1c3QgYWRkaW5nIGJ1Z3Mu
CisgICAgICAgIFRoaXMgY29tbWl0IGlzIHdvcmtpbmcgdG93YXJkcyByZW1vdmluZyBFeHRlbnNp
b25zR0wuCisKKyAgICAgICAgVGhlIHZlcnRleCBhcnJheSBmdW5jdGlvbmFsaXR5IGFscmVhZHkg
ZXhpc3RzIGluIEdyYXBoaWNzQ29udGV4dEdMLCB1c2UKKyAgICAgICAgaXQgZnJvbSB0aGVyZS4K
KworICAgICAgICBJbiBXZWJHTDEgY2FzZSwgdGhlIE9FUyBleHRlbnNpb24gaXMgdXNlZC4KKwor
ICAgICAgICBJbiBXZWJHTDIgY2FzZSwgYWxsIHRoZSBmdW5jdGlvbnMgZW5kIHVwIGNhbGxpbmcg
dGhlIHNhbWUgZnVuY3Rpb25hbGl0eQorICAgICAgICB1bmRlcm5lYXRoLCByZWdhcmRsZXNzIGlm
IGNsaWVudCBjYWxscyBXZWJHTDIgZnVuY3Rpb24gb3IgV2ViR0wxCisgICAgICAgIGV4dGVuc2lv
biBmdW5jdGlvbi4KKworICAgICAgICBBTkdMRSBHZW5WZXJ0ZXhBcnJheXMgaXMgdGhlIHNhbWUg
ZnVuY3Rpb24gYXMgR2VuVmVydGV4QXJyYXlzT0VTIGV4Y2VwdAorICAgICAgICBHZW5WZXJ0ZXhB
cnJheXMgaXMgbm90IGVuYWJsZWQgZm9yIEVTIDIuMCBjb250ZXh0cy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHRlc3RlZCBieSBXZWJHTCBjb25mb3JtYW5jZS4KKworICAgICAgICAqIGh0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9FU1Zl
cnRleEFycmF5T2JqZWN0Ojppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6Ok9F
U1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0
SW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJheSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGVsZXRlVmVydGV4
QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmVy
dGV4QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmJp
bmRWZXJ0ZXhBcnJheSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnNHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0w6
OmNyZWF0ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9w
ZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9u
c0dMT3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lv
bnNHTE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29tbW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJh
eSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGVsZXRlVmVy
dGV4QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Omlz
VmVydGV4QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OmJpbmRWZXJ0ZXhBcnJheSk6CisKIDIwMjEtMDMtMTMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBjb2Rpbmcgc3R5bGUgb2YgQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5MTBhYjA1ZjZkMzUwNzZhNzYyZmYxZGM2NjM3
N2Q2YjhkZTEwMjYuLjhkNjk4ZGVhZWI5NTM0ZTViNjNjMjA3NzAzYjY5YTA4ZjE4YjJlYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDMtMTUgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHZlcnRleCBhcnJheSBmdW5jdGlvbmFs
aXR5IGZyb20gRXh0ZW5zaW9uc0dMIHRvIEdyYXBoaWNzQ29udGV4dEdMCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE2NjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgR2VuZXJhdGUgV2ViR0wgR1BVUCBpbXBs
ZW1lbnRhdGlvbiBhZnRlciB0aGUgY2hhbmdlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVk
Lmg6CisgICAgICAgIChnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHA6CisKIDIwMjEtMDMtMTMgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF1bTVNFXSBNZWRpYVNvdXJjZTo6YnVmZmVy
ZWQgYW5kIE1lZGlhU291cmNlOjphY3RpdmVTb3VyY2VCdWZmZXJzIGRvIG5vdCB1cGRhdGUgaW4g
dGhlIHNhbWUgcnVuIGxvb3AgYXMgTWVkaWFTb3VyY2U6OmVuZE9mU3RyZWFtKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAppbmRl
eCA3OGZkNGY4MWYwMmJmOGY4MTk5MzQ5MDZkNjc2MjhlZDVlZmIyMDBlLi5kYmU1NGRjNjg4MTJi
YmQzMDY1NWI5YjkxZmViMTc2MjkxZWEyYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCkBAIC04MCw3ICs4MCw3IEBAIEdD
R0xib29sZWFuIE9FU1ZlcnRleEFycmF5T2JqZWN0Ojppc1ZlcnRleEFycmF5T0VTKFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGFyCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biBhcnJheU9iamVjdCAmJiAhbV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkgJiYgYXJyYXlPYmpl
Y3QtPmhhc0V2ZXJCZWVuQm91bmQoKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdyYXBoaWNzQ29u
dGV4dEdMKCktPmdldEV4dGVuc2lvbnMoKS5pc1ZlcnRleEFycmF5T0VTKGFycmF5T2JqZWN0LT5v
YmplY3QoKSk7CisgICAgICAgICYmIG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0R0woKS0+aXNW
ZXJ0ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogfQogCiB2b2lkIE9FU1ZlcnRleEFy
cmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyog
YXJyYXlPYmplY3QpCkBAIC05OCwxNCArOTgsMTQgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVj
dDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBtX2NvbnRl
eHQtPmdyYXBoaWNzQ29udGV4dEdMKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICBhdXRvKiBjb250
ZXh0R0wgPSBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dEdMKCk7CiAgICAgYXV0byYgY29udGV4
dCA9IGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCk7CiAgICAgaWYg
KGFycmF5T2JqZWN0ICYmICFhcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlP
YmplY3QtPm9iamVjdCgpKSB7Ci0gICAgICAgIGV4dGVuc2lvbnMuYmluZFZlcnRleEFycmF5T0VT
KGFycmF5T2JqZWN0LT5vYmplY3QoKSk7CisgICAgICAgIGNvbnRleHRHTC0+YmluZFZlcnRleEFy
cmF5KGFycmF5T2JqZWN0LT5vYmplY3QoKSk7CiAgICAgICAgIGFycmF5T2JqZWN0LT5zZXRIYXNF
dmVyQmVlbkJvdW5kKCk7CiAgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVj
dChsb2NrZXIsIGFycmF5T2JqZWN0KTsKICAgICB9IGVsc2UgewotICAgICAgICBleHRlbnNpb25z
LmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKKyAgICAgICAgY29udGV4dEdMLT5iaW5kVmVydGV4QXJy
YXkoMCk7CiAgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChsb2NrZXIs
IG51bGxwdHIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggOWYzN2Y5ZjNlNGE1Zjc3
ZDQyODc5ZDZhZDliYzY1NTE2ODk2MTE5NC4uYzhkYTE4ZTc2OTRlY2ZmNzkxOThhOTFjYjM0YWNj
ZThlNGNlOTcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTMxNjUsNyArMzE2NSw3IEBAIFdlYkdM
QW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihHQ0dMZW51bSBwbmFt
ZSkKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRH
TDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUs
IFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OlZFUlRFWF9BUlJBWV9CSU5ESU5HX09F
UzogLy8gT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
OjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAg
ICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAobV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggZGU0YWY3ZTdhNmE1OTFkNjI4
NDU5MTZjOTM4Y2RjZjRjY2MyMGNlMS4uMTEwY2M3NzVhNGZkNzhlYTMyOTM0YTU2MDFiNDk1YjJk
OWUwZDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJgogICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUeXBlOjpVc2VyOgotICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4dCgpLT5ncmFw
aGljc0NvbnRleHRHTCgpLT5nZXRFeHRlbnNpb25zKCkuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSk7
CisgICAgICAgIHNldE9iamVjdCh0aGlzLT5jb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dEdMKCkt
PmNyZWF0ZVZlcnRleEFycmF5KCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC02NSw3
ICs2NSw3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0SW1w
bChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiBsb2NrCiAgICAgY2FzZSBUeXBlOjpEZWZhdWx0
OgogICAgICAgICBicmVhazsKICAgICBjYXNlIFR5cGU6OlVzZXI6Ci0gICAgICAgIGNvbnRleHQz
ZC0+Z2V0RXh0ZW5zaW9ucygpLmRlbGV0ZVZlcnRleEFycmF5T0VTKG9iamVjdCk7CisgICAgICAg
IGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnNH
TC5oCmluZGV4IGFjOGM4ODkzMjM0NTY3MmU5ZDA1M2ZjZDk3YTIyZGE4ZTk5MDVlOGMuLjZmOTkw
ZmRmODdlMGEwYmJmZTY2YWQzNjY4ZjhhNjZmZjM2NDU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnNHTC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnNHTC5oCkBAIC0yODEsMTIgKzI4MSw2IEBA
IHB1YmxpYzoKICAgICAvLyBleHRlcm5hbGx5LgogICAgIHZpcnR1YWwgR0NHTGludCBnZXRHcmFw
aGljc1Jlc2V0U3RhdHVzQVJCKCkgPSAwOwogCi0gICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9v
YmplY3QKLSAgICB2aXJ0dWFsIFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMo
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xP
YmplY3QpID0gMDsKLSAgICB2aXJ0dWFsIEdDR0xib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm1HTE9iamVjdCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMo
UGxhdGZvcm1HTE9iamVjdCkgPSAwOwotCiAgICAgLy8gR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlCiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKFBsYXRmb3JtR0xPYmplY3QpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggZDI4M2ViMGE4YzNmZmU3
YzJiZjcyOGViNTQ4MTNiOWU4NmM4ZWU4Ny4uNzdhZTM0M2I0MGY1M2ZiOTcyOGMzMDliNzg1NTI1
NmQ5ZWZmYTRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRHTC5oCkBAIC01NzcsNiArNTc3LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgR0NHTGVudW0gUkczMkkgPSAweDgyM0I7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHQ0dMZW51bSBSRzMyVUkgPSAweDgyM0M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHQ0dM
ZW51bSBWRVJURVhfQVJSQVlfQklORElORyA9IDB4ODVCNTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdDR0xlbnVtIFZFUlRFWF9BUlJBWV9CSU5ESU5HX09FUyA9IDB4ODVCNTsKICAgICBzdGF0aWMg
Y29uc3RleHByIEdDR0xlbnVtIFI4X1NOT1JNID0gMHg4Rjk0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgR0NHTGVudW0gUkc4X1NOT1JNID0gMHg4Rjk1OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR0NH
TGVudW0gUkdCOF9TTk9STSA9IDB4OEY5NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xFLmNwcAppbmRleCBm
NTQwYWIzY2E4NTBiMWYyN2NjNjJlZTk2NGNmMDRlMWQ4MTVlOGFhLi5jMmYwNDgyMzk5NWY3NDAy
NDEzNjAyZGYzMTRjOGI2Mjc3Y2FiNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3BwCkBAIC0x
MDcsNDYgKzEwNyw2IEBAIHZvaWQgRXh0ZW5zaW9uc0dMQU5HTEU6OmluaXRpYWxpemVBdmFpbGFi
bGVFeHRlbnNpb25zKCkKICAgICBtX2luaXRpYWxpemVkQXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRy
dWU7CiB9CiAKLVBsYXRmb3JtR0xPYmplY3QgRXh0ZW5zaW9uc0dMQU5HTEU6OmNyZWF0ZVZlcnRl
eEFycmF5T0VTKCkKLXsKLSAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgR0x1aW50IGFycmF5ID0gMDsKLSAgICBnbDo6R2Vu
VmVydGV4QXJyYXlzT0VTKDEsICZhcnJheSk7Ci0gICAgcmV0dXJuIGFycmF5OwotfQotCi12b2lk
IEV4dGVuc2lvbnNHTEFOR0xFOjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdMT2JqZWN0
IGFycmF5KQotewotICAgIGlmICghYXJyYXkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgh
bV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Z2w6OkRlbGV0ZVZlcnRleEFycmF5c09FUygxLCAmYXJyYXkpOwotfQotCi1HQ0dMYm9vbGVhbiBF
eHRlbnNpb25zR0xBTkdMRTo6aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdMT2JqZWN0IGFycmF5
KQotewotICAgIGlmICghYXJyYXkpCi0gICAgICAgIHJldHVybiBHTF9GQUxTRTsKLQotICAgIGlm
ICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuIEdMX0ZB
TFNFOwotCi0gICAgcmV0dXJuIGdsOjpJc1ZlcnRleEFycmF5T0VTKGFycmF5KTsKLX0KLQotdm9p
ZCBFeHRlbnNpb25zR0xBTkdMRTo6YmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3Qg
YXJyYXkpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBnbDo6QmluZFZlcnRleEFycmF5T0VTKGFycmF5KTsKLX0KLQog
Ym9vbCBFeHRlbnNpb25zR0xBTkdMRTo6c3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQogewogICAgIHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMobmFtZSkg
fHwgbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnMuY29udGFpbnMobmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuaAppbmRleCA4OWVkYzE3OTFjOGUzZTQxNjM2NGI4NTYwYzYzOGM0ODY5ZWIzMzA4Li5hMWQ1
YmJiOWM3ZWI5OTBjNzMwNTUyMTNmODEwZDExNzExMjc2MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNHTEFOR0xF
LmgKQEAgLTQ3LDEwICs0Nyw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzRW5hYmxlZChjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKICAgICBHQ0dMaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIo
KSBvdmVycmlkZTsKIAotICAgIFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmpl
Y3QpIG92ZXJyaWRlOwotICAgIEdDR0xib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1H
TE9iamVjdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1H
TE9iamVjdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChHQ0dMU3Bhbjxjb25z
dCBHQ0dMZW51bT4pIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAKaW5kZXggZjQyZGYwZGYwNDRlZGYyZTBlNTc0MzMwOGFiZjE2NjQwNTdm
NTUxMS4uNGY5ZWY1YjdiOTc4NDE0YWViZTM4MDlmZWRhMWNiZGM4NWVhZWNiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTE3MTEsNyArMTcxMSwxMCBAQCBQbGF0Zm9y
bUdMT2JqZWN0IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgR0x1aW50IGFycmF5ID0gMDsKLSAgICBnbDo6R2VuVmVy
dGV4QXJyYXlzKDEsICZhcnJheSk7CisgICAgaWYgKG1faXNGb3JXZWJHTDIpCisgICAgICAgIGds
OjpHZW5WZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKKyAgICBlbHNlCisgICAgICAgIGdsOjpHZW5W
ZXJ0ZXhBcnJheXNPRVMoMSwgJmFycmF5KTsKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKQEAgLTE3
MjEsOCArMTcyNCwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZWxldGVWZXJ0
ZXhBcnJheShQbGF0Zm9ybUdMT2JqZWN0IGFycmF5KQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgZ2w6OkRlbGV0
ZVZlcnRleEFycmF5cygxLCAmYXJyYXkpOworICAgIGlmIChtX2lzRm9yV2ViR0wyKQorICAgICAg
ICBnbDo6RGVsZXRlVmVydGV4QXJyYXlzKDEsICZhcnJheSk7CisgICAgZWxzZQorICAgICAgICBn
bDo6RGVsZXRlVmVydGV4QXJyYXlzT0VTKDEsICZhcnJheSk7CiB9CiAKIEdDR0xib29sZWFuIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZlcnRleEFycmF5KFBsYXRmb3JtR0xPYmplY3QgYXJy
YXkpCkBAIC0xNzMyLDE1ICsxNzM3LDE5IEBAIEdDR0xib29sZWFuIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjppc1ZlcnRleEFycmF5KFBsYXRmb3JtR0xPYmplY3QgYXJyYXkpCiAgICAgaWYgKCFt
YWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIEdMX0ZBTFNFOwogCi0gICAgcmV0
dXJuIGdsOjpJc1ZlcnRleEFycmF5KGFycmF5KTsKKyAgICBpZiAobV9pc0ZvcldlYkdMMikKKyAg
ICAgICAgcmV0dXJuIGdsOjpJc1ZlcnRleEFycmF5KGFycmF5KTsKKyAgICByZXR1cm4gZ2w6Oklz
VmVydGV4QXJyYXlPRVMoYXJyYXkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpiaW5kVmVydGV4QXJyYXkoUGxhdGZvcm1HTE9iamVjdCBhcnJheSkKIHsKICAgICBpZiAoIW1h
a2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47Ci0KLSAgICBnbDo6QmluZFZlcnRl
eEFycmF5KGFycmF5KTsKKyAgICBpZiAobV9pc0ZvcldlYkdMMikKKyAgICAgICAgZ2w6OkJpbmRW
ZXJ0ZXhBcnJheShhcnJheSk7CisgICAgZWxzZQorICAgICAgICBnbDo6QmluZFZlcnRleEFycmF5
T0VTKGFycmF5KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0Qm9vbGVh
bnYoR0NHTGVudW0gcG5hbWUsIEdDR0xTcGFuPEdDR0xib29sZWFuPiB2YWx1ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnNHTE9wZW5HTC5jcHAKaW5kZXggODZkMTljYWFmYjZlM2YwZTMyMWRlMTczMjEyYTU0ZmNl
NjFmNzFlYy4uNTFjYmU2YjdlMTNiODBhZjcxMmUzZWZlNzZiNjI1MTU4MzQ5ZmY0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTU3LDggKzU3LDYgQEAgUGxhdGZvcm1HTE9iamVj
dCBFeHRlbnNpb25zR0xPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5T0VTKCkKICNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBpZiAoaXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBv
cnRlZCgpKQogICAgICAgICBnbEdlblZlcnRleEFycmF5cygxLCAmYXJyYXkpOwotI2VsaWYgZGVm
aW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJy
YXlfb2JqZWN0Ci0gICAgZ2xHZW5WZXJ0ZXhBcnJheXNBUFBMRSgxLCAmYXJyYXkpOwogI2VuZGlm
CiAgICAgcmV0dXJuIGFycmF5OwogfQpAQCAtNzQsOCArNzIsNiBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9iamVjdCBhcnJheSkKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBpZiAoaXNWZXJ0ZXhBcnJheU9i
amVjdFN1cHBvcnRlZCgpKQogICAgICAgICBnbERlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJyYXkp
OwotI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBM
RV92ZXJ0ZXhfYXJyYXlfb2JqZWN0Ci0gICAgZ2xEZWxldGVWZXJ0ZXhBcnJheXNBUFBMRSgxLCAm
YXJyYXkpOwogI2VuZGlmCiB9CiAKQEAgLTkwLDggKzg2LDYgQEAgR0NHTGJvb2xlYW4gRXh0ZW5z
aW9uc0dMT3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QgYXJyYXkpCiAj
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgaWYgKGlzVmVydGV4QXJyYXlP
YmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgcmV0dXJuIGdsSXNWZXJ0ZXhBcnJheShhcnJheSk7
Ci0jZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExF
X3ZlcnRleF9hcnJheV9vYmplY3QKLSAgICByZXR1cm4gZ2xJc1ZlcnRleEFycmF5QVBQTEUoYXJy
YXkpOwogI2VuZGlmCiAgICAgcmV0dXJuIEdMX0ZBTFNFOwogfQpAQCAtMTA0LDEwICs5OCw2IEBA
IHZvaWQgRXh0ZW5zaW9uc0dMT3BlbkdMOjpiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9i
amVjdCBhcnJheSkKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBpZiAo
aXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICBnbEJpbmRWZXJ0ZXhBcnJh
eShhcnJheSk7Ci0jZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYm
IEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKLSAgICBnbEJpbmRWZXJ0ZXhBcnJheUFQUExF
KGFycmF5KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGFycmF5KTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMQ29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmgKaW5kZXggYWQ4NDM1OWQ4M2JkYWNmZjIz
YjczYTY1NzQzNDY3MGM1N2Y2MzRjYy4uYjUxZTYyZmVlOTg5ZmZlMjAwZTljNWE4ZTU4YTU1ZDk3
MWJlNGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uaApAQCAtNDYsMTAg
KzQ2LDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzRW5hYmxlZChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKICAgICBpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIG92ZXJyaWRlOwogCi0g
ICAgUGxhdGZvcm1HTE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpIG92ZXJyaWRlID0gMDsK
LSAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRl
ID0gMDsKLSAgICBHQ0dMYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3Qp
IG92ZXJyaWRlID0gMDsKLSAgICB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdMT2Jq
ZWN0KSBvdmVycmlkZSA9IDA7CisgICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QpID0g
MDsKKyAgICB2aXJ0dWFsIEdDR0xib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1H
TE9iamVjdCkgPSAwOwogCiAgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChHQ0dMU3Bhbjxjb25zdCBH
Q0dMZW51bT4pIG92ZXJyaWRlID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29tbW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvbW1vbi5jcHAKaW5kZXggMmI5Y2E0ZDIwNTM2OGViMDFiYzdkMjdkZThlYWQzOThh
M2E4NzhhNS4uYTc2YWM4YjU3NDc3MDE0ZjA4Y2YyOGM0YzA5MTJmNDhhOGE4NWFjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb21tb24uY3BwCkBAIC0xNTkxLDUz
ICsxNTkxLDIyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnZpZXdwb3J0KEdDR0xp
bnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDCiAKIFBsYXRmb3JtR0xPYmplY3Qg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5KCkKIHsKLSAgICBpZiAo
IW1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdMdWludCBh
cnJheSA9IDA7Ci0jaWYgKCFVU0UoT1BFTkdMX0VTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pKSkgfHwgUExBVEZPUk0oQ09DT0EpCi0gICAgOjpnbEdlblZlcnRleEFycmF5cygx
LCAmYXJyYXkpOwotI2VuZGlmCi0gICAgcmV0dXJuIGFycmF5OworICAgIHJldHVybiBnZXRFeHRl
bnNpb25zKCkuY3JlYXRlVmVydGV4QXJyYXlPRVMoKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm1HTE9iamVjdCBhcnJheSkKIHsK
LSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKCFtYWtlQ29u
dGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgKCFVU0UoT1BFTkdMX0VTKSAm
JiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSkgfHwgUExBVEZPUk0oQ09DT0EpCi0g
ICAgOjpnbERlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJyYXkpOwotI2VuZGlmCisgICAgZ2V0RXh0
ZW5zaW9ucygpLmRlbGV0ZVZlcnRleEFycmF5T0VTKGFycmF5KTsKIH0KIAogR0NHTGJvb2xlYW4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmVydGV4QXJyYXkoUGxhdGZvcm1HTE9iamVjdCBh
cnJheSkKIHsKLSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1cm4gR0xfRkFMU0U7Ci0gICAg
Ci0gICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuIEdMX0ZBTFNF
OwotCi0jaWYgKCFVU0UoT1BFTkdMX0VTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pKSkgfHwgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIDo6Z2xJc1ZlcnRleEFycmF5KGFy
cmF5KTsKLSNlbmRpZgotICAgIHJldHVybiBHTF9GQUxTRTsKKyAgICByZXR1cm4gZ2V0RXh0ZW5z
aW9ucygpLmlzVmVydGV4QXJyYXlPRVMoYXJyYXkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpiaW5kVmVydGV4QXJyYXkoUGxhdGZvcm1HTE9iamVjdCBhcnJheSkKIHsKLSAg
ICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSNpZiAoIVVT
RShPUEVOR0xfRVMpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikpKSB8fCBQTEFU
Rk9STShDT0NPQSkKLSAgICA6OmdsQmluZFZlcnRleEFycmF5KGFycmF5KTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGFycmF5KTsKLSNlbmRpZgorICAgIGdldEV4dGVuc2lvbnMoKS5iaW5kVmVy
dGV4QXJyYXlPRVMoYXJyYXkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpn
ZXRCb29sZWFudihHQ0dMZW51bSBwbmFtZSwgR0NHTFNwYW48R0NHTGJvb2xlYW4+IHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCmluZGV4IDZhMDgzOWUyZGEz
ZDY1OGNlNzVkZTRhNDMxZDdiZTkxZTQwNGZmYTguLjE1ZjljMWQxOTM5Zjk5YWRiZDA1MjViZGI1
MTRmNWFiZDUzODBmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMu
aW4KQEAgLTI3NywxMCArMjc3LDYgQEAgbWVzc2FnZXMgLT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAgIHZvaWQgVW5pZm9ybUJsb2NrQmluZGluZyh1
aW50MzJfdCBwcm9ncmFtLCB1aW50MzJfdCB1bmlmb3JtQmxvY2tJbmRleCwgdWludDMyX3QgdW5p
Zm9ybUJsb2NrQmluZGluZykKICAgICB2b2lkIEdldEFjdGl2ZVVuaWZvcm1CbG9ja2l2KHVpbnQz
Ml90IHByb2dyYW0sIHVpbnQzMl90IHVuaWZvcm1CbG9ja0luZGV4LCB1aW50MzJfdCBwbmFtZSwg
dWludDY0X3QgcGFyYW1zU2l6ZSkgLT4gKElQQzo6QXJyYXlSZWZlcmVuY2U8aW50MzJfdD4gcGFy
YW1zKSBTeW5jaHJvbm91cwogICAgIHZvaWQgR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIC0+
IChpbnQzMl90IHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwotICAgIHZvaWQgQ3JlYXRlVmVydGV4
QXJyYXlPRVMoKSAtPiAodWludDMyX3QgcmV0dXJuVmFsdWUpIFN5bmNocm9ub3VzCi0gICAgdm9p
ZCBEZWxldGVWZXJ0ZXhBcnJheU9FUyh1aW50MzJfdCBhcmcwKQotICAgIHZvaWQgSXNWZXJ0ZXhB
cnJheU9FUyh1aW50MzJfdCBhcmcwKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMK
LSAgICB2b2lkIEJpbmRWZXJ0ZXhBcnJheU9FUyh1aW50MzJfdCBhcmcwKQogICAgIHZvaWQgR2V0
VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKHVpbnQzMl90IGFyZzApIC0+IChTdHJpbmcgcmV0
dXJuVmFsdWUpIFN5bmNocm9ub3VzCiAgICAgdm9pZCBEcmF3QnVmZmVyc0VYVChJUEM6OkFycmF5
UmVmZXJlbmNlPHVpbnQzMl90PiBidWZzKQogICAgIHZvaWQgRHJhd0FycmF5c0luc3RhbmNlZEFO
R0xFKHVpbnQzMl90IG1vZGUsIGludDMyX3QgZmlyc3QsIGludDMyX3QgY291bnQsIGludDMyX3Qg
cHJpbWNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNH
ZW5lcmF0ZWQuaAppbmRleCBkYjRmYmE1NDZkMjg3MGViMDhmOTE4M2UxOTNhNWUxYjQ4YmY2ODdk
Li4xMDllMDFlOGMzNmRjZWZmZTI0OTA1MGYzM2MwZjY4MGMyYWNjZDk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xG
dW5jdGlvbnNHZW5lcmF0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaApAQCAtMTEwNCwy
NiArMTEwNCw2IEBACiAgICAgICAgIHJldHVyblZhbHVlID0gbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOwogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXR1cm5WYWx1ZSk7CiAgICAgfQotICAgIHZvaWQgY3JlYXRlVmVydGV4QXJyYXlPRVMo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50MzJfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgewotICAgICAgICBQbGF0Zm9ybUdMT2JqZWN0IHJldHVyblZhbHVlID0geyB9OwotICAgICAg
ICByZXR1cm5WYWx1ZSA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmNyZWF0ZVZlcnRleEFy
cmF5T0VTKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJldHVyblZhbHVlKTsKLSAgICB9
Ci0gICAgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyh1aW50MzJfdCBhcmcwKQotICAgIHsKLSAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJyYXlPRVMoYXJn
MCk7Ci0gICAgfQotICAgIHZvaWQgaXNWZXJ0ZXhBcnJheU9FUyh1aW50MzJfdCBhcmcwLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotICAgIHsKLSAg
ICAgICAgR0NHTGJvb2xlYW4gcmV0dXJuVmFsdWUgPSB7IH07Ci0gICAgICAgIHJldHVyblZhbHVl
ID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuaXNWZXJ0ZXhBcnJheU9FUyhhcmcwKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RhdGljX2Nhc3Q8Ym9vbD4ocmV0dXJuVmFsdWUpKTsK
LSAgICB9Ci0gICAgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVModWludDMyX3QgYXJnMCkKLSAgICB7
Ci0gICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmJpbmRWZXJ0ZXhBcnJheU9FUyhh
cmcwKTsKLSAgICB9CiAgICAgdm9pZCBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUodWlu
dDMyX3QgYXJnMCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiAgICAgewogICAgICAgICBTdHJpbmcgcmV0dXJuVmFsdWUgPSB7IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCmluZGV4IDE5Y2M3NzcxYTYwMjdjZDBi
ODdmOTcyY2JlMWQ2NzE5ZTJkYTFhNzcuLmI0YjcxMGE1OTVkODVkODhiZWFhYmU2YWYzZDE3MzE3
YWNiY2ViYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCkBAIC0z
MDgsMTAgKzMwOCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRpbmcoUGxh
dGZvcm1HTE9iamVjdCBwcm9ncmFtLCBHQ0dMdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0NHTHVp
bnQgdW5pZm9ybUJsb2NrQmluZGluZykgZmluYWw7CiAgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3Jt
QmxvY2tpdihHQ0dMdWludCBwcm9ncmFtLCBHQ0dMdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0NH
TGVudW0gcG5hbWUsIEdDR0xTcGFuPEdDR0xpbnQ+IHBhcmFtcykgZmluYWw7CiAgICAgR0NHTGlu
dCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgZmluYWw7Ci0gICAgUGxhdGZvcm1HTE9iamVj
dCBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpIGZpbmFsOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm1HTE9iamVjdCBhcmcwKSBmaW5hbDsKLSAgICBHQ0dMYm9vbGVhbiBpc1Zl
cnRleEFycmF5T0VTKFBsYXRmb3JtR0xPYmplY3QgYXJnMCkgZmluYWw7Ci0gICAgdm9pZCBiaW5k
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9iamVjdCBhcmcwKSBmaW5hbDsKICAgICBTdHJpbmcg
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtR0xPYmplY3QgYXJnMCkgZmlu
YWw7CiAgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChHQ0dMU3Bhbjxjb25zdCBHQ0dMZW51bT4gYnVm
cykgZmluYWw7CiAgICAgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoR0NHTGVudW0gbW9k
ZSwgR0NHTGludCBmaXJzdCwgR0NHTHNpemVpIGNvdW50LCBHQ0dMc2l6ZWkgcHJpbWNvdW50KSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwCmluZGV4IGNjYTZjYTAyOTJmYWFkMTY2MjhiM2E4
NTNmN2Q1NTE3Y2JjMGRkYWQuLmM4MTNlOGY0MmJiNjI3NWM3YTU2NWZiMTMzOThlYjNhYTViNjUx
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcApAQCAtMjI5OCw0NiArMjI5OCw2IEBAIEdDR0xp
bnQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FS
QigpCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1QbGF0Zm9ybUdMT2JqZWN0IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNyZWF0ZVZlcnRleEFycmF5T0VTKCkKLXsKLSAgICB1
aW50MzJfdCByZXR1cm5WYWx1ZSA9IHsgfTsKLSAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewot
ICAgICAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OkNyZWF0ZVZlcnRleEFycmF5T0VTKCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Q3JlYXRlVmVydGV4QXJyYXlPRVM6OlJlcGx5KHJldHVyblZhbHVlKSk7
Ci0gICAgICAgIGlmICghc2VuZFJlc3VsdCkKLSAgICAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgp
OwotICAgIH0KLSAgICByZXR1cm4gcmV0dXJuVmFsdWU7Ci19Ci0KLXZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm1HTE9iamVjdCBh
cmcwKQotewotICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7Ci0gICAgICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpEZWxldGVWZXJ0
ZXhBcnJheU9FUyhhcmcwKSk7Ci0gICAgICAgIGlmICghc2VuZFJlc3VsdCkKLSAgICAgICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgIH0KLX0KLQotR0NHTGJvb2xlYW4gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybUdMT2JqZWN0IGFyZzAp
Ci17Ci0gICAgYm9vbCByZXR1cm5WYWx1ZSA9IHsgfTsKLSAgICBpZiAoIWlzQ29udGV4dExvc3Qo
KSkgewotICAgICAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OklzVmVydGV4QXJyYXlPRVMoYXJnMCksIE1lc3NhZ2VzOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6SXNWZXJ0ZXhBcnJheU9FUzo6UmVwbHkocmV0dXJuVmFsdWUp
KTsKLSAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQotICAgICAgICAgICAgbWFya0NvbnRleHRMb3N0
KCk7Ci0gICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxHQ0dMYm9vbGVhbj4ocmV0dXJuVmFs
dWUpOwotfQotCi12b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmJpbmRWZXJ0ZXhB
cnJheU9FUyhQbGF0Zm9ybUdMT2JqZWN0IGFyZzApCi17Ci0gICAgaWYgKCFpc0NvbnRleHRMb3N0
KCkpIHsKLSAgICAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZChNZXNzYWdlczo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OkJpbmRWZXJ0ZXhBcnJheU9FUyhhcmcwKSk7Ci0gICAgICAgIGlmICgh
c2VuZFJlc3VsdCkKLSAgICAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwotICAgIH0KLX0KLQog
U3RyaW5nIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0IGFyZzApCiB7CiAgICAgU3RyaW5nIHJldHVyblZh
bHVlID0geyB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>