<?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>48192</bug_id>
          
          <creation_ts>2010-10-23 11:15:19 -0700</creation_ts>
          <short_desc>[Cairo] Remove PlatformRefPtrCairo</short_desc>
          <delta_ts>2010-11-02 19:24:06 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298438</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-23 11:15:19 -0700</bug_when>
    <thetext>PlatformRefPtrCairo is unecessary. It should be replaced by a RefPtr specialization. See this mailing list thread for more details: http://comments.gmane.org/gmane.os.opendarwin.webkit.devel/14529 This is the first step toward removing PlatformRefPtr entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298446</commentid>
    <comment_count>1</comment_count>
      <attachid>71651</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-23 12:05:37 -0700</bug_when>
    <thetext>Created attachment 71651
Remove PlatformRefPtrCairo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298937</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2010-10-25 10:11:50 -0700</bug_when>
    <thetext>I heartily approve of this change.  This should also resolve some of Darin&apos;s concerns about the use of the term &apos;Platform&apos; in the RefPtr name.

Let&apos;s get it approved and landed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299078</commentid>
    <comment_count>3</comment_count>
      <attachid>71789</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-25 13:22:20 -0700</bug_when>
    <thetext>Created attachment 71789
Patch also including RefPtrCair.cpp and RefPtrCairo.h

My previous patch did not include RefPtrCairo.h and RefPtrCairo.cpp. I could not convince webkit-patch to include them for some reason, so I&apos;ve had to roll the patch by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299080</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 13:25:36 -0700</bug_when>
    <thetext>Attachment 71789 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:33:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:39:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:45:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:51:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:57:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:63:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:69:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:75:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:82:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/graphics/cairo/RefPtrCairo.cpp:88:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 10 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299084</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-25 13:31:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; WebCore/platform/graphics/cairo/RefPtrCairo.cpp:33:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]

I believe these are all false positives. When making the patch I discovered that LIKELY will not accept a pointer as an argument. It requires something which evaluates to a boolean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299093</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 13:58:33 -0700</bug_when>
    <thetext>Attachment 71651 did not build on gtk:
Build output: http://queues.webkit.org/results/4819001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303859</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-02 19:24:06 -0700</bug_when>
    <thetext>Committed r71204: &lt;http://trac.webkit.org/changeset/71204&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71651</attachid>
            <date>2010-10-23 12:05:37 -0700</date>
            <delta_ts>2010-10-25 13:22:20 -0700</delta_ts>
            <desc>Remove PlatformRefPtrCairo</desc>
            <filename>bug-48192-20101023120537.patch</filename>
            <type>text/plain</type>
            <size>20802</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQgYi9XZWJDb3JlL0NNYWtlTGlz
dHNFZmwudHh0CmluZGV4IGU0NGRmZDQ5ZDBlMzAwODY5NmRkMGMzNWEwMjViYjMxZjZmYmMwMTku
LmJlYzJkYjU0Zjg2MjhmNzVmZDdiNDNiNjhkOTBlZmQ0MjI4ZjI0MTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dApA
QCAtODEsNyArODEsNyBAQCBJRiAoV1RGX1BMQVRGT1JNX0NBSVJPKQogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1BhdGhDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8u
Y3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDdjMDMzYjAwZGY1
YTVlYmVmZTNlZGQ2ODQxYzA1OGIzYTU3N2NhNC4uOWMzZWZkODJjZjJhYjhiYmM1MTA1Yjk1Nzgz
NzcxNDRlYzlhZDdkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NiBAQAogMjAxMC0xMC0yMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW0NhaXJvXSBSZW1vdmUgUGxhdGZvcm1SZWZQdHJDYWlybworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxOTIKKworICAg
ICAgICBSZXBsYWNlIFBsYXRmb3JtUmVmUHRyQ2Fpcm8gd2l0aCBhIFJlZlB0ciBzcGVjaWFsaXph
dGlvbiBmb3IgQ2Fpcm8gYW5kCisgICAgICAgIEZvbnRjb25maWcgdHlwZXMuIFRoaXMgaXMgdGhl
IGZpcnN0IHN0ZXAgdG93YXJkIHJlbW92aW5nIFBsYXRmb3JtUmVmUHRyLAorICAgICAgICB3aG9z
ZSBqb2IgaXMgYmV0dGVyIGhhbmRsZWQgYnkgUmVmUHRyLgorCisgICAgICAgICogQ01ha2VMaXN0
c0VmbC50eHQ6IFVwZGF0ZSB0aGUgc291cmNlcyBsaXN0IHRvIGluY2x1ZGUgUmVmUHRyQ2Fpcm8K
KyAgICAgICAgaW5zdGVhZCBvZiBQbGF0Zm9ybVJlZlB0ckNhaXJvLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
IFJlcGxhY2UgUGxhdGZvcm1SZWZQdHJDYWlybyB3aXRoCisgICAgICAgIFJlZlB0ckNhaXJvLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcDogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhY2hlRnJlZVR5cGUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFy
YWN0ZXJzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNyZWF0ZUZvbnRQ
bGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6OmluaXRpYWxpemVXaXRoRm9udEZhY2UpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
aDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUNhaXJvLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UmVmUHRyQ2Fpcm8uY3BwOiBSZW5hbWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybVJlZlB0ckNhaXJvLmNwcC4KKyAgICAgICAgKFdURjo6cmVmSWZOb3ROdWxs
KTogQWRkZWQuCisgICAgICAgIChXVEY6OmRlcmVmSWZOb3ROdWxsKTogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uaDogUmVuYW1lZCBmcm9tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5oLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOiBSZXBsYWNlIFBsYXRmb3JtUmVmUHRy
Q2Fpcm8gd2l0aAorICAgICAgICBSZWZQdHJDYWlyby4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZU5hbWVkQ3Vyc29yKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0
ay5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6IERpdHRvLgor
ICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KTogRGl0dG8uCisKKzIwMTAtMTAtMjMgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KIAogICAgICAgICBbR1RLXSBNZW51IGxpc3QgYnV0dG9ucyBkbyByZWFjdCBw
cm9wZXJseSB0byBDU1Mgc3R5bGluZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMjZiNjkyZDNlYzczNjM2MmFmZTI1NDU5
Njc4M2FlYTc4YmI4YzM2MC4uZGNlNTU1YWU5MjJhNDFjMTRlZWE3OGI1NzVlNzE3Nzg2Y2E1NmEw
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0zNDg5LDggKzM0ODksOCBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHAgXAotCVdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5oIFwKKwlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9EYXRhU291cmNlR1N0cmVhbWVyLmNwcCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvRGF0YVNvdXJjZUdTdHJlYW1lci5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJkNjY5ZmE0M2M3MjQ2MzkzOWI1NjQx
NjdjNDkwNmE5OGNmMzgwMWMuLjQ1OWRhNTAzZjEzZDQ1ZDdhZmYwMTk1MDFlMTY0MmY4ODQ1YjQw
ZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjcwNzcsNyArMjcw
NzcsNyBAQAogCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJCTwvRmlsZT4NCiAJCQkJ
CTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xQ
bGF0Zm9ybVJlZlB0ckNhaXJvLmNwcCINCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXGNhaXJvXFJlZlB0ckNhaXJvLmNwcCINCiAJCQkJCQk+DQogCQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQogCQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTI3MTEzLDcgKzI3
MTEzLDcgQEAKIAkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCQk8L0ZpbGU+DQogCQkJ
CQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9c
UGxhdGZvcm1SZWZQdHJDYWlyby5oIg0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm9cUmVmUHRyQ2Fpcm8uaCINCiAJCQkJCQk+DQogCQkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQogCQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDI0NjVhN2M4ZTU2ODY3ZWM4M2VlYzNi
ZjIzNGU5YjRlZTlkNmNkZDUuLjhjMDRmNmYwNjEwM2ZkODk3ZDIxODVjODUxMzZmOGNiOWFmYjE0
MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAt
NDAsNyArNDAsNiBAQAogI2lmIFBMQVRGT1JNKENHKQogdHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VsaWYgUExBVEZPUk0oQ0FJUk8pCi0jaW5jbHVk
ZSAiUGxhdGZvcm1SZWZQdHJDYWlyby5oIgogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29u
dGV4dFNoYWRvdzsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5jcHAKaW5kZXggN2FmNTU3NzUyY2IwMGJkNjM0OGEwODY4MzgyZmU2MmVi
ZmNhMzYzZS4uNzA5ZWU4ZjljZjcyZjMxYjljMjk3NDg3ZWIwMTg1ZjEwOTNhNDBhNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAK
QEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiT3duUHRy
Q2Fpcm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJDYWly
by5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsMTEgKzEyNiwxMSBAQCB2b2lkIGRyYXdQYXR0
ZXJuVG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogY3IsIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2UsIGNv
bnN0IEludFNpegogCiAgICAgY2Fpcm9fc2F2ZShjcik7CiAKLSAgICBQbGF0Zm9ybVJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNsaXBwZWRJbWFnZVN1cmZhY2UgPSAwOworICAgIFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+IGNsaXBwZWRJbWFnZVN1cmZhY2UgPSAwOwogICAgIGlmICh0aWxlUmVjdC5z
aXplKCkgIT0gaW1hZ2VTaXplKSB7CiAgICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gZW5jbG9z
aW5nSW50UmVjdCh0aWxlUmVjdCk7Ci0gICAgICAgIGNsaXBwZWRJbWFnZVN1cmZhY2UgPSBhZG9w
dFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdC
MzIsIGltYWdlUmVjdC53aWR0aCgpLCBpbWFnZVJlY3QuaGVpZ2h0KCkpKTsKLSAgICAgICAgUGxh
dGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY2xpcHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUoY2xp
cHBlZEltYWdlU3VyZmFjZS5nZXQoKSkpOworICAgICAgICBjbGlwcGVkSW1hZ2VTdXJmYWNlID0g
YWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwg
aW1hZ2VSZWN0LndpZHRoKCksIGltYWdlUmVjdC5oZWlnaHQoKSkpOworICAgICAgICBSZWZQdHI8
Y2Fpcm9fdD4gY2xpcHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUoY2xpcHBlZEltYWdlU3Vy
ZmFjZS5nZXQoKSkpOwogICAgICAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY2xpcHBlZElt
YWdlQ29udGV4dC5nZXQoKSwgaW1hZ2UsIC10aWxlUmVjdC54KCksIC10aWxlUmVjdC55KCkpOwog
ICAgICAgICBjYWlyb19wYWludChjbGlwcGVkSW1hZ2VDb250ZXh0LmdldCgpKTsKICAgICAgICAg
aW1hZ2UgPSBjbGlwcGVkSW1hZ2VTdXJmYWNlLmdldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2FjaGVGcmVlVHlwZS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCA1ZGNhMDEw
ZjdhZDQ3YjgzOTBlZjA3MTE1OGU0ZWI2ODZmYjdkNTI2Li40ODZlZWQwZjU4NDY5MzBlMjIwNjU5
N2VmYjYwN2JiNjM2MGRiMzE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1
ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiT3duUHRyQ2Fpcm8u
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybVJlZlB0ckNhaXJvLmgiCisjaW5jbHVkZSAiUmVmUHRyQ2Fp
cm8uaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPGNhaXJvLWZ0Lmg+
CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KQEAgLTU3LDcgKzU3LDcgQEAgY29uc3QgU2ltcGxlRm9udERh
dGEqIEZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnMKICAgICBGY0ZvbnRTZXQqIGZzID0gcHJpbS0+bV9mYWxsYmFja3M7CiAKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGZzLT5uZm9udDsgaSsrKSB7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRy
PEZjUGF0dGVybj4gZmluID0gYWRvcHRQbGF0Zm9ybVJlZihGY0ZvbnRSZW5kZXJQcmVwYXJlKDAs
IHByaW0tPm1fcGF0dGVybi5nZXQoKSwgZnMtPmZvbnRzW2ldKSk7CisgICAgICAgIFJlZlB0cjxG
Y1BhdHRlcm4+IGZpbiA9IGFkb3B0UmVmKEZjRm9udFJlbmRlclByZXBhcmUoMCwgcHJpbS0+bV9w
YXR0ZXJuLmdldCgpLCBmcy0+Zm9udHNbaV0pKTsKICAgICAgICAgY2Fpcm9fZm9udF9mYWNlX3Qq
IGZvbnRGYWNlID0gY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihmaW4uZ2V0
KCkpOwogICAgICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoZm9udEZhY2UsIGZv
bnQuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhlbFNpemUoKSwgZmFsc2UsIGZhbHNlKTsK
ICAgICAgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3koZm9udEZhY2UpOwpAQCAtMTE3LDcgKzEx
Nyw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRECiAgICAgLy8gVGhlIENTUyBmb250IG1hdGNo
aW5nIGFsZ29yaXRobSAoaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mb250cy8jZm9udC1tYXRj
aGluZy1hbGdvcml0aG0pCiAgICAgLy8gc2F5cyB0aGF0IHdlIG11c3QgZmluZCBhbiBleGFjdCBt
YXRjaCBmb3IgZm9udCBmYW1pbHksIHNsYW50IChpdGFsaWMgb3Igb2JsaXF1ZSBjYW4gYmUgdXNl
ZCkKICAgICAvLyBhbmQgZm9udCB3ZWlnaHQgKHdlIG9ubHkgbWF0Y2ggYm9sZC9ub24tYm9sZCBo
ZXJlKS4KLSAgICBQbGF0Zm9ybVJlZlB0cjxGY1BhdHRlcm4+IHBhdHRlcm4gPSBhZG9wdFBsYXRm
b3JtUmVmKEZjUGF0dGVybkNyZWF0ZSgpKTsKKyAgICBSZWZQdHI8RmNQYXR0ZXJuPiBwYXR0ZXJu
ID0gYWRvcHRSZWYoRmNQYXR0ZXJuQ3JlYXRlKCkpOwogICAgIFN0cmluZyBmYW1pbHlOYW1lU3Ry
aW5nKGdldEZhbWlseU5hbWVTdHJpbmdGcm9tRm9udERlc2NyaXB0aW9uQW5kRmFtaWx5KGZvbnRE
ZXNjcmlwdGlvbiwgZmFtaWx5KSk7CiAgICAgaWYgKCFGY1BhdHRlcm5BZGRTdHJpbmcocGF0dGVy
bi5nZXQoKSwgRkNfRkFNSUxZLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmYW1p
bHlOYW1lU3RyaW5nLnV0ZjgoKS5kYXRhKCkpKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDQs
NyArMTQ0LDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICBTdHJpbmcgZmFtaWx5TmFt
ZUFmdGVyQ29uZmlndXJhdGlvbiA9IFN0cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oZm9udENvbmZpZ0ZhbWlseU5hbWVBZnRlckNvbmZpZ3VyYXRpb24pKTsKIAogICAgIEZj
UmVzdWx0IGZvbnRDb25maWdSZXN1bHQ7Ci0gICAgUGxhdGZvcm1SZWZQdHI8RmNQYXR0ZXJuPiBy
ZXN1bHRQYXR0ZXJuID0gYWRvcHRQbGF0Zm9ybVJlZihGY0ZvbnRNYXRjaCgwLCBwYXR0ZXJuLmdl
dCgpLCAmZm9udENvbmZpZ1Jlc3VsdCkpOworICAgIFJlZlB0cjxGY1BhdHRlcm4+IHJlc3VsdFBh
dHRlcm4gPSBhZG9wdFJlZihGY0ZvbnRNYXRjaCgwLCBwYXR0ZXJuLmdldCgpLCAmZm9udENvbmZp
Z1Jlc3VsdCkpOwogICAgIGlmICghcmVzdWx0UGF0dGVybikgLy8gTm8gbWF0Y2guCiAgICAgICAg
IHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKaW5kZXggYmEzMDdmYWFiZGNiODI1
YzIxMDg1ZDQ4MWUwYjhhZTYzNjZhZDcyNC4uZjVhODUzYzdmZjAwMjY2NzYxYzgxMzdjMWZkYmUz
ODgwM2Q3MzdhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtMjUsOCArMjUsOSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKIAotI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2lu
Y2x1ZGUgPGNhaXJvLWZ0Lmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxmb250Y29u
ZmlnL2ZjZnJlZXR5cGUuaD4KQEAgLTEyMSw3ICsxMjIsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKEZjUGF0dGVybiogcGF0dGVybiwgY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmbwogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGZhbHNlKQogICAgICwgbV9maXhlZFdpZHRo
KGZhbHNlKQogewotICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX2ZvbnRfZmFjZV90PiBmb250RmFj
ZSA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVy
bihtX3BhdHRlcm4uZ2V0KCkpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fZm9udF9mYWNlX3Q+IGZvbnRG
YWNlID0gYWRvcHRSZWYoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihtX3Bh
dHRlcm4uZ2V0KCkpKTsKICAgICBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGZvbnRGYWNlLmdldCgp
KTsKIAogICAgIGludCBzcGFjaW5nOwpAQCAtMjU2LDcgKzI1Nyw3IEBAIHZvaWQgRm9udFBsYXRm
b3JtRGF0YTo6aW5pdGlhbGl6ZVdpdGhGb250RmFjZShjYWlyb19mb250X2ZhY2VfdCogZm9udEZh
Y2UpCiAgICAgICAgIGNhaXJvX21hdHJpeF9zY2FsZSgmZm9udE1hdHJpeCwgbV9zaXplLCBtX3Np
emUpOwogICAgIH0KIAotICAgIG1fc2NhbGVkRm9udCA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9f
c2NhbGVkX2ZvbnRfY3JlYXRlKGZvbnRGYWNlLCAmZm9udE1hdHJpeCwgJmN0bSwgb3B0aW9ucykp
OworICAgIG1fc2NhbGVkRm9udCA9IGFkb3B0UmVmKGNhaXJvX3NjYWxlZF9mb250X2NyZWF0ZShm
b250RmFjZSwgJmZvbnRNYXRyaXgsICZjdG0sIG9wdGlvbnMpKTsKICAgICBjYWlyb19mb250X29w
dGlvbnNfZGVzdHJveShvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKaW5kZXggN2Qz
ZmY5OTAxOGZiMjE4ODkwNDNhMzBlNjFjYzlmMjIxNzU1ZjNmYS4uYTJjMjhiZGE5ZDVhZTExYWZk
YTdhZjJmMDUwZTJhMTZlMzM2MjZkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZm
ZXIuaCIKICNpbmNsdWRlICJIYXNoRnVuY3Rpb25zLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQ
dHJDYWlyby5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0ZjRm9udFNldCBGY0ZvbnRTZXQ7CkBAIC04NSwxMyAr
ODUsMTMgQEAgcHVibGljOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlm
CiAKLSAgICBQbGF0Zm9ybVJlZlB0cjxGY1BhdHRlcm4+IG1fcGF0dGVybjsKKyAgICBSZWZQdHI8
RmNQYXR0ZXJuPiBtX3BhdHRlcm47CiAgICAgRmNGb250U2V0KiBtX2ZhbGxiYWNrczsKICAgICBm
bG9hdCBtX3NpemU7CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRo
ZXRpY09ibGlxdWU7CiAgICAgYm9vbCBtX2ZpeGVkV2lkdGg7Ci0gICAgUGxhdGZvcm1SZWZQdHI8
Y2Fpcm9fc2NhbGVkX2ZvbnRfdD4gbV9zY2FsZWRGb250OworICAgIFJlZlB0cjxjYWlyb19zY2Fs
ZWRfZm9udF90PiBtX3NjYWxlZEZvbnQ7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXpl
V2l0aEZvbnRGYWNlKGNhaXJvX2ZvbnRfZmFjZV90Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDA4
NDdkYTEyZjQxNDFlMWZlNzU3NjAxMDMzMTE1NzE1NjNkODNmODMuLjQ0M2ExZTA5NTBkNzZlMDUw
MzYxNWYxMTI5MmY2NzlhOWY4MTkyMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC00Niw3ICs0Niw3
IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5j
bHVkZSAiUGF0dGVybi5oIgotI2luY2x1ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKKyNpbmNs
dWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVk
ZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxtYXRoLmg+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAppbmRleCA4ZjdhMTk0ZDAyOWQ1NDFjOWU1YTg4OGVm
Y2Q2NDQzMTY1ZjIyOGJlLi4wYWMzOTU1ODkxOGFlN2I1MmVmYjE5ZTU0MmZhYjlhYTM5YTA5NGI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8u
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAK
QEAgLTM1LDEwICszNSwxMCBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiQ29udGV4
dFNoYWRvdy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtUmVm
UHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFn
ZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJSZWZQdHJD
YWlyby5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0
ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCmluZGV4IDk5NzFiZmJh
YjNiZjM3YzgyNmI1NzQ2NjA0NGM5ZTAwNzYzMjQzNmQuLjM5MDczYWUxMzVhMDMwNjVhOTE0ZWE4
MTQwYzNkNjA1MDMzMmE0MDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNv
ckd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcApAQCAtMzIs
NyArMzIsNyBAQAogCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTQ3LDEwICs0NywxMCBAQCBzdGF0aWMgUGxhdGZvcm1SZWZQ
dHI8R2RrQ3Vyc29yPiBjcmVhdGVOYW1lZEN1cnNvcihDdXN0b21DdXJzb3JUeXBlIGN1cnNvclR5
cGUpCiAgICAgICAgIHJldHVybiBjOwogCiAgICAgSW50U2l6ZSBjdXJzb3JTaXplID0gSW50U2l6
ZSgzMiwgMzIpOwotICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc291cmNlID0g
YWRvcHRQbGF0Zm9ybVJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShjb25z
dF9jYXN0PHVuc2lnbmVkIGNoYXIqPihjdXJzb3IuYml0cyksIENBSVJPX0ZPUk1BVF9BMSwgMzIs
IDMyLCA0KSk7Ci0gICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtYXNrID0gYWRv
cHRQbGF0Zm9ybVJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShjb25zdF9j
YXN0PHVuc2lnbmVkIGNoYXIqPihjdXJzb3IubWFza19iaXRzKSwgQ0FJUk9fRk9STUFUX0ExLCAz
MiwgMzIsIDQpKTsKLSAgICBQbGF0Zm9ybVJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2Ug
PSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1B
VF9BMSwgMzIsIDMyKSk7Ci0gICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFBs
YXRmb3JtUmVmKGNhaXJvX2NyZWF0ZShzdXJmYWNlLmdldCgpKSk7CisgICAgUmVmUHRyPGNhaXJv
X3N1cmZhY2VfdD4gc291cmNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVf
Zm9yX2RhdGEoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oY3Vyc29yLmJpdHMpLCBDQUlST19G
T1JNQVRfQTEsIDMyLCAzMiwgNCkpOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1hc2sg
PSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShjb25zdF9jYXN0
PHVuc2lnbmVkIGNoYXIqPihjdXJzb3IubWFza19iaXRzKSwgQ0FJUk9fRk9STUFUX0ExLCAzMiwg
MzIsIDQpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYo
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0ExLCAzMiwgMzIpKTsKKyAg
ICBSZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZS5nZXQo
KSkpOwogCiAgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLmdldCgpLCBzb3VyY2UuZ2V0
KCksIGN1cnNvci5ob3RfeCwgY3Vyc29yLmhvdF95KTsKICAgICBjYWlyb19tYXNrX3N1cmZhY2Uo
Y3IuZ2V0KCksIG1hc2suZ2V0KCksIGN1cnNvci5ob3RfeCwgY3Vyc29yLmhvdF95KTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCmluZGV4IDlkMGQ4Mzg5MWRmZTU3YjJkNThmNmQ0
MmUzODYwZDg5MWVmZWI5ODEuLjcxYTY1ZTExMzg3ZmNkMzY5N2Q3OTAyNWY1YzA0YmE5ZDdlMDMx
YjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcApAQCAtMjEsNyArMjEsNyBA
QAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2lu
Y2x1ZGUgPGNhaXJvLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDcgKzQ5LDcgQEAg
RHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXpl
IHNjYWxlKQogICAgIGludCBuZXdIZWlnaHQgPSBzY2FsZS5oZWlnaHQoKSAqIGNhaXJvX2ltYWdl
X3N1cmZhY2VfZ2V0X2hlaWdodChpbWFnZSk7CiAgICAgY2Fpcm9fc3VyZmFjZV90KiBzY2FsZWRT
dXJmYWNlID0gY2Fpcm9fc3VyZmFjZV9jcmVhdGVfc2ltaWxhcihpbWFnZSwgQ0FJUk9fQ09OVEVO
VF9DT0xPUl9BTFBIQSwgbmV3V2lkdGgsIG5ld0hlaWdodCk7CiAKLSAgICBQbGF0Zm9ybVJlZlB0
cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRQbGF0Zm9ybVJlZihjYWlyb19jcmVhdGUoc2NhbGVk
U3VyZmFjZSkpOworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9f
Y3JlYXRlKHNjYWxlZFN1cmZhY2UpKTsKICAgICBjYWlyb19zY2FsZShjb250ZXh0LmdldCgpLCBz
Y2FsZS53aWR0aCgpLCBzY2FsZS5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fcGF0dGVybl9zZXRfZXh0
ZW5kKGNhaXJvX2dldF9zb3VyY2UoY29udGV4dC5nZXQoKSksIENBSVJPX0VYVEVORF9QQUQpOwog
ICAgIGNhaXJvX3BhdHRlcm5fc2V0X2ZpbHRlcihjYWlyb19nZXRfc291cmNlKGNvbnRleHQuZ2V0
KCkpLCBDQUlST19GSUxURVJfQkVTVCk7CkBAIC02Niw3ICs2Niw3IEBAIERyYWdJbWFnZVJlZiBk
aXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCBmcmFj
dGlvbikKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFBsYXRmb3Jt
UmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2NyZWF0ZShp
bWFnZSkpOworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3Jl
YXRlKGltYWdlKSk7CiAgICAgY2Fpcm9fc2V0X29wZXJhdG9yKGNvbnRleHQuZ2V0KCksIENBSVJP
X09QRVJBVE9SX0RFU1RfSU4pOwogICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjb250ZXh0Lmdl
dCgpLCAwLCAwLCAwLCBmcmFjdGlvbik7CiAgICAgY2Fpcm9fcGFpbnQoY29udGV4dC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCA2OTU0YWYzM2UwNWM3ZWM0
MDlmMGVmYmM0OGE3Nzc2YmM0YTNiYjU4Li5jZTk2MTNhNGYyYTRlMjljZGMzMWNkNjU2NDdiYzhh
YjgxMWNhMzczIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTY2LDYg
KzY2LDcgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgpCisj
aW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJndGsyeHRiaW4uaCIKICNkZWZpbmUg
Qm9vbCBpbnQgLy8gdGhpcyBnb3QgdW5kZWZpbmVkIHNvbWV3aGVyZQogI2RlZmluZSBTdGF0dXMg
aW50IC8vIGRpdHRvCkBAIC0xOTUsMTggKzE5NiwxOCBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBleHBv
c2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogICAgIGV4cG9zZWRSZWN0Lm1vdmUoLWZy
YW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7CiAKLSAgICBQbGF0Zm9ybVJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGRyYXdhYmxlU3VyZmFjZSA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9f
eGxpYl9zdXJmYWNlX2NyZWF0ZShkaXNwbGF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZHJhd2FibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV92aXN1YWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV93aW5kb3dSZWN0LndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV93aW5kb3dSZWN0LmhlaWdodCgpKSk7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gZHJhd2FibGVTdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9feGxpYl9zdXJmYWNlX2NyZWF0
ZShkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZHJhd2FibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV92aXN1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93aW5kb3dSZWN0LndpZHRoKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93aW5k
b3dSZWN0LmhlaWdodCgpKSk7CiAKICAgICBpZiAobV9pc1RyYW5zcGFyZW50KSB7CiAgICAgICAg
IC8vIElmIHdlIGhhdmUgYSAzMiBiaXQgZHJhd2FibGUgYW5kIHRoZSBwbHVnaW4gd2FudHMgdHJh
bnNwYXJlbmN5LAogICAgICAgICAvLyB3ZSdsbCBjbGVhciB0aGUgZXhwb3NlZCBhcmVhIHRvIHRy
YW5zcGFyZW50IGZpcnN0LiAgT3RoZXJ3aXNlLAogICAgICAgICAvLyB3ZSdkIGVuZCB1cCB3aXRo
IGp1bmsgaW4gdGhlcmUgZnJvbSB0aGUgbGFzdCBwYWludCwgb3IsIHdvcnNlLAogICAgICAgICAv
LyB1bmluaXRpYWxpemVkIGRhdGEuCi0gICAgICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3Q+IGNy
ID0gYWRvcHRQbGF0Zm9ybVJlZihjYWlyb19jcmVhdGUoZHJhd2FibGVTdXJmYWNlLmdldCgpKSk7
CisgICAgICAgIFJlZlB0cjxjYWlyb190PiBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShkcmF3
YWJsZVN1cmZhY2UuZ2V0KCkpKTsKIAogICAgICAgICBpZiAoIShjYWlyb19zdXJmYWNlX2dldF9j
b250ZW50KGRyYXdhYmxlU3VyZmFjZS5nZXQoKSkgJiBDQUlST19DT05URU5UX0FMUEhBKSkgewog
ICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBmYWtlIGl0IHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbiBh
bHBoYSBjaGFubmVsIG9uIG91cgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkMTMwNzY2MmNmYjEyMzRhNWZlMTcwZTVlOGQ2MTVh
OGRlMzIyNzQ1Li5hYjMyZDgxNGMyYjc1ZDIyNWVmZjQ5YWQwYWE3NjEwMWQwZTM1YjU2IDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbQ2Fpcm9dIFJlbW92ZSBQbGF0Zm9ybVJlZlB0ckNhaXJvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE5MgorCisgICAgICAgIFJlcGxhY2Ug
aW5zdGFuY2VzIG9mIFBsYXRmb3JtUmVmUHRyIHNtYXJ0IHBvaW50ZXJzIHRoYXQgd3JhcCBDYWly
bworICAgICAgICB0eXBlcyB3aXRoIFJlZlB0cnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50R3RrLmNwcDogVXNlIFJlZlB0ciBpbnN0ZWFkIG9mIFBsYXRmb3JtUmVmUHRy
LgorICAgICAgICAoV2ViS2l0OjpkcmFnSWNvbldpbmRvd0RyYXdFdmVudENhbGxiYWNrKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6IERpdHRvLgorCiAyMDEwLTEw
LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
cmFnQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0
ay5jcHAKaW5kZXggYjg1MGNlYzA3YTNmYjg2MDkyMmY1OTc2ZTMxOTYxNzQyNjEyNzNkOS4uYmUw
ZmIxMDY0YTliMDIxYTM2NzgwOWJhNTA5NmQzYzAyNWUxMDFjNyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiBzdGF0aWMgZ2Jvb2xlYW4gZHJh
Z0ljb25XaW5kb3dEcmF3RXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRF
eHBvc2UqIGV2ZW50LCBEcmFnQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgUGxhdGZvcm1SZWZQdHI8
Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UGxhdGZvcm1SZWYoZ2RrX2NhaXJvX2NyZWF0ZShldmVu
dC0+d2luZG93KSk7CisgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJlZihnZGtf
Y2Fpcm9fY3JlYXRlKGV2ZW50LT53aW5kb3cpKTsKICAgICBjbGllbnQtPmRyYXdEcmFnSWNvbldp
bmRvdyh3aWRnZXQsIGNvbnRleHQuZ2V0KCkpOwogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmggYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaAppbmRleCAwZDA3Yzg4MWVmZmY4YTc4
YmUzNzU4ZDJjNjVhMzNjNjFkNmZkNTJkLi4wODZlYzY5OGUwN2YxMzliNmU4YzQxYjZmM2I0ZjE0
ZDMxYWM2NjVlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGll
bnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaApA
QCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkdS
ZWZQdHIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVJlZlB0ckNhaXJvLmgiCisjaW5jbHVkZSAiUmVm
UHRyQ2Fpcm8uaCIKIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmll
dzsKIApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgV2ViS2l0
V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3N0YXJ0UG9z
OwogICAgICAgICBQbGF0Zm9ybVJlZlB0cjxHdGtXaWRnZXQ+IG1fZHJhZ0ljb25XaW5kb3c7Ci0g
ICAgICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9kcmFnSW1hZ2U7CisgICAg
ICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fZHJhZ0ltYWdlOwogICAgIH07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71789</attachid>
            <date>2010-10-25 13:22:20 -0700</date>
            <delta_ts>2010-10-31 18:35:08 -0700</delta_ts>
            <desc>Patch also including RefPtrCair.cpp and RefPtrCairo.h</desc>
            <filename>0001-Cairo-Remove-PlatformRefPtrCairo.patch</filename>
            <type>text/plain</type>
            <size>32770</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAwOWEzMDA5ODhkYTViYTI5ZDg1ZTkyNDFiYmQ3M2FlMjE2NGJkY2ExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgpEYXRlOiBTYXQsIDIzIE9jdCAyMDEwIDEyOjEwOjQ0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
W0NhaXJvXSBSZW1vdmUgUGxhdGZvcm1SZWZQdHJDYWlybwogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ4MTkyCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldl
YkNvcmU6CgpSZXBsYWNlIFBsYXRmb3JtUmVmUHRyQ2Fpcm8gd2l0aCBhIFJlZlB0ciBzcGVjaWFs
aXphdGlvbiBmb3IgQ2Fpcm8gYW5kCkZvbnRjb25maWcgdHlwZXMuIFRoaXMgaXMgdGhlIGZpcnN0
IHN0ZXAgdG93YXJkIHJlbW92aW5nIFBsYXRmb3JtUmVmUHRyLAp3aG9zZSBqb2IgaXMgYmV0dGVy
IGhhbmRsZWQgYnkgUmVmUHRyLgoKKiBDTWFrZUxpc3RzRWZsLnR4dDogVXBkYXRlIHRoZSBzb3Vy
Y2VzIGxpc3QgdG8gaW5jbHVkZSBSZWZQdHJDYWlybwppbnN0ZWFkIG9mIFBsYXRmb3JtUmVmUHRy
Q2Fpcm8uCiogR05VbWFrZWZpbGUuYW06IERpdHRvLgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOiBEaXR0by4KKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDogUmVw
bGFjZSBQbGF0Zm9ybVJlZlB0ckNhaXJvIHdpdGgKUmVmUHRyQ2Fpcm8uCiogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwOiBEaXR0by4KKFdlYkNvcmU6OmRyYXdQYXR0
ZXJuVG9DYWlyb0NvbnRleHQpOiBEaXR0by4KKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q2FjaGVGcmVlVHlwZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRGb250RGF0
YUZvckNoYXJhY3RlcnMpOiBEaXR0by4KKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBs
YXRmb3JtRGF0YSk6IERpdHRvLgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9y
bURhdGFGcmVlVHlwZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YSk6IERpdHRvLgooV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aW5pdGlh
bGl6ZVdpdGhGb250RmFjZSk6IERpdHRvLgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQ
bGF0Zm9ybURhdGFGcmVlVHlwZS5oOiBEaXR0by4KKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHA6IERpdHRvLgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQ2Fpcm8uY3BwOiBEaXR0by4KKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5jcHA6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bs
YXRmb3JtUmVmUHRyQ2Fpcm8uY3BwLgooV1RGOjpyZWZJZk5vdE51bGwpOiBBZGRlZC4KKFdURjo6
ZGVyZWZJZk5vdE51bGwpOiBBZGRlZC4KKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5oOiBSZW5hbWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybVJlZlB0ckNhaXJvLmguCiogcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHA6IFJlcGxhY2Ug
UGxhdGZvcm1SZWZQdHJDYWlybyB3aXRoClJlZlB0ckNhaXJvLgooV2ViQ29yZTo6Y3JlYXRlTmFt
ZWRDdXJzb3IpOiBEaXR0by4KKiBwbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcDogRGl0dG8u
CihXZWJDb3JlOjpzY2FsZURyYWdJbWFnZSk6IERpdHRvLgooV2ViQ29yZTo6ZGlzc29sdmVEcmFn
SW1hZ2VUb0ZyYWN0aW9uKTogRGl0dG8uCiogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6
IERpdHRvLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOiBEaXR0by4KCldlYktpdC9ndGs6
CgpSZXBsYWNlIGluc3RhbmNlcyBvZiBQbGF0Zm9ybVJlZlB0ciBzbWFydCBwb2ludGVycyB0aGF0
IHdyYXAgQ2Fpcm8KdHlwZXMgd2l0aCBSZWZQdHJzLgoKKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xp
ZW50R3RrLmNwcDogVXNlIFJlZlB0ciBpbnN0ZWFkIG9mIFBsYXRmb3JtUmVmUHRyLgooV2ViS2l0
OjpkcmFnSWNvbldpbmRvd0RyYXdFdmVudENhbGxiYWNrKToKKiBXZWJDb3JlU3VwcG9ydC9EcmFn
Q2xpZW50R3RrLmg6IERpdHRvLgotLS0KIFdlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQxICsrKysrKysrCiBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCAgICAgICAgfCAgICAxIC0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIHwgICAgOCAr
LQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCAgfCAg
ICA4ICstCiAuLi4vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcCAg
ICB8ICAgIDcgKy0KIC4uLi9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
aCAgICAgIHwgICAgNiArLQogLi4uL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcCAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQ2Fpcm8uY3BwICAgICB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVJl
ZlB0ckNhaXJvLmNwcCAgICAgICAgIHwgICA5OCAtLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaCAgfCAgIDU1IC0tLS0t
LS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmNwcCAg
ICB8ICAgOTQgKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9SZWZQdHJDYWlyby5oICAgICAgfCAgIDU1ICsrKysrKysrKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9DdXJzb3JHdGsuY3BwICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAgICAgICAgICAgICAgIHwgICAgNiArLQogV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCAgICAgICAgICAgICAgfCAgIDEzICsr
LQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE0ICsrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcCAgICAg
ICAgfCAgICAyICstCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaCAg
ICAgICAgICB8ICAgIDQgKy0KIDIxIGZpbGVzIGNoYW5nZWQsIDI0NCBpbnNlcnRpb25zKCspLCAx
OTIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybVJlZlB0ckNhaXJvLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJDYWly
by5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1JlZlB0ckNhaXJvLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIv
V2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dAppbmRleCBlNDRkZmQ0Li5iZWMyZGI1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0c0Vm
bC50eHQKQEAgLTgxLDcgKzgxLDcgQEAgSUYgKFdURl9QTEFURk9STV9DQUlSTykKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVy
bkNhaXJvLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2ltcGxlRm9udERhdGFDYWlyby5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA2MzVl
YzQuLmU3ZGI2NDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTAtMTAtMjUgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDYWlyb10gUmVtb3ZlIFBsYXRmb3JtUmVmUHRyQ2Fpcm8KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTkyCisKKyAgICAg
ICAgUmVwbGFjZSBQbGF0Zm9ybVJlZlB0ckNhaXJvIHdpdGggYSBSZWZQdHIgc3BlY2lhbGl6YXRp
b24gZm9yIENhaXJvIGFuZAorICAgICAgICBGb250Y29uZmlnIHR5cGVzLiBUaGlzIGlzIHRoZSBm
aXJzdCBzdGVwIHRvd2FyZCByZW1vdmluZyBQbGF0Zm9ybVJlZlB0ciwKKyAgICAgICAgd2hvc2Ug
am9iIGlzIGJldHRlciBoYW5kbGVkIGJ5IFJlZlB0ci4KKworICAgICAgICAqIENNYWtlTGlzdHNF
ZmwudHh0OiBVcGRhdGUgdGhlIHNvdXJjZXMgbGlzdCB0byBpbmNsdWRlIFJlZlB0ckNhaXJvCisg
ICAgICAgIGluc3RlYWQgb2YgUGxhdGZvcm1SZWZQdHJDYWlyby4KKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOiBS
ZXBsYWNlIFBsYXRmb3JtUmVmUHRyQ2Fpcm8gd2l0aAorICAgICAgICBSZWZQdHJDYWlyby4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dCk6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hhcmFj
dGVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxh
dGZvcm1EYXRhKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjppbml0aWFsaXplV2l0aEZvbnRGYWNlKTogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmg6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dENhaXJvLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VDYWlyby5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Jl
ZlB0ckNhaXJvLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHAuCisgICAgICAgIChXVEY6OnJlZklmTm90TnVsbCk6
IEFkZGVkLgorICAgICAgICAoV1RGOjpkZXJlZklmTm90TnVsbCk6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmg6IFJlbmFtZWQgZnJvbSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcDogUmVwbGFjZSBQbGF0Zm9ybVJlZlB0ckNh
aXJvIHdpdGgKKyAgICAgICAgUmVmUHRyQ2Fpcm8uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVO
YW1lZEN1cnNvcik6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsu
Y3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24pOiBEaXR0by4KKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6IERpdHRvLgorCiAyMDEwLTEwLTI1ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0
ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggM2M4NzgzZi4uMmFhMWNkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zNDkxLDggKzM0OTEs
OCBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vT3duUHRyQ2Fpcm8uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXRoQ2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5D
YWlyby5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQ
dHJDYWlyby5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1S
ZWZQdHJDYWlyby5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNh
aXJvLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4
Q2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9EYXRhU291
cmNlR1N0cmVhbWVyLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
RGF0YVNvdXJjZUdTdHJlYW1lci5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGM3MDAwNzQuLjZjMGZlOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMjcwNzcsNyArMjcwNzcsNyBAQAogCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xjYWlyb1xQbGF0Zm9ybVJlZlB0ckNhaXJvLmNwcCINCisJCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXFJlZlB0ckNhaXJvLmNwcCINCiAJ
CQkJCQk+DQogCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KQEAgLTI3MTEzLDcgKzI3MTEzLDcgQEAKIAkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQogCQkJCQk8L0ZpbGU+DQogCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGxhdGZvcm1SZWZQdHJDYWlyby5oIg0KKwkJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUmVmUHRyQ2Fpcm8uaCINCiAJCQkJ
CQk+DQogCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDI0
NjVhN2MuLjhjMDRmNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaApAQCAtNDAsNyArNDAsNiBAQAogI2lmIFBMQVRGT1JNKENHKQogdHlwZWRlZiBzdHJ1
Y3QgQ0dDb250ZXh0IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VsaWYgUExBVEZPUk0oQ0FJ
Uk8pCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJDYWlyby5oIgogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQ29udGV4dFNoYWRvdzsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggN2FmNTU3Ny4uNzA5ZWU4ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiT3du
UHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJD
YWlyby5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsMTEgKzEyNiwxMSBAQCB2b2lkIGRyYXdQ
YXR0ZXJuVG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogY3IsIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2Us
IGNvbnN0IEludFNpegogCiAgICAgY2Fpcm9fc2F2ZShjcik7CiAKLSAgICBQbGF0Zm9ybVJlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IGNsaXBwZWRJbWFnZVN1cmZhY2UgPSAwOworICAgIFJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNsaXBwZWRJbWFnZVN1cmZhY2UgPSAwOwogICAgIGlmICh0aWxlUmVj
dC5zaXplKCkgIT0gaW1hZ2VTaXplKSB7CiAgICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdCh0aWxlUmVjdCk7Ci0gICAgICAgIGNsaXBwZWRJbWFnZVN1cmZhY2UgPSBh
ZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9B
UkdCMzIsIGltYWdlUmVjdC53aWR0aCgpLCBpbWFnZVJlY3QuaGVpZ2h0KCkpKTsKLSAgICAgICAg
UGxhdGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY2xpcHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUo
Y2xpcHBlZEltYWdlU3VyZmFjZS5nZXQoKSkpOworICAgICAgICBjbGlwcGVkSW1hZ2VTdXJmYWNl
ID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0Iz
MiwgaW1hZ2VSZWN0LndpZHRoKCksIGltYWdlUmVjdC5oZWlnaHQoKSkpOworICAgICAgICBSZWZQ
dHI8Y2Fpcm9fdD4gY2xpcHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUoY2xpcHBlZEltYWdl
U3VyZmFjZS5nZXQoKSkpOwogICAgICAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY2xpcHBl
ZEltYWdlQ29udGV4dC5nZXQoKSwgaW1hZ2UsIC10aWxlUmVjdC54KCksIC10aWxlUmVjdC55KCkp
OwogICAgICAgICBjYWlyb19wYWludChjbGlwcGVkSW1hZ2VDb250ZXh0LmdldCgpKTsKICAgICAg
ICAgaW1hZ2UgPSBjbGlwcGVkSW1hZ2VTdXJmYWNlLmdldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2FjaGVGcmVlVHlwZS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCA1ZGNh
MDEwLi40ODZlZWQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIkNT
dHJpbmcuaCIKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybVJlZlB0ckNhaXJvLmgiCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIK
ICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPGNhaXJvLWZ0Lmg+CiAjaW5j
bHVkZSA8Y2Fpcm8uaD4KQEAgLTU3LDcgKzU3LDcgQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIEZv
bnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnMK
ICAgICBGY0ZvbnRTZXQqIGZzID0gcHJpbS0+bV9mYWxsYmFja3M7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGZzLT5uZm9udDsgaSsrKSB7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPEZjUGF0
dGVybj4gZmluID0gYWRvcHRQbGF0Zm9ybVJlZihGY0ZvbnRSZW5kZXJQcmVwYXJlKDAsIHByaW0t
Pm1fcGF0dGVybi5nZXQoKSwgZnMtPmZvbnRzW2ldKSk7CisgICAgICAgIFJlZlB0cjxGY1BhdHRl
cm4+IGZpbiA9IGFkb3B0UmVmKEZjRm9udFJlbmRlclByZXBhcmUoMCwgcHJpbS0+bV9wYXR0ZXJu
LmdldCgpLCBmcy0+Zm9udHNbaV0pKTsKICAgICAgICAgY2Fpcm9fZm9udF9mYWNlX3QqIGZvbnRG
YWNlID0gY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihmaW4uZ2V0KCkpOwog
ICAgICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoZm9udEZhY2UsIGZvbnQuZm9u
dERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhlbFNpemUoKSwgZmFsc2UsIGZhbHNlKTsKICAgICAg
ICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3koZm9udEZhY2UpOwpAQCAtMTE3LDcgKzExNyw3IEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnRECiAgICAgLy8gVGhlIENTUyBmb250IG1hdGNoaW5nIGFs
Z29yaXRobSAoaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mb250cy8jZm9udC1tYXRjaGluZy1h
bGdvcml0aG0pCiAgICAgLy8gc2F5cyB0aGF0IHdlIG11c3QgZmluZCBhbiBleGFjdCBtYXRjaCBm
b3IgZm9udCBmYW1pbHksIHNsYW50IChpdGFsaWMgb3Igb2JsaXF1ZSBjYW4gYmUgdXNlZCkKICAg
ICAvLyBhbmQgZm9udCB3ZWlnaHQgKHdlIG9ubHkgbWF0Y2ggYm9sZC9ub24tYm9sZCBoZXJlKS4K
LSAgICBQbGF0Zm9ybVJlZlB0cjxGY1BhdHRlcm4+IHBhdHRlcm4gPSBhZG9wdFBsYXRmb3JtUmVm
KEZjUGF0dGVybkNyZWF0ZSgpKTsKKyAgICBSZWZQdHI8RmNQYXR0ZXJuPiBwYXR0ZXJuID0gYWRv
cHRSZWYoRmNQYXR0ZXJuQ3JlYXRlKCkpOwogICAgIFN0cmluZyBmYW1pbHlOYW1lU3RyaW5nKGdl
dEZhbWlseU5hbWVTdHJpbmdGcm9tRm9udERlc2NyaXB0aW9uQW5kRmFtaWx5KGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5KSk7CiAgICAgaWYgKCFGY1BhdHRlcm5BZGRTdHJpbmcocGF0dGVybi5nZXQo
KSwgRkNfRkFNSUxZLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmYW1pbHlOYW1l
U3RyaW5nLnV0ZjgoKS5kYXRhKCkpKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDQsNyArMTQ0
LDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICBTdHJpbmcgZmFtaWx5TmFtZUFmdGVy
Q29uZmlndXJhdGlvbiA9IFN0cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
Zm9udENvbmZpZ0ZhbWlseU5hbWVBZnRlckNvbmZpZ3VyYXRpb24pKTsKIAogICAgIEZjUmVzdWx0
IGZvbnRDb25maWdSZXN1bHQ7Ci0gICAgUGxhdGZvcm1SZWZQdHI8RmNQYXR0ZXJuPiByZXN1bHRQ
YXR0ZXJuID0gYWRvcHRQbGF0Zm9ybVJlZihGY0ZvbnRNYXRjaCgwLCBwYXR0ZXJuLmdldCgpLCAm
Zm9udENvbmZpZ1Jlc3VsdCkpOworICAgIFJlZlB0cjxGY1BhdHRlcm4+IHJlc3VsdFBhdHRlcm4g
PSBhZG9wdFJlZihGY0ZvbnRNYXRjaCgwLCBwYXR0ZXJuLmdldCgpLCAmZm9udENvbmZpZ1Jlc3Vs
dCkpOwogICAgIGlmICghcmVzdWx0UGF0dGVybikgLy8gTm8gbWF0Y2guCiAgICAgICAgIHJldHVy
biAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQ
bGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKaW5kZXggYmEzMDdmYS4uZjVhODUzYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRh
RnJlZVR5cGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtMjUsOCArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvLWZ0
Lmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxmb250Y29uZmlnL2ZjZnJlZXR5cGUu
aD4KQEAgLTEyMSw3ICsxMjIsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRh
KEZjUGF0dGVybiogcGF0dGVybiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwogICAgICwgbV9z
eW50aGV0aWNPYmxpcXVlKGZhbHNlKQogICAgICwgbV9maXhlZFdpZHRoKGZhbHNlKQogewotICAg
IFBsYXRmb3JtUmVmUHRyPGNhaXJvX2ZvbnRfZmFjZV90PiBmb250RmFjZSA9IGFkb3B0UGxhdGZv
cm1SZWYoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihtX3BhdHRlcm4uZ2V0
KCkpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fZm9udF9mYWNlX3Q+IGZvbnRGYWNlID0gYWRvcHRSZWYo
Y2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihtX3BhdHRlcm4uZ2V0KCkpKTsK
ICAgICBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGZvbnRGYWNlLmdldCgpKTsKIAogICAgIGludCBz
cGFjaW5nOwpAQCAtMjU2LDcgKzI1Nyw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6aW5pdGlh
bGl6ZVdpdGhGb250RmFjZShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UpCiAgICAgICAgIGNh
aXJvX21hdHJpeF9zY2FsZSgmZm9udE1hdHJpeCwgbV9zaXplLCBtX3NpemUpOwogICAgIH0KIAot
ICAgIG1fc2NhbGVkRm9udCA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9fc2NhbGVkX2ZvbnRfY3Jl
YXRlKGZvbnRGYWNlLCAmZm9udE1hdHJpeCwgJmN0bSwgb3B0aW9ucykpOworICAgIG1fc2NhbGVk
Rm9udCA9IGFkb3B0UmVmKGNhaXJvX3NjYWxlZF9mb250X2NyZWF0ZShmb250RmFjZSwgJmZvbnRN
YXRyaXgsICZjdG0sIG9wdGlvbnMpKTsKICAgICBjYWlyb19mb250X29wdGlvbnNfZGVzdHJveShv
cHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKaW5kZXggN2QzZmY5OS4uYTJjMjhiZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1E
YXRhRnJlZVR5cGUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQ
bGF0Zm9ybURhdGFGcmVlVHlwZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJIYXNoRnVu
Y3Rpb25zLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJDYWlyby5oIgorI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X0ZjRm9udFNldCBGY0ZvbnRTZXQ7CkBAIC04NSwxMyArODUsMTMgQEAgcHVibGljOgogICAgIFN0
cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBQbGF0Zm9ybVJlZlB0cjxG
Y1BhdHRlcm4+IG1fcGF0dGVybjsKKyAgICBSZWZQdHI8RmNQYXR0ZXJuPiBtX3BhdHRlcm47CiAg
ICAgRmNGb250U2V0KiBtX2ZhbGxiYWNrczsKICAgICBmbG9hdCBtX3NpemU7CiAgICAgYm9vbCBt
X3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7CiAgICAgYm9vbCBt
X2ZpeGVkV2lkdGg7Ci0gICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fc2NhbGVkX2ZvbnRfdD4gbV9z
Y2FsZWRGb250OworICAgIFJlZlB0cjxjYWlyb19zY2FsZWRfZm9udF90PiBtX3NjYWxlZEZvbnQ7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGNhaXJvX2ZvbnRf
ZmFjZV90Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDA4NDdkYTEuLjQ0M2ExZTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwCkBAIC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVkZSAiUGF0dGVybi5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgIlNp
bXBsZUZvbnREYXRhLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxtYXRoLmg+CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAppbmRleCA4
ZjdhMTk0Li4wYWMzOTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VDYWlyby5jcHAKQEAgLTM1LDEwICszNSwxMCBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSAiQ29udGV4dFNoYWRvdy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKyNp
bmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8bWF0
aC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkMjg5NTg1Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw5OCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKLQotI2luY2x1ZGUgPGNhaXJvLmg+Ci0KLSNpZiBk
ZWZpbmVkKFVTRV9GUkVFVFlQRSkKLSNpbmNsdWRlIDxjYWlyby1mdC5oPgotI2luY2x1ZGUgPGZv
bnRjb25maWcvZmNmcmVldHlwZS5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1w
bGF0ZSA8PiBjYWlyb190KiByZWZQbGF0Zm9ybVB0cihjYWlyb190KiBwdHIpCi17Ci0gICAgaWYg
KHB0cikKLSAgICAgICAgY2Fpcm9fcmVmZXJlbmNlKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0K
LQotdGVtcGxhdGUgPD4gdm9pZCBkZXJlZlBsYXRmb3JtUHRyKGNhaXJvX3QqIHB0cikKLXsKLSAg
ICBpZiAocHRyKQotICAgICAgICBjYWlyb19kZXN0cm95KHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+
IGNhaXJvX3N1cmZhY2VfdCogcmVmUGxhdGZvcm1QdHIoY2Fpcm9fc3VyZmFjZV90KiBwdHIpCi17
Ci0gICAgaWYgKHB0cikKLSAgICAgICAgY2Fpcm9fc3VyZmFjZV9yZWZlcmVuY2UocHRyKTsKLSAg
ICByZXR1cm4gcHRyOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmUGxhdGZvcm1QdHIoY2Fp
cm9fc3VyZmFjZV90KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgY2Fpcm9fc3VyZmFj
ZV9kZXN0cm95KHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IGNhaXJvX2ZvbnRfZmFjZV90KiByZWZQ
bGF0Zm9ybVB0cihjYWlyb19mb250X2ZhY2VfdCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAg
ICAgIGNhaXJvX2ZvbnRfZmFjZV9yZWZlcmVuY2UocHRyKTsKLSAgICByZXR1cm4gcHRyOwotfQot
Ci10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmUGxhdGZvcm1QdHIoY2Fpcm9fZm9udF9mYWNlX3QqIHB0
cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShwdHIp
OwotfQotCi10ZW1wbGF0ZSA8PiBjYWlyb19zY2FsZWRfZm9udF90KiByZWZQbGF0Zm9ybVB0cihj
YWlyb19zY2FsZWRfZm9udF90KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgY2Fpcm9f
c2NhbGVkX2ZvbnRfcmVmZXJlbmNlKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxh
dGUgPD4gdm9pZCBkZXJlZlBsYXRmb3JtUHRyKGNhaXJvX3NjYWxlZF9mb250X3QqIHB0cikKLXsK
LSAgICBpZiAocHRyKQotICAgICAgICBjYWlyb19zY2FsZWRfZm9udF9kZXN0cm95KHB0cik7Ci19
Ci0KLSNpZiBkZWZpbmVkKFVTRV9GUkVFVFlQRSkKLXRlbXBsYXRlIDw+IEZjUGF0dGVybiogcmVm
UGxhdGZvcm1QdHIoRmNQYXR0ZXJuKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgRmNQ
YXR0ZXJuUmVmZXJlbmNlKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4g
dm9pZCBkZXJlZlBsYXRmb3JtUHRyKEZjUGF0dGVybiogcHRyKQotewotICAgIGlmIChwdHIpCi0g
ICAgICAgIEZjUGF0dGVybkRlc3Ryb3kocHRyKTsKLX0KLSNlbmRpZgotCi19CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjcyMGM2Li4wMDAwMDAwCi0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWlyby5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlh
IFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBQbGF0Zm9ybVJlZlB0ckNhaXJvX2gKLSNkZWZpbmUg
UGxhdGZvcm1SZWZQdHJDYWlyb19oCi0KLSNpbmNsdWRlICJQbGF0Zm9ybVJlZlB0ci5oIgotCi10
eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJm
YWNlIGNhaXJvX3N1cmZhY2VfdDsKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19mb250X2ZhY2UgY2Fp
cm9fZm9udF9mYWNlX3Q7Ci10eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc2NhbGVkX2ZvbnQgY2Fpcm9f
c2NhbGVkX2ZvbnRfdDsKLQotI2lmIGRlZmluZWQoVVNFX0ZSRUVUWVBFKQotdHlwZWRlZiBzdHJ1
Y3QgX0ZjUGF0dGVybiBGY1BhdHRlcm47Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRl
bXBsYXRlIDw+IGNhaXJvX3QqIHJlZlBsYXRmb3JtUHRyKGNhaXJvX3QqIHB0cik7Ci10ZW1wbGF0
ZSA8PiB2b2lkIGRlcmVmUGxhdGZvcm1QdHIoY2Fpcm9fdCogcHRyKTsKLQotdGVtcGxhdGUgPD4g
Y2Fpcm9fc3VyZmFjZV90KiByZWZQbGF0Zm9ybVB0cihjYWlyb19zdXJmYWNlX3QqIHB0cik7Ci10
ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmUGxhdGZvcm1QdHIoY2Fpcm9fc3VyZmFjZV90KiBwdHIpOwot
Ci10ZW1wbGF0ZSA8PiBjYWlyb19mb250X2ZhY2VfdCogcmVmUGxhdGZvcm1QdHIoY2Fpcm9fZm9u
dF9mYWNlX3QqKTsKLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZQbGF0Zm9ybVB0cihjYWlyb19mb250
X2ZhY2VfdCopOwotCi10ZW1wbGF0ZSA8PiBjYWlyb19zY2FsZWRfZm9udF90KiByZWZQbGF0Zm9y
bVB0cihjYWlyb19zY2FsZWRfZm9udF90Kik7Ci10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmUGxhdGZv
cm1QdHIoY2Fpcm9fc2NhbGVkX2ZvbnRfdCopOwotCi0jaWYgZGVmaW5lZChVU0VfRlJFRVRZUEUp
Ci10ZW1wbGF0ZSA8PiBGY1BhdHRlcm4qIHJlZlBsYXRmb3JtUHRyKEZjUGF0dGVybiopOwotdGVt
cGxhdGUgPD4gdm9pZCBkZXJlZlBsYXRmb3JtUHRyKEZjUGF0dGVybiopOwotI2VuZGlmCi0KLX0K
LQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Jl
ZlB0ckNhaXJvLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fp
cm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2Yzk4M2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJv
LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEg
Uy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCisKKyNpbmNsdWRlIDxjYWlyby5oPgorCisjaWYg
ZGVmaW5lZChVU0VfRlJFRVRZUEUpCisjaW5jbHVkZSA8Y2Fpcm8tZnQuaD4KKyNpbmNsdWRlIDxm
b250Y29uZmlnL2ZjZnJlZXR5cGUuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiB2b2lkIHJlZklmTm90TnVsbChjYWlyb190KiBwdHIpCit7CisgICAgaWYgKExJS0VM
WShwdHIgIT0gMCkpCisgICAgICAgIGNhaXJvX3JlZmVyZW5jZShwdHIpOworfQorCit0ZW1wbGF0
ZTw+IHZvaWQgZGVyZWZJZk5vdE51bGwoY2Fpcm9fdCogcHRyKQoreworICAgIGlmIChMSUtFTFko
cHRyICE9IDApKQorICAgICAgICBjYWlyb19kZXN0cm95KHB0cik7Cit9CisKK3RlbXBsYXRlPD4g
dm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fc3VyZmFjZV90KiBwdHIpCit7CisgICAgaWYgKExJS0VM
WShwdHIgIT0gMCkpCisgICAgICAgIGNhaXJvX3N1cmZhY2VfcmVmZXJlbmNlKHB0cik7Cit9CisK
K3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cikKK3sK
KyAgICBpZiAoTElLRUxZKHB0ciAhPSAwKSkKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95
KHB0cik7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fZm9udF9mYWNl
X3QqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKHB0ciAhPSAwKSkKKyAgICAgICAgY2Fpcm9fZm9u
dF9mYWNlX3JlZmVyZW5jZShwdHIpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZJZk5vdE51
bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKHB0ciAhPSAwKSkK
KyAgICAgICAgY2Fpcm9fZm9udF9mYWNlX3JlZmVyZW5jZShwdHIpOworfQorCit0ZW1wbGF0ZTw+
IHZvaWQgcmVmSWZOb3ROdWxsKGNhaXJvX3NjYWxlZF9mb250X3QqIHB0cikKK3sKKyAgICBpZiAo
TElLRUxZKHB0ciAhPSAwKSkKKyAgICAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfcmVmZXJlbmNlKHB0
cik7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zY2FsZWRfZm9u
dF90KiBwdHIpCit7CisgICAgaWYgKExJS0VMWShwdHIgIT0gMCkpCisgICAgICAgIGNhaXJvX3Nj
YWxlZF9mb250X2Rlc3Ryb3kocHRyKTsKK30KKworI2lmIGRlZmluZWQoVVNFX0ZSRUVUWVBFKQor
dGVtcGxhdGU8PiB2b2lkIHJlZklmTm90TnVsbChGY1BhdHRlcm4qIHB0cikKK3sKKyAgICBpZiAo
TElLRUxZKHB0ciAhPSAwKSkKKyAgICAgICAgRmNQYXR0ZXJuUmVmZXJlbmNlKHB0cik7Cit9CisK
K3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChGY1BhdHRlcm4qIHB0cikKK3sKKyAgICBp
ZiAoTElLRUxZKHB0ciAhPSAwKSkKKyAgICAgICAgRmNQYXR0ZXJuRGVzdHJveShwdHIpOworfQor
CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9SZWZQdHJDYWlyby5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MjllYzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJv
LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMu
TC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBSZWZQdHJDYWlyb19oCisjZGVmaW5lIFJlZlB0ckNhaXJv
X2gKKworI2luY2x1ZGUgIlJlZlB0ci5oIgorCit0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9f
dDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKK3R5cGVk
ZWYgc3RydWN0IF9jYWlyb19mb250X2ZhY2UgY2Fpcm9fZm9udF9mYWNlX3Q7Cit0eXBlZGVmIHN0
cnVjdCBfY2Fpcm9fc2NhbGVkX2ZvbnQgY2Fpcm9fc2NhbGVkX2ZvbnRfdDsKKworI2lmIGRlZmlu
ZWQoVVNFX0ZSRUVUWVBFKQordHlwZWRlZiBzdHJ1Y3QgX0ZjUGF0dGVybiBGY1BhdHRlcm47Cisj
ZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwo
Y2Fpcm9fdCogcHRyKTsKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb190KiBw
dHIpOworCit0ZW1wbGF0ZTw+IHZvaWQgcmVmSWZOb3ROdWxsKGNhaXJvX3N1cmZhY2VfdCogcHRy
KTsKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7
CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cik7
Cit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZJZk5vdE51bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cik7
CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fc2NhbGVkX2ZvbnRfdCogcHRy
KTsKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zY2FsZWRfZm9udF90KiBw
dHIpOworCisjaWYgZGVmaW5lZChVU0VfRlJFRVRZUEUpCit0ZW1wbGF0ZTw+IHZvaWQgcmVmSWZO
b3ROdWxsKEZjUGF0dGVybiogcHRyKTsKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChG
Y1BhdHRlcm4qIHB0cik7CisjZW5kaWYKKworfQorCisjZW5kaWYgLy8gUmVmUHRyQ2Fpcm9faApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggOTk3MWJmYi4uMzkwNzNhZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJD
YWlyby5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNDcs
MTAgKzQ3LDEwIEBAIHN0YXRpYyBQbGF0Zm9ybVJlZlB0cjxHZGtDdXJzb3I+IGNyZWF0ZU5hbWVk
Q3Vyc29yKEN1c3RvbUN1cnNvclR5cGUgY3Vyc29yVHlwZSkKICAgICAgICAgcmV0dXJuIGM7CiAK
ICAgICBJbnRTaXplIGN1cnNvclNpemUgPSBJbnRTaXplKDMyLCAzMik7Ci0gICAgUGxhdGZvcm1S
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2lt
YWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGN1
cnNvci5iaXRzKSwgQ0FJUk9fRk9STUFUX0ExLCAzMiwgMzIsIDQpKTsKLSAgICBQbGF0Zm9ybVJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1hc2sgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdl
X3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGN1cnNv
ci5tYXNrX2JpdHMpLCBDQUlST19GT1JNQVRfQTEsIDMyLCAzMiwgNCkpOwotICAgIFBsYXRmb3Jt
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0ExLCAzMiwgMzIpKTsKLSAgICBQbGF0
Zm9ybVJlZlB0cjxjYWlyb190PiBjciA9IGFkb3B0UGxhdGZvcm1SZWYoY2Fpcm9fY3JlYXRlKHN1
cmZhY2UuZ2V0KCkpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBhZG9w
dFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShjb25zdF9jYXN0PHVuc2ln
bmVkIGNoYXIqPihjdXJzb3IuYml0cyksIENBSVJPX0ZPUk1BVF9BMSwgMzIsIDMyLCA0KSk7Cisg
ICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbWFzayA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGN1cnNvci5t
YXNrX2JpdHMpLCBDQUlST19GT1JNQVRfQTEsIDMyLCAzMiwgNCkpOworICAgIFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0
ZShDQUlST19GT1JNQVRfQTEsIDMyLCAzMikpOworICAgIFJlZlB0cjxjYWlyb190PiBjciA9IGFk
b3B0UmVmKGNhaXJvX2NyZWF0ZShzdXJmYWNlLmdldCgpKSk7CiAKICAgICBjYWlyb19zZXRfc291
cmNlX3N1cmZhY2UoY3IuZ2V0KCksIHNvdXJjZS5nZXQoKSwgY3Vyc29yLmhvdF94LCBjdXJzb3Iu
aG90X3kpOwogICAgIGNhaXJvX21hc2tfc3VyZmFjZShjci5nZXQoKSwgbWFzay5nZXQoKSwgY3Vy
c29yLmhvdF94LCBjdXJzb3IuaG90X3kpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRHJhZ0ltYWdlR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5j
cHAKaW5kZXggOWQwZDgzOC4uNzFhNjVlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRHJhZ0ltYWdlR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VH
dGsuY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1SZWZQdHJDYWlyby5oIgorI2luY2x1
ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDksNyArNDksNyBAQCBEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0lt
YWdlUmVmIGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCiAgICAgaW50IG5ld0hlaWdodCA9IHNjYWxl
LmhlaWdodCgpICogY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KGltYWdlKTsKICAgICBj
YWlyb19zdXJmYWNlX3QqIHNjYWxlZFN1cmZhY2UgPSBjYWlyb19zdXJmYWNlX2NyZWF0ZV9zaW1p
bGFyKGltYWdlLCBDQUlST19DT05URU5UX0NPTE9SX0FMUEhBLCBuZXdXaWR0aCwgbmV3SGVpZ2h0
KTsKIAotICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFBsYXRmb3Jt
UmVmKGNhaXJvX2NyZWF0ZShzY2FsZWRTdXJmYWNlKSk7CisgICAgUmVmUHRyPGNhaXJvX3Q+IGNv
bnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc2NhbGVkU3VyZmFjZSkpOwogICAgIGNhaXJv
X3NjYWxlKGNvbnRleHQuZ2V0KCksIHNjYWxlLndpZHRoKCksIHNjYWxlLmhlaWdodCgpKTsKICAg
ICBjYWlyb19wYXR0ZXJuX3NldF9leHRlbmQoY2Fpcm9fZ2V0X3NvdXJjZShjb250ZXh0LmdldCgp
KSwgQ0FJUk9fRVhURU5EX1BBRCk7CiAgICAgY2Fpcm9fcGF0dGVybl9zZXRfZmlsdGVyKGNhaXJv
X2dldF9zb3VyY2UoY29udGV4dC5nZXQoKSksIENBSVJPX0ZJTFRFUl9CRVNUKTsKQEAgLTY2LDcg
KzY2LDcgQEAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1h
Z2VSZWYgaW1hZ2UsIGZsb2F0IGZyYWN0aW9uKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UGxh
dGZvcm1SZWYoY2Fpcm9fY3JlYXRlKGltYWdlKSk7CisgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRl
eHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoaW1hZ2UpKTsKICAgICBjYWlyb19zZXRfb3BlcmF0
b3IoY29udGV4dC5nZXQoKSwgQ0FJUk9fT1BFUkFUT1JfREVTVF9JTik7CiAgICAgY2Fpcm9fc2V0
X3NvdXJjZV9yZ2JhKGNvbnRleHQuZ2V0KCksIDAsIDAsIDAsIGZyYWN0aW9uKTsKICAgICBjYWly
b19wYWludChjb250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
CmluZGV4IDY5NTRhZjMuLmNlOTYxM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogI2lmIGRlZmlu
ZWQoWFBfVU5JWCkKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgImd0azJ4dGJp
bi5oIgogI2RlZmluZSBCb29sIGludCAvLyB0aGlzIGdvdCB1bmRlZmluZWQgc29tZXdoZXJlCiAj
ZGVmaW5lIFN0YXR1cyBpbnQgLy8gZGl0dG8KQEAgLTE5NSwxOCArMTk2LDE4IEBAIHZvaWQgUGx1
Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgIGV4cG9zZWRSZWN0LmludGVyc2VjdChmcmFtZVJlY3QoKSk7CiAgICAgZXhwb3Nl
ZFJlY3QubW92ZSgtZnJhbWVSZWN0KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsKIAotICAgIFBs
YXRmb3JtUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZHJhd2FibGVTdXJmYWNlID0gYWRvcHRQbGF0
Zm9ybVJlZihjYWlyb194bGliX3N1cmZhY2VfY3JlYXRlKGRpc3BsYXksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kcmF3YWJsZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Zpc3VhbCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3dpbmRvd1JlY3Qud2lkdGgoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3dpbmRvd1JlY3QuaGVpZ2h0KCkpKTsKKyAgICBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBkcmF3YWJsZVN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb194bGli
X3N1cmZhY2VfY3JlYXRlKGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9kcmF3YWJsZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Zpc3VhbCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dpbmRvd1JlY3Qu
d2lkdGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3dpbmRvd1JlY3QuaGVpZ2h0KCkpKTsKIAogICAgIGlmIChtX2lzVHJhbnNwYXJl
bnQpIHsKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIDMyIGJpdCBkcmF3YWJsZSBhbmQgdGhlIHBs
dWdpbiB3YW50cyB0cmFuc3BhcmVuY3ksCiAgICAgICAgIC8vIHdlJ2xsIGNsZWFyIHRoZSBleHBv
c2VkIGFyZWEgdG8gdHJhbnNwYXJlbnQgZmlyc3QuICBPdGhlcndpc2UsCiAgICAgICAgIC8vIHdl
J2QgZW5kIHVwIHdpdGgganVuayBpbiB0aGVyZSBmcm9tIHRoZSBsYXN0IHBhaW50LCBvciwgd29y
c2UsCiAgICAgICAgIC8vIHVuaW5pdGlhbGl6ZWQgZGF0YS4KLSAgICAgICAgUGxhdGZvcm1SZWZQ
dHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2NyZWF0ZShkcmF3YWJsZVN1
cmZhY2UuZ2V0KCkpKTsKKyAgICAgICAgUmVmUHRyPGNhaXJvX3Q+IGNyID0gYWRvcHRSZWYoY2Fp
cm9fY3JlYXRlKGRyYXdhYmxlU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgICAgIGlmICghKGNhaXJv
X3N1cmZhY2VfZ2V0X2NvbnRlbnQoZHJhd2FibGVTdXJmYWNlLmdldCgpKSAmIENBSVJPX0NPTlRF
TlRfQUxQSEEpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIGZha2UgaXQgd2hlbiB3ZSBk
b24ndCBoYXZlIGFuIGFscGhhIGNoYW5uZWwgb24gb3VyCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGQxMzA3NjYuLmQxMDcyN2Ug
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtDYWlyb10gUmVtb3ZlIFBsYXRmb3JtUmVmUHRyQ2Fpcm8KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTkyCisKKyAgICAgICAgUmVw
bGFjZSBpbnN0YW5jZXMgb2YgUGxhdGZvcm1SZWZQdHIgc21hcnQgcG9pbnRlcnMgdGhhdCB3cmFw
IENhaXJvCisgICAgICAgIHR5cGVzIHdpdGggUmVmUHRycy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOiBVc2UgUmVmUHRyIGluc3RlYWQgb2YgUGxhdGZvcm1S
ZWZQdHIuCisgICAgICAgIChXZWJLaXQ6OmRyYWdJY29uV2luZG93RHJhd0V2ZW50Q2FsbGJhY2sp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaDogRGl0dG8uCisKIDIw
MTAtMTAtMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xp
ZW50R3RrLmNwcAppbmRleCBiODUwY2VjLi5iZTBmYjEwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKIHN0YXRpYyBnYm9vbGVhbiBkcmFnSWNv
bldpbmRvd0RyYXdFdmVudENhbGxiYWNrKEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudEV4cG9z
ZSogZXZlbnQsIERyYWdDbGllbnQqIGNsaWVudCkKIHsKLSAgICBQbGF0Zm9ybVJlZlB0cjxjYWly
b190PiBjb250ZXh0ID0gYWRvcHRQbGF0Zm9ybVJlZihnZGtfY2Fpcm9fY3JlYXRlKGV2ZW50LT53
aW5kb3cpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVmKGdka19jYWly
b19jcmVhdGUoZXZlbnQtPndpbmRvdykpOwogICAgIGNsaWVudC0+ZHJhd0RyYWdJY29uV2luZG93
KHdpZGdldCwgY29udGV4dC5nZXQoKSk7CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oCmluZGV4IDBkMDdjODguLjA4NmVjNjkgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oCisrKyBi
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oCkBAIC0zMiw3ICszMiw3
IEBACiAKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiR1JlZlB0ci5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgog
CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwogCkBAIC02MCw3
ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dl
YlZpZXc7CiAgICAgICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3RhcnRQb3M7CiAgICAgICAgIFBs
YXRmb3JtUmVmUHRyPEd0a1dpZGdldD4gbV9kcmFnSWNvbldpbmRvdzsKLSAgICAgICAgUGxhdGZv
cm1SZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX2RyYWdJbWFnZTsKKyAgICAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gbV9kcmFnSW1hZ2U7CiAgICAgfTsKIH0KIAotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="61911"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>