<?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>49222</bug_id>
          
          <creation_ts>2010-11-08 16:27:56 -0800</creation_ts>
          <short_desc>Expose WKContextMenuItem API object</short_desc>
          <delta_ts>2010-12-14 01:44:13 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306450</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-11-08 16:27:56 -0800</bug_when>
    <thetext>We should expose a WKContextMenuItem API object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306456</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-11-08 16:36:33 -0800</bug_when>
    <thetext>Since these items will both need to cross over IPC, we can&apos;t have WebContextMenuItem represent the APIObject as-is (due to inheriting from Noncopyable).

We&apos;ll have to do the WebType + WebTypeData trick.  A rename patch coming up...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306457</commentid>
    <comment_count>2</comment_count>
      <attachid>73305</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-11-08 16:39:05 -0800</bug_when>
    <thetext>Created attachment 73305
WebContextMenuItem -&gt; WebContextMenuItemData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306459</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-11-08 16:42:56 -0800</bug_when>
    <thetext>Landed in r71585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321809</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-14 01:44:13 -0800</bug_when>
    <thetext>webkit-patch land ftw. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73305</attachid>
            <date>2010-11-08 16:39:05 -0800</date>
            <delta_ts>2010-11-08 16:39:42 -0800</delta_ts>
            <desc>WebContextMenuItem -&gt; WebContextMenuItemData</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>39929</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTU4NCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMTAtMTEtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBh
cnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjIyCisgICAg
ICAgIFJlbmFtZSAiV2ViQ29udGV4dE1lbnVJdGVtIiB0byAiV2ViQ29udGV4dE1lbnVJdGVtRGF0
YSIKKworICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmg6IFJlbW92ZWQuCisgICAgICAgICogU2hhcmVkL1dl
YkNvbnRleHRNZW51SXRlbURhdGEuY3BwOiBDb3BpZWQgZnJvbSBTaGFyZWQvV2ViQ29udGV4dE1l
bnVJdGVtLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRl
bURhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6
OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmtpdEl0ZW1zKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oOiBDb3BpZWQgZnJvbSBTaGFyZWQvV2ViQ29udGV4dE1l
bnVJdGVtLmguCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OnN1Ym1l
bnUpOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDoKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNob3dDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAo
LVtXZWJNZW51VGFyZ2V0IGZvcndhcmRDb250ZXh0TWVudUFjdGlvbjpdKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgor
ICAgICAgICAoV2ViS2l0Ojpuc01lbnVJdGVtVmVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1lbnUpOgorCisgICAgICAgICogVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHRNZW51UHJveHlRdDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
V2ViQ29udGV4dE1lbnVQcm94eVF0Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkNv
bnRleHRNZW51UHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVBy
b3h5V2luOjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViQ29u
dGV4dE1lbnVQcm94eVdpbi5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNv
bnRleHRNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnU6Oml0ZW1TZWxl
Y3RlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51Lmg6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTAtMTEtMDggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxp
dmFuIGFuZCBEYW4gQmVybnN0ZWluLgpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA3MTUyOCkKKysrIFdlYktpdDIv
V2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIyNCw3ICsyMjQsNyBAQCBIRUFERVJTICs9
IFwKICAgICBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRM
aW5rVGFibGUuaCBcCiAgICAgU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIFwKLSAgICBTaGFy
ZWQvV2ViQ29udGV4dE1lbnVJdGVtLmggXAorICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmggXAogICAgIFNoYXJlZC9XZWJFdmVudC5oIFwKICAgICBTaGFyZWQvV2ViRXJyb3IuaCBc
CiAgICAgU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5oIFwKQEAgLTM5Myw3ICszOTMsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBTaGFyZWQvcXQvV2ViVVJMUmVxdWVzdFF0LmNwcCBcCiAgICAgU2hh
cmVkL3F0L1dlYlVSTFJlc3BvbnNlUXQuY3BwIFwKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJs
ZS5jcHAgXAotICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwIFwKKyAgICBTaGFyZWQv
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgXAogICAgIFNoYXJlZC9XZWJFcnJvci5jcHAgXAog
ICAgIFNoYXJlZC9XZWJFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24u
Y3BwIFwKSW5kZXg6IFdlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNwcAkocmV2aXNpb24g
NzE1MjgpCisrKyBXZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldlYkNvbnRl
eHRNZW51SXRlbS5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJB
cmd1bWVudHMuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9Db250ZXh0TWVudS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQ29udGV4dE1l
bnVJdGVtOjpXZWJDb250ZXh0TWVudUl0ZW0oKQotICAgIDogbV90eXBlKFdlYkNvcmU6OkFjdGlv
blR5cGUpCi0gICAgLCBtX2FjdGlvbihXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlv
bikKLSAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgICwgbV9jaGVja2VkKGZhbHNlKQotewotfQot
Ci1XZWJDb250ZXh0TWVudUl0ZW06OldlYkNvbnRleHRNZW51SXRlbShXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UeXBlIHR5cGUsIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQpCi0gICAgOiBtX3R5
cGUodHlwZSkKLSAgICAsIG1fYWN0aW9uKGFjdGlvbikKLSAgICAsIG1fdGl0bGUodGl0bGUpCi0g
ICAgLCBtX2VuYWJsZWQoZW5hYmxlZCkKLSAgICAsIG1fY2hlY2tlZChjaGVja2VkKQotewotICAg
IEFTU0VSVCh0eXBlID09IFdlYkNvcmU6OkFjdGlvblR5cGUgfHwgdHlwZSA9PSBXZWJDb3JlOjpD
aGVja2FibGVBY3Rpb25UeXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6U2VwYXJhdG9yVHlwZSk7Ci19
Ci0KLVdlYkNvbnRleHRNZW51SXRlbTo6V2ViQ29udGV4dE1lbnVJdGVtKFdlYkNvcmU6OkNvbnRl
eHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBj
b25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiYgc3VibWVudSkKLSAgICA6IG1fdHlwZShX
ZWJDb3JlOjpTdWJtZW51VHlwZSkKLSAgICAsIG1fYWN0aW9uKGFjdGlvbikKLSAgICAsIG1fdGl0
bGUodGl0bGUpCi0gICAgLCBtX2VuYWJsZWQoZW5hYmxlZCkKLSAgICAsIG1fY2hlY2tlZChmYWxz
ZSkKLSAgICAsIG1fc3VibWVudShzdWJtZW51KQotewotfQotCi1XZWJDb250ZXh0TWVudUl0ZW06
OldlYkNvbnRleHRNZW51SXRlbShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGl0ZW0sIFdlYkNv
cmU6OkNvbnRleHRNZW51KiBtZW51KQotICAgIDogbV90eXBlKGl0ZW0udHlwZSgpKQotICAgICwg
bV9hY3Rpb24oaXRlbS5hY3Rpb24oKSkKLSAgICAsIG1fdGl0bGUoaXRlbS50aXRsZSgpKQotewot
ICAgIGlmIChtX3R5cGUgPT0gV2ViQ29yZTo6U3VibWVudVR5cGUpIHsKLSAgICAgICAgVmVjdG9y
PFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4gY29yZVN1Ym1lbnUgPSBXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1WZWN0b3IoaXRlbS5wbGF0Zm9ybVN1Yk1lbnUoKSk7Ci0gICAgICAgIG1fc3VibWVu
dSA9IGtpdEl0ZW1zKGNvcmVTdWJtZW51LCBtZW51KTsKLSAgICB9Ci0gICAgCi0gICAgbWVudS0+
Y2hlY2tPckVuYWJsZUlmTmVlZGVkKGl0ZW0pOwotICAgIAotICAgIG1fZW5hYmxlZCA9IGl0ZW0u
ZW5hYmxlZCgpOwotICAgIG1fY2hlY2tlZCA9IGl0ZW0uY2hlY2tlZCgpOwotfQotCi12b2lkIFdl
YkNvbnRleHRNZW51SXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKLXsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KG1fdHlwZSksIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2FjdGlvbiksIG1fdGl0
bGUsIG1fY2hlY2tlZCwgbV9lbmFibGVkLCBtX3N1Ym1lbnUpKTsKLX0KLQotYm9vbCBXZWJDb250
ZXh0TWVudUl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdl
YkNvbnRleHRNZW51SXRlbSYgaXRlbSkKLXsKLSAgICB1aW50MzJfdCB0eXBlOwotICAgIHVpbnQz
Ml90IGFjdGlvbjsKLSAgICBTdHJpbmcgdGl0bGU7Ci0gICAgYm9vbCBjaGVja2VkOwotICAgIGJv
b2wgZW5hYmxlZDsKLSAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiBzdWJtZW51OwotCi0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHR5cGUsIGFjdGlvbiwgdGl0bGUs
IGNoZWNrZWQsIGVuYWJsZWQsIHN1Ym1lbnUpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpBY3Rpb25UeXBlOgotICAgIGNh
c2UgV2ViQ29yZTo6U2VwYXJhdG9yVHlwZToKLSAgICBjYXNlIFdlYkNvcmU6OkNoZWNrYWJsZUFj
dGlvblR5cGU6Ci0gICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0ZW0oc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4odHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6
OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgIGl0
ZW0gPSBXZWJDb250ZXh0TWVudUl0ZW0oc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVB
Y3Rpb24+KGFjdGlvbiksIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbT4ga2l0SXRlbXMoVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4m
IGNvcmVJdGVtcywgV2ViQ29yZTo6Q29udGV4dE1lbnUqIG1lbnUpCi17Ci0gICAgVmVjdG9yPFdl
YkNvbnRleHRNZW51SXRlbT4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoY29y
ZUl0ZW1zLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvcmVJdGVtcy5z
aXplKCk7ICsraSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW0oY29y
ZUl0ZW1zW2ldLCBtZW51KSk7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uaAkocmV2
aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb250
ZXh0TWVudUl0ZW1faAotI2RlZmluZSBXZWJDb250ZXh0TWVudUl0ZW1faAotCi0jaW5jbHVkZSA8
V2ViQ29yZS9Db250ZXh0TWVudUl0ZW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAg
ICBjbGFzcyBBcmd1bWVudEVuY29kZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBj
bGFzcyBDb250ZXh0TWVudTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkNv
bnRleHRNZW51SXRlbSB7Ci1wdWJsaWM6Ci0gICAgV2ViQ29udGV4dE1lbnVJdGVtKCk7Ci0gICAg
V2ViQ29udGV4dE1lbnVJdGVtKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYsIFdlYkNvcmU6OkNv
bnRleHRNZW51KiBtZW51KTsKLSAgICBXZWJDb250ZXh0TWVudUl0ZW0oV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVHlwZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYg
dGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkKTsKLSAgICBXZWJDb250ZXh0TWVudUl0
ZW0oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wg
ZW5hYmxlZCwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4mIHN1Ym1lbnUpOwotCi0g
ICAgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9Ci0gICAgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY3Rpb247IH0KLSAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1
cm4gbV90aXRsZTsgfQotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxl
ZDsgfQotICAgIGJvb2wgY2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tlZDsgfQotICAg
IGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+JiBzdWJtZW51KCkgY29uc3QgeyByZXR1
cm4gbV9zdWJtZW51OyB9Ci0gICAgCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFdlYkNvbnRleHRNZW51SXRlbSYpOwotCi1wcml2YXRlOgotICAgIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVR5cGUgbV90eXBlOwotICAgIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0
aW9uIG1fYWN0aW9uOwotICAgIFN0cmluZyBtX3RpdGxlOwotICAgIGJvb2wgbV9lbmFibGVkOwot
ICAgIGJvb2wgbV9jaGVja2VkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+IG1fc3Vi
bWVudTsKLX07Ci0KLVZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+IGtpdEl0ZW1zKFZlY3RvcjxX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+JiwgV2ViQ29yZTo6Q29udGV4dE1lbnUqKTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJDb250ZXh0TWVudUl0ZW1faApJbmRl
eDogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNoYXJl
ZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAkocmV2aXNpb24gNzE1MjgpCShmcm9tIFNoYXJl
ZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwOjcxNTI4KQorKysgU2hhcmVkL1dlYkNvbnRleHRNZW51
SXRlbURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9XZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9XZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmNwcAkocmV2aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1NoYXJlZC9X
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgi
CiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgpA
QCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29udGV4dE1lbnVJ
dGVtOjpXZWJDb250ZXh0TWVudUl0ZW0oKQorV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YSgpCiAgICAgOiBtX3R5cGUoV2ViQ29yZTo6QWN0aW9uVHlwZSkKICAg
ICAsIG1fYWN0aW9uKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQogICAgICwg
bV9lbmFibGVkKHRydWUpCkBAIC00MCw3ICs0MCw3IEBAIFdlYkNvbnRleHRNZW51SXRlbTo6V2Vi
Q29udGV4dE1lbnVJdGVtKCkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVJdGVtOjpXZWJDb250ZXh0
TWVudUl0ZW0oV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBXZWJDb3JlOjpDb250
ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwg
Ym9vbCBjaGVja2VkKQorV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2ViQ29udGV4dE1lbnVJdGVt
RGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIFdlYkNvcmU6OkNvbnRleHRN
ZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29s
IGNoZWNrZWQpCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKICAg
ICAsIG1fdGl0bGUodGl0bGUpCkBAIC01MCw3ICs1MCw3IEBAIFdlYkNvbnRleHRNZW51SXRlbTo6
V2ViQ29udGV4dE1lbnVJdGVtKFcKICAgICBBU1NFUlQodHlwZSA9PSBXZWJDb3JlOjpBY3Rpb25U
eXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZSB8fCB0eXBlID09IFdl
YkNvcmU6OlNlcGFyYXRvclR5cGUpOwogfQogCi1XZWJDb250ZXh0TWVudUl0ZW06OldlYkNvbnRl
eHRNZW51SXRlbShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4m
IHN1Ym1lbnUpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRh
KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Ym9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHN1Ym1l
bnUpCiAgICAgOiBtX3R5cGUoV2ViQ29yZTo6U3VibWVudVR5cGUpCiAgICAgLCBtX2FjdGlvbihh
Y3Rpb24pCiAgICAgLCBtX3RpdGxlKHRpdGxlKQpAQCAtNjAsNyArNjAsNyBAQCBXZWJDb250ZXh0
TWVudUl0ZW06OldlYkNvbnRleHRNZW51SXRlbShXCiB7CiB9CiAKLVdlYkNvbnRleHRNZW51SXRl
bTo6V2ViQ29udGV4dE1lbnVJdGVtKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgaXRlbSwgV2Vi
Q29yZTo6Q29udGV4dE1lbnUqIG1lbnUpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgaXRlbSwgV2ViQ29yZTo6
Q29udGV4dE1lbnUqIG1lbnUpCiAgICAgOiBtX3R5cGUoaXRlbS50eXBlKCkpCiAgICAgLCBtX2Fj
dGlvbihpdGVtLmFjdGlvbigpKQogICAgICwgbV90aXRsZShpdGVtLnRpdGxlKCkpCkBAIC03Niwx
OSArNzYsMTkgQEAgV2ViQ29udGV4dE1lbnVJdGVtOjpXZWJDb250ZXh0TWVudUl0ZW0oVwogICAg
IG1fY2hlY2tlZCA9IGl0ZW0uY2hlY2tlZCgpOwogfQogCi12b2lkIFdlYkNvbnRleHRNZW51SXRl
bTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG1fdHlwZSksIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2FjdGlvbiks
IG1fdGl0bGUsIG1fY2hlY2tlZCwgbV9lbmFibGVkLCBtX3N1Ym1lbnUpKTsKIH0KIAotYm9vbCBX
ZWJDb250ZXh0TWVudUl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFdlYkNvbnRleHRNZW51SXRlbSYgaXRlbSkKK2Jvb2wgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICB1aW50MzJfdCB0eXBlOwogICAgIHVpbnQzMl90IGFj
dGlvbjsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgYm9vbCBjaGVja2VkOwogICAgIGJvb2wgZW5h
YmxlZDsKLSAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiBzdWJtZW51OworICAgIFZlY3Rv
cjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OwogCiAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoQ29yZUlQQzo6T3V0KHR5cGUsIGFjdGlvbiwgdGl0bGUsIGNoZWNrZWQsIGVuYWJsZWQs
IHN1Ym1lbnUpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTcsMTAgKzk3LDEwIEBAIGJv
b2wgV2ViQ29udGV4dE1lbnVJdGVtOjpkZWNvZGUoQ29yZUlQQzoKICAgICBjYXNlIFdlYkNvcmU6
OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNhc2Ug
V2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRleHRN
ZW51SXRlbShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlPih0eXBlKSwg
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KGFjdGlvbiksIHRpdGxlLCBl
bmFibGVkLCBjaGVja2VkKTsKKyAgICAgICAgaXRlbSA9IFdlYkNvbnRleHRNZW51SXRlbURhdGEo
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4odHlwZSksIHN0YXRpY19j
YXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0aXRsZSwgZW5hYmxlZCwg
Y2hlY2tlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6
Ci0gICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0ZW0oc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Q29udGV4dE1lbnVBY3Rpb24+KGFjdGlvbiksIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKKyAg
ICAgICAgaXRlbSA9IFdlYkNvbnRleHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Q29udGV4dE1lbnVBY3Rpb24+KGFjdGlvbiksIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xMTAsMTIgKzExMCwxMiBAQCBib29sIFdlYkNvbnRleHRNZW51SXRlbTo6ZGVjb2RlKENv
cmVJUEM6CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+
IGtpdEl0ZW1zKFZlY3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+JiBjb3JlSXRlbXMsIFdl
YkNvcmU6OkNvbnRleHRNZW51KiBtZW51KQorVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
IGtpdEl0ZW1zKFZlY3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+JiBjb3JlSXRlbXMsIFdl
YkNvcmU6OkNvbnRleHRNZW51KiBtZW51KQogewotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW0+IHJlc3VsdDsKKyAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gcmVzdWx0Owog
ICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoY29yZUl0ZW1zLnNpemUoKSk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNvcmVJdGVtcy5zaXplKCk7ICsraSkKLSAgICAgICAgcmVzdWx0
LmFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW0oY29yZUl0ZW1zW2ldLCBtZW51KSk7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoV2ViQ29udGV4dE1lbnVJdGVtRGF0YShjb3JlSXRlbXNbaV0sIG1lbnUp
KTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU2hhcmVkL1dlYkNvbnRleHRN
ZW51SXRlbURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5oCShyZXZpc2lvbiA3MTUyOCkJKGZyb20gU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5oOjcx
NTI4KQorKysgU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaAkod29ya2luZyBjb3B5KQpJ
bmRleDogV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaAkocmV2aXNpb24gNzE1
MjgpCisrKyBXZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDggKzIzLDggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIFdlYkNvbnRleHRNZW51SXRlbV9oCi0jZGVmaW5lIFdlYkNvbnRl
eHRNZW51SXRlbV9oCisjaWZuZGVmIFdlYkNvbnRleHRNZW51SXRlbURhdGFfaAorI2RlZmluZSBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MCwyMiArNDAsMjIg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
Q29udGV4dE1lbnVJdGVtIHsKK2NsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGEgewogcHVibGlj
OgotICAgIFdlYkNvbnRleHRNZW51SXRlbSgpOwotICAgIFdlYkNvbnRleHRNZW51SXRlbShXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW0mLCBXZWJDb3JlOjpDb250ZXh0TWVudSogbWVudSk7Ci0gICAg
V2ViQ29udGV4dE1lbnVJdGVtKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUsIFdlYkNvcmU6
OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJv
b2wgY2hlY2tlZCk7Ci0gICAgV2ViQ29udGV4dE1lbnVJdGVtKFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW0+JiBzdWJtZW51KTsKKyAgICBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
KCk7CisgICAgV2ViQ29udGV4dE1lbnVJdGVtRGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0m
LCBXZWJDb3JlOjpDb250ZXh0TWVudSogbWVudSk7CisgICAgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlLCBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
biwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQpOworICAg
IFdlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0
IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51
SXRlbURhdGE+JiBzdWJtZW51KTsKIAogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aW9uOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KICAgICBib29sIGVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7
IHJldHVybiBtX2NoZWNrZWQ7IH0KLSAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
PiYgc3VibWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VibWVudTsgfQorICAgIGNvbnN0IFZlY3Rv
cjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgc3VibWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vi
bWVudTsgfQogICAgIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBXZWJDb250ZXh0TWVudUl0ZW0mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwogCiBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUgbV90eXBlOwpAQCAtNjMsMTEgKzYzLDEx
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdGl0bGU7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAg
ICAgYm9vbCBtX2NoZWNrZWQ7Ci0gICAgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4gbV9zdWJt
ZW51OworICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBtX3N1Ym1lbnU7CiB9Owog
Ci1WZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiBraXRJdGVtcyhWZWN0b3I8V2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtPiYsIFdlYkNvcmU6OkNvbnRleHRNZW51Kik7CitWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4ga2l0SXRlbXMoVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4m
LCBXZWJDb3JlOjpDb250ZXh0TWVudSopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmIC8vIFdlYkNvbnRleHRNZW51SXRlbV9oCisjZW5kaWYgLy8gV2ViQ29udGV4dE1lbnVJdGVt
RGF0YV9oCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCShyZXZp
c2lvbiA3MTUyOCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkNvbnRleHRNZW51SXRlbTsKK2NsYXNzIFdl
YkNvbnRleHRNZW51SXRlbURhdGE7CiAKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHkgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJDb250ZXh0TWVudVByb3h5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViQ29udGV4dE1lbnVQcm94eSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0
TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVu
dUl0ZW0+JiBpdGVtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mIGl0ZW1zKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVDb250ZXh0TWVudSgpID0gMDsK
IAogcHJvdGVjdGVkOgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lv
biA3MTUyOCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMzUsNyArMTEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoaWRlUG9wdXBN
ZW51KCkKICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpzaG93Q29udGV4dE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwg
Y29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQordm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKQogewogICAgIGlm
IChtX2FjdGl2ZUNvbnRleHRNZW51KQogICAgICAgICBtX2FjdGl2ZUNvbnRleHRNZW51LT5oaWRl
Q29udGV4dE1lbnUoKTsKQEAgLTExNDUsNyArMTE0NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93Q29udGV4dE1lbnUoY29uc3QKICAgICBtX2FjdGl2ZUNvbnRleHRNZW51LT5zaG93Q29udGV4
dE1lbnUobWVudUxvY2F0aW9uLCBpdGVtcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW0mIGl0ZW0pCit2b2lk
IFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoaXRlbSksIG1fcGFnZUlEKTsK
IH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiA3MTUyOCkKKysrIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw3IEBACiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVt
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRmluZENsaWVudC5oIgogI2luY2x1ZGUgIldlYkZvcm1DbGll
bnQuaCIKQEAgLTIzNCw3ICsyMzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldFN0YXRpc3Rp
Y3MoV0tDb250ZXh0U3RhdGlzdGljcyopOwogCi0gICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW0mKTsKKyAgICB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKIAogcHJpdmF0ZToKICAg
ICBXZWJQYWdlUHJveHkoV2ViUGFnZU5hbWVzcGFjZSosIHVpbnQ2NF90IHBhZ2VJRCk7CkBAIC0z
MjcsNyArMzI3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhpZGVQb3B1cE1lbnUoKTsKIAogICAg
IC8vIENvbnRleHQgTWVudS4KLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+JiBpdGVtcyk7Cisg
ICAgdm9pZCBzaG93Q29udGV4dE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKTsKIAogICAgIHZvaWQgdGFrZUZv
Y3VzKGJvb2wgZGlyZWN0aW9uKTsKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJik7
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiA3MTUyOCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTIzLDcgKzEyMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgSGlkZVBvcHVwTWVudSgpCiAgICAgCiAgICAgIyBDb250ZXh0TWVudQotICAg
IFNob3dDb250ZXh0TWVudShXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgVmVjdG9yPFdlYktpdDo6
V2ViQ29udGV4dE1lbnVJdGVtPiBpdGVtcykKKyAgICBTaG93Q29udGV4dE1lbnUoV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE+IGl0
ZW1zKQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICMgQWNjZWxlcmF0
ZWQgY29tcHNpdGluZyBtZXNzYWdlcy4KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAkocmV2aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxNSArNDksMTUgQEAgcHVibGljOgogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1h
YygpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+Jik7CisgICAgdmlydHVh
bCB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZl
Y3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlQ29u
dGV4dE1lbnUoKTsKICAgICAKLSAgICB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0
IFdlYkNvbnRleHRNZW51SXRlbSYpOworICAgIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Y29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwogCiBwcml2YXRlOgogICAgIFdlYkNvbnRl
eHRNZW51UHJveHlNYWMoV0tWaWV3KiwgV2ViUGFnZVByb3h5Kik7CiAKLSAgICB2b2lkIHBvcHVs
YXRlKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+Jik7CisgICAgdm9pZCBwb3B1bGF0
ZShjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mKTsKIAogICAgIFJldGFpblB0
cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKICAgICBXS1ZpZXcqIG1fd2ViVmlldzsKSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1t
CShyZXZpc2lvbiA3MTUyOCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIgogCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIK
LSNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmgiCiAjaW5jbHVkZSAiV0tWaWV3LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFJlY3QuaD4KQEAgLTYzLDcgKzYzLDcgQEAgLSAodm9pZClzZXRNZW51UHJveHk6KFdlYktpdDo6
V2ViQ29udGV4dAogCiAtICh2b2lkKWZvcndhcmRDb250ZXh0TWVudUFjdGlvbjooaWQpc2VuZGVy
CiB7Ci0gICAgV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW0gaXRlbShBY3Rpb25UeXBlLCBzdGF0
aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbj4oW3NlbmRlciB0YWddKSwgW3NlbmRlciB0aXRsZV0s
IFtzZW5kZXIgaXNFbmFibGVkXSwgW3NlbmRlciBzdGF0ZV0gPT0gTlNPblN0YXRlKTsKKyAgICBX
ZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGEgaXRlbShBY3Rpb25UeXBlLCBzdGF0aWNfY2Fz
dDxDb250ZXh0TWVudUFjdGlvbj4oW3NlbmRlciB0YWddKSwgW3NlbmRlciB0aXRsZV0sIFtzZW5k
ZXIgaXNFbmFibGVkXSwgW3NlbmRlciBzdGF0ZV0gPT0gTlNPblN0YXRlKTsKICAgICBfbWVudVBy
b3h5LT5jb250ZXh0TWVudUl0ZW1TZWxlY3RlZChpdGVtKTsKIH0KIApAQCAtODMsNyArODMsNyBA
QCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjp+V2ViQ29udGV4dE1lbnVQCiAgICAgICAgIFttX3Bv
cHVwLmdldCgpIHNldENvbnRyb2xWaWV3Om5pbF07CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVt
JiBpdGVtKQordm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogewogICAgIG1fcGFnZS0+
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoaXRlbSk7CiB9CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRp
YyB2b2lkIHBvcHVsYXRlTlNNZW51KE5TTWVudSogbWVudSwKICAgICB9CiB9CiAKLXN0YXRpYyBW
ZWN0b3I8UmV0YWluUHRyPE5TTWVudUl0ZW0+ID4gbnNNZW51SXRlbVZlY3Rvcihjb25zdCBWZWN0
b3I8V2ViQ29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCitzdGF0aWMgVmVjdG9yPFJldGFpblB0cjxO
U01lbnVJdGVtPiA+IG5zTWVudUl0ZW1WZWN0b3IoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51
SXRlbURhdGE+JiBpdGVtcykKIHsKICAgICBWZWN0b3I8UmV0YWluUHRyPE5TTWVudUl0ZW0+ID4g
cmVzdWx0OwogCkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIFZlY3RvcjxSZXRhaW5QdHI8TlNN
ZW51SXRlbT4gPiBucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1l
bnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4mIGl0
ZW1zKQordm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8
V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKQogewogICAgIGlmIChtX3BvcHVwKQogICAg
ICAgICBbbV9wb3B1cC5nZXQoKSByZW1vdmVBbGxJdGVtc107CkBAIC0xNTgsNyArMTU4LDcgQEAg
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpwb3B1bGF0ZShjbwogICAgIHBvcHVsYXRlTlNN
ZW51KG1lbnUsIG5zTWVudUl0ZW1WZWN0b3IoaXRlbXMpKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0
TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlv
biwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQordm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2Nh
dGlvbiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBpdGVtcykKIHsKICAg
ICBwb3B1bGF0ZShpdGVtcyk7CiAgICAgW1tXZWJNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRd
IHNldE1lbnVQcm94eTp0aGlzXTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRNZW51UHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
Q29udGV4dE1lbnVQcm94eVF0LmNwcAkocmV2aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBAIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eVF0PiBXZWJDb24KICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRNZW51UHJveHlRdCk7CiB9CiAKLXZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eVF0OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmLCBjb25z
dCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiYpCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHlR
dDo6c2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiwgY29uc3QgVmVjdG9yPFdlYkNvbnRl
eHRNZW51SXRlbURhdGE+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgJKHJldmlzaW9uIDcx
NTI4KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJD
b250ZXh0TWVudVByb3h5UXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
PiYpOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mKTsKICAgICB2aXJ0
dWFsIHZvaWQgaGlkZUNvbnRleHRNZW51KCk7CiB9OwogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwCShyZXZpc2lvbiA3MTUyOCkK
KysrIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJv
eHlXaW4+IFdlYkNvCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudVByb3h5
V2luKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93Q29udGV4dE1lbnUo
Y29uc3QgSW50UG9pbnQmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtPiYpCit2b2lk
IFdlYkNvbnRleHRNZW51UHJveHlXaW46OnNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2ludCYs
IGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVBy
b3h5V2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRN
ZW51UHJveHlXaW4uaAkocmV2aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViQ29udGV4dE1lbnVQcm94eVdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eVdpbigpOwogCi0gICAg
dmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW0+Jik7CisgICAgdmlydHVhbCB2b2lkIHNob3dD
b250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxXZWJDb250
ZXh0TWVudUl0ZW1EYXRhPiYpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlQ29udGV4dE1lbnUoKTsK
IH07CiAKSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA3MTUyOCkKKysrIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNiArMTgyLDggQEAKIAkJMUM4RTI5M0ExMjc2MUU1
QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyOTM4MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rv
ci5jcHAgKi87IH07CiAJCTFDOEUyQTM1MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNw
ZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmgg
Ki87IH07CisJCTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsg
fTsKKwkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5
MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUx
NTc4QjgzMTIwOUVDRUYwMEEzN0M0QSAvKiBXZWJEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTU3OEI4MjEyMDlFQ0VGMDBBMzdDNEEgLyogV2Vi
RGF0YS5oICovOyB9OwogCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIw
QTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovOyB9OwogCQk1MTg3MUI1QjEyN0NCODlEMDBG
NzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRN
ZW51LmNwcCAqLzsgfTsKQEAgLTE4OSw4ICsxOTEsNiBAQAogCQk1MUE3RjJGMzEyNUJGODIwMDA4
QUVCMUQgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLzsgfTsKIAkJ
NTFBN0YyRjUxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8q
IExvZ2dpbmcuY3BwICovOyB9OwogCQk1MUE4NENFMzEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29u
dGV4dE1lbnVQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5j
cHAgKi87IH07Ci0JCTUxQUNCQTE1MTI3OUU4QzMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFB
Q0JBMTMxMjc5RThDMzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51SXRlbS5jcHAgKi87IH07Ci0J
CTUxQUNCQTE2MTI3OUU4QzMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUNCQTE0MTI3OUU4QzMw
MEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTFBQ0JCODIxMjdBOEJB
RDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUNCQjgxMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJD
b250ZXh0TWVudVByb3h5LmggKi87IH07CiAJCTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBX
ZWJDb250ZXh0TWVudVByb3h5TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUFDQkI5RTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5oICovOyB9OwogCQk1MUFDQkJBMTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQUNCQjlGMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tICovOyB9OwpAQCAtNzE1LDYgKzcxNSw4IEBACiAJCTFDOEUyQTMxMTI3Nzg1MjQwMEJDN0JE
MCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYklu
c3BlY3Rvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklu
c3BlY3Rvck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVF
MDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMEZCQjk5MTI4OEM5NUUw
MEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE1NzhCODIxMjA5RUNFRjAwQTM3QzRBIC8qIFdlYkRhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyMiw4ICs3MjQsNiBAQAogCQk1MUE3
RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdG
MkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudVByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBQ0JBMTMxMjc5RThDMzAwRDIwM0I5
IC8qIFdlYkNvbnRleHRNZW51SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MUFDQkExNDEyNzlFOEMzMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFDQkI4MTEyN0E4QkFEMDBEMjAzQjkgLyogV2Vi
Q29udGV4dE1lbnVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b250ZXh0TWVudVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUNCQjlF
MTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51UHJveHlNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQ0JCOUYxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRl
eHRNZW51UHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTM0Miw4ICsxMzQyLDggQEAKIAkJCQkxQTBGMjlDQTEyMEIzNzE2MDA1M0QxQjkgLyogVmlz
aXRlZExpbmtUYWJsZS5oICovLAogCQkJCUJDMUREN0IxMTE0REMzOTYwMDVBREFGMyAvKiBXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCAqLywKIAkJCQlCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyog
V2ViQ2VydGlmaWNhdGVJbmZvLmggKi8sCi0JCQkJNTFBQ0JBMTMxMjc5RThDMzAwRDIwM0I5IC8q
IFdlYkNvbnRleHRNZW51SXRlbS5jcHAgKi8sCi0JCQkJNTFBQ0JBMTQxMjc5RThDMzAwRDIwM0I5
IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovLAorCQkJCTUxMEZCQjk4MTI4OEM5NUUwMEFGRkRG
NCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLywKKwkJCQk1MTBGQkI5OTEyODhDOTVF
MDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovLAogCQkJCTUxNTc4QjgyMTIw
OUVDRUYwMEEzN0M0QSAvKiBXZWJEYXRhLmggKi8sCiAJCQkJQkM1NzU2MTIxMjZFMDEzODAwNkYw
RjEyIC8qIFdlYkVycm9yLmNwcCAqLywKIAkJCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyog
V2ViRXJyb3IuaCAqLywKQEAgLTIyOTcsNyArMjI5Nyw2IEBACiAJCQkJOTM1RUVCQTQxMjc3NjFE
NjAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE2MTYxNTAxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MTYxRDQxMjc4OTgxQzAwM0FDRDg2IC8qIERvd25sb2Fk
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUFDQkExNjEyNzlFOEMzMDBEMjAzQjkgLyogV2ViQ29u
dGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAz
QjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBQ0JCQTAx
MjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBMTE5QTk1MTI3Qjc5NjIwMEE5RUNCMSAvKiBNZXNzYWdlU2VuZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIzMTIsNiArMjMxMSw3IEBACiAJCQkJMUEyRDkwRDIxMjgxQzk2NjAwMUVC
OTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRUU3QUQxMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRDk1NkYxMjg0ODU2NDAwMUVCOTYyIC8qIENoaWxkUHJv
Y2Vzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdl
YkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjYzMyw3ICsyNjMzLDYg
QEAKIAkJCQkxQTYxNjE0RjEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBNjE2MUQ1MTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTYxNjM5NjEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxv
YWRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MUFDQkExNTEyNzlFOEMzMDBEMjAzQjkgLyog
V2ViQ29udGV4dE1lbnVJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQUNCQkExMTI3QThG
MkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzAzMzdEQUUxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUMwMzM3REIwMTI3QTI4RDAwMDhGRjRGNCAvKiBXZWJNb3VzZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjY1Niw2ICsyNjU1LDcgQEAKIAkJCQkxQTJEOTIyMTEyODFEQzFCMDAx
RUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0VFN0FEMDEy
ODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMkQ5NTcwMTI4NDg1NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3Mu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwRkJCOUExMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNv
bnRleHRNZW51SXRlbURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCShyZXZpc2lvbiA3MTUyOCkKKysr
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51OjpzaG93KCkKICAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2hvd0NvbnRleHRNZW51KG1lbnUtPmhpdFRlc3RSZXN1bHQoKS5wb2ludCgpLCBraXRJ
dGVtcyhjb3JlSXRlbXMsIG1lbnUpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKLXZvaWQgV2Vi
Q29udGV4dE1lbnU6Oml0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW0mIGl0ZW0p
Cit2b2lkIFdlYkNvbnRleHRNZW51OjppdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYgaXRlbSkKIHsKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0gY29yZUl0ZW0o
V2ViQ29yZTo6QWN0aW9uVHlwZSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b24+KGl0ZW0uYWN0aW9uKCkpLCBpdGVtLnRpdGxlKCkpOwogICAgIG1fcGFnZS0+Y29yZVBhZ2Uo
KS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKCZjb3Jl
SXRlbSk7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51
LmgJKHJldmlzaW9uIDcxNTI4KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29u
dGV4dE1lbnUuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogI2lmbmRlZiBXZWJD
b250ZXh0TWVudV9oCiAjZGVmaW5lIFdlYkNvbnRleHRNZW51X2gKIAotI2luY2x1ZGUgIldlYkNv
bnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKIAog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
QEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIH5XZWJDb250ZXh0TWVudSgpOwogCiAgICAg
dm9pZCBzaG93KCk7Ci0gICAgdm9pZCBpdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtJik7CisgICAgdm9pZCBpdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YSYpOwogCiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51KFdlYlBhZ2UqKTsKSW5kZXg6IFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA3MTUyOCkKKysrIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
MTMsNyArOTEzLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3RlZEluZGV4Rm9yQQog
ICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRTZWxlY3RJ
dGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbSYgaXRlbSkK
K3ZvaWQgV2ViUGFnZTo6ZGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShjb25zdCBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogewogICAgIEFTU0VSVChtX2NvbnRleHRNZW51
KTsKICAgICBtX2NvbnRleHRNZW51LT5pdGVtU2VsZWN0ZWQoaXRlbSk7CkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA3MTUyOCkKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBA
QCBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFBhZ2VPdmVybGF5
OwogY2xhc3MgUGx1Z2luVmlldzsKIGNsYXNzIFdlYkNvbnRleHRNZW51OwotY2xhc3MgV2ViQ29u
dGV4dE1lbnVJdGVtOworY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYkV2
ZW50OwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJJbnNwZWN0b3I7CkBAIC0yNTcsNyArMjU3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5nZVNlbGVjdGVkSW5kZXhGb3JBY3RpdmVQ
b3B1cE1lbnUoaW50MzJfdCBuZXdJbmRleCk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
LSAgICB2b2lkIGRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29u
dGV4dE1lbnVJdGVtJik7CisgICAgdm9pZCBkaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRN
ZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICNlbmRpZgogCiAgICAgT3duUHRy
PFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gNzE1MjgpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04
MCw3ICs4MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIERpZENoYW5nZVNlbGVjdGVk
SW5kZXhGb3JBY3RpdmVQb3B1cE1lbnUoaW50MzJfdCBuZXdJbmRleCk7CiAgICAgCiAgICAgIyBD
b250ZXh0IG1lbnUuCi0gICAgRGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShXZWJL
aXQ6OldlYkNvbnRleHRNZW51SXRlbSBtZW51SXRlbSk7CisgICAgRGlkU2VsZWN0SXRlbUZyb21B
Y3RpdmVDb250ZXh0TWVudShXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGEgbWVudUl0ZW0p
OwogCiAgICAgU2V0V2luZG93UmVzaXplclNpemUoV2ViQ29yZTo6SW50U2l6ZSBpbnRlcnNlY3Rz
VmlldykKIApJbmRleDogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDcxNTI4KQorKysgV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ5NywxMSArNDk3LDExIEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJl
ZFxXZWJDb250ZXh0TWVudUl0ZW0uY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJDb250ZXh0TWVudUl0ZW0uaCINCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQo=
</data>
<flag name="review"
          id="63709"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="63710"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>