<?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>50791</bug_id>
          
          <creation_ts>2010-12-09 17:10:53 -0800</creation_ts>
          <short_desc>Add CoreIPC coders for CF types</short_desc>
          <delta_ts>2010-12-09 17:32:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>319802</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-09 17:10:53 -0800</bug_when>
    <thetext>Add CoreIPC coders for CF types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319804</commentid>
    <comment_count>1</comment_count>
      <attachid>76139</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-09 17:12:59 -0800</bug_when>
    <thetext>Created attachment 76139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319813</commentid>
    <comment_count>2</comment_count>
      <attachid>76139</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-09 17:21:25 -0800</bug_when>
    <thetext>Comment on attachment 76139
Patch

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

&gt; WebKit2/Platform/CoreIPC/ArgumentDecoder.h:66
&gt; +        COMPILE_ASSERT(sizeof(T) &lt;= sizeof(uint64_t), enum_type_must_not_be_larger_than_64_bits);

You could use COMPILE_ASSERT __is_enum(), in Clang only code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319818</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-09 17:32:54 -0800</bug_when>
    <thetext>Committed r73662: &lt;http://trac.webkit.org/changeset/73662&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76139</attachid>
            <date>2010-12-09 17:12:59 -0800</date>
            <delta_ts>2010-12-09 17:21:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50791-20101209171258.patch</filename>
            <type>text/plain</type>
            <size>22285</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODBiMzYxZDE2NmVmZmZjNGVjNjViMmI2MjA2Yzg0YmM1ODZhNmM1OC4uZjQ4N2Y0MmU5OGQ5OTY1
ODYxMDQxZDA3MzQ1NDJlZDIxZGNlY2U4MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNSBAQAogMjAxMC0xMi0wOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDb3JlSVBDIGNvZGVycyBmb3IgQ0YgdHlw
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzkx
CisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyOjpkZWNvZGVFbnVtKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyOjplbmNvZGVFbnVtKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5jcHA6IEFkZGVkLgorICAgICAgICAoQ29yZUlQQzo6dG9rZW5OdWxsVHlwZVJlZik6Cisg
ICAgICAgIChDb3JlSVBDOjp0eXBlRnJvbUNGVHlwZVJlZik6CisgICAgICAgIChDb3JlSVBDOjpl
bmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6ZGVjb2RlKToKKyAgICAgICAgKENvcmVJUEM6OnNp
emVGb3JOdW1iZXJUeXBlKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
KzIwMTAtMTItMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAg
ICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgogCiAgICAgICAgIERvbid0IGxlYWsgdGhlIFBE
RkRvY3VtZW50CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRE
ZWNvZGVyLmggYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5k
ZXggOTI4M2U0ZmQxODI0YzZmZTZjMWZlZmVmNTAzZTJlNzZkZGIzOTkzMi4uZGNmNjdhZDZmMTAy
MGUxODNkMTczN2ZkMjMyMmM3NGMyNzJiYzE5MyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudERlY29kZXIuaApAQCAtNjEsNiArNjEsMTggQEAgcHVibGljOgogICAgIGJvb2wg
ZGVjb2RlRmxvYXQoZmxvYXQmKTsKICAgICBib29sIGRlY29kZURvdWJsZShkb3VibGUmKTsKIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlRW51bShUJiByZXN1bHQpCisgICAg
eworICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoVCkgPD0gc2l6ZW9mKHVpbnQ2NF90KSwg
ZW51bV90eXBlX211c3Rfbm90X2JlX2xhcmdlcl90aGFuXzY0X2JpdHMpOworCisgICAgICAgIHVp
bnQ2NF90IHZhbHVlOworICAgICAgICBpZiAoIWRlY29kZVVJbnQ2NCh2YWx1ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDxUPih2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+CiAgICAgYm9vbCBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKHNpemVf
dCBudW1FbGVtZW50cykgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmggYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRFbmNvZGVyLmgKaW5kZXggM2FmNzcxZjY4ZmU5ODI0ZjU0Nzk0OTkxMGY0Y2Y1OGMyNmMy
NDM4MS4uOTdmMDI2MjU5MmY4ZmM5M2I3NjdiNDJhNmFmZWFmMjAzNzY5NTUxNCAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oCisrKyBiL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudEVuY29kZXIuaApAQCAtNTEsNiArNTEsMTMgQEAg
cHVibGljOgogICAgIHZvaWQgZW5jb2RlRmxvYXQoZmxvYXQpOwogICAgIHZvaWQgZW5jb2RlRG91
YmxlKGRvdWJsZSk7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGVuY29kZUVudW0o
VCB0KQorICAgIHsKKyAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFQpIDw9IHNpemVvZih1
aW50NjRfdCksIGVudW1fdHlwZV9tdXN0X25vdF9iZV9sYXJnZXJfdGhhbl82NF9iaXRzKTsKKwor
ICAgICAgICBlbmNvZGVVSW50NjQoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHQpKTsKKyAgICB9Cisg
ICAgCiAgICAgLy8gR2VuZXJpYyB0eXBlIGVuY29kZSBmdW5jdGlvbi4KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIGVuY29kZShjb25zdCBUJiB0KQogICAgIHsKZGlmZiAtLWdpdCBhL1dl
YktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvY2Yv
QXJndW1lbnRDb2RlcnNDRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmEzYWRkYzYyMzEzYWMzMTRmMDUzMjJl
Mjc2NzUyNDE4OWQxYTc0NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL2NmL0Fy
Z3VtZW50Q29kZXJzQ0YuY3BwCkBAIC0wLDAgKzEsNDMwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworQ0ZUeXBl
UmVmIHRva2VuTnVsbFR5cGVSZWYoKQoreworICAgIHN0YXRpYyBDRlN0cmluZ1JlZiB0b2tlbk51
bGxUeXBlID0gQ0ZTVFIoIldLTnVsbCIpOworICAgIHJldHVybiB0b2tlbk51bGxUeXBlOworfQor
CitlbnVtIENGVHlwZSB7CisgICAgQ0ZBcnJheSwKKyAgICBDRkJvb2xlYW4sCisgICAgQ0ZEaWN0
aW9uYXJ5LAorICAgIENGTnVsbCwKKyAgICBDRk51bWJlciwKKyAgICBDRlN0cmluZywKKyAgICBD
RlVSTCwKKyAgICBOdWxsLAorICAgIFVua25vd24sCit9OworCitzdGF0aWMgQ0ZUeXBlIHR5cGVG
cm9tQ0ZUeXBlUmVmKENGVHlwZVJlZiB0eXBlKQoreworICAgIEFTU0VSVCh0eXBlKTsKKworICAg
IGlmICh0eXBlID09IHRva2VuTnVsbFR5cGVSZWYoKSkKKyAgICAgICAgcmV0dXJuIE51bGw7CisK
KyAgICBDRlR5cGVJRCB0eXBlSUQgPSBDRkdldFR5cGVJRCh0eXBlKTsKKyAgICBpZiAodHlwZUlE
ID09IENGQXJyYXlHZXRUeXBlSUQoKSkKKyAgICAgICAgcmV0dXJuIENGQXJyYXk7CisgICAgaWYg
KHR5cGVJRCA9PSBDRkJvb2xlYW5HZXRUeXBlSUQoKSkKKyAgICAgICAgcmV0dXJuIENGQm9vbGVh
bjsKKyAgICBpZiAodHlwZUlEID09IENGRGljdGlvbmFyeUdldFR5cGVJRCgpKQorICAgICAgICBy
ZXR1cm4gQ0ZEaWN0aW9uYXJ5OworICAgIGlmICh0eXBlSUQgPT0gQ0ZOdWxsR2V0VHlwZUlEKCkp
CisgICAgICAgIHJldHVybiBDRk51bGw7CisgICAgaWYgKHR5cGVJRCA9PSBDRk51bWJlckdldFR5
cGVJRCgpKQorICAgICAgICByZXR1cm4gQ0ZOdW1iZXI7CisgICAgaWYgKHR5cGVJRCA9PSBDRlN0
cmluZ0dldFR5cGVJRCgpKQorICAgICAgICByZXR1cm4gQ0ZTdHJpbmc7CisgICAgaWYgKHR5cGVJ
RCA9PSBDRlVSTEdldFR5cGVJRCgpKQorICAgICAgICByZXR1cm4gQ0ZVUkw7CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gVW5rbm93bjsKK30KKworc3RhdGljIHZvaWQg
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgQ0ZUeXBlUmVmIHR5cGVSZWYpCit7Cisg
ICAgQ0ZUeXBlIHR5cGUgPSB0eXBlRnJvbUNGVHlwZVJlZih0eXBlUmVmKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKHR5cGUpOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBDRkFy
cmF5OgorICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZBcnJheVJlZj4odHlw
ZVJlZikpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBDRkJvb2xlYW46CisgICAgICAgIGVu
Y29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkJvb2xlYW5SZWY+KHR5cGVSZWYpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgQ0ZEaWN0aW9uYXJ5OgorICAgICAgICBlbmNvZGUoZW5jb2Rl
ciwgc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPih0eXBlUmVmKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIENGTnVsbDoKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ0ZOdW1iZXI6
CisgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4odHlwZVJl
ZikpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBDRlN0cmluZzoKKyAgICAgICAgZW5jb2Rl
KGVuY29kZXIsIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPih0eXBlUmVmKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIENGVVJMOgorICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nh
c3Q8Q0ZVUkxSZWY+KHR5cGVSZWYpKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTnVsbDoK
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRlR5cGVSZWY+JiByZXN1bHQpCit7
CisgICAgQ0ZUeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIENG
QXJyYXk6IHsKKyAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGFycmF5OworICAgICAgICBp
ZiAoIWRlY29kZShkZWNvZGVyLCBhcnJheSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJlc3VsdC5hZG9wdENGKGFycmF5LmxlYWtSZWYoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBjYXNlIENGQm9vbGVhbjogeworICAgICAgICBSZXRhaW5QdHI8Q0ZC
b29sZWFuUmVmPiBib29sZWFuOworICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBib29sZWFu
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0LmFkb3B0Q0YoYm9v
bGVhbi5sZWFrUmVmKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBD
RkRpY3Rpb25hcnk6IHsKKyAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdGlv
bmFyeTsKKyAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgZGljdGlvbmFyeSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5hZG9wdENGKGRpY3Rpb25hcnkubGVh
a1JlZigpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2UgQ0ZOdWxsOgor
ICAgICAgICByZXN1bHQuYWRvcHRDRihrQ0ZOdWxsKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgY2FzZSBDRk51bWJlcjogeworICAgICAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IG51bWJl
cjsKKyAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgbnVtYmVyKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0LmFkb3B0Q0YobnVtYmVyLmxlYWtSZWYoKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIENGU3RyaW5nOiB7CisgICAgICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3RyaW5nOworICAgICAgICBpZiAoIWRlY29kZShkZWNv
ZGVyLCBzdHJpbmcpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQu
YWRvcHRDRihzdHJpbmcubGVha1JlZigpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIGNhc2UgQ0ZVUkw6IHsKKyAgICAgICAgUmV0YWluUHRyPENGVVJMUmVmPiB1cmw7CisgICAg
ICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHVybCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJlc3VsdC5hZG9wdENGKHVybC5sZWFrUmVmKCkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgY2FzZSBOdWxsOgorICAgICAgICByZXN1bHQgPSB0b2tlbk51bGxU
eXBlUmVmKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVW5rbm93bjoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5j
b2RlciwgQ0ZBcnJheVJlZiBhcnJheSkKK3sKKyAgICBDRkluZGV4IHNpemUgPSBDRkFycmF5R2V0
Q291bnQoYXJyYXkpOworICAgIFZlY3RvcjxDRlR5cGVSZWYsIDMyPiB2YWx1ZXMoc2l6ZSk7CisK
KyAgICBDRkFycmF5R2V0VmFsdWVzKGFycmF5LCBDRlJhbmdlTWFrZSgwLCBzaXplKSwgdmFsdWVz
LmRhdGEoKSk7CisKKyAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQoc2l6ZSk7CisgICAgZm9yIChD
RkluZGV4IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbaV0p
OworCisgICAgICAgIGVuY29kZShlbmNvZGVyLCB2YWx1ZXNbaV0pOworICAgIH0KK30KKworYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4m
IHJlc3VsdCkKK3sKKyAgICB1aW50NjRfdCBzaXplOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
VUludDY0KHNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZXRhaW5QdHI8Q0ZN
dXRhYmxlQXJyYXlSZWY+IGFycmF5KEFkb3B0Q0YsIENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIDAs
ICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7CisgICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IGVsZW1lbnQ7CisgICAg
ICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIENGQXJyYXlBcHBlbmRWYWx1ZShhcnJheS5nZXQoKSwgZWxlbWVudC5n
ZXQoKSk7CisgICAgfQorCisgICAgcmVzdWx0LmFkb3B0Q0YoYXJyYXkubGVha1JlZigpKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
LCBDRkJvb2xlYW5SZWYgYm9vbGVhbikKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGVCb29sKENGQm9v
bGVhbkdldFZhbHVlKGJvb2xlYW4pKTsKK30KKworYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZCb29sZWFuUmVmPiYgcmVzdWx0KQoreworICAgIGJvb2wg
Ym9vbGVhbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShib29sZWFuKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmVzdWx0LmFkb3B0Q0YoYm9vbGVhbiA/IGtDRkJvb2xlYW5UcnVl
IDoga0NGQm9vbGVhbkZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSkKK3sK
KyAgICBDRkluZGV4IHNpemUgPSBDRkRpY3Rpb25hcnlHZXRDb3VudChkaWN0aW9uYXJ5KTsKKyAg
ICBWZWN0b3I8Q0ZUeXBlUmVmLCAzMj4ga2V5cyhzaXplKTsKKyAgICBWZWN0b3I8Q0ZUeXBlUmVm
LCAzMj4gdmFsdWVzKHNpemUpOworICAgIAorICAgIENGRGljdGlvbmFyeUdldEtleXNBbmRWYWx1
ZXMoZGljdGlvbmFyeSwga2V5cy5kYXRhKCksIHZhbHVlcy5kYXRhKCkpOworCisgICAgZW5jb2Rl
ci0+ZW5jb2RlVUludDY0KHNpemUpOworCisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CisgICAgICAgIEFTU0VSVChrZXlzW2ldKTsKKyAgICAgICAgQVNTRVJUKENGR2V0
VHlwZUlEKGtleXNbaV0pID09IENGU3RyaW5nR2V0VHlwZUlEKCkpOworICAgICAgICBBU1NFUlQo
dmFsdWVzW2ldKTsKKworICAgICAgICAvLyBJZ25vcmUgdmFsdWVzIHdlIGRvbid0IHJlY29nbml6
ZS4KKyAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVmKHZhbHVlc1tpXSkgPT0gVW5rbm93bikK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNf
Y2FzdDxDRlN0cmluZ1JlZj4oa2V5c1tpXSkpOworICAgICAgICBlbmNvZGUoZW5jb2RlciwgdmFs
dWVzW2ldKTsKKyAgICB9Cit9CisKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4mIHJlc3VsdCkKK3sKKyAgICB1aW50NjRfdCBz
aXplOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDY0KHNpemUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gZGljdGlv
bmFyeShBZG9wdENGLCBDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlRGlj
dGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsK
KyAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIC8vIFRy
eSB0byBkZWNvZGUgdGhlIGtleSBuYW1lLgorICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGtleTsKKyAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwga2V5KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiB2YWx1ZTsKKyAgICAg
ICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgdmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGRpY3Rpb25hcnkuZ2V0KCksIGtleS5n
ZXQoKSwgdmFsdWUuZ2V0KCkpOworICAgIH0KKworICAgIHJlc3VsdC5hZG9wdENGKGRpY3Rpb25h
cnkucmVsZWFzZVJlZigpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBDRk51bWJlclJlZiBudW1iZXIpCit7CisgICAgQ0ZOdW1i
ZXJUeXBlIG51bWJlclR5cGUgPSBDRk51bWJlckdldFR5cGUobnVtYmVyKTsKKworICAgIFZlY3Rv
cjx1aW50OF90PiBidWZmZXIoQ0ZOdW1iZXJHZXRCeXRlU2l6ZShudW1iZXIpKTsKKyAgICBib29s
IHJlc3VsdCA9IENGTnVtYmVyR2V0VmFsdWUobnVtYmVyLCBudW1iZXJUeXBlLCBidWZmZXIuZGF0
YSgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKKworICAgIGVuY29kZXIt
PmVuY29kZUVudW0obnVtYmVyVHlwZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlQnl0ZXMoYnVmZmVy
LmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7Cit9CisKK3N0YXRpYyBzaXplX3Qgc2l6ZUZvck51bWJl
clR5cGUoQ0ZOdW1iZXJUeXBlIG51bWJlclR5cGUpCit7CisgICAgc3dpdGNoIChudW1iZXJUeXBl
KSB7CisgICAgY2FzZSBrQ0ZOdW1iZXJTSW50OFR5cGU6CisgICAgICAgIHJldHVybiBzaXplb2Yo
U0ludDgpOworICAgIGNhc2Uga0NGTnVtYmVyU0ludDE2VHlwZToKKyAgICAgICAgcmV0dXJuIHNp
emVvZihTSW50MTYpOworICAgIGNhc2Uga0NGTnVtYmVyU0ludDMyVHlwZToKKyAgICAgICAgcmV0
dXJuIHNpemVvZihTSW50MzIpOworICAgIGNhc2Uga0NGTnVtYmVyU0ludDY0VHlwZToKKyAgICAg
ICAgcmV0dXJuIHNpemVvZihTSW50NjQpOworICAgIGNhc2Uga0NGTnVtYmVyRmxvYXQzMlR5cGU6
CisgICAgICAgIHJldHVybiBzaXplb2YoRmxvYXQzMik7CisgICAgY2FzZSBrQ0ZOdW1iZXJGbG9h
dDY0VHlwZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihGbG9hdDY0KTsKKyAgICBjYXNlIGtDRk51
bWJlckNoYXJUeXBlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGNoYXIpOworICAgIGNhc2Uga0NG
TnVtYmVyU2hvcnRUeXBlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKHNob3J0KTsKKyAgICBjYXNl
IGtDRk51bWJlckludFR5cGU6CisgICAgICAgIHJldHVybiBzaXplb2YoaW50KTsKKyAgICBjYXNl
IGtDRk51bWJlckxvbmdUeXBlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGxvbmcpOworICAgIGNh
c2Uga0NGTnVtYmVyTG9uZ0xvbmdUeXBlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGxvbmcgbG9u
Zyk7CisgICAgY2FzZSBrQ0ZOdW1iZXJGbG9hdFR5cGU6CisgICAgICAgIHJldHVybiBzaXplb2Yo
ZmxvYXQpOworICAgIGNhc2Uga0NGTnVtYmVyRG91YmxlVHlwZToKKyAgICAgICAgcmV0dXJuIHNp
emVvZihkb3VibGUpOworICAgIGNhc2Uga0NGTnVtYmVyQ0ZJbmRleFR5cGU6CisgICAgICAgIHJl
dHVybiBzaXplb2YoQ0ZJbmRleCk7CisgICAgY2FzZSBrQ0ZOdW1iZXJOU0ludGVnZXJUeXBlOgor
I2lmIF9fTFA2NF9fCisgICAgICAgIHJldHVybiBzaXplb2YobG9uZyk7CisjZWxzZQorICAgICAg
ICByZXR1cm4gc2l6ZW9mKGludCk7CisjZW5kaWYKKyAgICBjYXNlIGtDRk51bWJlckNHRmxvYXRU
eXBlOgorI2lmIF9fTFA2NF9fCisgICAgICAgIHJldHVybiBzaXplb2YoZG91YmxlKTsKKyNlbHNl
CisgICAgICAgIHJldHVybiBzaXplb2YoZmxvYXQpOworI2VuZGlmCisgICAgfQorCisgICAgcmV0
dXJuIDA7Cit9CisKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWlu
UHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KQoreworICAgIENGTnVtYmVyVHlwZSBudW1iZXJUeXBl
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShudW1iZXJUeXBlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzaXplX3QgbmVlZGVkQnVmZmVyU2l6ZSA9IHNpemVGb3JOdW1iZXJUeXBl
KG51bWJlclR5cGUpOworICAgIGlmICghbmVlZGVkQnVmZmVyU2l6ZSB8fCBkYXRhUmVmZXJlbmNl
LnNpemUoKSAhPSBuZWVkZWRCdWZmZXJTaXplKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBDRk51bWJlclJlZiBudW1iZXIgPSBDRk51bWJlckNyZWF0ZSgwLCBudW1iZXJUeXBlLCBkYXRh
UmVmZXJlbmNlLmRhdGEoKSk7CisgICAgcmVzdWx0LmFkb3B0Q0YobnVtYmVyKTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIENG
U3RyaW5nUmVmIHN0cmluZykKK3sKKyAgICBDRkluZGV4IGxlbmd0aCA9IENGU3RyaW5nR2V0TGVu
Z3RoKHN0cmluZyk7CisgICAgQ0ZTdHJpbmdFbmNvZGluZyBlbmNvZGluZyA9IENGU3RyaW5nR2V0
RmFzdGVzdEVuY29kaW5nKHN0cmluZyk7CisKKyAgICBDRlJhbmdlIHJhbmdlID0gQ0ZSYW5nZU1h
a2UoMCwgbGVuZ3RoKTsKKyAgICBDRkluZGV4IGJ1ZmZlckxlbmd0aCA9IDA7CisKKyAgICBDRklu
ZGV4IG51bUNvbnZlcnRlZEJ5dGVzID0gQ0ZTdHJpbmdHZXRCeXRlcyhzdHJpbmcsIHJhbmdlLCBl
bmNvZGluZywgMCwgZmFsc2UsIDAsIDAsICZidWZmZXJMZW5ndGgpOworICAgIEFTU0VSVChudW1D
b252ZXJ0ZWRCeXRlcyA9PSBsZW5ndGgpOworCisgICAgVmVjdG9yPFVJbnQ4LCAxMjg+IGJ1ZmZl
cihidWZmZXJMZW5ndGgpOworICAgIG51bUNvbnZlcnRlZEJ5dGVzID0gQ0ZTdHJpbmdHZXRCeXRl
cyhzdHJpbmcsIHJhbmdlLCBlbmNvZGluZywgMCwgZmFsc2UsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZl
ci5zaXplKCksICZidWZmZXJMZW5ndGgpOworICAgIEFTU0VSVChudW1Db252ZXJ0ZWRCeXRlcyA9
PSBsZW5ndGgpOworCisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShlbmNvZGluZyk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlQnl0ZXMoYnVmZmVyLmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKK30KKworYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
JiByZXN1bHQpCit7CisgICAgQ0ZTdHJpbmdFbmNvZGluZyBlbmNvZGluZzsKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZUVudW0oZW5jb2RpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIUNGU3RyaW5nSXNFbmNvZGluZ0F2YWlsYWJsZShlbmNvZGluZykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVu
Y2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIENGU3RyaW5nUmVmIHN0cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0
aEJ5dGVzKDAsIGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgpID8gMCA6IGRhdGFSZWZlcmVuY2UuZGF0
YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSwgZW5jb2RpbmcsIGZhbHNlKTsKKyAgICBpZiAoIXN0
cmluZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0LmFkb3B0Q0Yoc3RyaW5n
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyLCBDRlVSTFJlZiB1cmwpCit7CisgICAgQ0ZVUkxSZWYgYmFzZVVSTCA9IENGVVJMR2V0
QmFzZVVSTCh1cmwpOworICAgIGVuY29kZXItPmVuY29kZUJvb2woYmFzZVVSTCk7CisgICAgaWYg
KGJhc2VVUkwpCisgICAgICAgIGVuY29kZShlbmNvZGVyLCBiYXNlVVJMKTsKKworICAgIGVuY29k
ZShlbmNvZGVyLCBDRlVSTEdldFN0cmluZyh1cmwpKTsKK30KKworYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZVUkxSZWY+JiByZXN1bHQpCit7CisgICAg
UmV0YWluUHRyPENGVVJMUmVmPiBiYXNlVVJMOworICAgIGJvb2wgaGFzQmFzZVVSTDsKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUJvb2woaGFzQmFzZVVSTCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoaGFzQmFzZVVSTCkgeworICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBi
YXNlVVJMKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHN0cmluZzsKKyAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBzdHJpbmcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDRlVSTFJlZiB1cmwgPSBDRlVSTENyZWF0
ZVdpdGhTdHJpbmcoMCwgc3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBpZiAoIXVy
bCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0LmFkb3B0Q0YodXJsKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQworCmRpZmYgLS1naXQg
YS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmggYi9XZWJLaXQyL1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RiZTQ2YzIwMTk1OWY4MzAyN2EzNDMx
ZWIzNjhlNmYzOWIyNjJiYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL2NmL0Fy
Z3VtZW50Q29kZXJzQ0YuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBB
cmd1bWVudENvZGVyc0NGX2gKKyNkZWZpbmUgQXJndW1lbnRDb2RlcnNDRl9oCisKKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1l
bnRFbmNvZGVyOworY2xhc3MgQXJndW1lbnREZWNvZGVyOworCisvLyBDRkFycmF5UmVmCit2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBDRkFycmF5UmVmKTsKK2Jvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciosIFJldGFpblB0cjxDRkFycmF5UmVmPiYgcmVzdWx0KTsKKworLy8gQ0ZCb29s
ZWFuUmVmCit2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBDRkJvb2xlYW5SZWYpOworYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgUmV0YWluUHRyPENGQm9vbGVhblJlZj4mIHJlc3Vs
dCk7CisKKy8vIENGRGljdGlvbmFyeVJlZgordm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwg
Q0ZEaWN0aW9uYXJ5UmVmKTsKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpOworCisvLyBDRk51bWJlclJlZgordm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyKiwgQ0ZOdW1iZXJSZWYpOworYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyKiwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KTsKKworLy8gQ0ZTdHJpbmdS
ZWYKK3ZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIENGU3RyaW5nUmVmKTsKK2Jvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHJlc3VsdCk7CisK
Ky8vIENGVVJMUmVmCit2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBDRlVSTFJlZik7Citi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBSZXRhaW5QdHI8Q0ZVUkxSZWY+JiByZXN1bHQp
OworCitDRlR5cGVSZWYgdG9rZW5OdWxsVHlwZVJlZigpOworCit9IC8vIG5hbWVzcGFjZSBDb3Jl
SVBDCisKKyNlbmRpZiAvLyBBcmd1bWVudENvZGVyc0NGX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmQ0YzM0YTE2MDI5ODgxZjI2YmZlZGRlYjdkMWE2
NmMxNjQzZjE0MC4uYTRmYWJjZTI2MTUwZGI1MTE0MDc0MzY3YWJmNTU3M2Q1YzViMjI2NiAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2MSw2ICsxNjEs
OCBAQAogCQkxQUFERTZGRjEwRDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2aWNlcy5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUFERTZGRTEwRDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv
cmsgKi87IH07CiAJCTFBQUYwNjE0MTJCMDExMzEwMDhFNDlFMiAvKiBQREZWaWV3Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBRjA2
MTIxMkIwMTEzMTAwOEU0OUUyIC8qIFBERlZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCTFBQUYw
NjE1MTJCMDExMzEwMDhFNDlFMiAvKiBQREZWaWV3Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQUYwNjEzMTJCMDExMzEwMDhFNDlF
MiAvKiBQREZWaWV3Q29udHJvbGxlci5tbSAqLzsgfTsKKwkJMUFBRjBDNEExMkIxNjMzNDAwOEU0
OUUyIC8qIEFyZ3VtZW50Q29kZXJzQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBQUYwQzQ4MTJCMTYzMzQwMDhFNDlFMiAvKiBBcmd1bWVudENvZGVy
c0NGLmggKi87IH07CisJCTFBQUYwQzRCMTJCMTYzMzQwMDhFNDlFMiAvKiBBcmd1bWVudENvZGVy
c0NGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
QUYwQzQ5MTJCMTYzMzQwMDhFNDlFMiAvKiBBcmd1bWVudENvZGVyc0NGLmNwcCAqLzsgfTsKIAkJ
MUFCN0Q0Q0ExMjg4QUFBNzAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdENEM4MTI4OEFBQTcwMENGRDA4
QyAvKiBEb3dubG9hZFByb3h5LmggKi87IH07CiAJCTFBQjdENENCMTI4OEFBQTcwMENGRDA4QyAv
KiBEb3dubG9hZFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBQjdENEM5MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5LmNwcCAq
LzsgfTsKIAkJMUFCN0Q2MTkxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFCN0Q2MTcxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwpAQCAtNzkwLDYgKzc5Miw4IEBACiAJCTFBQURFNkZFMTBEODU1RkMwMEQz
RDYzRCAvKiBBcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9P
VDsgfTsKIAkJMUFBRjA2MTIxMkIwMTEzMTAwOEU0OUUyIC8qIFBERlZpZXdDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBERlZpZXdDb250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQUYwNjEzMTJCMDExMzEwMDhFNDlFMiAvKiBQ
REZWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBERlZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QUFGMEM0ODEyQjE2MzM0MDA4RTQ5RTIgLyogQXJndW1lbnRDb2RlcnNDRi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcmd1bWVudENvZGVyc0NGLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQUYwQzQ5MTJCMTYzMzQwMDhFNDlFMiAvKiBBcmd1bWVudENvZGVy
c0NGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyZ3VtZW50Q29k
ZXJzQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RDRDODEyODhBQUE3
MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEb3dubG9hZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdE
NEM5MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQUI3RDVFOTEyODhCOEMwMDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3dubG9hZFByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUwNiw2ICsxNTEwLDcgQEAKIAkJ
CQlCQ0REQjMxNDEyNEVCQ0VGMDA0OEQxM0MgLyogQVBJICovLAogCQkJCUJDMTExQjVGMTEyRjYz
NUUwMDMzN0JBQiAvKiBDb3JlSVBDU3VwcG9ydCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4
NTI0MTggLyogUGx1Z2lucyAqLywKKwkJCQkxQUFGMEM0NzEyQjE2MzI4MDA4RTQ5RTIgLyogY2Yg
Ki8sCiAJCQkJQzAxQTI1RkYxMjY2MkYyMTAwQzlFRDU1IC8qIGNnICovLAogCQkJCUJDMTExQjVB
MTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCiAJCQkJMUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2
IC8qIEFQSUNsaWVudC5oICovLApAQCAtMTYwMiw2ICsxNjA3LDE1IEBACiAJCQlwYXRoID0gUGx1
Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFBQUYwQzQ3MTJCMTYz
MjgwMDhFNDlFMiAvKiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMUFBRjBDNDkxMkIxNjMzNDAwOEU0OUUyIC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3Bw
ICovLAorCQkJCTFBQUYwQzQ4MTJCMTYzMzQwMDhFNDlFMiAvKiBBcmd1bWVudENvZGVyc0NGLmgg
Ki8sCisJCQkpOworCQkJcGF0aCA9IGNmOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJMUFCNUExQkExMEUwMjFEMzAwNDBGNkNGIC8qIENvcmVJUEMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjY1Miw2ICsyNjY2LDcgQEAKIAkJCQlC
QzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNkEyNUZERDEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUFGMDYxNDEyQjAxMTMxMDA4RTQ5RTIgLyogUERGVmlld0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQUYwQzRBMTJCMTYzMzQwMDhFNDlFMiAv
KiBBcmd1bWVudENvZGVyc0NGLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTMwNjIsNiArMzA3Nyw3IEBA
CiAJCQkJRjZBMjVGRDkxMkFEQzZCRDAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRh
YmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA2MTUxMkIwMTEzMTAwOEU0
OUUyIC8qIFBERlZpZXdDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBRjBDNEIx
MkIxNjMzNDAwOEU0OUUyIC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cg==
</data>
<flag name="review"
          id="67028"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>