<?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>123766</bug_id>
          
          <creation_ts>2013-11-04 16:41:34 -0800</creation_ts>
          <short_desc>Remote Layer Tree: Make LayerTypeCustom remote-host CALayers from the Web process</short_desc>
          <delta_ts>2013-11-04 21:51:12 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946888</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 16:41:34 -0800</bug_when>
    <thetext>Hook up LayerTypeCustom with the remote layer tree so that video and plugins and other things which are difficult, dangerous, or impossible to serialize can live in the Web (or eventually other) process, with their own little miniature CALayer tree, hosted in a CALayerHost in the UI process.

This should make video and plugins work (and it should be trivial to make things like PDFPlugin work on top, but in a different patch), though plugins will need later additional cleanup to avoid double-hosting (plugin process-&gt;web process-&gt;ui process).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946958</commentid>
    <comment_count>1</comment_count>
      <attachid>215983</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 18:54:15 -0800</bug_when>
    <thetext>Created attachment 215983
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946960</commentid>
    <comment_count>2</comment_count>
      <attachid>215984</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 18:55:06 -0800</bug_when>
    <thetext>Created attachment 215984
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947022</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 21:51:12 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/158647</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215983</attachid>
            <date>2013-11-04 18:54:15 -0800</date>
            <delta_ts>2013-11-04 18:55:06 -0800</delta_ts>
            <desc>patch</desc>
            <filename>plugins.diff</filename>
            <type>text/plain</type>
            <size>23360</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzNTk5ZGEwLi40MjlmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTMtMTEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IE1ha2UgTGF5ZXJUeXBlQ3VzdG9tIHJlbW90ZS1o
b3N0IENBTGF5ZXJzIGZyb20gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXQgZWFjaCBMYXllclR5cGVDdXN0b20gbGF5ZXIg
aW50byBhIENBQ29udGV4dCwgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgaG9zdCBzbWFsbCBDQUxh
eWVyIHRyZWVzIChmb3IgdmlkZW8sIHBsdWdpbnMsIGV0Yy4pIGZyb20gdGhlIFdlYiBwcm9jZXNz
CisgICAgICAgIHRvIHRoZSBVSSBwcm9jZXNzIHdpdGhvdXQgcHJveHlpbmcgdGhlaXIgKG1vcmUg
Y29tcGxleCkgY29udGVudC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmR1bXApOgorICAg
ICAgICBTdG9yZSwgZW5jb2RlLCBhbmQgZHVtcCB0aGUgQ0FDb250ZXh0IElEIG9mIGN1c3RvbSBs
YXllcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAg
ICAgICAgQ3JlYXRlIGEgQ0FMYXllckhvc3Qgd2l0aCB0aGUgQ0FDb250ZXh0IElEIGZyb20gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICBBZGQgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXll
cik6CisgICAgICAgIENhbGwgdGhlIG5ld2x5LWFkZGVkIGN1c3RvbS1sYXllciBjb25zdHJ1Y3Rv
ci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUpOgorICAg
ICAgICBNb3ZlIHRoZSBjYWxsIHRvIGxheWVyV2FzQ3JlYXRlZCgpIG91dCB0byA6OmNyZWF0ZSgp
LCBzbyB0aGF0IGFsbCBvZgorICAgICAgICB0aGUgY29uc3RydWN0b3JzIGZvciB0aGlzIGNsYXNz
IGFuZCBhbGwgc3ViY2xhc3NlcyBoYXZlIGNvbXBsZXRlZAorICAgICAgICBiZWZvcmUgd2UgY2Fs
bCBpdCAoc28gdGhhdCBsYXllcldhc0NyZWF0ZWQoKSBjYW4gc3RvcmUgdGhlIGNvbnRleHQgSUQK
KyAgICAgICAgaW4gdGhlIGNyZWF0ZWQgbGF5ZXIgcHJvcGVydGllcyBvYmplY3QpLgorCisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRleHRJRCk6Cisg
ICAgICAgIFNob3VsZCBuZXZlciBiZSByZWFjaGVkIG9uIHRoZSBiYXNlIGNsYXNzLCBvbmx5IFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206On5QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20pOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpob3N0
aW5nQ29udGV4dElEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbSwgd2hpY2ggb3ducyBhIExheWVySG9zdGluZ0NvbnRleHQKKyAgICAgICAg
d2hpY2ggaXQgd2lsbCB1c2UgdG8gc2hhcmUgYSBjdXN0b20gQ0FMYXllciB0cmVlIHdpdGggdGhl
IFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHA6CisgICAgICAgIERyaXZlLWJ5IHJlbW92ZSBh
biB1bm5lY2Vzc2FyeSBpbmNsdWRlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVDb250ZXh0OjpsYXllcldhc0NyZWF0ZWQpOgorICAgICAgICBTdG9yZSB0aGUgQ0FDb250
ZXh0IElEIHdpdGggdGhlIGxheWVyIGNyZWF0aW9uIHByb3BlcnRpZXMgc28gaXQgY2FuCisgICAg
ICAgIGJlIHVzZWQgdG8gY3JlYXRlIGEgQ0FMYXllckhvc3QgdXBvbiBjb21taXQgaW4gdGhlIFVJ
IHByb2Nlc3MuCisKIDIwMTMtMTEtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIFdyYXBwZXJzJyAtY29weVdpdGhab25lOiBzaG91bGQgY29weSBp
ZiB0aGUgY29sbGVjdGlvbiBpcyBtdXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggNzUwZjhhNS4uOGUw
OTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtODcsNiArODcsOCBAQCBwdWJsaWM6CiAKICAgICAgICAg
TGF5ZXJJRCBsYXllcklEOwogICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVy
VHlwZSB0eXBlOworCisgICAgICAgIHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQ7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBMYXllclByb3BlcnRpZXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggNWRiNjNj
ZC4uN2VmNGQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC00Nyw2ICs0Nyw5IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lCiB7CiAgICAgZW5jb2RlciA8PCBsYXllcklEOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bSh0eXBlKTsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlQ3VzdG9tKQorICAgICAgICBlbmNvZGVyIDw8IGhvc3RpbmdDb250ZXh0SUQ7CiB9CiAKIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMYXllckNyZWF0aW9uUHJv
cGVydGllcyYgcmVzdWx0KQpAQCAtNTcsNiArNjAsMTEgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmIChyZXN1bHQudHlwZSA9PSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZUN1c3RvbSkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5ob3N0
aW5nQ29udGV4dElEKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjg0LDcgKzY5Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmR1bXAoKSBjb25zdAogICAgICAgICAgICAgICAgIHRzIDw8ICJhdi1wbGF5
ZXItbGF5ZXIiOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1c3RvbToKLSAgICAgICAgICAgICAgICB0cyA8PCAiY3Vz
dG9tLWxheWVyIjsKKyAgICAgICAgICAgICAgICB0cyA8PCAiY3VzdG9tLWxheWVyIChjb250ZXh0
LWlkICIgPDwgY3JlYXRlZExheWVyLmhvc3RpbmdDb250ZXh0SUQgPDwgIikiOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdHMgPDwgIiAiIDw8IGNy
ZWF0ZWRMYXllci5sYXllcklEIDw8ICIpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCA0OTRmMDU5Li5hMWNiYTA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhv
c3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1MYXllci5oPgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogCkBAIC0yNDEsNiArMjQyLDkgQEAgQ0FMYXll
ciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyQ3JlYXQKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVHJh
bnNmb3JtTGF5ZXI6CiAgICAgICAgIGxheWVyID0gYWRvcHROUyhbW0NBVHJhbnNmb3JtTGF5ZXIg
YWxsb2NdIGluaXRdKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZUN1c3RvbToKKyAgICAgICAgbGF5ZXIgPSBXS01ha2VSZW5kZXJMYXllcihwcm9w
ZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDI2MWU3NC4uMTNiNmVi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzI1LDYgKzMyNSw4IEBACiAJCTJENDdCNTZDMTgxMDcxNEUwMDNBM0FFRSAvKiBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENDdCNTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbSAqLzsgfTsKIAkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaCAqLzsgfTsKIAkJMkQ4NzBEMTAxNjIzNEZGRTAwMEEzRjIwIC8qIFBERlBsdWdpbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcwRDBF
MTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi87IH07CisJCTJEODcxMDE2MTgyODQx
NUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4NzEwMTQxODI4NDE1RDAwMThG
QTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHAgKi87IH07CisJCTJEODcxMDE3
MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcxMDE1MTgyODQxNUQw
MDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCAqLzsgfTsKIAkJMkQ4OTQ5
RjAxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDg5NDlF
RTE4MjA0NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNw
cCAqLzsgfTsKIAkJMkQ4OTQ5RjExODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ4OTQ5RUYxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZy5oICovOyB9OwogCQkyREEwNDlCMzE4MENDQ0QzMDBBQUZBOUUgLyogUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwICovOyB9OwpAQCAtMTgxMCw2ICsxODEyLDggQEAKIAkJMkQ0N0I1NkIxODEwNzE0
RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEODcwRDBEMTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERGUGx1Z2luLmg7IHBhdGggPSBQREYv
UERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODcwRDBFMTYyMkI3
RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYvUERGUGx1Z2luLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRDg3MTAxNDE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJEODcxMDE1MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODk0
OUVFMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4
OTQ5RUYxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjEx
ODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk0MCw2ICs0OTQ0LDggQEAKIAkJCQkyREEwNDlC
NjE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggKi8sCiAJCQkJMkRB
MDQ5QjExODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJ
CQkJMkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICov
LAorCQkJCTJEODcxMDE0MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVD
dXN0b20uY3BwICovLAorCQkJCTJEODcxMDE1MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b20uaCAqLywKIAkJCQkyRDg5NDlFRTE4MjA0NEY2MDBFODk4QUEgLyog
UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcCAqLywKIAkJCQkyRDg5NDlFRjE4
MjA0NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggKi8s
CiAJCQkJMUFCMTZBRTgxNjRCM0E4ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQu
aCAqLywKQEAgLTU3MjIsNiArNTcyOCw3IEBACiAJCQkJQkMwMzJEQjkxMEY0MzgwRjAwNThDMTVB
IC8qIFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCQjEwRjQzODBGMDA1OEMx
NUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExMUI1RDEx
MkY2Mjk4MDAzMzdCQUIgLyogV2ViRXZlbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQky
RDg3MTAxNzE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTNERDIwMjEyNUU1QTFGMDA0NTE1RTYgLyogV2ViRmluZENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdl
YkZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4
RUIgLyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTkzLDYgKzcyMDAsNyBA
QAogCQkJCUYwMzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8q
IFdLQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZD
NjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ4NzEwMTYx
ODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0I5RTI0QzExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxQTU1NUY1MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRN
ZW51SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYg
LyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuY3BwCmluZGV4IGEyYzk4ZGQuLjBkODFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5jcHAKQEAgLTUwLDExICs1MCw5IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9yCiAg
ICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKGxheWVyVHlwZSwgb3duZXIs
IG1fY29udGV4dCk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xh
eWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgUGxhdGZv
cm1DQUxheWVyQ2xpZW50KikKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xh
eWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6Y3JlYXRlKHBsYXRmb3JtTGF5ZXIsIG93bmVyLCBtX2NvbnRleHQpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggMTNlMjU1Yy4uMTc5MDlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW1w
b3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKIAorI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVDb250ZXh0LmgiCkBAIC01OSwxMCArNjAsMjUgQEAgc3RhdGljIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZSogdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoUGxhdGZvcm1DQUxheWVyKiBs
YXllcikKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiB7CisgICAgUmVmUHRyPFBsYXRm
b3JtQ0FMYXllclJlbW90ZT4gbGF5ZXI7CisKICAgICBpZiAobGF5ZXJUeXBlID09IExheWVyVHlw
ZVRpbGVkQmFja2luZ0xheWVyIHx8ICBsYXllclR5cGUgPT0gTGF5ZXJUeXBlUGFnZVRpbGVkQmFj
a2luZ0xheWVyKQotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZyhsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KSk7CisgICAgICAgIGxh
eWVyID0gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZyhsYXll
clR5cGUsIG93bmVyLCBjb250ZXh0KSk7CisgICAgZWxzZQorICAgICAgICBsYXllciA9IGFkb3B0
UmVmKG5ldyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkp
OworCisgICAgY29udGV4dC0+bGF5ZXJXYXNDcmVhdGVkKGxheWVyLmdldCgpLCBsYXllclR5cGUp
OworCisgICAgcmV0dXJuIGxheWVyLnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKFBsYXRmb3JtTGF5ZXIgKnBs
YXRmb3JtTGF5ZXIsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQqIGNvbnRleHQpCit7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllclJlbW90ZT4g
bGF5ZXIgPSBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKHN0YXRpY19j
YXN0PFBsYXRmb3JtTGF5ZXIqPihwbGF0Zm9ybUxheWVyKSwgb3duZXIsIGNvbnRleHQpKTsKIAot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyVHlwZSwg
b3duZXIsIGNvbnRleHQpKTsKKyAgICBjb250ZXh0LT5sYXllcldhc0NyZWF0ZWQobGF5ZXIuZ2V0
KCksIExheWVyVHlwZUN1c3RvbSk7CisKKyAgICByZXR1cm4gbGF5ZXIucmVsZWFzZSgpOwogfQog
CiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OlBsYXRmb3JtQ0FMYXllclJlbW90ZShMYXllclR5cGUg
bGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVD
b250ZXh0KiBjb250ZXh0KQpAQCAtNzQsOCArOTAsNiBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5
ZQogewogICAgIC8vIEZJWE1FOiBtYXRjaCBhbGwgZGVmYXVsdCB2YWx1ZXMgZnJvbSBDQS4KICAg
ICBzZXRDb250ZW50c1NjYWxlKDEpOwotCi0gICAgbV9jb250ZXh0LT5sYXllcldhc0NyZWF0ZWQo
dGhpcywgbGF5ZXJUeXBlKTsKIH0KIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgY29u
c3QKQEAgLTQ4Niw0ICs1MDAsMTAgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3IKICAgICByZXR1
cm4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUobGF5ZXJUeXBlLCBjbGllbnQsIG1fY29u
dGV4dCk7CiB9CiAKK3VpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRl
eHRJRCgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
ICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaAppbmRleCAxZjVhZmJiLi5mMTI4ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDsKIGNsYXNz
IFBsYXRmb3JtQ0FMYXllclJlbW90ZSA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRl
KFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjcmVhdGUoUGxhdGZvcm1MYXllciAqLCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CiAKICAgICB2
aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKTsKIApAQCAtMTQ1LDYgKzE0Niw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNv
bXBhdGlibGVMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFs
IHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQoKTsKKwogcHJvdGVjdGVkOgogICAgIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCog
Y29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzAwMTRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20uY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20uaCIKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgor
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1DQUxheWVyTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCisg
ICAgOiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlQ3VzdG9tLCBvd25lciwgY29udGV4
dCkKK3sKKyAgICBzd2l0Y2ggKGNvbnRleHQtPmxheWVySG9zdGluZ01vZGUoKSkgeworICAgIGNh
c2UgTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQ6CisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4
dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQoV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkpOworICAgICAgICBicmVhazsKKyNpZiBI
QVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBjYXNlIExheWVySG9zdGlu
Z01vZGVJbldpbmRvd1NlcnZlcjoKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5
ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yV2luZG93U2VydmVyKCk7CisgICAgICAgIGJyZWFr
OworI2VuZGlmCisgICAgfQorCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIoY3VzdG9tTGF5ZXIpOworCisgICAgbV9wbGF0Zm9ybUxheWVyID0gY3VzdG9tTGF5ZXI7Cit9
CisKK1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbSgpCit7Cit9CisKKy8vIHNob3VsZCBwcm9iYWJseSBiZSAnaG9zdGluZ0NvbnRleHRJRCcK
Ky8vIHNob3VsZCBwcm9iYWJseSBqdXN0IGJlIG9uIHRoaXMgY2xhc3MgYW5kIG5vdCB0aGUgcGFy
ZW50Cit1aW50MzJfdCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206Omhvc3RpbmdDb250ZXh0
SUQoKQoreworICAgIHJldHVybiBtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpOwor
fQorCisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjY0YWEyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKQEAgLTAsMCArMSw1NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCisjZGVmaW5lIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbV9oCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKKyNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CisKK2NsYXNzIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbSBGSU5BTCA6IHB1YmxpYyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgeworICAg
IGZyaWVuZCBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKCk7CisKKyAgICB2aXJ0dWFsIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3BsYXRmb3Jt
TGF5ZXIuZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgdWludDMyX3QgaG9zdGluZ0NvbnRleHRJRCgp
IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQ
bGF0Zm9ybUxheWVyKiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dCopOworCisgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGlu
Z0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV9wbGF0Zm9ybUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNlbmRpZiAvLyBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b21faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuY3BwCmluZGV4IDc0MzczZTguLmNmNDFjMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
VGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKQEAgLTMzLDcgKzMzLDYg
QEAKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNBLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BsYXRmb3JtQ0FMYXllck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaWxlZEJhY2tpbmcuaD4K
LSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5k
ZXggN2YxOWU2NC4uZDk5NWI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKQEAgLTI2
LDcgKzI2LDkgQEAKICNpZm5kZWYgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dF9oCiAjZGVmaW5lIFJl
bW90ZUxheWVyVHJlZUNvbnRleHRfaAogCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgog
I2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckZhY3RvcnkuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4K
QEAgLTQ5LDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQgbGF5ZXJXYXNDcmVhdGVkKFBsYXRm
b3JtQ0FMYXllclJlbW90ZSosIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlKTsK
ICAgICB2b2lkIGxheWVyV2lsbEJlRGVzdHJveWVkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSopOwog
CisgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJQYWdlLT5sYXllckhvc3RpbmdNb2RlKCk7IH0KKwogcHJpdmF0ZToKICAgICAvLyBXZWJD
b3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNsaWVudCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmlu
ZGV4IDYwNzhkNzcuLmY1N2E2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAg
LTY1LDYgKzY1LDEwIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXYXNDcmVh
dGVkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIsIFBsYXRmCiAgICAgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzIGNyZWF0aW9uUHJvcGVydGll
czsKICAgICBjcmVhdGlvblByb3BlcnRpZXMubGF5ZXJJRCA9IGxheWVyLT5sYXllcklEKCk7CiAg
ICAgY3JlYXRpb25Qcm9wZXJ0aWVzLnR5cGUgPSB0eXBlOworCisgICAgaWYgKHR5cGUgPT0gUGxh
dGZvcm1DQUxheWVyOjpMYXllclR5cGVDdXN0b20pCisgICAgICAgIGNyZWF0aW9uUHJvcGVydGll
cy5ob3N0aW5nQ29udGV4dElEID0gbGF5ZXItPmhvc3RpbmdDb250ZXh0SUQoKTsKKwogICAgIG1f
Y3JlYXRlZExheWVycy5hcHBlbmQoY3JlYXRpb25Qcm9wZXJ0aWVzKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215984</attachid>
            <date>2013-11-04 18:55:06 -0800</date>
            <delta_ts>2013-11-04 20:53:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>plugins.diff</filename>
            <type>text/plain</type>
            <size>23257</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzNTk5ZGEwLi40MjlmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTMtMTEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IE1ha2UgTGF5ZXJUeXBlQ3VzdG9tIHJlbW90ZS1o
b3N0IENBTGF5ZXJzIGZyb20gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXQgZWFjaCBMYXllclR5cGVDdXN0b20gbGF5ZXIg
aW50byBhIENBQ29udGV4dCwgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgaG9zdCBzbWFsbCBDQUxh
eWVyIHRyZWVzIChmb3IgdmlkZW8sIHBsdWdpbnMsIGV0Yy4pIGZyb20gdGhlIFdlYiBwcm9jZXNz
CisgICAgICAgIHRvIHRoZSBVSSBwcm9jZXNzIHdpdGhvdXQgcHJveHlpbmcgdGhlaXIgKG1vcmUg
Y29tcGxleCkgY29udGVudC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmR1bXApOgorICAg
ICAgICBTdG9yZSwgZW5jb2RlLCBhbmQgZHVtcCB0aGUgQ0FDb250ZXh0IElEIG9mIGN1c3RvbSBs
YXllcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAg
ICAgICAgQ3JlYXRlIGEgQ0FMYXllckhvc3Qgd2l0aCB0aGUgQ0FDb250ZXh0IElEIGZyb20gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICBBZGQgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXll
cik6CisgICAgICAgIENhbGwgdGhlIG5ld2x5LWFkZGVkIGN1c3RvbS1sYXllciBjb25zdHJ1Y3Rv
ci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUpOgorICAg
ICAgICBNb3ZlIHRoZSBjYWxsIHRvIGxheWVyV2FzQ3JlYXRlZCgpIG91dCB0byA6OmNyZWF0ZSgp
LCBzbyB0aGF0IGFsbCBvZgorICAgICAgICB0aGUgY29uc3RydWN0b3JzIGZvciB0aGlzIGNsYXNz
IGFuZCBhbGwgc3ViY2xhc3NlcyBoYXZlIGNvbXBsZXRlZAorICAgICAgICBiZWZvcmUgd2UgY2Fs
bCBpdCAoc28gdGhhdCBsYXllcldhc0NyZWF0ZWQoKSBjYW4gc3RvcmUgdGhlIGNvbnRleHQgSUQK
KyAgICAgICAgaW4gdGhlIGNyZWF0ZWQgbGF5ZXIgcHJvcGVydGllcyBvYmplY3QpLgorCisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRleHRJRCk6Cisg
ICAgICAgIFNob3VsZCBuZXZlciBiZSByZWFjaGVkIG9uIHRoZSBiYXNlIGNsYXNzLCBvbmx5IFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206On5QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20pOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpob3N0
aW5nQ29udGV4dElEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbSwgd2hpY2ggb3ducyBhIExheWVySG9zdGluZ0NvbnRleHQKKyAgICAgICAg
d2hpY2ggaXQgd2lsbCB1c2UgdG8gc2hhcmUgYSBjdXN0b20gQ0FMYXllciB0cmVlIHdpdGggdGhl
IFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHA6CisgICAgICAgIERyaXZlLWJ5IHJlbW92ZSBh
biB1bm5lY2Vzc2FyeSBpbmNsdWRlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVDb250ZXh0OjpsYXllcldhc0NyZWF0ZWQpOgorICAgICAgICBTdG9yZSB0aGUgQ0FDb250
ZXh0IElEIHdpdGggdGhlIGxheWVyIGNyZWF0aW9uIHByb3BlcnRpZXMgc28gaXQgY2FuCisgICAg
ICAgIGJlIHVzZWQgdG8gY3JlYXRlIGEgQ0FMYXllckhvc3QgdXBvbiBjb21taXQgaW4gdGhlIFVJ
IHByb2Nlc3MuCisKIDIwMTMtMTEtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIFdyYXBwZXJzJyAtY29weVdpdGhab25lOiBzaG91bGQgY29weSBp
ZiB0aGUgY29sbGVjdGlvbiBpcyBtdXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggNzUwZjhhNS4uOGUw
OTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtODcsNiArODcsOCBAQCBwdWJsaWM6CiAKICAgICAgICAg
TGF5ZXJJRCBsYXllcklEOwogICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVy
VHlwZSB0eXBlOworCisgICAgICAgIHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQ7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBMYXllclByb3BlcnRpZXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggNWRiNjNj
ZC4uN2VmNGQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC00Nyw2ICs0Nyw5IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lCiB7CiAgICAgZW5jb2RlciA8PCBsYXllcklEOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bSh0eXBlKTsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlQ3VzdG9tKQorICAgICAgICBlbmNvZGVyIDw8IGhvc3RpbmdDb250ZXh0SUQ7CiB9CiAKIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMYXllckNyZWF0aW9uUHJv
cGVydGllcyYgcmVzdWx0KQpAQCAtNTcsNiArNjAsMTEgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmIChyZXN1bHQudHlwZSA9PSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZUN1c3RvbSkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5ob3N0
aW5nQ29udGV4dElEKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjg0LDcgKzY5Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmR1bXAoKSBjb25zdAogICAgICAgICAgICAgICAgIHRzIDw8ICJhdi1wbGF5
ZXItbGF5ZXIiOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1c3RvbToKLSAgICAgICAgICAgICAgICB0cyA8PCAiY3Vz
dG9tLWxheWVyIjsKKyAgICAgICAgICAgICAgICB0cyA8PCAiY3VzdG9tLWxheWVyIChjb250ZXh0
LWlkICIgPDwgY3JlYXRlZExheWVyLmhvc3RpbmdDb250ZXh0SUQgPDwgIikiOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdHMgPDwgIiAiIDw8IGNy
ZWF0ZWRMYXllci5sYXllcklEIDw8ICIpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCA0OTRmMDU5Li5hMWNiYTA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhv
c3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1MYXllci5oPgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogCkBAIC0yNDEsNiArMjQyLDkgQEAgQ0FMYXll
ciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyQ3JlYXQKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVHJh
bnNmb3JtTGF5ZXI6CiAgICAgICAgIGxheWVyID0gYWRvcHROUyhbW0NBVHJhbnNmb3JtTGF5ZXIg
YWxsb2NdIGluaXRdKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZUN1c3RvbToKKyAgICAgICAgbGF5ZXIgPSBXS01ha2VSZW5kZXJMYXllcihwcm9w
ZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDI2MWU3NC4uMTNiNmVi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzI1LDYgKzMyNSw4IEBACiAJCTJENDdCNTZDMTgxMDcxNEUwMDNBM0FFRSAvKiBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENDdCNTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbSAqLzsgfTsKIAkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaCAqLzsgfTsKIAkJMkQ4NzBEMTAxNjIzNEZGRTAwMEEzRjIwIC8qIFBERlBsdWdpbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcwRDBF
MTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi87IH07CisJCTJEODcxMDE2MTgyODQx
NUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4NzEwMTQxODI4NDE1RDAwMThG
QTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHAgKi87IH07CisJCTJEODcxMDE3
MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcxMDE1MTgyODQxNUQw
MDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCAqLzsgfTsKIAkJMkQ4OTQ5
RjAxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDg5NDlF
RTE4MjA0NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNw
cCAqLzsgfTsKIAkJMkQ4OTQ5RjExODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ4OTQ5RUYxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZy5oICovOyB9OwogCQkyREEwNDlCMzE4MENDQ0QzMDBBQUZBOUUgLyogUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwICovOyB9OwpAQCAtMTgxMCw2ICsxODEyLDggQEAKIAkJMkQ0N0I1NkIxODEwNzE0
RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEODcwRDBEMTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERGUGx1Z2luLmg7IHBhdGggPSBQREYv
UERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODcwRDBFMTYyMkI3
RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYvUERGUGx1Z2luLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRDg3MTAxNDE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJEODcxMDE1MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODk0
OUVFMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4
OTQ5RUYxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjEx
ODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk0MCw2ICs0OTQ0LDggQEAKIAkJCQkyREEwNDlC
NjE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggKi8sCiAJCQkJMkRB
MDQ5QjExODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJ
CQkJMkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICov
LAorCQkJCTJEODcxMDE0MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVD
dXN0b20uY3BwICovLAorCQkJCTJEODcxMDE1MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b20uaCAqLywKIAkJCQkyRDg5NDlFRTE4MjA0NEY2MDBFODk4QUEgLyog
UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcCAqLywKIAkJCQkyRDg5NDlFRjE4
MjA0NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggKi8s
CiAJCQkJMUFCMTZBRTgxNjRCM0E4ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQu
aCAqLywKQEAgLTU3MjIsNiArNTcyOCw3IEBACiAJCQkJQkMwMzJEQjkxMEY0MzgwRjAwNThDMTVB
IC8qIFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCQjEwRjQzODBGMDA1OEMx
NUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExMUI1RDEx
MkY2Mjk4MDAzMzdCQUIgLyogV2ViRXZlbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQky
RDg3MTAxNzE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTNERDIwMjEyNUU1QTFGMDA0NTE1RTYgLyogV2ViRmluZENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdl
YkZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4
RUIgLyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTkzLDYgKzcyMDAsNyBA
QAogCQkJCUYwMzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8q
IFdLQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZD
NjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ4NzEwMTYx
ODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0I5RTI0QzExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxQTU1NUY1MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRN
ZW51SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYg
LyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuY3BwCmluZGV4IGEyYzk4ZGQuLjBkODFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5jcHAKQEAgLTUwLDExICs1MCw5IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9yCiAg
ICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKGxheWVyVHlwZSwgb3duZXIs
IG1fY29udGV4dCk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xh
eWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgUGxhdGZv
cm1DQUxheWVyQ2xpZW50KikKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xh
eWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6Y3JlYXRlKHBsYXRmb3JtTGF5ZXIsIG93bmVyLCBtX2NvbnRleHQpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggMTNlMjU1Yy4uMTc5MDlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW1w
b3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKIAorI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVDb250ZXh0LmgiCkBAIC01OSwxMCArNjAsMjUgQEAgc3RhdGljIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZSogdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoUGxhdGZvcm1DQUxheWVyKiBs
YXllcikKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiB7CisgICAgUmVmUHRyPFBsYXRm
b3JtQ0FMYXllclJlbW90ZT4gbGF5ZXI7CisKICAgICBpZiAobGF5ZXJUeXBlID09IExheWVyVHlw
ZVRpbGVkQmFja2luZ0xheWVyIHx8ICBsYXllclR5cGUgPT0gTGF5ZXJUeXBlUGFnZVRpbGVkQmFj
a2luZ0xheWVyKQotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZyhsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KSk7CisgICAgICAgIGxh
eWVyID0gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZyhsYXll
clR5cGUsIG93bmVyLCBjb250ZXh0KSk7CisgICAgZWxzZQorICAgICAgICBsYXllciA9IGFkb3B0
UmVmKG5ldyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkp
OworCisgICAgY29udGV4dC0+bGF5ZXJXYXNDcmVhdGVkKGxheWVyLmdldCgpLCBsYXllclR5cGUp
OworCisgICAgcmV0dXJuIGxheWVyLnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKFBsYXRmb3JtTGF5ZXIgKnBs
YXRmb3JtTGF5ZXIsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQqIGNvbnRleHQpCit7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllclJlbW90ZT4g
bGF5ZXIgPSBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKHN0YXRpY19j
YXN0PFBsYXRmb3JtTGF5ZXIqPihwbGF0Zm9ybUxheWVyKSwgb3duZXIsIGNvbnRleHQpKTsKIAot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyVHlwZSwg
b3duZXIsIGNvbnRleHQpKTsKKyAgICBjb250ZXh0LT5sYXllcldhc0NyZWF0ZWQobGF5ZXIuZ2V0
KCksIExheWVyVHlwZUN1c3RvbSk7CisKKyAgICByZXR1cm4gbGF5ZXIucmVsZWFzZSgpOwogfQog
CiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OlBsYXRmb3JtQ0FMYXllclJlbW90ZShMYXllclR5cGUg
bGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVD
b250ZXh0KiBjb250ZXh0KQpAQCAtNzQsOCArOTAsNiBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5
ZQogewogICAgIC8vIEZJWE1FOiBtYXRjaCBhbGwgZGVmYXVsdCB2YWx1ZXMgZnJvbSBDQS4KICAg
ICBzZXRDb250ZW50c1NjYWxlKDEpOwotCi0gICAgbV9jb250ZXh0LT5sYXllcldhc0NyZWF0ZWQo
dGhpcywgbGF5ZXJUeXBlKTsKIH0KIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgY29u
c3QKQEAgLTQ4Niw0ICs1MDAsMTAgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3IKICAgICByZXR1
cm4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUobGF5ZXJUeXBlLCBjbGllbnQsIG1fY29u
dGV4dCk7CiB9CiAKK3VpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRl
eHRJRCgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
ICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaAppbmRleCAxZjVhZmJiLi5mMTI4ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDsKIGNsYXNz
IFBsYXRmb3JtQ0FMYXllclJlbW90ZSA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRl
KFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjcmVhdGUoUGxhdGZvcm1MYXllciAqLCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CiAKICAgICB2
aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKTsKIApAQCAtMTQ1LDYgKzE0Niw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNv
bXBhdGlibGVMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFs
IHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQoKTsKKwogcHJvdGVjdGVkOgogICAgIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCog
Y29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmJjNWViCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20uY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20uaCIKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgor
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1DQUxheWVyTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCisg
ICAgOiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlQ3VzdG9tLCBvd25lciwgY29udGV4
dCkKK3sKKyAgICBzd2l0Y2ggKGNvbnRleHQtPmxheWVySG9zdGluZ01vZGUoKSkgeworICAgIGNh
c2UgTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQ6CisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4
dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQoV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkpOworICAgICAgICBicmVhazsKKyNpZiBI
QVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBjYXNlIExheWVySG9zdGlu
Z01vZGVJbldpbmRvd1NlcnZlcjoKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5
ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yV2luZG93U2VydmVyKCk7CisgICAgICAgIGJyZWFr
OworI2VuZGlmCisgICAgfQorCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIoY3VzdG9tTGF5ZXIpOworCisgICAgbV9wbGF0Zm9ybUxheWVyID0gY3VzdG9tTGF5ZXI7Cit9
CisKK1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbSgpCit7Cit9CisKK3VpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6aG9z
dGluZ0NvbnRleHRJRCgpCit7CisgICAgcmV0dXJuIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29u
dGV4dElEKCk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNjRhYTIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApAQCAt
MCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tX2gKKyNkZWZp
bmUgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tX2gKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKworI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKKworY2xhc3MgUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tIEZJTkFMIDogcHVibGljIFBsYXRmb3JtQ0FMYXllclJl
bW90ZSB7CisgICAgZnJpZW5kIGNsYXNzIFBsYXRmb3JtQ0FMYXllclJlbW90ZTsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKTsKKworICAgIHZpcnR1
YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fcGxhdGZvcm1MYXllci5nZXQoKTsgfQorCisgICAgdmlydHVhbCB1aW50MzJfdCBob3N0aW5n
Q29udGV4dElEKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
IG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OworICAgIFJldGFpblB0
cjxQbGF0Zm9ybUxheWVyPiBtX3BsYXRmb3JtTGF5ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2VuZGlm
IC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKaW5kZXggNzQzNzNlOC4uY2Y0MWMyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RpbGVk
QmFja2luZy5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQuaAppbmRleCA3ZjE5ZTY0Li5kOTk1YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaApAQCAtMjYsNyArMjYsOSBAQAogI2lmbmRlZiBSZW1vdGVMYXllclRyZWVDb250ZXh0X2gK
ICNkZWZpbmUgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dF9oCiAKKyNpbmNsdWRlICJMYXllclRyZWVD
b250ZXh0LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyRmFjdG9yeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9UaW1lci5oPgpAQCAtNDksNiArNTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXllcldhc0Ny
ZWF0ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGUpOwogICAgIHZvaWQgbGF5ZXJXaWxsQmVEZXN0cm95ZWQoUGxhdGZvcm1DQUxheWVy
UmVtb3RlKik7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25z
dCB7IHJldHVybiBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsgfQorCiBwcml2YXRlOgog
ICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5CiAgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW0KaW5kZXggNjA3OGQ3Ny4uZjU3YTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5tbQpAQCAtNjUsNiArNjUsMTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllcldhc0NyZWF0ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllciwgUGxhdGYKICAgICBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMgY3JlYXRp
b25Qcm9wZXJ0aWVzOwogICAgIGNyZWF0aW9uUHJvcGVydGllcy5sYXllcklEID0gbGF5ZXItPmxh
eWVySUQoKTsKICAgICBjcmVhdGlvblByb3BlcnRpZXMudHlwZSA9IHR5cGU7CisKKyAgICBpZiAo
dHlwZSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1c3RvbSkKKyAgICAgICAgY3JlYXRp
b25Qcm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQgPSBsYXllci0+aG9zdGluZ0NvbnRleHRJRCgp
OworCiAgICAgbV9jcmVhdGVkTGF5ZXJzLmFwcGVuZChjcmVhdGlvblByb3BlcnRpZXMpOwogfQog
Cg==
</data>
<flag name="review"
          id="238857"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>