<?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>159469</bug_id>
          
          <creation_ts>2016-07-06 09:16:46 -0700</creation_ts>
          <short_desc>[Coordinated Graphics] Remove toCoordinatedGraphicsLayer and use downcast instead</short_desc>
          <delta_ts>2016-07-13 04:01:39 -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>Platform</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>yoon</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208243</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-06 09:16:46 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208244</commentid>
    <comment_count>1</comment_count>
      <attachid>282901</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-06 09:18:58 -0700</bug_when>
    <thetext>Created attachment 282901
Patch

We should also rename CoordinatedGraphicsLayer as GraphicsLayerCoordinated for consistency will all other GraphicsLayer implementations. Or is there any reason why this is named this way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208552</commentid>
    <comment_count>2</comment_count>
      <attachid>282992</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-06 23:10:32 -0700</bug_when>
    <thetext>Created attachment 282992
Try to fix EFL build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209556</commentid>
    <comment_count>3</comment_count>
      <attachid>282992</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-07-10 13:48:51 -0700</bug_when>
    <thetext>Comment on attachment 282992
Try to fix EFL build

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

&gt; Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:66
&gt; +        downcast&lt;CoordinatedGraphicsLayer&gt;(*static_cast&lt;GraphicsLayer*&gt;(node-&gt;layer())).setFixedToViewport(false);

Why do you need this static_cast?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210400</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-13 03:59:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 282992 [details]
&gt; Try to fix EFL build
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282992&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:66
&gt; &gt; +        downcast&lt;CoordinatedGraphicsLayer&gt;(*static_cast&lt;GraphicsLayer*&gt;(node-&gt;layer())).setFixedToViewport(false);
&gt; 
&gt; Why do you need this static_cast?

To disambiguate the * operator of ScrollingStateNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210401</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-13 04:01:39 -0700</bug_when>
    <thetext>Committed r203157: &lt;http://trac.webkit.org/changeset/203157&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282901</attachid>
            <date>2016-07-06 09:18:58 -0700</date>
            <delta_ts>2016-07-06 23:10:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-to-coord-graphics.diff</filename>
            <type>text/plain</type>
            <size>16349</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NzE1NDkzLi4yMjcwMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTYtMDctMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtDb29yZGluYXRlZCBHcmFwaGljc10gUmVtb3ZlIHRvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIGFuZCB1c2UgZG93bmNhc3QgaW5zdGVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRl
ZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6
OmRldGFjaEZyb21TdGF0ZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp1cGRhdGVWaWV3cG9ydENvbnN0cmFpbmVkTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3M6OnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp3aWxsRGVzdHJveVNj
cm9sbGFibGVBcmVhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0Nvb3Jk
aW5hdGVkTGF5ZXJJRCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3Rh
dGVDaGFuZ2VzSW5jbHVkaW5nU3ViTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2
ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRl
Q29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjb21wdXRlVHJhbnNmb3JtZWRWaXNpYmxlUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNlbGZPckFuY2VzdG9y
SGFzQWN0aXZlVHJhbnNmb3JtQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3Jtcyk6
CisgICAgICAgIChXZWJDb3JlOjp0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oOgorCiAyMDE2LTA3LTA2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBCZXR0ZXIgZ3VhcmQgVGV4dHVyZU1hcHBl
ciBoZWFkZXIgYW5kIENNYWtlIGluY2x1ZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29y
ZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5j
cHAKaW5kZXggMDlkM2ZhNS4uNzA2Njk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nv
b3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNz
LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6ZGV0YWNoRnJvbVN0YXRlVHJlZShTY3JvbGxpbmdOb2RlSQogewogICAgIFNj
cm9sbGluZ1N0YXRlTm9kZSogbm9kZSA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVG
b3JJRChub2RlSUQpOwogICAgIGlmIChub2RlICYmIG5vZGUtPm5vZGVUeXBlKCkgPT0gRml4ZWRO
b2RlKQotICAgICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihub2RlLT5sYXllcigpKS0+
c2V0Rml4ZWRUb1ZpZXdwb3J0KGZhbHNlKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyPigqc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcio+KG5vZGUtPmxheWVyKCkp
KS5zZXRGaXhlZFRvVmlld3BvcnQoZmFsc2UpOwogCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUt
PmRldGFjaE5vZGUobm9kZUlEKTsKIH0KQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnVwZGF0ZVZpZXdwb3J0Q29uc3RyYWluZWRO
b2RlKFNjcm8KIAogICAgIHN3aXRjaCAoY29uc3RyYWludHMuY29uc3RyYWludFR5cGUoKSkgewog
ICAgIGNhc2UgVmlld3BvcnRDb25zdHJhaW50czo6Rml4ZWRQb3NpdGlvbkNvbnN0cmFpbnQ6IHsK
LSAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoZ3JhcGhpY3NMYXllciktPnNldEZp
eGVkVG9WaWV3cG9ydCh0cnVlKTsgLy8gRklYTUUgOiBVc2UgY29uc3RyYWludHMhCisgICAgICAg
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmdyYXBoaWNzTGF5ZXIpLnNldEZp
eGVkVG9WaWV3cG9ydCh0cnVlKTsKICAgICAgICAgZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGU+KCpub2RlKS5zZXRMYXllcihncmFwaGljc0xheWVyKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6dXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGUoU2NybwogCiB2b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6c2Nyb2xsYWJsZUFyZWFTY3Jv
bGxMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiB7Ci0gICAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKHNjcm9sbExheWVyRm9yU2Nyb2xsYWJsZUFyZWEoc2Nyb2xsYWJsZUFyZWEpKTsKKyAgICBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPihzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVhKHNjcm9sbGFibGVBcmVhKSk7
CiAgICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDUsNyArMTA1LDcgQEAg
dm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnNjcm9sbGFibGVB
cmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3M6OndpbGxEZXN0cm95U2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEm
IHNjcm9sbGFibGVBcmVhKQogewotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIg
PSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVh
KHNjcm9sbGFibGVBcmVhKSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciA9
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oc2Nyb2xsTGF5ZXJGb3JTY3JvbGxh
YmxlQXJlYShzY3JvbGxhYmxlQXJlYSkpOwogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCmluZGV4IGRiYzVmNzguLjg4MDMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTU1MSw2ICs1NTEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNBKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NMYXllcihUeXBlLCBHcmFw
aGljc0xheWVyQ2xpZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUwYjZlOGQuLjBhMzI5NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3RvCiAKIHN0YXRpYyBDb29y
ZGluYXRlZExheWVySUQgdG9Db29yZGluYXRlZExheWVySUQoR3JhcGhpY3NMYXllciogbGF5ZXIp
CiB7Ci0gICAgcmV0dXJuIGxheWVyID8gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIp
LT5pZCgpIDogMDsKKyAgICByZXR1cm4gaXM8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihsYXll
cikgPyBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpsYXllcikuaWQoKSA6IDA7
CiB9CiAKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlGbHVzaFJlcXVpcmVk
KCkKQEAgLTk5LDkgKzk5LDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNo
b3VsZFVwZGF0ZVZpc2libGVSZWN0KCkKIHsKICAgICBtX3Nob3VsZFVwZGF0ZVZpc2libGVSZWN0
ID0gdHJ1ZTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKLSAgICAgICAgdG9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zZXRTaG91bGRVcGRhdGVWaXNpYmxlUmVj
dCgpOworICAgICAgICBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpjaGlsZCku
c2V0U2hvdWxkVXBkYXRlVmlzaWJsZVJlY3QoKTsKICAgICBpZiAocmVwbGljYUxheWVyKCkpCi0g
ICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FMYXllcigpKS0+c2V0U2hv
dWxkVXBkYXRlVmlzaWJsZVJlY3QoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqcmVwbGljYUxheWVyKCkpLnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCk7
CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VHZW9tZXRyeSgp
CkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlcGxh
Y2VDaGlsZChHcmFwaGljc0xheWVyKiBvbGRDaGlsZCwgR3JhcGhpY3NMYXkKIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbW92ZUZyb21QYXJlbnQoKQogewotICAgIGlmIChDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIocGFyZW50KCkpKQorICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHBhcmVu
dExheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihwYXJlbnQoKSkpCiAg
ICAgICAgIHBhcmVudExheWVyLT5kaWRDaGFuZ2VDaGlsZHJlbigpOwogICAgIEdyYXBoaWNzTGF5
ZXI6OnJlbW92ZUZyb21QYXJlbnQoKTsKIH0KQEAgLTUwMywxMCArNTAzLDEwIEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIp
CiAKICAgICBsYXllci0+c2V0U2l6ZShzaXplKCkpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zp
c2libGUoY29udGVudHNBcmVWaXNpYmxlKCkpOwotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciogY29vcmRpbmF0ZWRMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKTsK
LSAgICBjb29yZGluYXRlZExheWVyLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgYXV0byYg
Y29vcmRpbmF0ZWRMYXllciA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmxh
eWVyKTsKKyAgICBjb29yZGluYXRlZExheWVyLmRpZENoYW5nZUxheWVyU3RhdGUoKTsKIAotICAg
IG1fbGF5ZXJTdGF0ZS5tYXNrID0gY29vcmRpbmF0ZWRMYXllci0+aWQoKTsKKyAgICBtX2xheWVy
U3RhdGUubWFzayA9IGNvb3JkaW5hdGVkTGF5ZXIuaWQoKTsKICAgICBtX2xheWVyU3RhdGUubWFz
a0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwpAQCAtNTkwLDEw
ICs1OTAsMTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGJvb2wKICAgICBpZiAobm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBtYXNrID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobWFza0xheWVyKCkpKQor
ICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSBkb3duY2FzdDxDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI+KG1hc2tMYXllcigpKSkKICAgICAgICAgbWFzay0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSh2aWV3cG9ydElzU3RhYmxlKTsKIAotICAgIGlm
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihyZXBsaWNhTGF5ZXIoKSkpCisgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciogcmVwbGljYSA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4ocmVwbGljYUxh
eWVyKCkpKQogICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5
ZXJPbmx5KHZpZXdwb3J0SXNTdGFibGUpOwogCiAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSh2aWV3cG9ydElzU3RhYmxlKTsKQEAgLTYwMiwxMSArNjAyLDYgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGJvb2wKICAgICAgICAgY2hpbGQtPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZShyZWN0LCB2aWV3cG9ydElzU3RhYmxlKTsKIH0KIAotQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKLXsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4obGF5ZXIpOwot
fQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxkcmVuKCkKIHsKICAg
ICBpZiAoIW1fc2hvdWxkU3luY0NoaWxkcmVuKQpAQCAtODExLDEwICs4MDYsMTAgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5n
U3ViTGF5ZXJzKCkKICAgICB9CiAKICAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5n
ZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqbWFza0xheWVyKCkpLnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5n
U3ViTGF5ZXJzKCk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKLSAgICAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zeW5jUGVuZGluZ1N0YXRlQ2hh
bmdlc0luY2x1ZGluZ1N1YkxheWVycygpOworICAgICAgICBkb3duY2FzdDxDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI+KCpjaGlsZCkuc3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJM
YXllcnMoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJT
dGF0ZSgpCkBAIC04NTAsMTIgKzg0NSwxMSBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZQogICAg
ICAgICByZXR1cm4gdGhpczsKIAogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKSB7
Ci0gICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcihjaGlsZCktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1
cnNpdmVseSgpOwotICAgICAgICBpZiAobGF5ZXIpCisgICAgICAgIGlmIChDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPigq
Y2hpbGQpLmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpKQogICAg
ICAgICAgICAgcmV0dXJuIGxheWVyOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVy
biBudWxscHRyOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5
VmVjdG9yKQpAQCAtOTg5LDE2ICs5ODMsMTYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnJlbW92ZVRpbGUodWludDMyX3QgdGlsZUlEKQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJMYXllcnMoKQogewotICAg
IGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihtYXNrTGF5ZXIoKSkpCisgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciog
bWFzayA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4obWFza0xheWVyKCkpKQog
ICAgICAgICBtYXNrLT51cGRhdGVDb250ZW50QnVmZmVycygpOwogCi0gICAgaWYgKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJl
cGxpY2FMYXllcigpKSkKKyAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiByZXBsaWNh
ID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihyZXBsaWNhTGF5ZXIoKSkpCiAg
ICAgICAgIHJlcGxpY2EtPnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCk7CiAKICAgICB1cGRhdGVDb250
ZW50QnVmZmVycygpOwogCiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpCi0gICAg
ICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkKS0+dXBkYXRlQ29udGVudEJ1ZmZl
cnNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqY2hpbGQpLnVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJz
KCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVm
ZmVycygpCkBAIC0xMTM0LDcgKzExMjgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Y29tcHV0ZVRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKQogCiAgICAgbV9sYXllclRyYW5zZm9y
bS5zZXRGbGF0dGVuaW5nKCFwcmVzZXJ2ZXMzRCgpKTsKICAgICBtX2xheWVyVHJhbnNmb3JtLnNl
dENoaWxkcmVuVHJhbnNmb3JtKGNoaWxkcmVuVHJhbnNmb3JtKCkpOwotICAgIG1fbGF5ZXJUcmFu
c2Zvcm0uY29tYmluZVRyYW5zZm9ybXMocGFyZW50KCkgPyB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcihwYXJlbnQoKSktPm1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWRGb3JDaGlsZHJlbigpIDog
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSk7CisgICAgbV9sYXllclRyYW5zZm9ybS5jb21iaW5lVHJh
bnNmb3JtcyhwYXJlbnQoKSA/IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKnBh
cmVudCgpKS5tX2xheWVyVHJhbnNmb3JtLmNvbWJpbmVkRm9yQ2hpbGRyZW4oKSA6IFRyYW5zZm9y
bWF0aW9uTWF0cml4KCkpOwogCiAgICAgbV9jYWNoZWRJbnZlcnNlVHJhbnNmb3JtID0gbV9sYXll
clRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS52YWx1ZU9yKFRyYW5zZm9ybWF0aW9uTWF0
cml4KCkpOwogCkBAIC0xMTU1LDcgKzExNDksNyBAQCBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2VsZk9yQW5jZXN0b3JIYXNBY3RpdmVUcmFuc2Zvcm1BbmltYXRpb24oKSBjb25zdAog
ICAgIGlmICghcGFyZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihwYXJlbnQoKSktPnNlbGZPckFuY2VzdG9ySGFzQWN0
aXZlVHJhbnNmb3JtQW5pbWF0aW9uKCk7CisgICAgcmV0dXJuIGRvd25jYXN0PENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcj4oKnBhcmVudCgpKS5zZWxmT3JBbmNlc3Rvckhhc0FjdGl2ZVRyYW5zZm9y
bUFuaW1hdGlvbigpOwogfQogCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2VsZk9y
QW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3JtcygpCkBAIC0xMTY5LDcgKzExNjMsNyBAQCBi
b29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZmaW5l
VHJhbnNmb3JtcygpCiAgICAgaWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgcmV0dXJuIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHBhcmVudCgpKS0+c2VsZk9y
QW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3JtcygpOworICAgIHJldHVybiBkb3duY2FzdDxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpwYXJlbnQoKSkuc2VsZk9yQW5jZXN0b3JIYXZlTm9u
QWZmaW5lVHJhbnNmb3JtcygpOwogfQogCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEZs
b2F0U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtl
eWZyYW1lc05hbWUsIGRvdWJsZSBkZWxheUFzTmVnYXRpdmVUaW1lT2Zmc2V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGRm
NWIxNDUuLjY5NTAyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBwdWJsaWM6CiAgICAgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKiBmaW5kRmlyc3REZXNjZW5kYW50V2l0aENvbnRlbnRzUmVj
dXJzaXZlbHkoKTsKIAogcHJpdmF0ZToKKyAgICBib29sIGlzQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCiAgICAgZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAg
ICAgIE5vbmUgPSAweDAwLApAQCAtMjU1LDkgKzI1NywxMCBAQCBwcml2YXRlOgogICAgIFNjcm9s
bGFibGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogfTsKIAotQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKik7Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUkFQSElDU0xBWUVS
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciwgaXNDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIoKSkKKwogI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2VuZGlm
IC8vIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzU3MTA4OC4uODRl
MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE2LTA3LTA2ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRpbmF0ZWQg
R3JhcGhpY3NdIFJlbW92ZSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllciBhbmQgdXNlIGRvd25j
YXN0IGluc3RlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1OTQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5n
Q29vcmRpbmF0b3I6OmluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6bWFpbkNvbnRlbnRzTGF5ZXIp
OgorCisyMDE2LTA3LTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKwogICAgICAgICBbR1RLXSBXZWIgdmlldyBiYWNrZ3JvdW5kIGNvbG9ycyBkb24ndCB3b3Jr
IGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ1NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM1ZjNiNDQuLjY2
NDBjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCkBAIC0xMDYsOCArMTA2LDkgQEAgYm9vbCBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogCiAgICAgYm9vbCBkaWRTeW5jID0g
bV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGlu
Z1N1YmZyYW1lcygpOwogCi0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290TGF5
ZXIuZ2V0KCkpLT51cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwotICAg
IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKS0+c3luY1BlbmRp
bmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICBhdXRvJiBjb29yZGluYXRl
ZExheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPigqbV9yb290TGF5ZXIp
OworICAgIGNvb3JkaW5hdGVkTGF5ZXIudXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJM
YXllcnMoKTsKKyAgICBjb29yZGluYXRlZExheWVyLnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5j
bHVkaW5nU3ViTGF5ZXJzKCk7CiAKICAgICBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2Vz
KCk7CiAKQEAgLTE3Nyw3ICsxNzgsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Omlu
aXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCkKICAgICBpZiAobV9kaWRJbml0
aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc3Rh
dGUucm9vdENvbXBvc2l0aW5nTGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jv
b3RMYXllci5nZXQoKSktPmlkKCk7CisgICAgbV9zdGF0ZS5yb290Q29tcG9zaXRpbmdMYXllciA9
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKm1fcm9vdExheWVyKS5pZCgpOwog
ICAgIG1fZGlkSW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVyID0gdHJ1ZTsKICAgICBtX3No
b3VsZFN5bmNGcmFtZSA9IHRydWU7CiB9CkBAIC0zMDIsMTAgKzMwMywxMCBAQCBGbG9hdFJlY3Qg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAKIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllciogQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6bWFpbkNvbnRl
bnRzTGF5ZXIoKQogewotICAgIGlmICghbV9yb290Q29tcG9zaXRpbmdMYXllcikKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgaWYgKCFpczxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KG1fcm9vdENv
bXBvc2l0aW5nTGF5ZXIpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RDb21wb3NpdGluZ0xheWVyKS0+ZmluZEZp
cnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5KCk7CisgICAgcmV0dXJuIGRvd25j
YXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKm1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpLmZp
bmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOwogfQogCiB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282992</attachid>
            <date>2016-07-06 23:10:32 -0700</date>
            <delta_ts>2016-07-10 13:48:51 -0700</delta_ts>
            <desc>Try to fix EFL build</desc>
            <filename>wk2-coord-layer-downcast.diff</filename>
            <type>text/plain</type>
            <size>17201</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NzE1NDkzLi4yMjcwMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTYtMDctMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtDb29yZGluYXRlZCBHcmFwaGljc10gUmVtb3ZlIHRvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIGFuZCB1c2UgZG93bmNhc3QgaW5zdGVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRl
ZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6
OmRldGFjaEZyb21TdGF0ZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp1cGRhdGVWaWV3cG9ydENvbnN0cmFpbmVkTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3M6OnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp3aWxsRGVzdHJveVNj
cm9sbGFibGVBcmVhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0Nvb3Jk
aW5hdGVkTGF5ZXJJRCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3Rh
dGVDaGFuZ2VzSW5jbHVkaW5nU3ViTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2
ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRl
Q29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjb21wdXRlVHJhbnNmb3JtZWRWaXNpYmxlUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNlbGZPckFuY2VzdG9y
SGFzQWN0aXZlVHJhbnNmb3JtQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3Jtcyk6
CisgICAgICAgIChXZWJDb3JlOjp0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oOgorCiAyMDE2LTA3LTA2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBCZXR0ZXIgZ3VhcmQgVGV4dHVyZU1hcHBl
ciBoZWFkZXIgYW5kIENNYWtlIGluY2x1ZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29y
ZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5j
cHAKaW5kZXggMDlkM2ZhNS4uNzA2Njk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nv
b3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNz
LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6ZGV0YWNoRnJvbVN0YXRlVHJlZShTY3JvbGxpbmdOb2RlSQogewogICAgIFNj
cm9sbGluZ1N0YXRlTm9kZSogbm9kZSA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVG
b3JJRChub2RlSUQpOwogICAgIGlmIChub2RlICYmIG5vZGUtPm5vZGVUeXBlKCkgPT0gRml4ZWRO
b2RlKQotICAgICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihub2RlLT5sYXllcigpKS0+
c2V0Rml4ZWRUb1ZpZXdwb3J0KGZhbHNlKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyPigqc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcio+KG5vZGUtPmxheWVyKCkp
KS5zZXRGaXhlZFRvVmlld3BvcnQoZmFsc2UpOwogCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUt
PmRldGFjaE5vZGUobm9kZUlEKTsKIH0KQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnVwZGF0ZVZpZXdwb3J0Q29uc3RyYWluZWRO
b2RlKFNjcm8KIAogICAgIHN3aXRjaCAoY29uc3RyYWludHMuY29uc3RyYWludFR5cGUoKSkgewog
ICAgIGNhc2UgVmlld3BvcnRDb25zdHJhaW50czo6Rml4ZWRQb3NpdGlvbkNvbnN0cmFpbnQ6IHsK
LSAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoZ3JhcGhpY3NMYXllciktPnNldEZp
eGVkVG9WaWV3cG9ydCh0cnVlKTsgLy8gRklYTUUgOiBVc2UgY29uc3RyYWludHMhCisgICAgICAg
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmdyYXBoaWNzTGF5ZXIpLnNldEZp
eGVkVG9WaWV3cG9ydCh0cnVlKTsKICAgICAgICAgZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGU+KCpub2RlKS5zZXRMYXllcihncmFwaGljc0xheWVyKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6dXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGUoU2NybwogCiB2b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6c2Nyb2xsYWJsZUFyZWFTY3Jv
bGxMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiB7Ci0gICAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKHNjcm9sbExheWVyRm9yU2Nyb2xsYWJsZUFyZWEoc2Nyb2xsYWJsZUFyZWEpKTsKKyAgICBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPihzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVhKHNjcm9sbGFibGVBcmVhKSk7
CiAgICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDUsNyArMTA1LDcgQEAg
dm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnNjcm9sbGFibGVB
cmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3M6OndpbGxEZXN0cm95U2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEm
IHNjcm9sbGFibGVBcmVhKQogewotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIg
PSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVh
KHNjcm9sbGFibGVBcmVhKSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciA9
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oc2Nyb2xsTGF5ZXJGb3JTY3JvbGxh
YmxlQXJlYShzY3JvbGxhYmxlQXJlYSkpOwogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCmluZGV4IGRiYzVmNzguLjg4MDMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTU1MSw2ICs1NTEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNBKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NMYXllcihUeXBlLCBHcmFw
aGljc0xheWVyQ2xpZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUwYjZlOGQuLjBhMzI5NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3RvCiAKIHN0YXRpYyBDb29y
ZGluYXRlZExheWVySUQgdG9Db29yZGluYXRlZExheWVySUQoR3JhcGhpY3NMYXllciogbGF5ZXIp
CiB7Ci0gICAgcmV0dXJuIGxheWVyID8gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIp
LT5pZCgpIDogMDsKKyAgICByZXR1cm4gaXM8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihsYXll
cikgPyBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpsYXllcikuaWQoKSA6IDA7
CiB9CiAKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlGbHVzaFJlcXVpcmVk
KCkKQEAgLTk5LDkgKzk5LDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNo
b3VsZFVwZGF0ZVZpc2libGVSZWN0KCkKIHsKICAgICBtX3Nob3VsZFVwZGF0ZVZpc2libGVSZWN0
ID0gdHJ1ZTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKLSAgICAgICAgdG9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zZXRTaG91bGRVcGRhdGVWaXNpYmxlUmVj
dCgpOworICAgICAgICBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpjaGlsZCku
c2V0U2hvdWxkVXBkYXRlVmlzaWJsZVJlY3QoKTsKICAgICBpZiAocmVwbGljYUxheWVyKCkpCi0g
ICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FMYXllcigpKS0+c2V0U2hv
dWxkVXBkYXRlVmlzaWJsZVJlY3QoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqcmVwbGljYUxheWVyKCkpLnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCk7
CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VHZW9tZXRyeSgp
CkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlcGxh
Y2VDaGlsZChHcmFwaGljc0xheWVyKiBvbGRDaGlsZCwgR3JhcGhpY3NMYXkKIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbW92ZUZyb21QYXJlbnQoKQogewotICAgIGlmIChDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIocGFyZW50KCkpKQorICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHBhcmVu
dExheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihwYXJlbnQoKSkpCiAg
ICAgICAgIHBhcmVudExheWVyLT5kaWRDaGFuZ2VDaGlsZHJlbigpOwogICAgIEdyYXBoaWNzTGF5
ZXI6OnJlbW92ZUZyb21QYXJlbnQoKTsKIH0KQEAgLTUwMywxMCArNTAzLDEwIEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIp
CiAKICAgICBsYXllci0+c2V0U2l6ZShzaXplKCkpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zp
c2libGUoY29udGVudHNBcmVWaXNpYmxlKCkpOwotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciogY29vcmRpbmF0ZWRMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKTsK
LSAgICBjb29yZGluYXRlZExheWVyLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgYXV0byYg
Y29vcmRpbmF0ZWRMYXllciA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmxh
eWVyKTsKKyAgICBjb29yZGluYXRlZExheWVyLmRpZENoYW5nZUxheWVyU3RhdGUoKTsKIAotICAg
IG1fbGF5ZXJTdGF0ZS5tYXNrID0gY29vcmRpbmF0ZWRMYXllci0+aWQoKTsKKyAgICBtX2xheWVy
U3RhdGUubWFzayA9IGNvb3JkaW5hdGVkTGF5ZXIuaWQoKTsKICAgICBtX2xheWVyU3RhdGUubWFz
a0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwpAQCAtNTkwLDEw
ICs1OTAsMTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGJvb2wKICAgICBpZiAobm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBtYXNrID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobWFza0xheWVyKCkpKQor
ICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSBkb3duY2FzdDxDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI+KG1hc2tMYXllcigpKSkKICAgICAgICAgbWFzay0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSh2aWV3cG9ydElzU3RhYmxlKTsKIAotICAgIGlm
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihyZXBsaWNhTGF5ZXIoKSkpCisgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciogcmVwbGljYSA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4ocmVwbGljYUxh
eWVyKCkpKQogICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5
ZXJPbmx5KHZpZXdwb3J0SXNTdGFibGUpOwogCiAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSh2aWV3cG9ydElzU3RhYmxlKTsKQEAgLTYwMiwxMSArNjAyLDYgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGJvb2wKICAgICAgICAgY2hpbGQtPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZShyZWN0LCB2aWV3cG9ydElzU3RhYmxlKTsKIH0KIAotQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKLXsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4obGF5ZXIpOwot
fQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxkcmVuKCkKIHsKICAg
ICBpZiAoIW1fc2hvdWxkU3luY0NoaWxkcmVuKQpAQCAtODExLDEwICs4MDYsMTAgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5n
U3ViTGF5ZXJzKCkKICAgICB9CiAKICAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5n
ZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqbWFza0xheWVyKCkpLnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5n
U3ViTGF5ZXJzKCk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKLSAgICAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zeW5jUGVuZGluZ1N0YXRlQ2hh
bmdlc0luY2x1ZGluZ1N1YkxheWVycygpOworICAgICAgICBkb3duY2FzdDxDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI+KCpjaGlsZCkuc3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJM
YXllcnMoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJT
dGF0ZSgpCkBAIC04NTAsMTIgKzg0NSwxMSBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZQogICAg
ICAgICByZXR1cm4gdGhpczsKIAogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKSB7
Ci0gICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcihjaGlsZCktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1
cnNpdmVseSgpOwotICAgICAgICBpZiAobGF5ZXIpCisgICAgICAgIGlmIChDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPigq
Y2hpbGQpLmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpKQogICAg
ICAgICAgICAgcmV0dXJuIGxheWVyOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVy
biBudWxscHRyOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5
VmVjdG9yKQpAQCAtOTg5LDE2ICs5ODMsMTYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnJlbW92ZVRpbGUodWludDMyX3QgdGlsZUlEKQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJMYXllcnMoKQogewotICAg
IGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihtYXNrTGF5ZXIoKSkpCisgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciog
bWFzayA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4obWFza0xheWVyKCkpKQog
ICAgICAgICBtYXNrLT51cGRhdGVDb250ZW50QnVmZmVycygpOwogCi0gICAgaWYgKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJl
cGxpY2FMYXllcigpKSkKKyAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiByZXBsaWNh
ID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPihyZXBsaWNhTGF5ZXIoKSkpCiAg
ICAgICAgIHJlcGxpY2EtPnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCk7CiAKICAgICB1cGRhdGVDb250
ZW50QnVmZmVycygpOwogCiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpCi0gICAg
ICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkKS0+dXBkYXRlQ29udGVudEJ1ZmZl
cnNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICAgICAgZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyPigqY2hpbGQpLnVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJz
KCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVm
ZmVycygpCkBAIC0xMTM0LDcgKzExMjgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Y29tcHV0ZVRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKQogCiAgICAgbV9sYXllclRyYW5zZm9y
bS5zZXRGbGF0dGVuaW5nKCFwcmVzZXJ2ZXMzRCgpKTsKICAgICBtX2xheWVyVHJhbnNmb3JtLnNl
dENoaWxkcmVuVHJhbnNmb3JtKGNoaWxkcmVuVHJhbnNmb3JtKCkpOwotICAgIG1fbGF5ZXJUcmFu
c2Zvcm0uY29tYmluZVRyYW5zZm9ybXMocGFyZW50KCkgPyB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcihwYXJlbnQoKSktPm1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWRGb3JDaGlsZHJlbigpIDog
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSk7CisgICAgbV9sYXllclRyYW5zZm9ybS5jb21iaW5lVHJh
bnNmb3JtcyhwYXJlbnQoKSA/IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKnBh
cmVudCgpKS5tX2xheWVyVHJhbnNmb3JtLmNvbWJpbmVkRm9yQ2hpbGRyZW4oKSA6IFRyYW5zZm9y
bWF0aW9uTWF0cml4KCkpOwogCiAgICAgbV9jYWNoZWRJbnZlcnNlVHJhbnNmb3JtID0gbV9sYXll
clRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS52YWx1ZU9yKFRyYW5zZm9ybWF0aW9uTWF0
cml4KCkpOwogCkBAIC0xMTU1LDcgKzExNDksNyBAQCBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2VsZk9yQW5jZXN0b3JIYXNBY3RpdmVUcmFuc2Zvcm1BbmltYXRpb24oKSBjb25zdAog
ICAgIGlmICghcGFyZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihwYXJlbnQoKSktPnNlbGZPckFuY2VzdG9ySGFzQWN0
aXZlVHJhbnNmb3JtQW5pbWF0aW9uKCk7CisgICAgcmV0dXJuIGRvd25jYXN0PENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcj4oKnBhcmVudCgpKS5zZWxmT3JBbmNlc3Rvckhhc0FjdGl2ZVRyYW5zZm9y
bUFuaW1hdGlvbigpOwogfQogCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2VsZk9y
QW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3JtcygpCkBAIC0xMTY5LDcgKzExNjMsNyBAQCBi
b29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZmaW5l
VHJhbnNmb3JtcygpCiAgICAgaWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgcmV0dXJuIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHBhcmVudCgpKS0+c2VsZk9y
QW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3JtcygpOworICAgIHJldHVybiBkb3duY2FzdDxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpwYXJlbnQoKSkuc2VsZk9yQW5jZXN0b3JIYXZlTm9u
QWZmaW5lVHJhbnNmb3JtcygpOwogfQogCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEZs
b2F0U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtl
eWZyYW1lc05hbWUsIGRvdWJsZSBkZWxheUFzTmVnYXRpdmVUaW1lT2Zmc2V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGRm
NWIxNDUuLjY5NTAyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBwdWJsaWM6CiAgICAgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKiBmaW5kRmlyc3REZXNjZW5kYW50V2l0aENvbnRlbnRzUmVj
dXJzaXZlbHkoKTsKIAogcHJpdmF0ZToKKyAgICBib29sIGlzQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCiAgICAgZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAg
ICAgIE5vbmUgPSAweDAwLApAQCAtMjU1LDkgKzI1NywxMCBAQCBwcml2YXRlOgogICAgIFNjcm9s
bGFibGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogfTsKIAotQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKik7Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUkFQSElDU0xBWUVS
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciwgaXNDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIoKSkKKwogI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2VuZGlm
IC8vIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzU3MTA4OC4uODRl
MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE2LTA3LTA2ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRpbmF0ZWQg
R3JhcGhpY3NdIFJlbW92ZSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllciBhbmQgdXNlIGRvd25j
YXN0IGluc3RlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1OTQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5n
Q29vcmRpbmF0b3I6OmluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6bWFpbkNvbnRlbnRzTGF5ZXIp
OgorCisyMDE2LTA3LTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKwogICAgICAgICBbR1RLXSBXZWIgdmlldyBiYWNrZ3JvdW5kIGNvbG9ycyBkb24ndCB3b3Jr
IGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ1NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM1ZjNiNDQuLjY2
NDBjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCkBAIC0xMDYsOCArMTA2LDkgQEAgYm9vbCBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogCiAgICAgYm9vbCBkaWRTeW5jID0g
bV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGlu
Z1N1YmZyYW1lcygpOwogCi0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290TGF5
ZXIuZ2V0KCkpLT51cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwotICAg
IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKS0+c3luY1BlbmRp
bmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKKyAgICBhdXRvJiBjb29yZGluYXRl
ZExheWVyID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPigqbV9yb290TGF5ZXIp
OworICAgIGNvb3JkaW5hdGVkTGF5ZXIudXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJM
YXllcnMoKTsKKyAgICBjb29yZGluYXRlZExheWVyLnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5j
bHVkaW5nU3ViTGF5ZXJzKCk7CiAKICAgICBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2Vz
KCk7CiAKQEAgLTE3Nyw3ICsxNzgsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Omlu
aXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCkKICAgICBpZiAobV9kaWRJbml0
aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc3Rh
dGUucm9vdENvbXBvc2l0aW5nTGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jv
b3RMYXllci5nZXQoKSktPmlkKCk7CisgICAgbV9zdGF0ZS5yb290Q29tcG9zaXRpbmdMYXllciA9
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKm1fcm9vdExheWVyKS5pZCgpOwog
ICAgIG1fZGlkSW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVyID0gdHJ1ZTsKICAgICBtX3No
b3VsZFN5bmNGcmFtZSA9IHRydWU7CiB9CkBAIC0zMDIsMTAgKzMwMywxMCBAQCBGbG9hdFJlY3Qg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAKIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllciogQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6bWFpbkNvbnRl
bnRzTGF5ZXIoKQogewotICAgIGlmICghbV9yb290Q29tcG9zaXRpbmdMYXllcikKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgaWYgKCFpczxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KG1fcm9vdENv
bXBvc2l0aW5nTGF5ZXIpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RDb21wb3NpdGluZ0xheWVyKS0+ZmluZEZp
cnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5KCk7CisgICAgcmV0dXJuIGRvd25j
YXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKm1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpLmZp
bmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOwogfQogCiB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAK
aW5kZXggYjA4MWQyZS4uYjIxOGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC02Niw3ICs2Niw3IEBAIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2Um
IHdlYlBhZ2UpCiB7CiAgICAgbV9jb29yZGluYXRvci5jcmVhdGVSb290TGF5ZXIobV93ZWJQYWdl
LnNpemUoKSk7CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKLSAg
ICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIobV9jb29yZGluYXRvci5yb290TGF5ZXIoKSktPmlkKCk7CisgICAgbV9sYXllclRyZWVDb250
ZXh0LmNvbnRleHRJRCA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKm1fY29v
cmRpbmF0b3Iucm9vdExheWVyKCkpLmlkKCk7CiAjZW5kaWYKIAogICAgIENvb3JkaW5hdGVkU3Vy
ZmFjZTo6c2V0RmFjdG9yeShjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UpOwo=
</data>
<flag name="review"
          id="306731"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>