<?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>173311</bug_id>
          
          <creation_ts>2017-06-13 06:05:30 -0700</creation_ts>
          <short_desc>Do not mix C and C++ API error constants</short_desc>
          <delta_ts>2017-06-14 16:35:03 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1318632</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 06:05:30 -0700</bug_when>
    <thetext>In r214934 I added error constants to API::Error, but not for all errors exposed in the C API. Because of this we are mixing both constants in WebErrors and in GTk+ WebKitPrivate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318633</commentid>
    <comment_count>1</comment_count>
      <attachid>312766</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 06:07:44 -0700</bug_when>
    <thetext>Created attachment 312766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318634</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-13 06:08:51 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318688</commentid>
    <comment_count>3</comment_count>
      <attachid>312766</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-13 09:56:55 -0700</bug_when>
    <thetext>Comment on attachment 312766
Patch

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

&gt; Source/WebKit2/Shared/API/APIError.h:51
&gt; +    enum General {

We&apos;re trying to use more enum classes in WebKit unless there&apos;s a good reason not to.  And we need to be sure to have source and binary compatibility, which I think this patch has.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318705</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 10:38:01 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 312766 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312766&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/API/APIError.h:51
&gt; &gt; +    enum General {
&gt; 
&gt; We&apos;re trying to use more enum classes in WebKit unless there&apos;s a good reason
&gt; not to.  And we need to be sure to have source and binary compatibility,
&gt; which I think this patch has.

Yes, in this particular case we don&apos;t use enum class, because we are interested in the integer values, we would need to cast everywhere if we used enum class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318741</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-13 12:31:30 -0700</bug_when>
    <thetext>I think the necessity of including from c headers is the only good reason to use an enum instead of an enum class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319020</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 23:31:22 -0700</bug_when>
    <thetext>Committed r218244: &lt;http://trac.webkit.org/changeset/218244&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319110</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-14 07:30:17 -0700</bug_when>
    <thetext>If there are two sets of constants, that must be identical, what keeps them in sync? If nothing else, should we write static_assert statements that check that they are equal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319127</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 08:26:38 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; If there are two sets of constants, that must be identical, what keeps them
&gt; in sync? If nothing else, should we write static_assert statements that
&gt; check that they are equal?

I think we should make WKErrorGetErrorCode return the value using a switch and checking the API::Error value, even if they are currently the same values. That&apos;s what we do in the GTK+ API implementation. I&apos;ll do it in a follow up if you agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319365</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-14 16:35:03 -0700</bug_when>
    <thetext>I do agree.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312766</attachid>
            <date>2017-06-13 06:07:44 -0700</date>
            <delta_ts>2017-06-13 09:56:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-errors.diff</filename>
            <type>text/plain</type>
            <size>11889</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1MzM2MGE4ODQ0OS4uZDZiNDg0Yjc0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyOSBAQAogMjAxNy0wNi0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgRG8gbm90IG1peCBDIGFuZCBDKysgQVBJIGVycm9yIGNvbnN0
YW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcz
MzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
cjIxNDkzNCBJIGFkZGVkIGVycm9yIGNvbnN0YW50cyB0byBBUEk6OkVycm9yLCBidXQgbm90IGZv
ciBhbGwgZXJyb3JzIGV4cG9zZWQgaW4gdGhlIEMgQVBJLiBCZWNhdXNlIG9mIHRoaXMKKyAgICAg
ICAgd2UgYXJlIG1peGluZyBib3RoIGNvbnN0YW50cyBpbiBXZWJFcnJvcnMgYW5kIGluIEdUaysg
V2ViS2l0UHJpdmF0ZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRXJyb3IuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXJyb3JzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9y
KToKKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlD
b250ZW50RmlsdGVyRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcik6CisgICAgICAgIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOgorICAg
ICAgICAoV2ViS2l0OjppbnRlcm5hbEVycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmNwcDoKKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAo
dG9XZWJDb3JlRXJyb3IpOgorCisyMDE3LTA2LTEzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLiBSZW1vdmUgdW51c2VkIGNv
ZGUgZnJvbSBHVEsrIFdlYktpdFByaXZhdGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRl
eCA3NTc1MWRhYThmNS4uNTE0YWYzZmMxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVy
cm9yLmgKQEAgLTQ4LDIxICs0OCw1NSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEVycm9yKGVycm9yKSk7CiAgICAgfQogCisgICAgZW51bSBHZW5lcmFsIHsKKyAgICAg
ICAgSW50ZXJuYWwgPSAzMDAKKyAgICB9OwogICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYg
d2ViS2l0RXJyb3JEb21haW4oKTsKLSAgICBlbnVtIE5ldHdvcmsgeyBDYW5jZWxsZWQgPSAzMDIs
IEZpbGVEb2VzTm90RXhpc3QgPSAzMDMgfTsKKworICAgIGVudW0gTmV0d29yayB7CisgICAgICAg
IENhbmNlbGxlZCA9IDMwMiwKKyAgICAgICAgRmlsZURvZXNOb3RFeGlzdCA9IDMwMworICAgIH07
CiAgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4o
KTsKKworICAgIGVudW0gUG9saWN5IHsKKyAgICAgICAgQ2Fubm90U2hvd01JTUVUeXBlID0gMTAw
LAorICAgICAgICBDYW5ub3RTaG93VVJMID0gMTAxLAorICAgICAgICBGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlID0gMTAyLAorICAgICAgICBDYW5ub3RVc2VSZXN0cmljdGVkUG9y
dCA9IDEwMywKKyAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQs
CisgICAgICAgIEZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgPSAxMDUKKyAgICB9Owog
ICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0UG9saWN5RXJyb3JEb21haW4oKTsK
KworICAgIGVudW0gUGx1Z2luIHsKKyAgICAgICAgQ2Fubm90RmluZFBsdWdJbiA9IDIwMCwKKyAg
ICAgICAgQ2Fubm90TG9hZFBsdWdJbiA9IDIwMSwKKyAgICAgICAgSmF2YVVuYXZhaWxhYmxlID0g
MjAyLAorICAgICAgICBQbHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uID0gMjAzLAorICAgICAgICBQ
bHVnSW5XaWxsSGFuZGxlTG9hZCA9IDIwNCwKKyAgICAgICAgSW5zZWN1cmVQbHVnSW5WZXJzaW9u
ID0gMjA1CisgICAgfTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBsdWdp
bkVycm9yRG9tYWluKCk7CisKICNpZiBVU0UoU09VUCkKLSAgICBlbnVtIERvd25sb2FkIHsgVHJh
bnNwb3J0ID0gNDk5LCBDYW5jZWxsZWRCeVVzZXIgPSA0MDAsIERlc3RpbmF0aW9uID0gNDAxIH07
CisgICAgZW51bSBEb3dubG9hZCB7CisgICAgICAgIFRyYW5zcG9ydCA9IDQ5OSwKKyAgICAgICAg
Q2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAgICAgICBEZXN0aW5hdGlvbiA9IDQwMQorICAgIH07
CiAgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXREb3dubG9hZEVycm9yRG9tYWlu
KCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBlbnVtIFByaW50IHsgR2VuZXJh
bCA9IDU5OSwgUHJpbnRlck5vdEZvdW5kID0gNTAwLCBJbnZhbGlkUGFnZVJhbmdlID0gNTAxIH07
CisgICAgZW51bSBQcmludCB7CisgICAgICAgIEdlbmVyYWwgPSA1OTksCisgICAgICAgIFByaW50
ZXJOb3RGb3VuZCA9IDUwMCwKKyAgICAgICAgSW52YWxpZFBhZ2VSYW5nZSA9IDUwMQorICAgIH07
CiAgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRQcmludEVycm9yRG9tYWluKCk7
CiAjZW5kaWYKIAotCiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fcGxhdGZvcm1FcnJvci5kb21haW4oKTsgfQogICAgIGludCBlcnJvckNvZGUoKSBjb25z
dCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZXJyb3JDb2RlKCk7IH0KICAgICBjb25zdCBXVEY6
OlN0cmluZyYgZmFpbGluZ1VSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5mYWls
aW5nVVJMKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5jcHAKaW5kZXggOGVlZDI5NjBj
NjUuLjQyODMwYzRlNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJy
b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3JzLmNwcApAQCAtMjcs
NyArMjcsNiBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogCiAjaW5jbHVkZSAiQVBJRXJyb3Iu
aCIKLSNpbmNsdWRlICJXS0Vycm9yUmVmLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRT
dHJpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KQEAgLTM4LDQ0ICszNyw0NCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6
OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0
ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2Ug
cmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVk
UG9ydCBkZXNjcmlwdGlvbiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFVz
ZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dl
ZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VS
ZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRv
bWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVx
dWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRl
bnQgYmxvY2tlciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0
aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGlj
eUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVMb2FkQmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJs
b2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250ZW50
QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwg
Y2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24i
KSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJy
b3JEb21haW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVy
bCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJy
b3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwogfQogCiBSZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVy
cm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQi
LCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0
aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGlj
eUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBp
bnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UgZGVzY3JpcHRpb24iKSk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiBS
ZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6
d2ViS2l0UG9saWN5RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5
Q29udGVudEZpbHRlciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMg
YmxvY2tlZCBieSBhIGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tl
ZEJ5Q29udGVudEZpbHRlciBkZXNjcmlwdGlvbiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xp
Y3k6OkZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIsIHJlcXVlc3QudXJsKCksIFdFQl9V
SV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGZpbHRlciIsICJXZWJL
aXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgZGVzY3JpcHRpb24iKSk7CiB9
CiAjZW5kaWYKIAogUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihB
UEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RT
aG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGgg
c3BlY2lmaWVkIE1JTUUgdHlwZSBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90
U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQ
STo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6
Q2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVu
dCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJv
ckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBsdWdpbkVy
cm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51
cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0RXJyb3JQ
bHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQbHVnaW5FcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQ
bHVnaW46OlBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklO
RygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9h
ZCBkZXNjcmlwdGlvbiIpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0
IFVSTCYgdXJsKQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktp
dEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2Vi
S2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwg
ZGVzY3JpcHRpb24iKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2Vi
S2l0RXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6R2VuZXJhbDo6SW50ZXJuYWwsIHVybCwgV0VC
X1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiwgIldlYktp
dEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRl
LmNwcAppbmRleCA0MTVlZTRmMGFlNC4uYmVjNmYxMWRiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCkBAIC0yMSw3ICsyMSw2
IEBACiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiQVBJRXJyb3IuaCIK
LSNpbmNsdWRlICJXS0Vycm9yUmVmLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJLaXRFcnJvci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KQEAgLTg2LDIzICs4NSwyMyBA
QCB1bnNpZ25lZCB0b1dlYktpdEVycm9yKHVuc2lnbmVkIHdlYkNvcmVFcnJvcikKICAgICAgICAg
cmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDsKICAgICBjYXNlIEFQSTo6RXJy
b3I6Ok5ldHdvcms6OkZpbGVEb2VzTm90RXhpc3Q6CiAgICAgICAgIHJldHVybiBXRUJLSVRfTkVU
V09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOwotICAgIGNhc2Uga1dLRXJyb3JDb2RlQ2Fu
bm90U2hvd01JTUVUeXBlOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpDYW5ub3RTaG93
TUlNRVR5cGU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9X
X01JTUVfVFlQRTsKLSAgICBjYXNlIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkw6CisgICAgY2Fz
ZSBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFNob3dVUkw6CiAgICAgICAgIHJldHVybiBXRUJL
SVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSTsKLSAgICBjYXNlIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgY2FzZSBBUEk6OkVycm9yOjpQ
b2xpY3k6OkZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CiAgICAgICAgIHJldHVy
biBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NI
QU5HRTsKLSAgICBjYXNlIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0OgorICAg
IGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKICAgICAg
ICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQ7
Ci0gICAgY2FzZSBrV0tFcnJvckNvZGVDYW5ub3RGaW5kUGx1Z0luOgorICAgIGNhc2UgQVBJOjpF
cnJvcjo6UGx1Z2luOjpDYW5ub3RGaW5kUGx1Z0luOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BM
VUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU47Ci0gICAgY2FzZSBrV0tFcnJvckNvZGVDYW5u
b3RMb2FkUGx1Z0luOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RMb2FkUGx1
Z0luOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVH
SU47Ci0gICAgY2FzZSBrV0tFcnJvckNvZGVKYXZhVW5hdmFpbGFibGU6CisgICAgY2FzZSBBUEk6
OkVycm9yOjpQbHVnaW46OkphdmFVbmF2YWlsYWJsZToKICAgICAgICAgcmV0dXJuIFdFQktJVF9Q
TFVHSU5fRVJST1JfSkFWQV9VTkFWQUlMQUJMRTsKLSAgICBjYXNlIGtXS0Vycm9yQ29kZVBsdWdJ
bkNhbmNlbGxlZENvbm5lY3Rpb246CisgICAgY2FzZSBBUEk6OkVycm9yOjpQbHVnaW46OlBsdWdJ
bkNhbmNlbGxlZENvbm5lY3Rpb246CiAgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9S
X0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOwotICAgIGNhc2Uga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhh
bmRsZUxvYWQ6CisgICAgY2FzZSBBUEk6OkVycm9yOjpQbHVnaW46OlBsdWdJbldpbGxIYW5kbGVM
b2FkOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FE
OwogICAgIGNhc2UgQVBJOjpFcnJvcjo6RG93bmxvYWQ6OlRyYW5zcG9ydDoKICAgICAgICAgcmV0
dXJuIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOwpAQCAtMTMwLDIzICsxMjksMjMgQEAg
dW5zaWduZWQgdG9XZWJDb3JlRXJyb3IodW5zaWduZWQgd2ViS2l0RXJyb3IpCiAgICAgY2FzZSBX
RUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOgogICAgICAgICByZXR1cm4g
QVBJOjpFcnJvcjo6TmV0d29yazo6RmlsZURvZXNOb3RFeGlzdDsKICAgICBjYXNlIFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOgotICAgICAgICByZXR1cm4ga1dLRXJy
b3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UG9s
aWN5OjpDYW5ub3RTaG93TUlNRVR5cGU7CiAgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NB
Tk5PVF9TSE9XX1VSSToKLSAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkw7
CisgICAgICAgIHJldHVybiBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFNob3dVUkw7CiAgICAg
Y2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRToKLSAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2U7CisgICAgICAgIHJldHVybiBBUEk6OkVycm9yOjpQb2xpY3k6OkZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U7CiAgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VS
Uk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOgotICAgICAgICByZXR1cm4ga1dLRXJyb3JD
b2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ7CisgICAgICAgIHJldHVybiBBUEk6OkVycm9yOjpQ
b2xpY3k6OkNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0OwogICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9F
UlJPUl9DQU5OT1RfRklORF9QTFVHSU46Ci0gICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVDYW5u
b3RGaW5kUGx1Z0luOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RG
aW5kUGx1Z0luOwogICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVH
SU46Ci0gICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1Z0luOworICAgICAg
ICByZXR1cm4gQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RMb2FkUGx1Z0luOwogICAgIGNhc2Ug
V0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOgotICAgICAgICByZXR1cm4ga1dL
RXJyb3JDb2RlSmF2YVVuYXZhaWxhYmxlOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UGx1
Z2luOjpKYXZhVW5hdmFpbGFibGU7CiAgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5F
Q1RJT05fQ0FOQ0VMTEVEOgotICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2Vs
bGVkQ29ubmVjdGlvbjsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6OlBsdWdpbjo6UGx1Z0lu
Q2FuY2VsbGVkQ29ubmVjdGlvbjsKICAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9I
QU5ETEVfTE9BRDoKLSAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVM
b2FkOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UGx1Z2luOjpQbHVnSW5XaWxsSGFuZGxl
TG9hZDsKICAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOgogICAgICAgICBy
ZXR1cm4gQVBJOjpFcnJvcjo6RG93bmxvYWQ6OlRyYW5zcG9ydDsKICAgICBjYXNlIFdFQktJVF9E
T1dOTE9BRF9FUlJPUl9DQU5DRUxMRURfQllfVVNFUjoK
</data>
<flag name="review"
          id="333675"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>