<?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>149554</bug_id>
          
          <creation_ts>2015-09-25 02:46:40 -0700</creation_ts>
          <short_desc>Add support for WebIDL JSBuiltin attributes</short_desc>
          <delta_ts>2015-09-29 01:01:41 -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>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>
          
          <blocked>147092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128690</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 02:46:40 -0700</bug_when>
    <thetext>JSBuiltin is currently only supported for methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128697</commentid>
    <comment_count>1</comment_count>
      <attachid>261922</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 06:41:33 -0700</bug_when>
    <thetext>Created attachment 261922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128723</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-25 10:47:41 -0700</bug_when>
    <thetext>Attachment 261922 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/Lookup.cpp:39:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/Lookup.cpp:40:  Wrong number of spaces before statement. (expected: 16)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/Lookup.cpp:42:  Wrong number of spaces before statement. (expected: 16)  [whitespace/indent] [4]
Total errors found: 3 in 10 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>1128980</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-28 02:11:53 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129104</commentid>
    <comment_count>4</comment_count>
      <attachid>261922</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-28 16:01:42 -0700</bug_when>
    <thetext>Comment on attachment 261922
Patch

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

&gt; Source/JavaScriptCore/runtime/Lookup.cpp:40
&gt; +        accessor-&gt;setGetter(vm, globalObject, value.attributes() &amp; Builtin ?
&gt; +            JSFunction::createBuiltinFunction(vm, value.builtinAccessorGetterGenerator()(vm), globalObject, *getterName) :
&gt; +            JSFunction::create(vm, globalObject, 0, *getterName, value.accessorGetter()));

WebKit coding style formatting for this puts the ? and the : at the beginning of the second and third lines, not the end of the first and second.

&gt; Source/JavaScriptCore/runtime/Lookup.h:82
&gt; +    BuiltinGenerator builtinAccessorGetterGenerator() const { ASSERT(m_attributes &amp; Accessor &amp;&amp; m_attributes &amp; Builtin); return reinterpret_cast&lt;BuiltinGenerator&gt;(m_values.value1); }
&gt; +    BuiltinGenerator builtinAccessorSetterGenerator() const { ASSERT(m_attributes &amp; Accessor &amp;&amp; m_attributes &amp; Builtin); return reinterpret_cast&lt;BuiltinGenerator&gt;(m_values.value2); }

Normally we’d write these as two separate assertions rather than using &amp;&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129170</commentid>
    <comment_count>5</comment_count>
      <attachid>262046</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-29 00:13:27 -0700</bug_when>
    <thetext>Created attachment 262046
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129171</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-29 00:14:53 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #4)
&gt; Comment on attachment 261922 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261922&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Lookup.cpp:40
&gt; &gt; +        accessor-&gt;setGetter(vm, globalObject, value.attributes() &amp; Builtin ?
&gt; &gt; +            JSFunction::createBuiltinFunction(vm, value.builtinAccessorGetterGenerator()(vm), globalObject, *getterName) :
&gt; &gt; +            JSFunction::create(vm, globalObject, 0, *getterName, value.accessorGetter()));
&gt; 
&gt; WebKit coding style formatting for this puts the ? and the : at the
&gt; beginning of the second and third lines, not the end of the first and second.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Lookup.h:82
&gt; &gt; +    BuiltinGenerator builtinAccessorGetterGenerator() const { ASSERT(m_attributes &amp; Accessor &amp;&amp; m_attributes &amp; Builtin); return reinterpret_cast&lt;BuiltinGenerator&gt;(m_values.value1); }
&gt; &gt; +    BuiltinGenerator builtinAccessorSetterGenerator() const { ASSERT(m_attributes &amp; Accessor &amp;&amp; m_attributes &amp; Builtin); return reinterpret_cast&lt;BuiltinGenerator&gt;(m_values.value2); }
&gt; 
&gt; Normally we’d write these as two separate assertions rather than using &amp;&amp;.

Fixed by moving the implementation as inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129179</commentid>
    <comment_count>7</comment_count>
      <attachid>262046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 01:01:34 -0700</bug_when>
    <thetext>Comment on attachment 262046
Patch for landing

Clearing flags on attachment: 262046

Committed r190305: &lt;http://trac.webkit.org/changeset/190305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129180</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 01:01:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261922</attachid>
            <date>2015-09-25 06:41:33 -0700</date>
            <delta_ts>2015-09-29 00:13:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149554-20150925154113.patch</filename>
            <type>text/plain</type>
            <size>15195</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
M2ZkYWI3ZGE5MGYwMjgyYzYwNWM2NmM4MjNiNTVjOTU0ZmY4NmM5Li5kMjI4ODRmOGE1YWQ5ODY4
MzNjYmViNjM4OTU1NDNjODkzNmYzZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBXZWJJREwgSlNCdWlsdGluIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY0FjY2Vzc29y
KTogQWRkaW5nIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGF0dHJpYnV0ZSBnZXR0ZXIgZnJvbSBKUyBi
dWlsdGluIGZ1bmN0aW9ucy4KKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgorICAgICAgICAo
SlNDOjpIYXNoVGFibGVWYWx1ZTo6YnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SGFzaFRhYmxlVmFsdWU6OmJ1aWx0aW5BY2Nlc3NvclNldHRlckdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydGllcyk6IEVuc3VyaW5nIHRoYXQg
YnVpbHRpbiBhdHRyaWJ1dGVzIGFyZSBub3QgdHJlYXRlZCBhcyBCdWlsdGluIGZ1bmN0aW9ucy4K
KwogMjAxNS0wOS0yNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIHRoZSB1c2Ugb2YgIkltbWVkaWF0ZSIgaW4gSklUIGZ1bmN0aW9uIG5hbWVzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDMxYzBlZTM4NzlmZWFiMmQzMTVhOGYyNzQ0M2QxYjVlYzdlYWViMzMuLjg3MWIw
MmRlNDRiY2NlY2RjYjA0MWVmYzNmN2FkNWQxNWFlOGMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAxNS0wOS0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBXZWJJREwgSlNCdWlsdGluIGF0dHJp
YnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
OTU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgYmluZGluZ3MgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAoU2tpcEF0dHJpYnV0ZSk6IERpc2FibGVk
IEdPYmplY3QgYmluZGluZyBnZW5lcmF0aW9uIG9mIEpTQnVpbHRpbiBhdHRyaWJ1dGUuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRB
dHRyaWJ1dGVHZXR0ZXJOYW1lKTogSGFuZGxpbmcgb2YgQnVpbHRpbiBmdW5jdGlvbiB0byByZXRy
aWV2ZSBCdWlsdGluR2VuZXJhdG9yLgorICAgICAgICAoR2V0QXR0cmlidXRlU2V0dGVyTmFtZSk6
IERpdHRvLgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKTogU2V0IEpTQnVp
bHRpbiBhdHRyaWJ1dGVzIGFzICJBY2Nlc3NvciB8IEJ1aWx0aW4iLgorICAgICAgICAoR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbik6IFNraXAgaW1wbGVtZW50YXRpb24gZm9yIEpTQnVpbHRpbiBhdHRy
aWJ1dGVzCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
IEFkZGluZyBiaW5kaW5nIHRlc3QgZm9yIEpTQnVpbHRpbiBhdHRyaWJ1dGVzLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0
T2JqIGpzQnVpbHRpbkF0dHJpYnV0ZV0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHNldEpzQnVp
bHRpbkF0dHJpYnV0ZTpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBqc0J1aWx0aW5SZWFkT25s
eUF0dHJpYnV0ZV0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bDogRGl0dG8uCisKIDIwMTUtMDktMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNy
Zi5jYW5vbi5mcj4KIAogICAgICAgICBSZW1vdmUgdGhlIG5lZWQgZm9yIERPTUNsYXNzIGluIGNh
c2Ugb2YgSlNCdWlsdGluQ29uc3RydWN0b3IgV2ViSURMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTG9va3VwLmNwcAppbmRleCA1MDI0NzYxOWY4YmQzMzFhMjQzZTQ0NDUxMjlmNmNiNmVl
MGM0MzZlLi42ZGI2MTRiZWZmZjZmNmY0NDE5NmNmMjkzM2M3NDdhZWE0MjEzYzY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKQEAgLTM1LDkgKzM1LDExIEBAIHZv
aWQgcmVpZnlTdGF0aWNBY2Nlc3NvcihWTSYgdm0sIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiB2YWx1
ZSwgSlNPYmplY3QmIHRoaXNPYmosCiAgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBnZXR0ZXJO
YW1lID0gV1RGOjp0cnlNYWtlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZ2V0ICIpLCBTdHJpbmcoKnBy
b3BlcnR5TmFtZS5wdWJsaWNOYW1lKCkpKTsKICAgICAgICAgaWYgKCFnZXR0ZXJOYW1lKQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBnbG9iYWxP
YmplY3QsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCAqZ2V0dGVyTmFt
ZSwgdmFsdWUuYWNjZXNzb3JHZXR0ZXIoKSkpOworICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVy
KHZtLCBnbG9iYWxPYmplY3QsIHZhbHVlLmF0dHJpYnV0ZXMoKSAmIEJ1aWx0aW4gPworICAgICAg
ICAgICAgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCB2YWx1ZS5idWlsdGlu
QWNjZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSh2bSksIGdsb2JhbE9iamVjdCwgKmdldHRlck5hbWUp
IDoKKyAgICAgICAgICAgIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCAq
Z2V0dGVyTmFtZSwgdmFsdWUuYWNjZXNzb3JHZXR0ZXIoKSkpOwogICAgIH0KLSAgICB0aGlzT2Jq
LnB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIHZh
bHVlLmF0dHJpYnV0ZXMoKSk7CisgICAgdGhpc09iai5wdXREaXJlY3ROb25JbmRleEFjY2Vzc29y
KHZtLCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVl
LmF0dHJpYnV0ZXMoKSkpOwogfQogCiBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogdGhpc09i
aiwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCBjYjc1ODE2NDYyNWM5NmQyMWZkOThm
YjliZTJhMGU5ZDYyNmVhODJlLi4zMDRiMTdkZDA1YTg4ZTEyMzQ3M2U3MGUwM2I0NWE2ODgxYWVm
MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtNzgsNiArNzgs
OCBAQCBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewogCiAgICAgTmF0aXZlRnVuY3Rpb24gYWNjZXNz
b3JHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7IHJldHVy
biByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTEpOyB9CiAg
ICAgTmF0aXZlRnVuY3Rpb24gYWNjZXNzb3JTZXR0ZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJp
YnV0ZXMgJiBBY2Nlc3Nvcik7IHJldHVybiByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0aW9u
PihtX3ZhbHVlcy52YWx1ZTIpOyB9CisgICAgQnVpbHRpbkdlbmVyYXRvciBidWlsdGluQWNjZXNz
b3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nv
ciAmJiBtX2F0dHJpYnV0ZXMgJiBCdWlsdGluKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8QnVp
bHRpbkdlbmVyYXRvcj4obV92YWx1ZXMudmFsdWUxKTsgfQorICAgIEJ1aWx0aW5HZW5lcmF0b3Ig
YnVpbHRpbkFjY2Vzc29yU2V0dGVyR2VuZXJhdG9yKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1
dGVzICYgQWNjZXNzb3IgJiYgbV9hdHRyaWJ1dGVzICYgQnVpbHRpbik7IHJldHVybiByZWludGVy
cHJldF9jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KG1fdmFsdWVzLnZhbHVlMik7IH0KIAogICAgIGxv
bmcgbG9uZyBjb25zdGFudEludGVnZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBD
b25zdGFudEludGVnZXIpOyByZXR1cm4gbV92YWx1ZXMuY29uc3RhbnQ7IH0KIApAQCAtMjkyLDcg
KzI5NCwxMCBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnRpZXMoVk0mIHZtLCBjb25z
dCBIYXNoVGFibGVWYWx1ZSAoJnZhbHVlcylbbnVtYmVyTwogCiAgICAgICAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPih2YWx1ZS5tX2tleSksIHN0cmxlbih2YWx1ZS5tX2tleSkpOwogICAg
ICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQnVpbHRpbikgewotICAgICAgICAgICAgdGhp
c09iai5wdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIHRoaXNPYmouZ2xvYmFsT2JqZWN0KCks
IHByb3BlcnR5TmFtZSwgdmFsdWUuYnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgYXR0cmlidXRlc0Zv
clN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5h
dHRyaWJ1dGVzKCkgJiBBY2Nlc3NvcikKKyAgICAgICAgICAgICAgICByZWlmeVN0YXRpY0FjY2Vz
c29yKHZtLCB2YWx1ZSwgdGhpc09iaiwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhp
c09iai5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZS5idWlsdGluR2VuZXJhdG9y
KCkodm0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggMjUxY2Ri
ODJkMjNiNzFlOTUzZDAwOGVkZjJiOWRhZGE2OWYyNDJlZS4uMjZhNjczOTg5NmY1M2U3Yjc2NGRj
MDZjOTJhMmY4MjQ1MWNhOTgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0yNzEsNiArMjcxLDEwIEBA
IHN1YiBTa2lwQXR0cmlidXRlIHsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCisgICAgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9
KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwogICAgIHJldHVybiAwOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IDliYzBlZTU0NWQxNzA3N2U5MDFiNmUxYjBjNzUxOTI5MmY5MzhmNWMuLjAyYjU4ODQyMzk3
OWNkMTdmZTllY2I2NWNlYTQ1NzRmNTU4MjYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC01MzMsNiArNTMzLDkgQEAg
c3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMp
IHsKICAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZSk7CiAgICAgfQorICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1cm4gR2V0
SlNCdWlsdGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSk7CisgICAgfQogICAgIHJldHVybiAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIg
OiAiIik7CiB9CiAKQEAgLTU0Miw2ICs1NDUsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFt
ZQogICAgIGlmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgewogICAgICAgICByZXR1cm4gInNldCIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUp
OwogICAgIH0KKyAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkpOworICAgIH0KICAgICByZXR1cm4gInNldEpTIiAuICRp
bnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lKSAuICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVj
dG9yJC8gPyAiQ29uc3RydWN0b3IiIDogIiIpOwogfQogCkBAIC0xMzUyLDcgKzEzNTgsOCBAQCBz
dWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlCiAKICAgICAgICAgcHVzaChAc3BlY2lhbHMs
ICJEb250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOb3RFbnVtZXJhYmxlIn0gfHwgJGlzX2dsb2JhbF9jb25zdHJ1Y3Rvcik7CiAgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOwot
ICAgICAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc19nbG9i
YWxfY29uc3RydWN0b3I7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3Ii
KSB1bmxlc3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3RvciBvciAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKKyAgICAgICAgcHVzaChAc3BlY2lh
bHMsICJBY2Nlc3NvciB8IEJ1aWx0aW4iKSBpZiAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CiAgICAgICAgIG15ICRzcGVjaWFsID0gKEBz
cGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKICAgICAgICAgcHVz
aChAJGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCkBAIC0xNzk2LDcgKzE4MDMsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAgfHwgTmVl
ZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiLy8gQXR0cmlidXRlc1xuXG4iKTsKICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmli
dXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICBuZXh0IGlmICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJl
SW5IZWFkZXIifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9IG9yICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogCiAgICAg
ICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKQEAgLTIyMjksNiArMjIzNiw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgJG51bUF0dHJpYnV0ZXMgPSAkbnVtQXR0cmlidXRlcyArIDEgaWYgTmVlZHNDb25z
dHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpOwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAp
IHsKICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0
ZXN9KSB7CisgICAgICAgICAgICBuZXh0IGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OworCiAgICAgICAgICAgICBteSAkbmFtZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15ICR0eXBlID0gJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlOwogICAgICAgICAgICAgIyBOdWxsYWJsZSB3cmFwcGVyIHR5
cGVzIGRvIG5vdCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nIGFzIHRoZSBpbXBsZW1lbnRhdGlv
biBjYW4gcmV0dXJuIGEgbnVsbCBwb2ludGVyLgpAQCAtMjU3Myw2ICsyNTgyLDggQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50
ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewogICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0
ZSkpIHsKKyAgICAgICAgICAgIG5leHQgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CisKICAgICAgICAgICAgIG15ICRuYW1lID0gJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGU7CiAgICAgICAgICAgICBteSAkcHV0RnVuY3Rpb25OYW1lID0g
R2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGF0dHJp
YnV0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IGU2NmQ4YThlZGM2MDQ3ODAzNWJiNTExM2I4Zjc2MjAzNDRl
YWFjZmIuLmE4N2Q3NzJjNDg3NmY3YjlkNDQ2YTBhZTY2OTIzM2JmYTA5Y2VmNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCkBAIC01MzgsNiArNTM4LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bikgfSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgQ3VzdG9tQWNj
ZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSB9LAogICAgIHsgInN0cmlj
dFR5cGVDaGVja2luZ0F0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmljdFR5cGVDaGVja2lu
Z0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgImpzQnVpbHRpbkF0dHJpYnV0ZSIsIEFjY2Vzc29yIHwg
QnVpbHRpbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5l
cmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5BdHRyaWJ1dGVDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90
KSAoc2V0VGVzdE9iakpzQnVpbHRpbkF0dHJpYnV0ZUNvZGVHZW5lcmF0b3IpIH0gfSwKKyAgICB7
ICJqc0J1aWx0aW5SZWFkT25seUF0dHJpYnV0ZSIsIFJlYWRPbmx5IHwgQWNjZXNzb3IgfCBCdWls
dGluLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRv
cj4odGVzdE9iakpzQnVpbHRpblJlYWRPbmx5QXR0cmlidXRlQ29kZUdlbmVyYXRvciksIChpbnRw
dHJfdCkgKDApIH0gfSwKICAgICB7ICJvbmZvbyIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iak9uZm9vKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqT25mb28pIH0gfSwKICAgICB7ICJ3aXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUpIH0gfSwK
ICAgICB7ICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIsIEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUp
IH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmouaAppbmRleCA5NzZlMGEyZTQyN2I2ZGNkYTYyNWE5ZThmOThlMmQ5OWI4
ZDE3NGJkLi5mN2I3NjQwODBkYTQyNzU2NGRkYzg2M2M1OWI2YzdkZWZlMThmNjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oCkBAIC05MCw2ICs5MCw4IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVz
dE9iaiA6IERPTU9iamVjdAogQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3RyaW5nQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb247CiBAcHJvcGVydHkgKHN0cm9uZykgRE9NVGVzdE9iaiAqc3RyaWN0
VHlwZUNoZWNraW5nQXR0cmlidXRlOwogQHByb3BlcnR5IGludCBjdXN0b21BdHRyOworQHByb3Bl
cnR5IChzdHJvbmcpIERPTVRlc3RPYmogKmpzQnVpbHRpbkF0dHJpYnV0ZTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIHN0cm9uZykgRE9NVGVzdE9iaiAqanNCdWlsdGluUmVhZE9ubHlBdHRyaWJ1dGU7
CiBAcHJvcGVydHkgaW50IHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZTsKIEBwcm9wZXJ0eSBpbnQg
d2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGU7CiBAcHJvcGVydHkgKHN0cm9u
ZykgRE9NVGVzdE9iaiAqd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbQppbmRleCAxNmRmMmVhYjM1MjczYWM3YWEwYWY5ZWJlYzMyZWYyMjZlYjM3OTU4Li41
ZWRjNTlkNzNjOGIxY2RmMTFjODQ2OWZhODFlMmFjYTQyMmY2MGYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0K
QEAgLTQ1MCw2ICs0NTAsMjYgQEAgLSAodm9pZClzZXRDdXN0b21BdHRyOihpbnQpbmV3Q3VzdG9t
QXR0cgogICAgIElNUEwtPnNldEN1c3RvbUF0dHIobmV3Q3VzdG9tQXR0cik7CiB9CiAKKy0gKERP
TVRlc3RPYmogKilqc0J1aWx0aW5BdHRyaWJ1dGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5qc0J1
aWx0aW5BdHRyaWJ1dGUoKSkpOworfQorCistICh2b2lkKXNldEpzQnVpbHRpbkF0dHJpYnV0ZToo
RE9NVGVzdE9iaiAqKW5ld0pzQnVpbHRpbkF0dHJpYnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBBU1NFUlQobmV3SnNCdWlsdGluQXR0cmlidXRl
KTsKKworICAgIElNUEwtPnNldEpzQnVpbHRpbkF0dHJpYnV0ZShjb3JlKG5ld0pzQnVpbHRpbkF0
dHJpYnV0ZSkpOworfQorCistIChET01UZXN0T2JqICopanNCdWlsdGluUmVhZE9ubHlBdHRyaWJ1
dGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5qc0J1aWx0aW5SZWFkT25seUF0dHJpYnV0ZSgpKSk7
Cit9CisKIC0gKGludCl3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUKIHsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYmQ2MmU5Y2EyMmI2MDUxOWQxNTAyYTU3
ZTdjZTVkOWEwMzk2ZTQyNi4uZmRiNjQ5NjAyMTE4N2VhMzkyOTE3Mjk1YTFhMzdiNzgwZGVmMDg2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbApAQCAtMTIwLDYgKzEyMCw4IEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZh
bHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKICAgICAvLyAnSlNC
dWlsdGluJyBleHRlbmRlZCBhdHRyaWJ1dGUKICAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRp
bk1ldGhvZCgpOwogICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9kV2l0aEFyZ3Mo
bG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisgICAgW0pT
QnVpbHRpbl0gYXR0cmlidXRlIFRlc3RPYmoganNCdWlsdGluQXR0cmlidXRlOworICAgIFtKU0J1
aWx0aW5dIHJlYWRvbmx5IGF0dHJpYnV0ZSBUZXN0T2JqIGpzQnVpbHRpblJlYWRPbmx5QXR0cmli
dXRlOwogCiAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIHZvaWQg
cmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262046</attachid>
            <date>2015-09-29 00:13:27 -0700</date>
            <delta_ts>2015-09-29 01:01:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-149554-20150929041303.patch</filename>
            <type>text/plain</type>
            <size>15596</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MjQzMTJhNmQ4YTliNGUzNGQ3ZWFlMWU3OWVkYzY0MTA2Y2ZiYjdlLi41MzE2NTE2MmUzYTkzZjA1
ZTRkZmE4MTQ0MjhmN2QxZmRjMWZhOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBXZWJJREwgSlNCdWlsdGluIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICog
cnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY0FjY2Vzc29yKTog
QWRkaW5nIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGF0dHJpYnV0ZSBnZXR0ZXIgZnJvbSBKUyBidWls
dGluIGZ1bmN0aW9ucy4KKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlND
OjpIYXNoVGFibGVWYWx1ZTo6YnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6SGFzaFRhYmxlVmFsdWU6OmJ1aWx0aW5BY2Nlc3NvclNldHRlckdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydGllcyk6IEVuc3VyaW5nIHRoYXQgYnVp
bHRpbiBhdHRyaWJ1dGVzIGFyZSBub3QgdHJlYXRlZCBhcyBCdWlsdGluIGZ1bmN0aW9ucy4KKwog
MjAxNS0wOS0yOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSB1bnVzZWQgcGFyc2VNZW1vcnlBbW91bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YWU0OTE5
MWRmOTk1YmQxZjdjODRjMDJhOTNlZjA0ZmY0OTZlOTdmLi42YjY2NTY2M2Y2MGUzZDNlM2Y5MDI3
NWI0NDlkZmE1MzkxOGEwYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDkt
MjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgV2ViSURMIEpTQnVpbHRpbiBhdHRyaWJ1dGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk1NTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBDb3ZlcmVkIGJ5IGJpbmRpbmdzIHRl
c3RzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bToKKyAgICAgICAgKFNraXBBdHRyaWJ1dGUpOiBEaXNhYmxlZCBHT2JqZWN0IGJpbmRpbmcgZ2Vu
ZXJhdGlvbiBvZiBKU0J1aWx0aW4gYXR0cmlidXRlLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0QXR0cmlidXRlR2V0dGVyTmFtZSk6
IEhhbmRsaW5nIG9mIEJ1aWx0aW4gZnVuY3Rpb24gdG8gcmV0cmlldmUgQnVpbHRpbkdlbmVyYXRv
ci4KKyAgICAgICAgKEdldEF0dHJpYnV0ZVNldHRlck5hbWUpOiBEaXR0by4KKyAgICAgICAgKEdl
bmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSk6IFNldCBKU0J1aWx0aW4gYXR0cmlidXRlcyBhcyAi
QWNjZXNzb3IgfCBCdWlsdGluIi4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBT
a2lwIGltcGxlbWVudGF0aW9uIGZvciBKU0J1aWx0aW4gYXR0cmlidXRlcworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBBZGRpbmcgYmluZGluZyB0ZXN0
IGZvciBKU0J1aWx0aW4gYXR0cmlidXRlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBqc0J1aWx0aW5BdHRyaWJ1
dGVdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRKc0J1aWx0aW5BdHRyaWJ1dGU6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmoganNCdWlsdGluUmVhZE9ubHlBdHRyaWJ1dGVdKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IERpdHRvLgorCiAyMDE1LTA5
LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5d
IEZpeCBidWlsZCBhZnRlciByMTkwMjk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTG9va3VwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xv
b2t1cC5jcHAKaW5kZXggNTAyNDc2MTlmOGJkMzMxYTI0M2U0NDQ1MTI5ZjZjYjZlZTBjNDM2ZS4u
YmY4ODQ0YjJjMjdkYzdmYjM4ZDJkOWZmOWRjOTQ5NWM1NzJhYTNhZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCkBAIC0zNSw5ICszNSwxMSBAQCB2b2lkIHJlaWZ5
U3RhdGljQWNjZXNzb3IoVk0mIHZtLCBjb25zdCBIYXNoVGFibGVWYWx1ZSYgdmFsdWUsIEpTT2Jq
ZWN0JiB0aGlzT2JqLAogICAgICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gZ2V0dGVyTmFtZSA9IFdU
Rjo6dHJ5TWFrZVN0cmluZyhBU0NJSUxpdGVyYWwoImdldCAiKSwgU3RyaW5nKCpwcm9wZXJ0eU5h
bWUucHVibGljTmFtZSgpKSk7CiAgICAgICAgIGlmICghZ2V0dGVyTmFtZSkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZ2xvYmFsT2JqZWN0LCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMCwgKmdldHRlck5hbWUsIHZhbHVl
LmFjY2Vzc29yR2V0dGVyKCkpKTsKKyAgICAgICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZ2xv
YmFsT2JqZWN0LCB2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBCdWlsdGluCisgICAgICAgICAgICA/IEpT
RnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgdmFsdWUuYnVpbHRpbkFjY2Vzc29y
R2V0dGVyR2VuZXJhdG9yKCkodm0pLCBnbG9iYWxPYmplY3QsICpnZXR0ZXJOYW1lKQorICAgICAg
ICAgICAgOiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMCwgKmdldHRlck5h
bWUsIHZhbHVlLmFjY2Vzc29yR2V0dGVyKCkpKTsKICAgICB9Ci0gICAgdGhpc09iai5wdXREaXJl
Y3ROb25JbmRleEFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCB2YWx1ZS5hdHRy
aWJ1dGVzKCkpOworICAgIHRoaXNPYmoucHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgcHJv
cGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1
dGVzKCkpKTsKIH0KIAogYm9vbCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBlbnRyeSwgSlNPYmplY3QqIHRoaXNPYmosIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggY2I3NTgxNjQ2MjVjOTZkMjFmZDk4ZmI5YmUyYTBl
OWQ2MjZlYTgyZS4uM2ExMWNhY2QxYmQ3YTZhNmMzNGQxODNmMTk4ZjY0ZDFkNmJhODFmYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTc4LDYgKzc4LDggQEAgc3Ry
dWN0IEhhc2hUYWJsZVZhbHVlIHsKIAogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yR2V0dGVy
KCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUxKTsgfQogICAgIE5hdGl2
ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYg
QWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1
ZXMudmFsdWUyKTsgfQorICAgIEJ1aWx0aW5HZW5lcmF0b3IgYnVpbHRpbkFjY2Vzc29yR2V0dGVy
R2VuZXJhdG9yKCkgY29uc3Q7CisgICAgQnVpbHRpbkdlbmVyYXRvciBidWlsdGluQWNjZXNzb3JT
ZXR0ZXJHZW5lcmF0b3IoKSBjb25zdDsKIAogICAgIGxvbmcgbG9uZyBjb25zdGFudEludGVnZXIo
KSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBDb25zdGFudEludGVnZXIpOyByZXR1cm4g
bV92YWx1ZXMuY29uc3RhbnQ7IH0KIApAQCAtMTgzLDYgKzE4NSwyMCBAQCBzdHJ1Y3QgSGFzaFRh
YmxlIHsKIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSGFzaFRhYmxlVmFsdWUqLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlT
dGF0aWNBY2Nlc3NvcihWTSYsIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiwgSlNPYmplY3QmIHRoaXNP
YmplY3QsIFByb3BlcnR5TmFtZSk7CiAKK2lubGluZSBCdWlsdGluR2VuZXJhdG9yIEhhc2hUYWJs
ZVZhbHVlOjpidWlsdGluQWNjZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdAoreworICAgIEFT
U0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7CisgICAgQVNTRVJUKG1fYXR0cmlidXRlcyAm
IEJ1aWx0aW4pOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
KG1fdmFsdWVzLnZhbHVlMSk7Cit9CisKK2lubGluZSBCdWlsdGluR2VuZXJhdG9yIEhhc2hUYWJs
ZVZhbHVlOjpidWlsdGluQWNjZXNzb3JTZXR0ZXJHZW5lcmF0b3IoKSBjb25zdAoreworICAgIEFT
U0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7CisgICAgQVNTRVJUKG1fYXR0cmlidXRlcyAm
IEJ1aWx0aW4pOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
KG1fdmFsdWVzLnZhbHVlMik7Cit9CisKIC8qKgogICogVGhpcyBtZXRob2QgZG9lcyBpdCBhbGwg
KGxvb2tpbmcgaW4gdGhlIGhhc2h0YWJsZSwgY2hlY2tpbmcgZm9yIGZ1bmN0aW9uCiAgKiBvdmVy
cmlkZXMsIGNyZWF0aW5nIHRoZSBmdW5jdGlvbiBvciByZXRyaWV2aW5nIGZyb20gY2FjaGUsIGNh
bGxpbmcKQEAgLTI5Miw3ICszMDgsMTAgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9wZXJ0
aWVzKFZNJiB2bSwgY29uc3QgSGFzaFRhYmxlVmFsdWUgKCZ2YWx1ZXMpW251bWJlck8KIAogICAg
ICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4odmFsdWUubV9rZXkpLCBzdHJsZW4odmFs
dWUubV9rZXkpKTsKICAgICAgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIEJ1aWx0aW4pIHsK
LSAgICAgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCB0aGlzT2Jq
Lmdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLmJ1aWx0aW5HZW5lcmF0b3IoKSh2
bSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAgICAg
ICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQWNjZXNzb3IpCisgICAgICAgICAgICAgICAg
cmVpZnlTdGF0aWNBY2Nlc3Nvcih2bSwgdmFsdWUsIHRoaXNPYmosIHByb3BlcnR5TmFtZSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3RCdWlsdGlu
RnVuY3Rpb24odm0sIHRoaXNPYmouZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgdmFsdWUu
YnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRy
aWJ1dGVzKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtCmluZGV4IDI1MWNkYjgyZDIzYjcxZTk1M2QwMDhlZGYyYjlkYWRhNjlmMjQyZWUuLjI2YTY3
Mzk4OTZmNTNlN2I3NjRkYzA2YzkyYTJmODI0NTFjYTk4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAt
MjcxLDYgKzI3MSwxMCBAQCBzdWIgU2tpcEF0dHJpYnV0ZSB7CiAgICAgICAgIHJldHVybiAxOwog
ICAgIH0KIAorICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKICAgICByZXR1
cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA1OTgxNjU3MTRkMThiOTNmNWExNGNjY2ZiZDA5YjhiMDQ4YzRi
MzQ3Li4xMTc2ZGU4NGVhYjExNTcxMjRkNDQ4M2RmMjFjN2ExYjc1MWU4ZmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
NTMzLDYgKzUzMyw5IEBAIHN1YiBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lCiAgICAgaWYgKCRhdHRy
aWJ1dGUtPmlzU3RhdGljKSB7CiAgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOwogICAgIH0KKyAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAg
ICAgICAgcmV0dXJuIEdldEpTQnVpbHRpbkZ1bmN0aW9uTmFtZSgkY2xhc3NOYW1lLCAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPm5hbWUpOworICAgIH0KICAgICByZXR1cm4gImpzIiAuICRpbnRlcmZh
Y2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5uYW1lKSAuICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8g
PyAiQ29uc3RydWN0b3IiIDogIiIpOwogfQogCkBAIC01NDIsNiArNTQ1LDkgQEAgc3ViIEdldEF0
dHJpYnV0ZVNldHRlck5hbWUKICAgICBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKICAgICAg
ICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkg
LiAiQ29uc3RydWN0b3IiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5uYW1lKTsKICAgICB9CisgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHJldHVybiAic2V0
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KEdldEpTQnVpbHRpbkZ1bmN0aW9uTmFtZSgk
Y2xhc3NOYW1lLCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKKyAgICB9CiAgICAgcmV0
dXJuICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50
eXBlID1+IC9Db25zdHJ1Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKIH0KIApAQCAtMTM1
Miw3ICsxMzU4LDggQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZQogCiAgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9IHx8ICRpc19nbG9iYWxfY29uc3Ry
dWN0b3IpOwogICAgICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFkb25s
eSgkYXR0cmlidXRlKTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJDdXN0b21BY2Nlc3NvciIp
IHVubGVzcyAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yOworICAgICAgICBwdXNoKEBzcGVjaWFscywg
IkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc19nbG9iYWxfY29uc3RydWN0b3Igb3IgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CisgICAg
ICAgIHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogICAgICAgICBt
eSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAi
MCI7CiAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIApAQCAtMTc5Nyw2
ICsxODA0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIvLyBBdHRyaWJ1dGVzXG5cbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgIG5leHQgaWYg
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xh
cmVJbkhlYWRlciJ9OworICAgICAgICAgICAgbmV4dCBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKIAogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBA
IC0yMjI5LDYgKzIyMzcsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICRudW1B
dHRyaWJ1dGVzID0gJG51bUF0dHJpYnV0ZXMgKyAxIGlmIE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0
eSgkaW50ZXJmYWNlKTsKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIGZv
cmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAg
ICAgICAgbmV4dCBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0J1aWx0aW4ifTsKKwogICAgICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CiAgICAgICAgICAgICBteSAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKICAgICAgICAgICAgICMgTnVsbGFibGUgd3JhcHBlciB0eXBlcyBkbyBub3QgbmVl
ZCBhbnkgc3BlY2lhbCBoYW5kbGluZyBhcyB0aGUgaW1wbGVtZW50YXRpb24gY2FuIHJldHVybiBh
IG51bGwgcG9pbnRlci4KQEAgLTI1NzMsNiArMjU4Myw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmli
dXRlc30pIHsKICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAg
ICAgICBuZXh0IGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQnVpbHRpbiJ9OworCiAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15ICR0eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlOwogICAgICAgICAgICAgbXkgJHB1dEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZVNl
dHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAppbmRleCBlNjZkOGE4ZWRjNjA0NzgwMzViYjUxMTNiOGY3NjIwMzQ0ZWFhY2ZiLi5hODdkNzcy
YzQ4NzZmN2I5ZDQ0NmEwYWU2NjkyMzNiZmEwOWNlZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNTM4LDYg
KzUzOCw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KICAgICB7ICJzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pIH0gfSwKICAgICB7
ICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5n
QXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pIH0gfSwKICAgICB7ICJzdHJpY3RUeXBlQ2hlY2tpbmdB
dHRyaWJ1dGUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hl
Y2tpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUpIH0g
fSwKKyAgICB7ICJqc0J1aWx0aW5BdHRyaWJ1dGUiLCBBY2Nlc3NvciB8IEJ1aWx0aW4sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPih0ZXN0T2Jq
SnNCdWlsdGluQXR0cmlidXRlQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKHNldFRlc3RPYmpK
c0J1aWx0aW5BdHRyaWJ1dGVDb2RlR2VuZXJhdG9yKSB9IH0sCisgICAgeyAianNCdWlsdGluUmVh
ZE9ubHlBdHRyaWJ1dGUiLCBSZWFkT25seSB8IEFjY2Vzc29yIHwgQnVpbHRpbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1
aWx0aW5SZWFkT25seUF0dHJpYnV0ZUNvZGVHZW5lcmF0b3IpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiAgICAgeyAib25mb28iLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpPbmZvbyks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9iak9uZm9vKSB9IH0sCiAgICAgeyAid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlIiwg
Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKSB9IH0sCiAgICAgeyAid2l0aENh
bGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKSB9IH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKaW5kZXggOTc2ZTBhMmU0MjdiNmRjZGE2MjVhOWU4Zjk4ZTJkOTliOGQxNzRiZC4uZjdiNzY0
MDgwZGE0Mjc1NjRkZGM4NjNjNTliNmM3ZGVmZTE4ZjY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtOTAs
NiArOTAsOCBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmpl
Y3QKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmogKnN0cmljdFR5cGVDaGVja2luZ0F0
dHJpYnV0ZTsKIEBwcm9wZXJ0eSBpbnQgY3VzdG9tQXR0cjsKK0Bwcm9wZXJ0eSAoc3Ryb25nKSBE
T01UZXN0T2JqICpqc0J1aWx0aW5BdHRyaWJ1dGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJv
bmcpIERPTVRlc3RPYmogKmpzQnVpbHRpblJlYWRPbmx5QXR0cmlidXRlOwogQHByb3BlcnR5IGlu
dCB3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGU7CiBAcHJvcGVydHkgaW50IHdpdGhDYWxsV2l0aEFu
ZFNldHRlckNhbGxXaXRoQXR0cmlidXRlOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmog
KndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXgg
MTZkZjJlYWIzNTI3M2FjN2FhMGFmOWViZWMzMmVmMjI2ZWIzNzk1OC4uNWVkYzU5ZDczYzhiMWNk
ZjExYzg0NjlmYTgxZTJhY2E0MjJmNjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC00NTAsNiArNDUw
LDI2IEBACiAgICAgSU1QTC0+c2V0Q3VzdG9tQXR0cihuZXdDdXN0b21BdHRyKTsKIH0KIAorLSAo
RE9NVGVzdE9iaiAqKWpzQnVpbHRpbkF0dHJpYnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmpz
QnVpbHRpbkF0dHJpYnV0ZSgpKSk7Cit9CisKKy0gKHZvaWQpc2V0SnNCdWlsdGluQXR0cmlidXRl
OihET01UZXN0T2JqICopbmV3SnNCdWlsdGluQXR0cmlidXRlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIEFTU0VSVChuZXdKc0J1aWx0aW5BdHRyaWJ1
dGUpOworCisgICAgSU1QTC0+c2V0SnNCdWlsdGluQXR0cmlidXRlKGNvcmUobmV3SnNCdWlsdGlu
QXR0cmlidXRlKSk7Cit9CisKKy0gKERPTVRlc3RPYmogKilqc0J1aWx0aW5SZWFkT25seUF0dHJp
YnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmpzQnVpbHRpblJlYWRPbmx5QXR0cmlidXRlKCkp
KTsKK30KKwogLSAoaW50KXdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZQogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBiZDYyZTljYTIyYjYwNTE5ZDE1MDJh
NTdlN2NlNWQ5YTAzOTZlNDI2Li5mZGI2NDk2MDIxMTg3ZWEzOTI5MTcyOTVhMWEzN2I3ODBkZWYw
ODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCkBAIC0xMjAsNiArMTIwLDggQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFs
VmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIC8vICdK
U0J1aWx0aW4nIGV4dGVuZGVkIGF0dHJpYnV0ZQogICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWls
dGluTWV0aG9kKCk7CiAgICAgW0pTQnVpbHRpbl0gdm9pZCBqc0J1aWx0aW5NZXRob2RXaXRoQXJn
cyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJnKTsKKyAgICBb
SlNCdWlsdGluXSBhdHRyaWJ1dGUgVGVzdE9iaiBqc0J1aWx0aW5BdHRyaWJ1dGU7CisgICAgW0pT
QnVpbHRpbl0gcmVhZG9ubHkgYXR0cmlidXRlIFRlc3RPYmoganNCdWlsdGluUmVhZE9ubHlBdHRy
aWJ1dGU7CiAKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50
TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9p
ZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>