<?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>218839</bug_id>
          
          <creation_ts>2020-11-11 19:50:02 -0800</creation_ts>
          <short_desc>[GPU Process] Delete the DisplayList items: DrawImage and DrawTiledImage</short_desc>
          <delta_ts>2020-11-11 22:10:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706741</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 19:50:02 -0800</bug_when>
    <thetext>This is clean up left from r269708. These DisplayList items are not needed anymore. The default implementation of the recording functions in GraphicsContextImpl was to call Image::draw() or Image::drawTiled() which we do right now by not recording in the functions: GraphicsContext::drawImage() and GraphicsContext::drawTiledImage().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706746</commentid>
    <comment_count>1</comment_count>
      <attachid>413904</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 20:08:30 -0800</bug_when>
    <thetext>Created attachment 413904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706764</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-11 22:09:46 -0800</bug_when>
    <thetext>Committed r269716: &lt;https://trac.webkit.org/changeset/269716&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413904.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706765</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-11 22:10:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/71313804&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413904</attachid>
            <date>2020-11-11 20:08:30 -0800</date>
            <delta_ts>2020-11-11 22:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218839-20201111200829.patch</filename>
            <type>text/plain</type>
            <size>48520</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5ZTkyYjk5NTVlNDlh
ZTMwMDE1ODA0M2VmMDJmODQ4MmQ3NDM4ZC4uZGY1ZDZiYzNiYWI4OTkwYjZmZmQ5NzljMmZlYzJi
ZGY2MDBkMTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
RGVsZXRlIHRoZSBEaXNwbGF5TGlzdCBpdGVtczogRHJhd0ltYWdlIGFuZCBEcmF3VGlsZWRJbWFn
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
cyBjbGVhbiB1cCBsZWZ0IGZyb20gcjI2OTcwOC4gVGhlc2UgRGlzcGxheUxpc3QgaXRlbXMgYXJl
IG5vdCBuZWVkZWQKKyAgICAgICAgYW55bW9yZS4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24g
b2YgdGhlIHJlY29yZGluZyBmdW5jdGlvbnMgaW4gdGhlIHN1cGVyCisgICAgICAgIGNsYXNzZXMg
b2YgR3JhcGhpY3NDb250ZXh0SW1wbCB3YXMgdG8gY2FsbCBJbWFnZTo6ZHJhdygpIG9yIEltYWdl
OjpkcmF3VGlsZWQoKQorICAgICAgICB3aGljaCB3ZSBkbyByaWdodCBub3cgYnkgbm90IHJlY29y
ZGluZyBpbiB0aGUgZnVuY3Rpb25zOgorICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZSgpIGFuZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKCkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdJbWFnZUltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENh
aXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJh
d0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxD
YWlybzo6ZHJhd1RpbGVkSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRl
cjo6cmVjb3JkRHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbUhhbmRsZTo6Y29weVRvIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Omlz
SW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdl
OjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd1RpbGVkSW1hZ2U6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3VGlsZWRTY2FsZWRJbWFnZTo6YXBwbHkgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpEcmF3SW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZTo6
aW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdJbWFnZTo6c291cmNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3SW1hZ2U6OmRlc3RpbmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6Omdsb2JhbEJvdW5kcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpsb2NhbEJv
dW5kcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0ltYWdlOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdJbWFnZTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3VGlsZWRJbWFnZTo6aW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdUaWxlZEltYWdlOjpzb3VyY2UgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdUaWxlZEltYWdlOjpk
ZXN0aW5hdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1RpbGVkSW1hZ2U6OnRpbGVTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3VGlsZWRJbWFnZTo6c3BhY2luZyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1RpbGVkSW1hZ2U6OkRyYXdU
aWxlZEltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
VGlsZWRJbWFnZTo6Z2xvYmFsQm91bmRzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3VGlsZWRJbWFnZTo6bG9jYWxCb3VuZHMgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdUaWxlZEltYWdlOjplbmNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdU
aWxlZEltYWdlOjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdUaWxlZFNjYWxlZEltYWdlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6Omlt
YWdlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
VGlsZWRTY2FsZWRJbWFnZTo6c291cmNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3VGlsZWRTY2FsZWRJbWFnZTo6ZGVzdGluYXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdUaWxlZFNjYWxl
ZEltYWdlOjpnbG9iYWxCb3VuZHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdUaWxlZFNjYWxlZEltYWdlOjpsb2NhbEJvdW5kcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1RpbGVkU2NhbGVkSW1h
Z2U6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2UpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3VGlsZWRJbWFn
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcDoKKyAgICAgICAgKE5pY29z
aWE6OkNhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAg
IChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0SW1wbERpcmVjdDJEOjpkcmF3SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJEOjpkcmF3VGlsZWRJbWFnZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dEltcGxE
aXJlY3QyRC5oOgorCiAyMDIwLTExLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2FjaGUgdGhlIE5hdGl2ZUltYWdlIGluIEdQ
VSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTIwNmQ3MjAwYzViZGEyNmZmYWRkNzJhMWJiNTFhMTY3
YmE2ZTYyMy4uODlhYzYzMGMwYjY3YWIyODhjYmE0ZWE1YTM3YjJlNTQwMTNjZmMzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMS0xMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIERlbGV0ZSB0aGUgRGlzcGxheUxp
c3QgaXRlbXM6IERyYXdJbWFnZSBhbmQgRHJhd1RpbGVkSW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODgzOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTExICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2UgcG9pbnRz
IGZvciB0aGUgR1BVIHByb2Nlc3MgZGlzcGxheSBsaXN0IHByb2Nlc3NpbmcgbG9vcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJ
bXBsLmNwcAppbmRleCBjZThlMTcyYTE2MWFlNDZhZWEyODgyNzllYmM5MDg2MTNlMmNjZWY5Li4x
MTZlY2JlNDg3ZjEyNzMwYzkzMzJmYTExMDc2YzI2NzkxNzdmZTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNw
cApAQCAtMzcsMjcgKzM3LDQgQEAgR3JhcGhpY3NDb250ZXh0SW1wbDo6fkdyYXBoaWNzQ29udGV4
dEltcGwoKQogewogfQogCi1JbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJh
d0ltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBpbWFnZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQotewotICAgIEludGVycG9sYXRpb25RdWFsaXR5
TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBvcHRp
b25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3KGNvbnRl
eHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwotfQotCi1JbWFnZURyYXdSZXN1bHQg
R3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCi17
Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5
Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7Ci0g
ICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCB0
aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7Ci19Ci0KLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGlj
c0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRp
bGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQotewotICAgIGlmIChoUnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUg
JiYgdlJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlKSB7Ci0gICAgICAgIC8vIEp1c3QgZG8gYSBz
Y2FsZS4KLSAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1hZ2UsIGRlc3Rp
bmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBv
cHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGls
ZWQoY29udGV4dCwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwg
dlJ1bGUsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaAppbmRleCA5ZDQ0MGQwNTNiMDc4MGQ4ZDQyNWI2NmViOTUxMGQ2
MWRjOGVjZDgyLi44ZmJjODcyM2UzM2RmYTQzNjVhZmUzN2RlMjU3ZGFmMjUxOGQxYmUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0SW1wbC5oCkBAIC02OSwxMCArNjksNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXImLCB1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250
U21vb3RoaW5nTW9kZSkgPSAwOwogCi0gICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0lt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwotICAgIHZpcnR1YWwg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgPSAwOwotICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUgaFJ1
bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9
IDA7Ci0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CkBAIC0xMTQs
MTEgKzExMCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJvdW5kVG9EZXZp
Y2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiwgR3JhcGhpY3NDb250ZXh0OjpSb3VuZGluZ01vZGUp
ID0gMDsKIAotcHJvdGVjdGVkOgotICAgIHN0YXRpYyBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdl
SW1wbChHcmFwaGljc0NvbnRleHQmLCBJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7Ci0gICAgc3RhdGljIEltYWdl
RHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0JiwgSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29u
c3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKLSAgICBzdGF0aWMg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmLCBJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYs
IEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAg
ICAgR3JhcGhpY3NDb250ZXh0JiBtX2dyYXBoaWNzQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWly
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IGQyY2Y0OTVmZjkwYWEzNjE4YmYyZjZjNjA2YWFmYzFm
NGRiOTU5M2QuLmNlODU3ZmQyYTMxNzA2Y2Y0YzFmZmM4MTU0YmMyMDBiMDA0NzAzMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcApAQCAtMjY0LDIxICsyNjQsNiBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250
LCBjb25zdCBHbHlwaEJ1ZmZlciYgZwogICAgICAgICBmb250U21vb3RoaW5nKTsKIH0KIAotSW1h
Z2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0ltYWdlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKLXsK
LSAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd0ltYWdlSW1wbChncmFwaGljc0Nv
bnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25z
KTsKLX0KLQotSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1Rp
bGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRp
bmdPcHRpb25zKQotewotICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJ
bWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0
aWxlU2l6ZSwgc3BhY2luZywgaW1hZ2VQYWludGluZ09wdGlvbnMpOwotfQotCi1JbWFnZURyYXdS
ZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxl
LCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFn
ZVBhaW50aW5nT3B0aW9ucykKLXsKLSAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJh
d1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNv
dXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25z
KTsKLX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAg
ICAgaW1hZ2UuZHJhdyhncmFwaGljc0NvbnRleHQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlv
bnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAppbmRleCAzMWEwZjU0MDBlZTg0
ZTA4YjBjNWRkNGY4ZTUyZjE5NzM1MzVkNmViLi41ZjQxODQ1NzlkYzgyM2IzZTY1Zjc5MWQ3YmYx
Njg0MDc2NzhjMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaApAQCAtNzEs
MTAgKzcxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBj
b25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRmxvYXRQb2ludCYs
IEZvbnRTbW9vdGhpbmdNb2RlKSBvdmVycmlkZTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYs
IEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwotICAgIAogICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJ
bWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3
UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dC5jcHAKaW5kZXggNDY4YTNkNTU0NTYyYTk2NzYzNWRjMWI3Njk5ZmEyNTY2ZjRjYTg3Yy4uNTUw
NDk1MDQ5NzEzMTcyMjIyMTdlZTJmZmQyMjFjMzNiZTZkODNhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwCkBAIC0yMzIsMTIgKzIzMiw2IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJ
dGVtSGFuZGxlIGl0ZW0pCiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAg
ICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd0dseXBocz4oaXRlbS5nZXQ8RHJhd0dseXBocz4oKSk7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICByZXR1cm4gYXBwZW5kPERy
YXdJbWFnZT4oaXRlbS5nZXQ8RHJhd0ltYWdlPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
VGlsZWRJbWFnZToKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxEcmF3VGlsZWRJbWFnZT4oaXRlbS5n
ZXQ8RHJhd1RpbGVkSW1hZ2U+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxl
ZEltYWdlOgotICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdUaWxlZFNjYWxlZEltYWdlPihpdGVt
LmdldDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0lt
YWdlQnVmZmVyOgogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdJbWFnZUJ1ZmZlcj4oaXRlbS5n
ZXQ8RHJhd0ltYWdlQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1h
Z2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKaW5kZXggNGNkMDJhOGU2YThkMzdhMTllNDAzMDE4NDUz
MDhiOWRlMmQ0NmUyYy4uOGJjMDAxNDI4MjBlOTczOTY1ZWJhNWE5M2QwNmEwMzA5Yjg2OTVkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlw
aHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMzUyLDggKzM1Miw4IEBAIHZvaWQgRHJhd0dseXBo
c1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UoQ0dSZW5kZXJpbmdTdGF0ZVJlZiwgQ0dHU3RhdGVS
ZWYgZ3N0YXRlCiAgICAgbV9vd25lci50cmFuc2xhdGUoMCwgcmVjdC5zaXplLmhlaWdodCArIDIg
KiByZWN0Lm9yaWdpbi55KTsKICAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwog
Ci0gICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoY2dJbWFnZSk7Ci0gICAgbV9v
d25lci5hcHBlbmQ8RHJhd0ltYWdlPihpbWFnZSwgRmxvYXRSZWN0KHJlY3QpLCBGbG9hdFJlY3Qg
e3sgfSwgaW1hZ2UtPnNpemUoKX0sIEltYWdlUGFpbnRpbmdPcHRpb25zIHsgSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luVG9wTGVmdCB9KTsKKyAgICBhdXRvIGltYWdlID0gTmF0aXZlSW1hZ2U6OmNy
ZWF0ZShhZG9wdENGKGNnSW1hZ2UpKTsKKyAgICBtX293bmVyLmRyYXdOYXRpdmVJbWFnZSgqaW1h
Z2UsIGltYWdlLT5zaXplKCksIEZsb2F0UmVjdChyZWN0KSwgRmxvYXRSZWN0IHt7IH0sIGltYWdl
LT5zaXplKCl9LCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7IEltYWdlT3JpZW50YXRpb246Ok9yaWdp
blRvcExlZnQgfSk7CiAKICAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVzdG9yZSB0
aGUgY29udGV4dC4KICAgICBtX293bmVyLnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCBlYzJkNmVhNTUwOGEy
MjA4NTI5N2E1NWJjNWMxNzM4MDBjNWE1YzRiLi5jMGNlMDVlN2FlNTZlYmJjZTE3YTRhNGFmZGQ3
ODk2ZTk5N2NmNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcApAQCAtMTM2LDE4ICsxMzYsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PERyYXdHbHlwaHM+KCkuYXBwbHkoY29udGV4
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdl
OiB7Ci0gICAgICAgIGdldDxEcmF3SW1hZ2U+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkSW1hZ2U6IHsKLSAgICAg
ICAgZ2V0PERyYXdUaWxlZEltYWdlPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB7Ci0gICAg
ICAgIGdldDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHsKICAg
ICAgICAgZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzIyLDEwICszMTAsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAg
ICAgICBnZXQ8RHJhd0dseXBocz4oKS5+RHJhd0dseXBocygpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZTogewotICAgICAgICBnZXQ8RHJhd0lt
YWdlPigpLn5EcmF3SW1hZ2UoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OiB7CiAgICAgICAgIGdldDxEcmF3TGluZXNGb3JUZXh0
PigpLn5EcmF3TGluZXNGb3JUZXh0KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTMzOCwxNCArMzIy
LDYgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgZ2V0PERyYXdQYXR0ZXJu
PigpLn5EcmF3UGF0dGVybigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdUaWxlZEltYWdlOiB7Ci0gICAgICAgIGdldDxEcmF3VGlsZWRJbWFnZT4oKS5+
RHJhd1RpbGVkSW1hZ2UoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZTogewotICAgICAgICBnZXQ8RHJhd1RpbGVkU2NhbGVk
SW1hZ2U+KCkufkRyYXdUaWxlZFNjYWxlZEltYWdlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OiB7CiAgICAgICAgIGdldDxG
aWxsQ29tcG9zaXRlZFJlY3Q+KCkufkZpbGxDb21wb3NpdGVkUmVjdCgpOwogICAgICAgICByZXR1
cm47CkBAIC01ODEsMTAgKzU1Nyw2IEBAIHZvaWQgSXRlbUhhbmRsZTo6Y29weVRvKEl0ZW1IYW5k
bGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIG5ldyAoaXRlbU9mZnNldCkgRHJhd0dseXBo
cyhnZXQ8RHJhd0dseXBocz4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd0ltYWdlOiB7Ci0gICAgICAgIG5ldyAoaXRlbU9mZnNldCkgRHJhd0ltYWdl
KGdldDxEcmF3SW1hZ2U+KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjogewogICAgICAgICBuZXcgKGl0ZW1PZmZzZXQpIERyYXdJ
bWFnZUJ1ZmZlcihnZXQ8RHJhd0ltYWdlQnVmZmVyPigpKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
NjA1LDE0ICs1NzcsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmNvcHlUbyhJdGVtSGFuZGxlIGRlc3Rp
bmF0aW9uKSBjb25zdAogICAgICAgICBuZXcgKGl0ZW1PZmZzZXQpIERyYXdQYXR0ZXJuKGdldDxE
cmF3UGF0dGVybj4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd1RpbGVkSW1hZ2U6IHsKLSAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBEcmF3VGlsZWRJ
bWFnZShnZXQ8RHJhd1RpbGVkSW1hZ2U+KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB7Ci0gICAgICAgIG5ldyAoaXRl
bU9mZnNldCkgRHJhd1RpbGVkU2NhbGVkSW1hZ2UoZ2V0PERyYXdUaWxlZFNjYWxlZEltYWdlPigp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsQ29tcG9z
aXRlZFJlY3Q6IHsKICAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBGaWxsQ29tcG9zaXRlZFJlY3Qo
Z2V0PEZpbGxDb21wb3NpdGVkUmVjdD4oKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBhMWFkNDYwMWE2ZDkyMmRjOTc4MDA4
NGM4MzQxMGZkNWM1ZWVhYWI4Li4zZDdlMTg3NWQ3ZGE2MDYyMTgxN2U2MDE3YTljNDkzZTE0M2Nh
MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC04MCwx
MiArODAsNiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUp
CiAgICAgICAgIHJldHVybiBzaXplb2YoQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAgICAgICByZXR1cm4gc2l6ZW9mKERyYXdHbHlwaHMp
OwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZToKLSAgICAgICAgcmV0dXJuIHNpemVvZihE
cmF3SW1hZ2UpOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOgotICAgICAgICBy
ZXR1cm4gc2l6ZW9mKERyYXdUaWxlZEltYWdlKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGls
ZWRTY2FsZWRJbWFnZToKLSAgICAgICAgcmV0dXJuIHNpemVvZihEcmF3VGlsZWRTY2FsZWRJbWFn
ZSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgogICAgICAgICByZXR1cm4g
c2l6ZW9mKERyYXdJbWFnZUJ1ZmZlcik7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUlt
YWdlOgpAQCAtMjA3LDcgKzIwMSw2IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBl
KQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgIGNhc2UgSXRlbVR5
cGU6OkRyYXdGb2N1c1JpbmdSZWN0czoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgot
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZToKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1h
Z2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmU6CiAgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0xpbmVzRm9yVGV4dDoKQEAgLTIxNSw4ICsyMDgsNiBAQCBib29sIGlzRHJhd2luZ0l0
ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0aDoKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDoKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRJbWFnZToKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
VGlsZWRTY2FsZWRJbWFnZToKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXll
cjoKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsQ29tcG9zaXRlZFJlY3Q6CiAgICAgY2FzZSBJdGVt
VHlwZTo6RmlsbEVsbGlwc2U6CkBAIC0yNTgsMTIgKzI0OSw5IEBAIGJvb2wgaXNJbmxpbmVJdGVt
KEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1JlY3RzOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdHbHlwaHM6Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdGg6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1Rp
bGVkSW1hZ2U6Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkZp
bGxQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0V2l0aENvbG9yOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggNzhjODE3ZDBlYTE0NDRiODY5Y2EyNzhh
MzIyYmE3OGVjMzQ4NTNjNS4uYTBlOWE3MzliM2EzOWMzNzE5ZGQ5MmEyNDU0MzZhYmFiM2YwNmY1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC01Miw5ICs1Miw2
IEBAIGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBDbGlwUGF0aCwKICAgICBD
bGlwVG9EcmF3aW5nQ29tbWFuZHMsCiAgICAgRHJhd0dseXBocywKLSAgICBEcmF3SW1hZ2UsCi0g
ICAgRHJhd1RpbGVkSW1hZ2UsCi0gICAgRHJhd1RpbGVkU2NhbGVkSW1hZ2UsCiAgICAgRHJhd0lt
YWdlQnVmZmVyLAogICAgIERyYXdOYXRpdmVJbWFnZSwKICAgICBEcmF3UGF0dGVybiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBiNWY0NTQzMTViODlmMTMxNzgxYzQ1
YmUwYmE1ZGE1ODYzMjNiNGVhLi42OGM2M2QxMzdiODAyNDkwY2I5YmQxZWY2NDNjYzkzODVkZDg0
M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC00MDQsNDcgKzQw
NCw2IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBEcmF3R2x5cGhzJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotdm9pZCBEcmF3SW1hZ2U6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LmRy
YXdJbWFnZShtX2ltYWdlLmdldCgpLCBtX2Rlc3RpbmF0aW9uLCBtX3NvdXJjZSwgbV9pbWFnZVBh
aW50aW5nT3B0aW9ucyk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBEcmF3SW1hZ2UmIGl0ZW0pCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5
KCJpbWFnZSIsIGl0ZW0uaW1hZ2UoKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtcmVj
dCIsIGl0ZW0uc291cmNlKCkpOwotICAgIHRzLmR1bXBQcm9wZXJ0eSgiZGVzdC1yZWN0IiwgaXRl
bS5kZXN0aW5hdGlvbigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgRHJhd1RpbGVkSW1h
Z2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0
LmRyYXdUaWxlZEltYWdlKG1faW1hZ2UuZ2V0KCksIG1fZGVzdGluYXRpb24sIG1fc291cmNlLCBt
X3RpbGVTaXplLCBtX3NwYWNpbmcsIG1faW1hZ2VQYWludGluZ09wdGlvbnMpOwotfQotCi1zdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd1RpbGVk
SW1hZ2UmIGl0ZW0pCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJpbWFnZSIsIGl0ZW0uaW1hZ2Uo
KSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtcG9pbnQiLCBpdGVtLnNvdXJjZSgpKTsK
LSAgICB0cy5kdW1wUHJvcGVydHkoImRlc3QtcmVjdCIsIGl0ZW0uZGVzdGluYXRpb24oKSk7Ci0g
ICAgdHMuZHVtcFByb3BlcnR5KCJ0aWxlLXNpemUiLCBpdGVtLnRpbGVTaXplKCkpOwotICAgIHRz
LmR1bXBQcm9wZXJ0eSgic3BhY2luZyIsIGl0ZW0uc3BhY2luZygpKTsKLSAgICByZXR1cm4gdHM7
Ci19Ci0KLXZvaWQgRHJhd1RpbGVkU2NhbGVkSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LmRyYXdUaWxlZEltYWdlKG1faW1hZ2UuZ2V0
KCksIG1fZGVzdGluYXRpb24sIG1fc291cmNlLCBtX3RpbGVTY2FsZUZhY3RvciwgbV9oUnVsZSwg
bV92UnVsZSwgbV9pbWFnZVBhaW50aW5nT3B0aW9ucyk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3VGlsZWRTY2FsZWRJbWFnZSYg
aXRlbSkKLXsKLSAgICB0cy5kdW1wUHJvcGVydHkoImltYWdlIiwgaXRlbS5pbWFnZSgpKTsKLSAg
ICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZS1yZWN0IiwgaXRlbS5zb3VyY2UoKSk7Ci0gICAgdHMu
ZHVtcFByb3BlcnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwotICAgIHJldHVy
biB0czsKLX0KLQogTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3SW1hZ2VCdWZmZXI6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0xMDUxLDkgKzEwMTAsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0
aDogdHMgPDwgImNsaXAtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0Ry
YXdpbmdDb21tYW5kczogdHMgPDwgImNsaXAtdG8taW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0dseXBoczogdHMgPDwgImRyYXctZ2x5cGhzIjsgYnJlYWs7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOiB0cyA8PCAiZHJhdy1pbWFnZSI7IGJyZWFrOwot
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOiB0cyA8PCAiZHJhdy10aWxlZC1pbWFn
ZSI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB0cyA8
PCAiZHJhdy10aWxlZC1zY2FsZWQtaW1hZ2UiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3SW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWltYWdlLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogdHMgPDwgImRyYXctbmF0aXZlLWltYWdlIjsg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46IHRzIDw8ICJkcmF3LXBhdHRl
cm4iOyBicmVhazsKQEAgLTExNjUsMTUgKzExMjEsNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0dseXBoczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RHJhd0dseXBocz4oKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICB0cyA8PCBpdGVt
LmdldDxEcmF3SW1hZ2U+KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdUaWxlZEltYWdlOgotICAgICAgICB0cyA8PCBpdGVtLmdldDxEcmF3VGlsZWRJbWFnZT4oKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6
Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PERyYXdUaWxlZFNjYWxlZEltYWdlPigpOwotICAgICAg
ICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CiAgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBkNjliNmU4MDBhZjA1ZDBmZGFlNmY4ZWIzNmQ0
NTA0NzhlNWMzMjFjLi5lZDc5ZmIyMGY2NTRlM2Q5NTU2NjE4YjBhOGEyMjg3MDBlMDg1YTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTk4NiwyNTggKzk4Niw2IEBAIE9w
dGlvbmFsPERyYXdHbHlwaHM+IERyYXdHbHlwaHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIHJldHVybiB7eyBmb250LT5nZXQoKSwgV1RGTW92ZSgqZ2x5cGhzKSwgV1RGTW92ZSgqYWR2
YW5jZXMpLCAqbG9jYWxBbmNob3IsICpzbW9vdGhpbmdNb2RlIH19OwogfQogCi1jbGFzcyBEcmF3
SW1hZ2UgewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUg
PSBJdGVtVHlwZTo6RHJhd0ltYWdlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGlu
ZUl0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9
IHRydWU7Ci0KLSAgICBEcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQotICAgICAgICA6IG1faW1hZ2UoaW1hZ2UpCi0g
ICAgICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKLSAgICAgICAgLCBtX3NvdXJjZShz
b3VyY2UpCi0gICAgICAgICwgbV9pbWFnZVBhaW50aW5nT3B0aW9ucyhpbWFnZVBhaW50aW5nT3B0
aW9ucykKLSAgICB7Ci0gICAgfQotCi0gICAgY29uc3QgSW1hZ2UmIGltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQotICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZTsgfQotICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVzdGluYXRpb247IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8RHJhd0ltYWdlPiBkZWNvZGUoRGVjb2RlciYpOwotCi0gICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQotICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xv
YmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9Ci0gICAgT3B0aW9uYWw8
RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJl
dHVybiBtX2Rlc3RpbmF0aW9uOyB9Ci0KLXByaXZhdGU6Ci0gICAgbXV0YWJsZSBSZWY8SW1hZ2U+
IG1faW1hZ2U7IC8vIEZJWE1FOiBEcmF3aW5nIGltYWdlcyBjYW4gY2F1c2UgdGhlaXIgYW5pbWF0
aW9ucyB0byBwcm9ncmVzcy4gVGhpcyBzaG91bGRuJ3QgaGF2ZSB0byBiZSBtdXRhYmxlLgotICAg
IEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uOwotICAgIEZsb2F0UmVjdCBtX3NvdXJjZTsKLSAgICBJ
bWFnZVBhaW50aW5nT3B0aW9ucyBtX2ltYWdlUGFpbnRpbmdPcHRpb25zOwotfTsKLQotdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgRHJhd0ltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKLXsKLSAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKLSAgICBpbWFnZUhhbmRs
ZS5pbWFnZSA9IG1faW1hZ2UucHRyKCk7Ci0KLSAgICBlbmNvZGVyIDw8IGltYWdlSGFuZGxlOwot
ICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvbjsKLSAgICBlbmNvZGVyIDw8IG1fc291cmNlOwot
ICAgIGVuY29kZXIgPDwgbV9pbWFnZVBhaW50aW5nT3B0aW9uczsKLX0KLQotdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KLU9wdGlvbmFsPERyYXdJbWFnZT4gRHJhd0ltYWdlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxJbWFnZUhhbmRsZT4gaW1hZ2VIYW5kbGU7Ci0g
ICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKLSAgICBpZiAoIWltYWdlSGFuZGxlKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBkZXN0aW5h
dGlvbjsKLSAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uOwotICAgIGlmICghZGVzdGluYXRpb24p
Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxGbG9hdFJlY3Q+
IHNvdXJjZTsKLSAgICBkZWNvZGVyID4+IHNvdXJjZTsKLSAgICBpZiAoIXNvdXJjZSkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRp
b25zPiBpbWFnZVBhaW50aW5nT3B0aW9uczsKLSAgICBkZWNvZGVyID4+IGltYWdlUGFpbnRpbmdP
cHRpb25zOwotICAgIGlmICghaW1hZ2VQYWludGluZ09wdGlvbnMpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgKmltYWdlSGFuZGxlLT5pbWFnZSwgKmRlc3Rp
bmF0aW9uLCAqc291cmNlLCAqaW1hZ2VQYWludGluZ09wdGlvbnMgfX07Ci19Ci0KLWNsYXNzIERy
YXdUaWxlZEltYWdlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0
ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc0lubGluZUl0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNE
cmF3aW5nSXRlbSA9IHRydWU7Ci0KLSAgICBjb25zdCBJbWFnZSYgaW1hZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2ltYWdlLmdldCgpOyB9Ci0gICAgRmxvYXRQb2ludCBzb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZTsgfQotICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVzdGluYXRpb247IH0KLQotICAgIEZsb2F0U2l6ZSB0aWxlU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGlsZVNpemU7IH0KLSAgICBGbG9hdFNpemUgc3BhY2luZygpIGNvbnN0IHsgcmV0
dXJuIG1fc3BhY2luZzsgfQotCi0gICAgRHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0
IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQotICAgICAgICA6IG1faW1h
Z2UoaW1hZ2UpCi0gICAgICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKLSAgICAgICAg
LCBtX3NvdXJjZShzb3VyY2UpCi0gICAgICAgICwgbV90aWxlU2l6ZSh0aWxlU2l6ZSkKLSAgICAg
ICAgLCBtX3NwYWNpbmcoc3BhY2luZykKLSAgICAgICAgLCBtX2ltYWdlUGFpbnRpbmdPcHRpb25z
KGltYWdlUGFpbnRpbmdPcHRpb25zKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0OwotCi0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxC
b3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KLSAgICBPcHRpb25hbDxGbG9h
dFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzdGluYXRpb247IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8RHJhd1RpbGVkSW1hZ2U+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0g
ICAgbXV0YWJsZSBSZWY8SW1hZ2U+IG1faW1hZ2U7IC8vIEZJWE1FOiBEcmF3aW5nIGltYWdlcyBj
YW4gY2F1c2UgdGhlaXIgYW5pbWF0aW9ucyB0byBwcm9ncmVzcy4gVGhpcyBzaG91bGRuJ3QgaGF2
ZSB0byBiZSBtdXRhYmxlLgotICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uOwotICAgIEZsb2F0
UG9pbnQgbV9zb3VyY2U7Ci0gICAgRmxvYXRTaXplIG1fdGlsZVNpemU7Ci0gICAgRmxvYXRTaXpl
IG1fc3BhY2luZzsKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX2ltYWdlUGFpbnRpbmdPcHRp
b25zOwotfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgRHJhd1RpbGVkSW1hZ2U6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIEltYWdlSGFuZGxlIGltYWdl
SGFuZGxlOwotICAgIGltYWdlSGFuZGxlLmltYWdlID0gbV9pbWFnZS5wdHIoKTsKLSAgICBlbmNv
ZGVyIDw8IGltYWdlSGFuZGxlOwotICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvbjsKLSAgICBl
bmNvZGVyIDw8IG1fc291cmNlOwotICAgIGVuY29kZXIgPDwgbV90aWxlU2l6ZTsKLSAgICBlbmNv
ZGVyIDw8IG1fc3BhY2luZzsKLSAgICBlbmNvZGVyIDw8IG1faW1hZ2VQYWludGluZ09wdGlvbnM7
Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxEcmF3VGlsZWRJbWFnZT4g
RHJhd1RpbGVkSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFs
PEltYWdlSGFuZGxlPiBpbWFnZUhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGltYWdlSGFuZGxlOwot
ICAgIGlmICghaW1hZ2VIYW5kbGUpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICBPcHRpb25hbDxGbG9hdFJlY3Q+IGRlc3RpbmF0aW9uOwotICAgIGRlY29kZXIgPj4gZGVzdGlu
YXRpb247Ci0gICAgaWYgKCFkZXN0aW5hdGlvbikKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQotICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNvdXJjZTsKLSAgICBkZWNvZGVyID4+IHNv
dXJjZTsKLSAgICBpZiAoIXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gdGlsZVNpemU7Ci0gICAgZGVjb2RlciA+PiB0aWxlU2l6
ZTsKLSAgICBpZiAoIXRpbGVTaXplKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0g
ICAgT3B0aW9uYWw8RmxvYXRTaXplPiBzcGFjaW5nOwotICAgIGRlY29kZXIgPj4gc3BhY2luZzsK
LSAgICBpZiAoIXNwYWNpbmcpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBP
cHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gaW1hZ2VQYWludGluZ09wdGlvbnM7Ci0gICAg
ZGVjb2RlciA+PiBpbWFnZVBhaW50aW5nT3B0aW9uczsKLSAgICBpZiAoIWltYWdlUGFpbnRpbmdP
cHRpb25zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7ICpp
bWFnZUhhbmRsZS0+aW1hZ2UsICpkZXN0aW5hdGlvbiwgKnNvdXJjZSwgKnRpbGVTaXplLCAqc3Bh
Y2luZywgKmltYWdlUGFpbnRpbmdPcHRpb25zIH19OwotfQotCi1jbGFzcyBEcmF3VGlsZWRTY2Fs
ZWRJbWFnZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlw
ZSA9IEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZTsKLSAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
RHJhd2luZ0l0ZW0gPSB0cnVlOwotCi0gICAgRHJhd1RpbGVkU2NhbGVkSW1hZ2UoSW1hZ2UmIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJj
ZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVs
ZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1h
Z2VQYWludGluZ09wdGlvbnMpCi0gICAgICAgIDogbV9pbWFnZShpbWFnZSkKLSAgICAgICAgLCBt
X2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKQotICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAg
ICAgICAgLCBtX3RpbGVTY2FsZUZhY3Rvcih0aWxlU2NhbGVGYWN0b3IpCi0gICAgICAgICwgbV9o
UnVsZShoUnVsZSkKLSAgICAgICAgLCBtX3ZSdWxlKHZSdWxlKQotICAgICAgICAsIG1faW1hZ2VQ
YWludGluZ09wdGlvbnMoaW1hZ2VQYWludGluZ09wdGlvbnMpCi0gICAgewotICAgIH0KLQotICAg
IGNvbnN0IEltYWdlJiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KLSAg
ICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KLSAgICBGbG9h
dFJlY3QgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9Ci0KLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0g
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERyYXdUaWxlZFNjYWxl
ZEltYWdlPiBkZWNvZGUoRGVjb2RlciYpOwotCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdDsKLQotICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29u
c3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2Nh
bEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0
aW9uOyB9Ci0KLXByaXZhdGU6Ci0gICAgbXV0YWJsZSBSZWY8SW1hZ2U+IG1faW1hZ2U7IC8vIEZJ
WE1FOiBEcmF3aW5nIGltYWdlcyBjYW4gY2F1c2UgdGhlaXIgYW5pbWF0aW9ucyB0byBwcm9ncmVz
cy4gVGhpcyBzaG91bGRuJ3QgaGF2ZSB0byBiZSBtdXRhYmxlLgotICAgIEZsb2F0UmVjdCBtX2Rl
c3RpbmF0aW9uOwotICAgIEZsb2F0UmVjdCBtX3NvdXJjZTsKLSAgICBGbG9hdFNpemUgbV90aWxl
U2NhbGVGYWN0b3I7Ci0gICAgSW1hZ2U6OlRpbGVSdWxlIG1faFJ1bGU7Ci0gICAgSW1hZ2U6OlRp
bGVSdWxlIG1fdlJ1bGU7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9pbWFnZVBhaW50aW5n
T3B0aW9uczsKLX07Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIERyYXdUaWxlZFNj
YWxlZEltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBJbWFnZUhh
bmRsZSBpbWFnZUhhbmRsZTsKLSAgICBpbWFnZUhhbmRsZS5pbWFnZSA9IG1faW1hZ2UucHRyKCk7
Ci0gICAgZW5jb2RlciA8PCBpbWFnZUhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRp
b247Ci0gICAgZW5jb2RlciA8PCBtX3NvdXJjZTsKLSAgICBlbmNvZGVyIDw8IG1fdGlsZVNjYWxl
RmFjdG9yOwotICAgIGVuY29kZXIgPDwgbV9oUnVsZTsKLSAgICBlbmNvZGVyIDw8IG1fdlJ1bGU7
Ci0gICAgZW5jb2RlciA8PCBtX2ltYWdlUGFpbnRpbmdPcHRpb25zOwotfQotCi10ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgotT3B0aW9uYWw8RHJhd1RpbGVkU2NhbGVkSW1hZ2U+IERyYXdUaWxlZFNj
YWxlZEltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxJbWFn
ZUhhbmRsZT4gaW1hZ2VIYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKLSAgICBp
ZiAoIWltYWdlSGFuZGxlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0
aW9uYWw8RmxvYXRSZWN0PiBkZXN0aW5hdGlvbjsKLSAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9u
OwotICAgIGlmICghZGVzdGluYXRpb24pCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0K
LSAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IHNvdXJjZTsKLSAgICBkZWNvZGVyID4+IHNvdXJjZTsK
LSAgICBpZiAoIXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9w
dGlvbmFsPEZsb2F0U2l6ZT4gdGlsZVNjYWxlRmFjdG9yOwotICAgIGRlY29kZXIgPj4gdGlsZVNj
YWxlRmFjdG9yOwotICAgIGlmICghdGlsZVNjYWxlRmFjdG9yKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaFJ1bGUpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgSW1h
Z2U6OlRpbGVSdWxlIHZSdWxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodlJ1bGUpKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8SW1hZ2VQYWludGluZ09w
dGlvbnM+IGltYWdlUGFpbnRpbmdPcHRpb25zOwotICAgIGRlY29kZXIgPj4gaW1hZ2VQYWludGlu
Z09wdGlvbnM7Ci0gICAgaWYgKCFpbWFnZVBhaW50aW5nT3B0aW9ucykKLSAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyAqaW1hZ2VIYW5kbGUtPmltYWdlLCAqZGVz
dGluYXRpb24sICpzb3VyY2UsICp0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgKmltYWdl
UGFpbnRpbmdPcHRpb25zIH19OwotfQotCiBjbGFzcyBEcmF3SW1hZ2VCdWZmZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJh
d0ltYWdlQnVmZmVyOwpAQCAtMjU2Niw5ICsyMzE0LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBQYXRoLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzLAogICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd0dseXBocywKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdJbWFnZSwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRy
YXdUaWxlZEltYWdlLAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1Rp
bGVkU2NhbGVkSW1hZ2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3
SW1hZ2VCdWZmZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3TmF0
aXZlSW1hZ2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0dGVy
biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBjYTczYjdh
YjllYzBmNTBkZGNhNzcxMDI4YWNiYzM3NmRiOTI4NjYzLi4zNDcxNDEyMzczMzEzMGVjOGZhZTZm
YTE4Y2IxMDdiODkyNjkwNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCkBAIC0xNjcsMjQgKzE2Nyw2IEBAIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29u
c3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCB1bnNpCiAgICAg
bV9kcmF3R2x5cGhzUmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwg
bnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAotSW1hZ2VEcmF3UmVz
dWx0IFJlY29yZGVyOjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQotewotICAgIGFwcGVuZDxEcmF3SW1hZ2U+KGlt
YWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7Ci0gICAgcmV0
dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwotfQotCi1JbWFnZURyYXdSZXN1bHQgUmVj
b3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVT
aXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBpbWFnZVBhaW50aW5nT3B0aW9ucykKLXsKLSAgICBhcHBlbmQ8RHJhd1RpbGVkSW1hZ2U+KGlt
YWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgaW1hZ2VQYWludGlu
Z09wdGlvbnMpOwotICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlY29yZDsKLX0KLQot
SW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFn
ZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50
aW5nT3B0aW9ucykKLXsKLSAgICBhcHBlbmQ8RHJhd1RpbGVkU2NhbGVkSW1hZ2U+KGltYWdlLCBk
ZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMpOwotICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlY29yZDsK
LX0KLQogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVy
JiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICAv
LyBGSVhNRTogQ2FsbCBpbWFnZUJ1ZmZlci5mbHVzaERyYXdpbmdDb250ZXh0KCkgd2hlbiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMjE4NzczPiBpcyBmaXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oCmluZGV4IGZmYTFmZTM4MWQ2YzI0M2Q2YzM1MDdmMjg5N2UxMzlmNWYy
OGU3MjYuLjRhYWM0NWQ3NWUwZDJkMTUxMjFjNmY5NmZjODI0OWQxNWIxNThjNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTAyLDEwICsxMDIsNiBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYg
YW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKSBvdmVycmlkZTsKIAotICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVy
cmlkZTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVk
SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxl
UnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1h
Z2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXR0ZXJu
KEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJl
Y29yZGVyLmNwcAppbmRleCA3YjI5OWE1ZjQ3MTk3ZTliMGIwNzIyYjYzNDgxNDViYjBhNjgzMWMy
Li5kNjEzNDU1NzNkYzk5MTAwZmIxMzU0OTBhNWQyYjEzYTgwZGEzYzcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApAQCAt
NTM0LDIxICs1MzQsNiBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdHbHlwaHMo
Y29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXImIGdseQogICAgICAgICBzdGF0ZS5z
dHJva2VUaGlja25lc3MsIHN0YXRlLnNoYWRvd09mZnNldCwgc3RhdGUuc2hhZG93Q29sb3IsIGZv
bnRTbW9vdGhpbmcpKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1h
Z2VQYWludGluZ09wdGlvbnMpCi17Ci0gICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRy
YXdJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7Ci19Ci0KLUltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJh
dGlvblJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCi17Ci0gICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRl
c3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBpbWFnZVBhaW50aW5nT3B0aW9u
cyk7Ci19Ci0KLUltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3VGls
ZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1h
Z2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKLXsKLSAgICByZXR1cm4gR3JhcGhp
Y3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFn
ZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGlt
YWdlUGFpbnRpbmdPcHRpb25zKTsKLX0KLQogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCiB7CiAgICAgLy8gRklYTUU6IE5v
dCBpbXBsZW1lbnRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3Bl
cmF0aW9uUmVjb3JkZXIuaAppbmRleCA2NmVhZGU4NWRiMWI1MTgxM2ZhYjNiNzU2NjNmZGFlY2Fk
ZjY2MmUwLi40NWI0NDMyNTZmZTU1ZGM0ZDA0ZmUwNWUyNTUxNTc1N2FmNjU2ZGNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29z
aWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCkBA
IC02NCwxMCArNjQsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IFdl
YkNvcmU6OkZvbnQmLCBjb25zdCBXZWJDb3JlOjpHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdN
b2RlKSBvdmVycmlkZTsKIAotICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2Uo
V2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3Jl
OjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAg
IFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgV2ViQ29y
ZTo6SW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwotCiAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFn
ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJbWFnZSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNv
bnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmNw
cAppbmRleCA4OGE2NWY3YmJlYzNlYTE0ZTVkZTQ2NjRjNDhjMTAwNjFlZGJlMzM3Li4xYzYxZTQy
NzE1NzE5ZTM1MzRjN2E3ODI5M2RhODZlZDc4OWI3MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0SW1wbERpcmVjdDJELmNwcApAQCAtMjY4LDIxICsyNjgsNiBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEltcGxEaXJlY3QyRDo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlw
aEJ1ZmZlcgogICAgICAgICBzdGF0ZS50ZXh0RHJhd2luZ01vZGUsIHN0YXRlLnN0cm9rZVRoaWNr
bmVzcywgc3RhdGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dDb2xvcik7CiB9CiAKLUltYWdl
RHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQ6OmRyYXdJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCi17
Ci0gICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdJbWFnZUltcGwoZ3JhcGhpY3ND
b250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9u
cyk7Ci19Ci0KLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQ6OmRy
YXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBh
aW50aW5nT3B0aW9ucykKLXsKLSAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1Rp
bGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJj
ZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKLX0KLQotSW1hZ2VE
cmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRDo6ZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVs
ZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCi17Ci0gICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dElt
cGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5n
T3B0aW9ucyk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJEOjpkcmF3TmF0
aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvJiBzdGF0ZSA9IGdy
YXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJE
LmgKaW5kZXggYzE5N2I0ODljMjkyNmNhNjU4ZDczNWU3ZTEzM2Y5MjE4MGZmYzQxYi4uNTRmMGY4
YjJlZTA1ZGVmNjIxMWJlYmM2NDA5NzlhNDA2OWI5ZGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHRJbXBsRGlyZWN0MkQuaApAQCAtNjgsMTAgKzY4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
cmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlciYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgY29uc3QgRmxvYXRQb2ludCYsIEZvbnRTbW9vdGhpbmdNb2RlKSBvdmVycmlkZTsKIAot
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwot
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIAogICAgIGJvb2wg
ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBG
bG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBG
bG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCmluZGV4IGFmZDRlOWExYTIzZjEyN2MyYjM4MzE1MDA0YzIyMDU0ZWEw
NjkwZTcuLjNiNzhiMmNkOTU2YTI4MmU3YTZkZmJkMTJiNDM3ZmQ1ZWRlNTkyOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKQEAgLTI2MCwxOCArMjYwLDEyIEBAIE9wdGlvbmFsPERpc3BsYXlM
aXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6ZGVjCiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdG
b2N1c1JpbmdSZWN0cz4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIHJldHVybiBkZWNvZGVB
bmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9j
YXRpb24pOwotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2U6Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdJbWFnZT4oZGF0YSwg
bGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxh
eUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQ+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0aDoKICAgICAgICAgcmV0dXJu
IGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd1BhdGg+KGRhdGEsIGxlbmd0aCwgaGFu
ZGxlTG9jYXRpb24pOwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0dGVy
bjoKICAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd1BhdHRl
cm4+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwotICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpEcmF3VGlsZWRJbWFnZToKLSAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0
ZTxEaXNwbGF5TGlzdDo6RHJhd1RpbGVkSW1hZ2U+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRp
b24pOwotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFn
ZToKLSAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd1RpbGVk
U2NhbGVkSW1hZ2U+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwogICAgIGNhc2UgRGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsQ29tcG9zaXRlZFJlY3Q6CiAgICAgICAgIHJldHVybiBk
ZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkZpbGxDb21wb3NpdGVkUmVjdD4oZGF0YSwgbGVu
Z3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZp
bGxQYXRoOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA0MjdjYzQ1MTYzYjM1MDY2
OWE4M2UzZDc4YTJmMjZlMmFlZGFiMzVlLi5hNjliNjRlMzUxMGI2MjNmZjdlYmI3YmIxN2E2YjZi
ZDRkZjYwMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjE0LDE4ICsyMTQs
MTIgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2Rl
U2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KGl0
ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KCkpOwogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0dseXBoczoKICAg
ICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocz4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHM+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd0ltYWdlOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2Rl
U2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U+KGl0ZW0uZ2V0PFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U+KCkpOwogICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmVzRm9yVGV4dDoKICAgICAgICAgICAgIHJl
dHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0xpbmVzRm9yVGV4dD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdM
aW5lc0ZvclRleHQ+KCkpOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd1BhdGg6CiAgICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXRoPihpdGVtLmdldDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdGg+KCkpOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgICAgICAgICByZXR1cm4gSVBD
OjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQ
YXR0ZXJuPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm4+KCkpOwot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1RpbGVkSW1h
Z2U6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdUaWxlZEltYWdlPihpdGVtLmdldDxXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd1RpbGVkSW1hZ2U+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdUaWxlZFNjYWxlZEltYWdlPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd1RpbGVkU2NhbGVkSW1hZ2U+KCkpOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OgogICAgICAgICAgICAgcmV0dXJuIElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxs
Q29tcG9zaXRlZFJlY3Q+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsQ29tcG9z
aXRlZFJlY3Q+KCkpOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RmlsbFBhdGg6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>