<?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>119525</bug_id>
          
          <creation_ts>2013-08-06 11:22:47 -0700</creation_ts>
          <short_desc>move GraphicsContext3DPrivate out of cairo directory</short_desc>
          <delta_ts>2013-08-06 14:55:47 -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>WebCore Misc.</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>0</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>914911</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-08-06 11:22:47 -0700</bug_when>
    <thetext>I would like to use platform/graphics/cairo/GraphicsContext3DPrivate.cpp and platform/graphics/cairo/GraphicsContext3DPrivate.h for the AppleWin port which does not use Cairo.  These files are not very cairo-dependent (only 3 lines which I plan to put in #if USE(CAIRO) later).  I&apos;m moving them out of the cairo directory as a first step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914913</commentid>
    <comment_count>1</comment_count>
      <attachid>208207</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-08-06 11:24:09 -0700</bug_when>
    <thetext>Created attachment 208207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914956</commentid>
    <comment_count>2</comment_count>
      <attachid>208207</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-06 14:55:45 -0700</bug_when>
    <thetext>Comment on attachment 208207
Patch

Clearing flags on attachment: 208207

Committed r153766: &lt;http://trac.webkit.org/changeset/153766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914957</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-06 14:55:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208207</attachid>
            <date>2013-08-06 11:24:09 -0700</date>
            <delta_ts>2013-08-06 14:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119525-20130806112408.patch</filename>
            <type>text/plain</type>
            <size>22543</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzc1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTA4LTA2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlZCBHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUgb3V0IG9mIGNhaXJvIGRpcmVjdG9yeSB0byBiZSB1c2VkIGJ5
IHRoZSBBcHBsZVdpbiBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE5NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtR1RL
LmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICBD
aGFuZ2VkIGxvY2F0aW9uIG9mIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYW5kIEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDogQ29waWVkIGZyb20gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBSZW1vdmVkLgorCiAyMDEzLTA4LTA2ICBSb2IgQnVpcyAg
PHJ3bGJ1aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBidWlsZCBmaXggYWZ0
ZXIgcjE1Mzc1NC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24g
MTUzNzU1KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBj
b3B5KQpAQCAtNTY4MSw4ICs1NjgxLDggQEAgcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJv
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0M0RDYWlyby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyRGF0YUNhaXJvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCShy
ZXZpc2lvbiAxNTM3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3Bw
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oJKHJldmlzaW9uIDE1Mzc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTczOTgsNyArNzM5OCw3IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9c
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5MjQ4LDcgKzE5MjQ4
LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGF2Zm91
bmRhdGlvblxjZlxJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZDRi5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9uXEluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEdMQ29udGV4dC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXGNnXFN1YmltYWdlQ2FjaGVXaXRoVGltZXIuaCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwkocmV2aXNpb24gMTUzNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC03MDU0LDcg
KzcwNTQsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
Y2Fpcm9cR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9y
bVxncmFwaGljc1xjYWlybzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCI+CkBA
IC0xNDgyMyw3ICsxNDgyMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmgiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xjYWlyb1xHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCI+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xD
YW52YXNDb250ZXh0QXR0cmlidXRlcy5oIj4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNw
cAkocmV2aXNpb24gMTUzNzU1KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOjE1Mzc1NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZQorICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIK
KworI2lmIFVTRSgzRF9HUkFQSElDUykKKworI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJvLmgi
CisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisj
aW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisjZWxzZQor
I2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCisjZW5kaWYKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCisjaW5jbHVkZSA8dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oPgorI2VuZGlmCisKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU+IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGUoY29udGV4dCwgcmVuZGVyU3R5bGUpKTsKK30KKworR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKKyAgICA6IG1f
Y29udGV4dChjb250ZXh0KQorICAgICwgbV9yZW5kZXJTdHlsZShyZW5kZXJTdHlsZSkKK3sKKyAg
ICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVu
ZGVyT2Zmc2NyZWVuOgorICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zm
c2NyZWVuQ29udGV4dChHTENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQ6
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVj
dGx5VG9Ib3N0V2luZG93OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCitHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6On5HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUoKQoreworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICByZXR1cm4gbV9nbENvbnRleHQgPyBtX2dsQ29u
dGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkgOiBmYWxzZTsKK30KKworUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnBsYXRmb3JtQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIG1fZ2xDb250ZXh0ID8gbV9nbENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
IDogR0xDb250ZXh0OjpnZXRDdXJyZW50KCktPnBsYXRmb3JtQ29udGV4dCgpOworfQorCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCit2b2lk
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5KQoreworICAgIGlmICgh
bV9nbENvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3JlbmRlclN0eWxl
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW4pOworCisgICAgbV9jb250ZXh0
LT5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7CisKKyAgICAvLyBGSVhNRTogV2UgZG8gbm90IHN1cHBv
cnQgbWFzayBmb3IgdGhlIG1vbWVudCB3aXRoIFRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci4KKyAg
ICBpZiAodGV4dHVyZU1hcHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBwZXI6
Ok9wZW5HTE1vZGUpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gdGV4dHVy
ZU1hcHBlci0+Z3JhcGhpY3NDb250ZXh0KCk7CisgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKKyAg
ICAgICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldEdsb2JhbEFscGhhKG9wYWNpdHkp
OworCisgICAgICAgIGNvbnN0IGludCBoZWlnaHQgPSBtX2NvbnRleHQtPm1fY3VycmVudEhlaWdo
dDsKKyAgICAgICAgY29uc3QgaW50IHdpZHRoID0gbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aDsK
KyAgICAgICAgaW50IHRvdGFsQnl0ZXMgPSB3aWR0aCAqIGhlaWdodCAqIDQ7CisKKyAgICAgICAg
T3duQXJyYXlQdHI8dW5zaWduZWQgY2hhcj4gcGl4ZWxzID0gYWRvcHRBcnJheVB0cihuZXcgdW5z
aWduZWQgY2hhclt0b3RhbEJ5dGVzXSk7CisgICAgICAgIGlmICghcGl4ZWxzKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIC8vIE9wZW5HTCBrZWVwcyB0aGUgcGl4ZWxzIHN0b3JlZCBi
b3R0b20gdXAsIHNvIHdlIG5lZWQgdG8gZmxpcCB0aGUgaW1hZ2UgaGVyZS4KKyAgICAgICAgY29u
dGV4dC0+dHJhbnNsYXRlKDAsIGhlaWdodCk7CisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0
U2l6ZSgxLCAtMSkpOworCisgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShtYXRyaXgudG9BZmZp
bmVUcmFuc2Zvcm0oKSk7CisKKyAgICAgICAgbV9jb250ZXh0LT5yZWFkUmVuZGVyaW5nUmVzdWx0
cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOworCisgICAgICAgIC8vIFByZW11bHRpcGx5IGFs
cGhhLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkKKyAg
ICAgICAgICAgIGlmIChwaXhlbHNbaSArIDNdICE9IDI1NSkgeworICAgICAgICAgICAgICAgIHBp
eGVsc1tpICsgMF0gPSBtaW4oMjU1LCBwaXhlbHNbaSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1
NSk7CisgICAgICAgICAgICAgICAgcGl4ZWxzW2kgKyAxXSA9IG1pbigyNTUsIHBpeGVsc1tpICsg
MV0gKiBwaXhlbHNbaSArIDNdIC8gMjU1KTsKKyAgICAgICAgICAgICAgICBwaXhlbHNbaSArIDJd
ID0gbWluKDI1NSwgcGl4ZWxzW2kgKyAyXSAqIHBpeGVsc1tpICsgM10gLyAyNTUpOworICAgICAg
ICAgICAgfQorCisgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlU3VyZmFjZSA9
IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKAorICAgICAgICAg
ICAgY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4ocGl4ZWxzLmdldCgpKSwgQ0FJUk9fRk9STUFU
X0FSR0IzMiwgd2lkdGgsIGhlaWdodCwgd2lkdGggKiA0KSk7CisKKyAgICAgICAgY29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCktPmRyYXdTdXJmYWNlVG9Db250ZXh0KGltYWdlU3VyZmFjZS5nZXQo
KSwgdGFyZ2V0UmVjdCwgSW50UmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgY29udGV4dCk7CisK
KyAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIGlmIChtX2NvbnRleHQtPm1fYXR0cnMuYW50
aWFsaWFzICYmIG1fY29udGV4dC0+bV9zdGF0ZS5ib3VuZEZCTyA9PSBtX2NvbnRleHQtPm1fbXVs
dGlzYW1wbGVGQk8pIHsKKyAgICAgICAgR0xDb250ZXh0KiBwcmV2aW91c0FjdGl2ZUNvbnRleHQg
PSBHTENvbnRleHQ6OmdldEN1cnJlbnQoKTsKKyAgICAgICAgaWYgKHByZXZpb3VzQWN0aXZlQ29u
dGV4dCAhPSBtX2dsQ29udGV4dCkKKyAgICAgICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRD
dXJyZW50KCk7CisKKyAgICAgICAgbV9jb250ZXh0LT5yZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVj
ZXNzYXJ5KCk7CisgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSLCBtX2NvbnRleHQtPm1fc3RhdGUuYm91bmRGQk8pOworCisgICAgICAgIGlm
IChwcmV2aW91c0FjdGl2ZUNvbnRleHQgJiYgcHJldmlvdXNBY3RpdmVDb250ZXh0ICE9IG1fZ2xD
b250ZXh0KQorICAgICAgICAgICAgcHJldmlvdXNBY3RpdmVDb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKTsKKyAgICB9CisKKyAgICBUZXh0dXJlTWFwcGVyR0wqIHRleG1hcEdMID0gc3RhdGlj
X2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlcik7CisgICAgVGV4dHVyZU1hcHBl
ckdMOjpGbGFncyBmbGFncyA9IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkRmxpcFRleHR1cmUgfCAo
bV9jb250ZXh0LT5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6
IDApOworICAgIEludFNpemUgdGV4dHVyZVNpemUobV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwg
bV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpOworICAgIHRleG1hcEdMLT5kcmF3VGV4dHVyZSht
X2NvbnRleHQtPm1fdGV4dHVyZSwgZmxhZ3MsIHRleHR1cmVTaXplLCB0YXJnZXRSZWN0LCBtYXRy
aXgsIG9wYWNpdHkpOworI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElOR19HTCkK
K30KKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRSgzRF9HUkFQSElDUykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oCShyZXZpc2lvbiAxNTM3NTUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOjE1Mzc1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZQorICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNp
Zm5kZWYgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlX2gKKyNkZWZpbmUgR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlX2gKKworI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2luY2x1ZGUgIlRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyAgICA6IHB1YmxpYyBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllcgorI2VuZGlmCit7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NP
d25QdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Qq
LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIH5HcmFwaGljc0NvbnRleHQz
RFByaXZhdGUoKTsKKyAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7CisKKyAgICBHcmFwaGljc0NvbnRl
eHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUoKSB7IHJldHVybiBtX3JlbmRlclN0eWxlOyB9
CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBF
UikKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlcios
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZs
b2F0IG9wYWNpdHkpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxl
KTsKKworICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAgT3duUHRyPEdMQ29u
dGV4dD4gbV9nbENvbnRleHQ7CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIG1f
cmVuZGVyU3R5bGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBHcmFwaGljc0NvbnRleHQzRFByaXZh
dGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCShyZXZpc2lv
biAxNTM3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1MiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSAqICBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCi0KLSNpZiBVU0UoM0RfR1JBUEhJQ1MpCi0KLSNp
bmNsdWRlICJIb3N0V2luZG93LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgotI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5o
PgotCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgotI2luY2x1
ZGUgPEdMRVMyL2dsMmV4dC5oPgotI2Vsc2UKLSNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgotI2Vu
ZGlmCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01B
UFBFUikgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQotI2luY2x1ZGUgPHRleG1hcC9UZXh0dXJl
TWFwcGVyR0wuaD4KLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQotewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKGNvbnRleHQsIHJlbmRlclN0eWxl
KSk7Ci19Ci0KLUdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVy
U3R5bGUgcmVuZGVyU3R5bGUpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fcmVu
ZGVyU3R5bGUocmVuZGVyU3R5bGUpCi17Ci0gICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKLSAgICAgICAgbV9nbENv
bnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoR0xDb250ZXh0OjpzaGFy
aW5nQ29udGV4dCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UmVuZGVyVG9DdXJyZW50R0xDb250ZXh0OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCkKLXsKLX0KLQotYm9v
bCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDb250ZXh0Q3VycmVudCgpCi17Ci0gICAg
cmV0dXJuIG1fZ2xDb250ZXh0ID8gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpIDog
ZmFsc2U7Ci19Ci0KLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpwbGF0Zm9ybUNvbnRleHQoKQotewotICAgIHJldHVybiBtX2dsQ29udGV4dCA/IG1f
Z2xDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSA6IEdMQ29udGV4dDo6Z2V0Q3VycmVudCgpLT5w
bGF0Zm9ybUNvbnRleHQoKTsKLX0KLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSKQotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnBh
aW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwg
ZmxvYXQgb3BhY2l0eSkKLXsKLSAgICBpZiAoIW1fZ2xDb250ZXh0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBBU1NFUlQobV9yZW5kZXJTdHlsZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVy
T2Zmc2NyZWVuKTsKLQotICAgIG1fY29udGV4dC0+bWFya0xheWVyQ29tcG9zaXRlZCgpOwotCi0g
ICAgLy8gRklYTUU6IFdlIGRvIG5vdCBzdXBwb3J0IG1hc2sgZm9yIHRoZSBtb21lbnQgd2l0aCBU
ZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuCi0gICAgaWYgKHRleHR1cmVNYXBwZXItPmFjY2VsZXJh
dGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKSB7Ci0gICAgICAgIEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCA9IHRleHR1cmVNYXBwZXItPmdyYXBoaWNzQ29udGV4dCgpOwot
ICAgICAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpLT5zZXRHbG9iYWxBbHBoYShvcGFjaXR5KTsKLQotICAgICAgICBjb25zdCBpbnQgaGVpZ2h0
ID0gbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQ7Ci0gICAgICAgIGNvbnN0IGludCB3aWR0aCA9
IG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGg7Ci0gICAgICAgIGludCB0b3RhbEJ5dGVzID0gd2lk
dGggKiBoZWlnaHQgKiA0OwotCi0gICAgICAgIE93bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IHBp
eGVscyA9IGFkb3B0QXJyYXlQdHIobmV3IHVuc2lnbmVkIGNoYXJbdG90YWxCeXRlc10pOwotICAg
ICAgICBpZiAoIXBpeGVscykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBPcGVu
R0wga2VlcHMgdGhlIHBpeGVscyBzdG9yZWQgYm90dG9tIHVwLCBzbyB3ZSBuZWVkIHRvIGZsaXAg
dGhlIGltYWdlIGhlcmUuCi0gICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgwLCBoZWlnaHQpOwot
ICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKLQotICAgICAgICBjb250
ZXh0LT5jb25jYXRDVE0obWF0cml4LnRvQWZmaW5lVHJhbnNmb3JtKCkpOwotCi0gICAgICAgIG1f
Y29udGV4dC0+cmVhZFJlbmRlcmluZ1Jlc3VsdHMocGl4ZWxzLmdldCgpLCB0b3RhbEJ5dGVzKTsK
LQotICAgICAgICAvLyBQcmVtdWx0aXBseSBhbHBoYS4KLSAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQpCi0gICAgICAgICAgICBpZiAocGl4ZWxzW2kgKyAzXSAh
PSAyNTUpIHsKLSAgICAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gbWluKDI1NSwgcGl4ZWxz
W2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAyNTUpOwotICAgICAgICAgICAgICAgIHBpeGVsc1tp
ICsgMV0gPSBtaW4oMjU1LCBwaXhlbHNbaSArIDFdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7Ci0g
ICAgICAgICAgICAgICAgcGl4ZWxzW2kgKyAyXSA9IG1pbigyNTUsIHBpeGVsc1tpICsgMl0gKiBw
aXhlbHNbaSArIDNdIC8gMjU1KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICBSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiBpbWFnZVN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNl
X2NyZWF0ZV9mb3JfZGF0YSgKLSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+
KHBpeGVscy5nZXQoKSksIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdpZHRoLCBoZWlnaHQsIHdpZHRo
ICogNCkpOwotCi0gICAgICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5kcmF3U3VyZmFj
ZVRvQ29udGV4dChpbWFnZVN1cmZhY2UuZ2V0KCksIHRhcmdldFJlY3QsIEludFJlY3QoMCwgMCwg
d2lkdGgsIGhlaWdodCksIGNvbnRleHQpOwotCi0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKLSAg
ICBpZiAobV9jb250ZXh0LT5tX2F0dHJzLmFudGlhbGlhcyAmJiBtX2NvbnRleHQtPm1fc3RhdGUu
Ym91bmRGQk8gPT0gbV9jb250ZXh0LT5tX211bHRpc2FtcGxlRkJPKSB7Ci0gICAgICAgIEdMQ29u
dGV4dCogcHJldmlvdXNBY3RpdmVDb250ZXh0ID0gR0xDb250ZXh0OjpnZXRDdXJyZW50KCk7Ci0g
ICAgICAgIGlmIChwcmV2aW91c0FjdGl2ZUNvbnRleHQgIT0gbV9nbENvbnRleHQpCi0gICAgICAg
ICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotCi0gICAgICAgIG1fY29udGV4
dC0+cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwotICAgICAgICA6OmdsQmluZEZy
YW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9jb250ZXh0LT5tX3N0
YXRlLmJvdW5kRkJPKTsKLQotICAgICAgICBpZiAocHJldmlvdXNBY3RpdmVDb250ZXh0ICYmIHBy
ZXZpb3VzQWN0aXZlQ29udGV4dCAhPSBtX2dsQ29udGV4dCkKLSAgICAgICAgICAgIHByZXZpb3Vz
QWN0aXZlQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgfQotCi0gICAgVGV4dHVy
ZU1hcHBlckdMKiB0ZXhtYXBHTCA9IHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KHRleHR1
cmVNYXBwZXIpOwotICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFw
cGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlIHwgKG1fY29udGV4dC0+bV9hdHRycy5hbHBoYSA/IFRl
eHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKLSAgICBJbnRTaXplIHRleHR1cmVTaXpl
KG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KTsK
LSAgICB0ZXhtYXBHTC0+ZHJhd1RleHR1cmUobV9jb250ZXh0LT5tX3RleHR1cmUsIGZsYWdzLCB0
ZXh0dXJlU2l6ZSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5KTsKLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkdfR0wpCi19Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0Uo
M0RfR1JBUEhJQ1MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2
aXNpb24gMTUzNzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCi0gKiAgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEgVVNBCi0gKi8KLQotI2lmbmRlZiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGVfaAot
I2RlZmluZSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGVfaAotCi0jaW5jbHVkZSAiR0xDb250ZXh0
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCi0jaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKLSNlbmRp
ZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
KQotICAgIDogcHVibGljIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyCi0jZW5kaWYKLXsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IGNy
ZWF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7
Ci0gICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpOwotICAgIGJvb2wgbWFrZUNvbnRleHRD
dXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQo
KTsKLQotICAgIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSgpIHsg
cmV0dXJuIG1fcmVuZGVyU3R5bGU7IH0KLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQotICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXQsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSk7Ci0jZW5kaWYKLQotcHJpdmF0ZToK
LSAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGlj
c0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0M0QqIG1fY29u
dGV4dDsKLSAgICBPd25QdHI8R0xDb250ZXh0PiBtX2dsQ29udGV4dDsKLSAgICBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUgbV9yZW5kZXJTdHlsZTsKLX07Ci0KLX0KLQotI2VuZGlmIC8v
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>