<?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>15569</bug_id>
          
          <creation_ts>2007-10-19 20:45:56 -0700</creation_ts>
          <short_desc>[gtk] GTK JavaScriptCore needs to export symbols for JSC API and WTF</short_desc>
          <delta_ts>2007-12-01 16:10:07 -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>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15561</blocked>
    
    <blocked>15687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>aroben</cc>
    
    <cc>ggaren</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58883</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-19 20:45:56 -0700</bug_when>
    <thetext>[gtk] GTK JavaScriptCore needs to export symbols for JSC API and WTF

The Mac/Win ports use an exported symbols file for this.  I would suggest GTK do the same.  This blocks further progress on DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58898</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-10-20 03:25:44 -0700</bug_when>
    <thetext>One problem with using an exports file is that compilers on different platforms all have different means of specifying the exports file, and the same compiler on different platforms may mangle names in a different manner.  The approach used within the Gtk API code is to have a #define that marks a symbol as having default visibility (eg, as being exported) when building, and to set the default symbol visibility to private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62337</commentid>
    <comment_count>2</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-25 17:54:22 -0800</bug_when>
    <thetext>See also:

http://bugs.webkit.org/show_bug.cgi?id=16029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62341</commentid>
    <comment_count>3</comment_count>
      <attachid>17521</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-25 18:25:39 -0800</bug_when>
    <thetext>Created attachment 17521
Export API symbols in the headers

This does the job for the GTK+ port, but I&apos;m not sure what is defined for Windows and Mac builds of JavaScriptCore, so those parts might well be wrong.

Adam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62345</commentid>
    <comment_count>4</comment_count>
      <attachid>17522</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-25 18:54:20 -0800</bug_when>
    <thetext>Created attachment 17522
Update Win check and don&apos;t bother with Metrowerks

I think this still needs a Win-savvy reviewer to take a look first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62346</commentid>
    <comment_count>5</comment_count>
      <attachid>17522</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-11-25 20:51:24 -0800</bug_when>
    <thetext>Comment on attachment 17522
Update Win check and don&apos;t bother with Metrowerks

This looks OK on the Windows side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62433</commentid>
    <comment_count>6</comment_count>
      <attachid>17543</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-26 23:33:37 -0800</bug_when>
    <thetext>Created attachment 17543
Now with non-GCC support

I think we&apos;ve covered Win, Mac and non-GCC now. Good to go?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62525</commentid>
    <comment_count>7</comment_count>
      <attachid>17543</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-27 20:15:50 -0800</bug_when>
    <thetext>Comment on attachment 17543
Now with non-GCC support

r=me

Looks fine, let&apos;s make sure to do this at a time when you can watch the buildbots to make sure it worked out ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62532</commentid>
    <comment_count>8</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-27 22:03:39 -0800</bug_when>
    <thetext>Landed in r28097 (with MSVC support disabled in r28100 to fix the Win build).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62916</commentid>
    <comment_count>9</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-01 16:10:07 -0800</bug_when>
    <thetext>See http://bugs.webkit.org/show_bug.cgi?id=16227 for updates on the Win/MSVC situation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17521</attachid>
            <date>2007-11-25 18:25:39 -0800</date>
            <delta_ts>2007-11-25 18:54:20 -0800</delta_ts>
            <desc>Export API symbols in the headers</desc>
            <filename>js-export.patch</filename>
            <type>text/plain</type>
            <size>32148</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MDI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTEtMjUgIEFscCBUb2tl
ciAgPGFscEBhdG9rZXIuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTY5
CisgICAgICAgIFtndGtdIEdUSyBKYXZhU2NyaXB0Q29yZSBuZWVkcyB0byBleHBvcnQgc3ltYm9s
cyBmb3IgSlNDIEFQSSBhbmQgV1RGCisKKyAgICAgICAgSW50cm9kdWNlIEpTX0VYUE9SVCB0byBt
YXJrIHN5bWJvbHMgdG8gYmUgZXhwb3J0ZWQgYXMgcHVibGljIEFQSS4KKworICAgICAgICBFeHBv
cnQgYWxsIHB1YmxpYyBzeW1ib2xzIGluIHRoZSBKYXZhU2NyaXB0Q29yZSBDIEFQSS4KKworICAg
ICAgICBUaGlzIG1hdGNoZXMgY29udmVudGlvbnMgZm9yIGV4cG9ydGluZyBzeW1ib2xzIHNldCBi
eSB0aGUgQ0YgYW5kIENHCisgICAgICAgIGZyYW1ld29ya3MuCisKKyAgICAgICAgKiBBUEkvSlNC
YXNlLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5oOgorICAgICAgICAqIEFQSS9KU09i
amVjdFJlZi5oOgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5oOgorICAgICAgICAqIEFQSS9K
U1N0cmluZ1JlZkJTVFIuaDoKKyAgICAgICAgKiBBUEkvSlNTdHJpbmdSZWZDRi5oOgorICAgICAg
ICAqIEFQSS9KU1ZhbHVlUmVmLmg6CisKIDIwMDctMTEtMjUgIE1hcmsgUm93ZSAgPG1yb3dlQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogSmF2
YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQ
SS9KU0Jhc2UuaAkocmV2aXNpb24gMjgwMjQpCisrKyBKYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDI3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZUpTVmFsdWUqIEpTVmEKIC8qISBAdHlwZWRlZiBKU09iamVjdFJlZiBBIEphdmFTY3Jp
cHQgb2JqZWN0LiBBIEpTT2JqZWN0IGlzIGEgSlNWYWx1ZS4gKi8KIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZUpTVmFsdWUqIEpTT2JqZWN0UmVmOwogCisvKiBKYXZhU2NyaXB0IHN5bWJvbCBleHBvcnRz
ICovCisKKyNpZiBkZWZpbmVkKF9fV0lOMzJfXykKKyAgICAjdW5kZWYgSlNfRVhQT1JUCisgICAg
I2lmIGRlZmluZWQoSlNfQlVJTERJTkdfSlMpCisgICAgICAgICNkZWZpbmUgSlNfRVhQT1JUIF9f
ZGVjbHNwZWMoZGxsZXhwb3J0KSBleHRlcm4KKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIEpT
X0VYUE9SVCBfX2RlY2xzcGVjKGRsbGltcG9ydCkgZXh0ZXJuCisgICAgI2VuZGlmCisjZWxpZiBk
ZWZpbmVkKG1hY2ludG9zaCkKKyAgICAjaWYgZGVmaW5lZChfX01XRVJLU19fKQorICAgICAgICAj
ZGVmaW5lIEpTX0VYUE9SVCBfX2RlY2xzcGVjKGV4cG9ydCkgZXh0ZXJuCisgICAgI2VuZGlmCisj
ZWxzZQorICAgICNkZWZpbmUgSlNfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRl
ZmF1bHQiKSkpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEpTX0VYUE9SVCkKKyAgICAjZGVmaW5l
IEpTX0VYUE9SVCBleHRlcm4KKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAi
QyIgewogI2VuZGlmCkBAIC03NSw3ICs5Niw3IEBAIGV4dGVybiAiQyIgewogQHBhcmFtIGV4Y2Vw
dGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2Vw
dGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4
Y2VwdGlvbi4KIEByZXN1bHQgVGhlIEpTVmFsdWUgdGhhdCByZXN1bHRzIGZyb20gZXZhbHVhdGlu
ZyBzY3JpcHQsIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KICovCi1KU1ZhbHVl
UmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFy
dGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgSlNWYWx1
ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlw
dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlv
biBKU0NoZWNrU2NyaXB0U3ludGF4CkBAIC04Nyw3ICsxMDgsNyBAQCBKU1ZhbHVlUmVmIEpTRXZh
bHVhdGVTY3JpcHQoSlNDb250ZXh0UmVmCiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBh
IEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uLCBp
ZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYSBzeW50YXggZXJy
b3IgZXhjZXB0aW9uLgogQHJlc3VsdCB0cnVlIGlmIHRoZSBzY3JpcHQgaXMgc3ludGFjdGljYWxs
eSBjb3JyZWN0LCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4
KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNl
VVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNf
RVhQT1JUIGJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmlu
Z1JlZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJl
ciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEwMyw3ICsx
MjQsNyBAQCBib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250ZXh0UmVmIGN0CiAgQXQgdGhh
dCBwb2ludCwgYSBnYXJiYWdlIGNvbGxlY3Rpb24gY2FuIGZyZWUgdGhlIG9iamVjdHMgc3RpbGwg
cmVmZXJlbmNlZCBieSB0aGUgCiAgSlNHbG9iYWxDb250ZXh0UmVmJ3MgZ2xvYmFsIG9iamVjdCwg
YWxvbmcgd2l0aCB0aGUgZ2xvYmFsIG9iamVjdCBpdHNlbGYuCiAqLwotdm9pZCBKU0dhcmJhZ2VD
b2xsZWN0KEpTQ29udGV4dFJlZiBjdHgpOworSlNfRVhQT1JUIHZvaWQgSlNHYXJiYWdlQ29sbGVj
dChKU0NvbnRleHRSZWYgY3R4KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5oCShyZXZpc2lvbiAyODAyNCkKKysrIEphdmFTY3JpcHRDb3Jl
L0FQSS9KU0NvbnRleHRSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBleHRl
cm4gIkMiIHsKICBOVUxMIHRvIHVzZSB0aGUgZGVmYXVsdCBvYmplY3QgY2xhc3MuCiBAcmVzdWx0
IEEgSlNHbG9iYWxDb250ZXh0IHdpdGggYSBnbG9iYWwgb2JqZWN0IG9mIGNsYXNzIGdsb2JhbE9i
amVjdENsYXNzLgogKi8KLUpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUo
SlNDbGFzc1JlZiBnbG9iYWxPYmplY3RDbGFzcyk7CitKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0
UmVmIEpTR2xvYmFsQ29udGV4dENyZWF0ZShKU0NsYXNzUmVmIGdsb2JhbE9iamVjdENsYXNzKTsK
IAogLyohCiBAZnVuY3Rpb24KQEAgLTUzLDE0ICs1MywxNCBAQCBKU0dsb2JhbENvbnRleHRSZWYg
SlNHbG9iYWxDb250ZXh0Q3JlYXRlCiBAcGFyYW0gY3R4IFRoZSBKU0dsb2JhbENvbnRleHQgdG8g
cmV0YWluLgogQHJlc3VsdCBBIEpTR2xvYmFsQ29udGV4dCB0aGF0IGlzIHRoZSBzYW1lIGFzIGN0
eC4KICovCi1KU0dsb2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0UmV0YWluKEpTR2xvYmFs
Q29udGV4dFJlZiBjdHgpOworSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENv
bnRleHRSZXRhaW4oSlNHbG9iYWxDb250ZXh0UmVmIGN0eCk7CiAKIC8qIQogQGZ1bmN0aW9uCiBA
YWJzdHJhY3QgUmVsZWFzZXMgYSBnbG9iYWwgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dC4K
IEBwYXJhbSBjdHggVGhlIEpTR2xvYmFsQ29udGV4dCB0byByZWxlYXNlLgogKi8KLXZvaWQgSlNH
bG9iYWxDb250ZXh0UmVsZWFzZShKU0dsb2JhbENvbnRleHRSZWYgY3R4KTsKK0pTX0VYUE9SVCB2
b2lkIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCk7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNHbG9iYWxDb250ZXh0UmVsZWFz
ZShKU0dsb2JhbENvbnQKIEBwYXJhbSBjdHggVGhlIEpTQ29udGV4dCB3aG9zZSBnbG9iYWwgb2Jq
ZWN0IHlvdSB3YW50IHRvIGdldC4KIEByZXN1bHQgY3R4J3MgZ2xvYmFsIG9iamVjdC4KICovCi1K
U09iamVjdFJlZiBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoSlNDb250ZXh0UmVmIGN0eCk7CitK
U19FWFBPUlQgSlNPYmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpTQ29udGV4dFJl
ZiBjdHgpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9KU09iamVj
dFJlZi5oCShyZXZpc2lvbiAyODAyNCkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJl
Zi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzYsNyArMzc2LDcgQEAgZXh0ZXJuIGNvbnN0IEpTQ2xh
c3NEZWZpbml0aW9uIGtKU0NsYXNzRAogQHBhcmFtIGRlZmluaXRpb24gQSBKU0NsYXNzRGVmaW5p
dGlvbiB0aGF0IGRlZmluZXMgdGhlIGNsYXNzLgogQHJlc3VsdCBBIEpTQ2xhc3Mgd2l0aCB0aGUg
Z2l2ZW4gZGVmaW5pdGlvbi4gT3duZXJzaGlwIGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8K
LUpTQ2xhc3NSZWYgSlNDbGFzc0NyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5p
dGlvbik7CitKU19FWFBPUlQgSlNDbGFzc1JlZiBKU0NsYXNzQ3JlYXRlKGNvbnN0IEpTQ2xhc3NE
ZWZpbml0aW9uKiBkZWZpbml0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTM4NCwxNCArMzg0
LDE0IEBAIEpTQ2xhc3NSZWYgSlNDbGFzc0NyZWF0ZShjb25zdCBKU0NsYXNzRGUKIEBwYXJhbSBq
c0NsYXNzIFRoZSBKU0NsYXNzIHRvIHJldGFpbi4KIEByZXN1bHQgQSBKU0NsYXNzIHRoYXQgaXMg
dGhlIHNhbWUgYXMganNDbGFzcy4KICovCi1KU0NsYXNzUmVmIEpTQ2xhc3NSZXRhaW4oSlNDbGFz
c1JlZiBqc0NsYXNzKTsKK0pTX0VYUE9SVCBKU0NsYXNzUmVmIEpTQ2xhc3NSZXRhaW4oSlNDbGFz
c1JlZiBqc0NsYXNzKTsKIAogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBSZWxlYXNlcyBhIEph
dmFTY3JpcHQgY2xhc3MuCiBAcGFyYW0ganNDbGFzcyBUaGUgSlNDbGFzcyB0byByZWxlYXNlLgog
Ki8KLXZvaWQgSlNDbGFzc1JlbGVhc2UoSlNDbGFzc1JlZiBqc0NsYXNzKTsKK0pTX0VYUE9SVCB2
b2lkIEpTQ2xhc3NSZWxlYXNlKEpTQ2xhc3NSZWYganNDbGFzcyk7CiAKIC8qIQogQGZ1bmN0aW9u
CkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBKU0NsYXNzUmVsZWFzZShKU0NsYXNzUmVmIGpzQ2xh
c3MpOwogCiBkYXRhIGlzIHNldCBvbiB0aGUgY3JlYXRlZCBvYmplY3QgYmVmb3JlIHRoZSBpbnRp
YWxpemUgbWV0aG9kcyBpbiBpdHMgY2xhc3MgY2hhaW4gYXJlIGNhbGxlZC4gVGhpcyBlbmFibGVz
IHRoZSBpbml0aWFsaXplIG1ldGhvZHMgdG8gcmV0cmlldmUgYW5kIG1hbmlwdWxhdGUgZGF0YSB0
aHJvdWdoIEpTT2JqZWN0R2V0UHJpdmF0ZS4KICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2Uo
SlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKTsKK0pTX0VY
UE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2UoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1Jl
ZiBqc0NsYXNzLCB2b2lkKiBkYXRhKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTQxNCw3ICs0MTQs
NyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2UoSlNDb250ZXh0UmVmIGN0CiBAcGFyYW0gY2Fs
bEFzRnVuY3Rpb24gVGhlIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayB0byBpbnZva2Ug
d2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkLgogQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMg
YSBmdW5jdGlvbi4gVGhlIG9iamVjdCdzIHByb3RvdHlwZSB3aWxsIGJlIHRoZSBkZWZhdWx0IGZ1
bmN0aW9uIHByb3RvdHlwZS4KICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbldp
dGhDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCBKU09iamVjdENh
bGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24pOworSlNfRVhQT1JUIEpTT2JqZWN0
UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpT
U3RyaW5nUmVmIG5hbWUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5j
dGlvbik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC00MjUsNyArNDI1LDcgQEAgSlNPYmplY3RSZWYg
SlNPYmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbAogQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMg
YSBjb25zdHJ1Y3Rvci4gVGhlIG9iamVjdCdzIHByb3RvdHlwZSB3aWxsIGJlIHRoZSBkZWZhdWx0
IG9iamVjdCBwcm90b3R5cGUuCiBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCBvYmplY3QgY29uc3Ry
dWN0b3IgdGFrZXMgbm8gYXJndW1lbnRzIGFuZCBjb25zdHJ1Y3RzIGFuIG9iamVjdCBvZiBjbGFz
cyBqc0NsYXNzIHdpdGggbm8gcHJpdmF0ZSBkYXRhLgogKi8KLUpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUNvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganNDbGFzcywgSlNP
YmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxBc0NvbnN0cnVjdG9yKTsKK0pTX0VY
UE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4
LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBj
YWxsQXNDb25zdHJ1Y3Rvcik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC00NDEsNyArNDQxLDcgQEAg
SlNPYmplY3RSZWYgSlNPYmplY3RNYWtlQ29uc3RydWN0b3IoSlNDbwogQHJlc3VsdCBBIEpTT2Jq
ZWN0IHRoYXQgaXMgYSBmdW5jdGlvbiwgb3IgTlVMTCBpZiBlaXRoZXIgYm9keSBvciBwYXJhbWV0
ZXJOYW1lcyBjb250YWlucyBhIHN5bnRheCBlcnJvci4gVGhlIG9iamVjdCdzIHByb3RvdHlwZSB3
aWxsIGJlIHRoZSBkZWZhdWx0IGZ1bmN0aW9uIHByb3RvdHlwZS4KIEBkaXNjdXNzaW9uIFVzZSB0
aGlzIG1ldGhvZCB3aGVuIHlvdSB3YW50IHRvIGV4ZWN1dGUgYSBzY3JpcHQgcmVwZWF0ZWRseSwg
dG8gYXZvaWQgdGhlIGNvc3Qgb2YgcmUtcGFyc2luZyB0aGUgc2NyaXB0IGJlZm9yZSBlYWNoIGV4
ZWN1dGlvbi4KICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCwgY29uc3Qg
SlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYgYm9keSwgSlNTdHJpbmdS
ZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uKEpTQ29udGV4
dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVkIHBhcmFtZXRlckNvdW50LCBjb25z
dCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0cmluZ1JlZiBib2R5LCBKU1N0cmlu
Z1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC00NTAsNyArNDUwLDcgQEAgSlNPYmplY3RSZWYg
SlNPYmplY3RNYWtlRnVuY3Rpb24oSlNDb250ZQogQHBhcmFtIG9iamVjdCBBIEpTT2JqZWN0IHdo
b3NlIHByb3RvdHlwZSB5b3Ugd2FudCB0byBnZXQuCiBAcmVzdWx0IEEgSlNWYWx1ZSB0aGF0IGlz
IHRoZSBvYmplY3QncyBwcm90b3R5cGUuCiAqLwotSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3Rv
dHlwZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIEpT
VmFsdWVSZWYgSlNPYmplY3RHZXRQcm90b3R5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RS
ZWYgb2JqZWN0KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTQ1OSw3ICs0NTksNyBAQCBKU1ZhbHVl
UmVmIEpTT2JqZWN0R2V0UHJvdG90eXBlKEpTQ29udGV4CiBAcGFyYW0gb2JqZWN0IFRoZSBKU09i
amVjdCB3aG9zZSBwcm90b3R5cGUgeW91IHdhbnQgdG8gc2V0LgogQHBhcmFtIHZhbHVlIEEgSlNW
YWx1ZSB0byBzZXQgYXMgdGhlIG9iamVjdCdzIHByb3RvdHlwZS4KICovCi12b2lkIEpTT2JqZWN0
U2V0UHJvdG90eXBlKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1
ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFByb3RvdHlwZShKU0NvbnRl
eHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEK
IEBmdW5jdGlvbgpAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm90b3R5cGUo
SlNDb250ZXh0UmVmIGMKIEBwYXJhbSBwcm9wZXJ0eU5hbWUgQSBKU1N0cmluZyBjb250YWluaW5n
IHRoZSBwcm9wZXJ0eSdzIG5hbWUuCiBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBw
cm9wZXJ0eSB3aG9zZSBuYW1lIG1hdGNoZXMgcHJvcGVydHlOYW1lLCBvdGhlcndpc2UgZmFsc2Uu
CiAqLwotYm9vbCBKU09iamVjdEhhc1Byb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0
UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lKTsKK0pTX0VYUE9SVCBib29sIEpT
T2JqZWN0SGFzUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDc5LDcgKzQ3
OSw3IEBAIGJvb2wgSlNPYmplY3RIYXNQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3QKIEBwYXJhbSBl
eGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiBAcmVzdWx0IFRoZSBwcm9wZXJ0eSdzIHZhbHVlIGlmIG9iamVjdCBoYXMg
dGhlIHByb3BlcnR5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KICovCi1KU1ZhbHVl
UmVmIEpTT2JqZWN0R2V0UHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitK
U19FWFBPUlQgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDkxLDcgKzQ5MSw3IEBAIEpTVmFs
dWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eShKU0NvbnRleHQKIEBwYXJhbSBleGNlcHRpb24gQSBw
b2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlm
IGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24u
CiBAcGFyYW0gYXR0cmlidXRlcyBBIGxvZ2ljYWxseSBPUmVkIHNldCBvZiBKU1Byb3BlcnR5QXR0
cmlidXRlcyB0byBnaXZlIHRvIHRoZSBwcm9wZXJ0eS4KICovCi12b2lkIEpTT2JqZWN0U2V0UHJv
cGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYgdmFsdWUsIEpTUHJvcGVydHlBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgdm9pZCBKU09iamVjdFNl
dFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdS
ZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBh
dHRyaWJ1dGVzLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAt
NTAyLDcgKzUwMiw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3QK
IEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBz
dG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0
byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcmVzdWx0IHRydWUgaWYgdGhlIGRlbGV0ZSBvcGVyYXRp
b24gc3VjY2VlZHMsIG90aGVyd2lzZSBmYWxzZSAoZm9yIGV4YW1wbGUsIGlmIHRoZSBwcm9wZXJ0
eSBoYXMgdGhlIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBhdHRyaWJ1dGUgc2V0KS4K
ICovCi1ib29sIEpTT2JqZWN0RGVsZXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmpl
Y3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbik7CitKU19FWFBPUlQgYm9vbCBKU09iamVjdERlbGV0ZVByb3BlcnR5KEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTE0LDcgKzUxNCw3IEBA
IGJvb2wgSlNPYmplY3REZWxldGVQcm9wZXJ0eShKU0NvbnRleHRSZWYKIEByZXN1bHQgVGhlIHBy
b3BlcnR5J3MgdmFsdWUgaWYgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHksIG90aGVyd2lzZSB0aGUg
dW5kZWZpbmVkIHZhbHVlLgogQGRpc2N1c3Npb24gQ2FsbGluZyBKU09iamVjdEdldFByb3BlcnR5
QXRJbmRleCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgSlNPYmplY3RHZXRQcm9wZXJ0eSB3aXRo
IGEgc3RyaW5nIGNvbnRhaW5pbmcgcHJvcGVydHlJbmRleCwgYnV0IEpTT2JqZWN0R2V0UHJvcGVy
dHlBdEluZGV4IHByb3ZpZGVzIG9wdGltaXplZCBhY2Nlc3MgdG8gbnVtZXJpYyBwcm9wZXJ0aWVz
LgogKi8KLUpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0UmVm
IGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0
eUF0SW5kZXgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBw
cm9wZXJ0eUluZGV4LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNTI2LDcgKzUyNiw3IEBAIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgo
SlMKIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0
byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2Fy
ZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAZGlzY3Vzc2lvbiBDYWxsaW5nIEpTT2JqZWN0U2V0
UHJvcGVydHlBdEluZGV4IGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBKU09iamVjdFNldFByb3Bl
cnR5IHdpdGggYSBzdHJpbmcgY29udGFpbmluZyBwcm9wZXJ0eUluZGV4LCBidXQgSlNPYmplY3RT
ZXRQcm9wZXJ0eUF0SW5kZXggcHJvdmlkZXMgb3B0aW1pemVkIGFjY2VzcyB0byBudW1lcmljIHBy
b3BlcnRpZXMuCiAqLwotdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIEpTVmFs
dWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgdm9pZCBKU09i
amVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmpl
Y3QsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBK
U09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleAogQHBhcmFtIG9iamVjdCBBIEpTT2Jq
ZWN0IHdob3NlIHByaXZhdGUgZGF0YSB5b3Ugd2FudCB0byBnZXQuCiBAcmVzdWx0IEEgdm9pZCog
dGhhdCBpcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBpZiB0aGUgb2JqZWN0IGhhcyBwcml2
YXRlIGRhdGEsIG90aGVyd2lzZSBOVUxMLgogKi8KLXZvaWQqIEpTT2JqZWN0R2V0UHJpdmF0ZShK
U09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIHZvaWQqIEpTT2JqZWN0R2V0UHJpdmF0ZShK
U09iamVjdFJlZiBvYmplY3QpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTQ0LDcgKzU0NCw3IEBA
IHZvaWQqIEpTT2JqZWN0R2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmoKIEByZXN1bHQgdHJ1ZSBp
ZiBvYmplY3QgY2FuIHN0b3JlIHByaXZhdGUgZGF0YSwgb3RoZXJ3aXNlIGZhbHNlLgogQGRpc2N1
c3Npb24gVGhlIGRlZmF1bHQgb2JqZWN0IGNsYXNzIGRvZXMgbm90IGFsbG9jYXRlIHN0b3JhZ2Ug
Zm9yIHByaXZhdGUgZGF0YS4gT25seSBvYmplY3RzIGNyZWF0ZWQgd2l0aCBhIG5vbi1OVUxMIEpT
Q2xhc3MgY2FuIHN0b3JlIHByaXZhdGUgZGF0YS4KICovCi1ib29sIEpTT2JqZWN0U2V0UHJpdmF0
ZShKU09iamVjdFJlZiBvYmplY3QsIHZvaWQqIGRhdGEpOworSlNfRVhQT1JUIGJvb2wgSlNPYmpl
Y3RTZXRQcml2YXRlKEpTT2JqZWN0UmVmIG9iamVjdCwgdm9pZCogZGF0YSk7CiAKIC8qIQogQGZ1
bmN0aW9uCkBAIC01NTMsNyArNTUzLDcgQEAgYm9vbCBKU09iamVjdFNldFByaXZhdGUoSlNPYmpl
Y3RSZWYgb2JqZQogQHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3QgdG8gdGVzdC4KIEByZXN1bHQg
dHJ1ZSBpZiB0aGUgb2JqZWN0IGNhbiBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbiwgb3RoZXJ3aXNl
IGZhbHNlLgogKi8KLWJvb2wgSlNPYmplY3RJc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdCk7CitKU19FWFBPUlQgYm9vbCBKU09iamVjdElzRnVuY3Rpb24oSlND
b250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKIAogLyohCiBAZnVuY3Rpb24KQEAg
LTU2Niw3ICs1NjYsNyBAQCBib29sIEpTT2JqZWN0SXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4
CiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8g
c3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUg
dG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3VsdCBUaGUgSlNWYWx1ZSB0aGF0IHJlc3VsdHMg
ZnJvbSBjYWxsaW5nIG9iamVjdCBhcyBhIGZ1bmN0aW9uLCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlv
biBpcyB0aHJvd24gb3Igb2JqZWN0IGlzIG5vdCBhIGZ1bmN0aW9uLgogKi8KLUpTVmFsdWVSZWYg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmpl
Y3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JU
IEpTVmFsdWVSZWYgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
OwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTc1LDcgKzU3NSw3IEBAIEpTVmFsdWVSZWYgSlNPYmpl
Y3RDYWxsQXNGdW5jdGlvbihKU0NvbnQKIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHRvIHRl
c3QuCiBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBjYW4gYmUgY2FsbGVkIGFzIGEgY29uc3Ry
dWN0b3IsIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpTT2JqZWN0SXNDb25zdHJ1Y3RvcihK
U0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIGJvb2wgSlNP
YmplY3RJc0NvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCk7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01ODcsNyArNTg3LDcgQEAgYm9vbCBKU09iamVjdElzQ29u
c3RydWN0b3IoSlNDb250ZXh0UmVmIAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBK
U1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5V
TEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgVGhl
IEpTT2JqZWN0IHRoYXQgcmVzdWx0cyBmcm9tIGNhbGxpbmcgb2JqZWN0IGFzIGEgY29uc3RydWN0
b3IsIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBvciBvYmplY3QgaXMgbm90IGEg
Y29uc3RydWN0b3IuCiAqLwotSlNPYmplY3RSZWYgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvcihK
U0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwor
SlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBA
ZnVuY3Rpb24KQEAgLTU5Niw3ICs1OTYsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdENhbGxBc0Nv
bnN0cnVjdG9yKEpTCiBAcGFyYW0gb2JqZWN0IFRoZSBvYmplY3Qgd2hvc2UgcHJvcGVydHkgbmFt
ZXMgeW91IHdhbnQgdG8gZ2V0LgogQHJlc3VsdCBBIEpTUHJvcGVydHlOYW1lQXJyYXkgY29udGFp
bmluZyB0aGUgbmFtZXMgb2JqZWN0J3MgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLgogKi8KLUpTUHJv
cGVydHlOYW1lQXJyYXlSZWYgSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhKU0NvbnRleHRSZWYg
Y3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWYgSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJl
ZiBvYmplY3QpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjA0LDE0ICs2MDQsMTQgQEAgSlNQcm9w
ZXJ0eU5hbWVBcnJheVJlZiBKU09iamVjdENvcHlQcm9wZQogQHBhcmFtIGFycmF5IFRoZSBKU1By
b3BlcnR5TmFtZUFycmF5IHRvIHJldGFpbi4KIEByZXN1bHQgQSBKU1Byb3BlcnR5TmFtZUFycmF5
IHRoYXQgaXMgdGhlIHNhbWUgYXMgYXJyYXkuCiAqLwotSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBK
U1Byb3BlcnR5TmFtZUFycmF5UmV0YWluKEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOwor
SlNfRVhQT1JUIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgSlNQcm9wZXJ0eU5hbWVBcnJheVJldGFp
bihKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5KTsKIAogLyohCiBAZnVuY3Rpb24KIEBhYnN0
cmFjdCBSZWxlYXNlcyBhIEphdmFTY3JpcHQgcHJvcGVydHkgbmFtZSBhcnJheS4KIEBwYXJhbSBh
cnJheSBUaGUgSlNQcm9wZXR5TmFtZUFycmF5IHRvIHJlbGVhc2UuCiAqLwotdm9pZCBKU1Byb3Bl
cnR5TmFtZUFycmF5UmVsZWFzZShKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5KTsKK0pTX0VY
UE9SVCB2b2lkIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWYgYXJyYXkpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjE5LDcgKzYxOSw3IEBAIHZvaWQgSlNQ
cm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UoSlNQcm9wZXIKIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkg
ZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgY291bnQuCiBAcmVzdWx0IEFuIGludGVnZXIgY291
bnQgb2YgdGhlIG51bWJlciBvZiBuYW1lcyBpbiBhcnJheS4KICovCi1zaXplX3QgSlNQcm9wZXJ0
eU5hbWVBcnJheUdldENvdW50KEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOworSlNfRVhQ
T1JUIHNpemVfdCBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQoSlNQcm9wZXJ0eU5hbWVBcnJh
eVJlZiBhcnJheSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC02MjgsNyArNjI4LDcgQEAgc2l6ZV90
IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChKU1BybwogQHBhcmFtIGluZGV4IFRoZSBpbmRl
eCBvZiB0aGUgcHJvcGVydHkgbmFtZSB0byByZXRyaWV2ZS4KIEByZXN1bHQgQSBKU1N0cmluZ1Jl
ZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBuYW1lLgogKi8KLUpTU3RyaW5nUmVmIEpTUHJvcGVy
dHlOYW1lQXJyYXlHZXROYW1lQXRJbmRleChKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5LCBz
aXplX3QgaW5kZXgpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTUHJvcGVydHlOYW1lQXJyYXlH
ZXROYW1lQXRJbmRleChKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5LCBzaXplX3QgaW5kZXgp
OwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjM2LDcgKzYzNiw3IEBAIEpTU3RyaW5nUmVmIEpTUHJv
cGVydHlOYW1lQXJyYXlHZXROYW1lQXQKIEBwYXJhbSBhY2N1bXVsYXRvciBUaGUgYWNjdW11bGF0
b3Igb2JqZWN0IHRvIHdoaWNoIHRvIGFkZCB0aGUgcHJvcGVydHkgbmFtZS4KIEBwYXJhbSBwcm9w
ZXJ0eU5hbWUgVGhlIHByb3BlcnR5IG5hbWUgdG8gYWRkLgogKi8KLXZvaWQgSlNQcm9wZXJ0eU5h
bWVBY2N1bXVsYXRvckFkZE5hbWUoSlNQcm9wZXJ0eU5hbWVBY2N1bXVsYXRvclJlZiBhY2N1bXVs
YXRvciwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lKTsKK0pTX0VYUE9SVCB2b2lkIEpTUHJvcGVy
dHlOYW1lQWNjdW11bGF0b3JBZGROYW1lKEpTUHJvcGVydHlOYW1lQWNjdW11bGF0b3JSZWYgYWNj
dW11bGF0b3IsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1
cwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmgJKHJldmlzaW9uIDI4MDI0KQorKysg
SmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDE0
ICs1MywxNCBAQCBleHRlcm4gIkMiIHsKIEBwYXJhbSBudW1DaGFycyAgIFRoZSBudW1iZXIgb2Yg
Y2hhcmFjdGVycyB0byBjb3B5IGZyb20gdGhlIGJ1ZmZlciBwb2ludGVkIHRvIGJ5IGNoYXJzLgog
QHJlc3VsdCAgICAgICAgICAgQSBKU1N0cmluZyBjb250YWluaW5nIGNoYXJzLiBPd25lcnNoaXAg
Zm9sbG93cyB0aGUgQ3JlYXRlIFJ1bGUuCiAqLwotSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMpOworSlNf
RVhQT1JUIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoY29uc3QgSlND
aGFyKiBjaGFycywgc2l6ZV90IG51bUNoYXJzKTsKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3Qg
ICAgICAgICBDcmVhdGVzIGEgSmF2YVNjcmlwdCBzdHJpbmcgZnJvbSBhIG51bGwtdGVybWluYXRl
ZCBVVEY4IHN0cmluZy4KIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBudWxsLXRlcm1pbmF0ZWQgVVRG
OCBzdHJpbmcgdG8gY29weSBpbnRvIHRoZSBuZXcgSlNTdHJpbmcuCiBAcmVzdWx0ICAgICAgICAg
ICBBIEpTU3RyaW5nIGNvbnRhaW5pbmcgc3RyaW5nLiBPd25lcnNoaXAgZm9sbG93cyB0aGUgQ3Jl
YXRlIFJ1bGUuCiAqLwotSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
Y29uc3QgY2hhciogc3RyaW5nKTsKK0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNjgsMTMgKzY4LDEzIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW4KIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBKU1N0cmluZyB0byByZXRhaW4uCiBAcmVzdWx0ICAg
ICAgICAgICBBIEpTU3RyaW5nIHRoYXQgaXMgdGhlIHNhbWUgYXMgc3RyaW5nLgogKi8KLUpTU3Ry
aW5nUmVmIEpTU3RyaW5nUmV0YWluKEpTU3RyaW5nUmVmIHN0cmluZyk7CitKU19FWFBPUlQgSlNT
dHJpbmdSZWYgSlNTdHJpbmdSZXRhaW4oSlNTdHJpbmdSZWYgc3RyaW5nKTsKIC8qIQogQGZ1bmN0
aW9uCiBAYWJzdHJhY3QgICAgICAgICBSZWxlYXNlcyBhIEphdmFTY3JpcHQgc3RyaW5nLgogQHBh
cmFtIHN0cmluZyAgICAgVGhlIEpTU3RyaW5nIHRvIHJlbGVhc2UuCiAqLwotdm9pZCBKU1N0cmlu
Z1JlbGVhc2UoSlNTdHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VYUE9SVCB2b2lkIEpTU3RyaW5nUmVs
ZWFzZShKU1N0cmluZ1JlZiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtODIsNyArODIs
NyBAQCB2b2lkIEpTU3RyaW5nUmVsZWFzZShKU1N0cmluZ1JlZiBzdHJpbmcpCiBAcGFyYW0gc3Ry
aW5nICAgICBUaGUgSlNTdHJpbmcgd2hvc2UgbGVuZ3RoIChpbiBVbmljb2RlIGNoYXJhY3RlcnMp
IHlvdSB3YW50IHRvIGtub3cuCiBAcmVzdWx0ICAgICAgICAgICBUaGUgbnVtYmVyIG9mIFVuaWNv
ZGUgY2hhcmFjdGVycyBzdG9yZWQgaW4gc3RyaW5nLgogKi8KLXNpemVfdCBKU1N0cmluZ0dldExl
bmd0aChKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIHNpemVfdCBKU1N0cmluZ0dldExl
bmd0aChKU1N0cmluZ1JlZiBzdHJpbmcpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCAgICAg
ICAgIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIGNoYXJhY3RlciBidWZmZXIgdGhh
dCAKQEAgLTkxLDcgKzkxLDcgQEAgc2l6ZV90IEpTU3RyaW5nR2V0TGVuZ3RoKEpTU3RyaW5nUmVm
IHN0cgogQHJlc3VsdCAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIGNoYXJhY3Rl
ciBidWZmZXIgdGhhdCBzZXJ2ZXMgYXMgc3RyaW5nJ3MgCiAgYmFja2luZyBzdG9yZSwgd2hpY2gg
d2lsbCBiZSBkZWFsbG9jYXRlZCB3aGVuIHN0cmluZyBpcyBkZWFsbG9jYXRlZC4KICovCi1jb25z
dCBKU0NoYXIqIEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihKU1N0cmluZ1JlZiBzdHJpbmcpOwor
SlNfRVhQT1JUIGNvbnN0IEpTQ2hhciogSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKEpTU3RyaW5n
UmVmIHN0cmluZyk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDMsNyArMTAzLDcgQEAgY29uc3Qg
SlNDaGFyKiBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoSgogIG51bGwtdGVybWluYXRlZCBVVEY4
IHN0cmluZy4gVGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBjb252ZXJzaW9uIGFjdHVhbGx5
IGVuZHMgCiAgdXAgcmVxdWlyaW5nIGNvdWxkIGJlIGxlc3MgdGhhbiB0aGlzLCBidXQgbmV2ZXIg
bW9yZS4KICovCi1zaXplX3QgSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKEpTU3Ry
aW5nUmVmIHN0cmluZyk7CitKU19FWFBPUlQgc2l6ZV90IEpTU3RyaW5nR2V0TWF4aW11bVVURjhD
U3RyaW5nU2l6ZShKU1N0cmluZ1JlZiBzdHJpbmcpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFj
dCBDb252ZXJ0cyBhIEphdmFTY3JpcHQgc3RyaW5nIGludG8gYSBudWxsLXRlcm1pbmF0ZWQgVVRG
OCBzdHJpbmcsIApAQCAtMTE3LDcgKzExNyw3IEBAIHNpemVfdCBKU1N0cmluZ0dldE1heGltdW1V
VEY4Q1N0cmluZ1NpemUKIEBwYXJhbSBidWZmZXJTaXplIFRoZSBzaXplIG9mIHRoZSBleHRlcm5h
bCBidWZmZXIgaW4gYnl0ZXMuCiBAcmVzdWx0IFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBp
bnRvIGJ1ZmZlciAoaW5jbHVkaW5nIHRoZSBudWxsLXRlcm1pbmF0b3IgYnl0ZSkuCiAqLwotc2l6
ZV90IEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoSlNTdHJpbmdSZWYgc3RyaW5nLCBjaGFyKiBidWZm
ZXIsIHNpemVfdCBidWZmZXJTaXplKTsKK0pTX0VYUE9SVCBzaXplX3QgSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyhKU1N0cmluZ1JlZiBzdHJpbmcsIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNp
emUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTI2LDcgKzEyNiw3IEBAIHNpemVfdCBKU1N0cmlu
Z0dldFVURjhDU3RyaW5nKEpTU3RyaW5nUmUKIEBwYXJhbSBiICAgICAgVGhlIHNlY29uZCBKU1N0
cmluZyB0byB0ZXN0LgogQHJlc3VsdCAgICAgICB0cnVlIGlmIHRoZSB0d28gc3RyaW5ncyBtYXRj
aCwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJvb2wgSlNTdHJpbmdJc0VxdWFsKEpTU3RyaW5nUmVm
IGEsIEpTU3RyaW5nUmVmIGIpOworSlNfRVhQT1JUIGJvb2wgSlNTdHJpbmdJc0VxdWFsKEpTU3Ry
aW5nUmVmIGEsIEpTU3RyaW5nUmVmIGIpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCAgICAg
VGVzdHMgd2hldGhlciBhIEphdmFTY3JpcHQgc3RyaW5nIG1hdGNoZXMgYSBudWxsLXRlcm1pbmF0
ZWQgVVRGOCBzdHJpbmcuCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBKU1N0cmluZ0lzRXF1YWwo
SlNTdHJpbmdSZWYgYSwgSlNTdAogQHBhcmFtIGIgICAgICBUaGUgbnVsbC10ZXJtaW5hdGVkIFVU
Rjggc3RyaW5nIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgIHRydWUgaWYgdGhlIHR3byBzdHJpbmdz
IG1hdGNoLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKEpTU3RyaW5nUmVmIGEsIGNvbnN0IGNoYXIqIGIpOworSlNfRVhQT1JUIGJvb2wgSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhKU1N0cmluZ1JlZiBhLCBjb25zdCBjaGFyKiBiKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJp
bmdSZWZCU1RSLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVm
QlNUUi5oCShyZXZpc2lvbiAyODAyNCkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1Jl
ZkJTVFIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBleHRlcm4gIkMiIHsKIEBw
YXJhbSBzdHJpbmcgICAgIFRoZSBCU1RSIHRvIGNvcHkgaW50byB0aGUgbmV3IEpTU3RyaW5nLgog
QHJlc3VsdCAgICAgICAgICAgQSBKU1N0cmluZyBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlw
IGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRl
V2l0aEJTVFIoY29uc3QgQlNUUiBzdHJpbmcpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTU3Ry
aW5nQ3JlYXRlV2l0aEJTVFIoY29uc3QgQlNUUiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNTQsNyArNTQsNyBAQCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhCU1RSKGNvbnN0
CiBAcGFyYW0gc3RyaW5nICAgICBUaGUgSlNTdHJpbmcgdG8gY29weSBpbnRvIHRoZSBuZXcgQlNU
Ui4KIEByZXN1bHQgICAgICAgICAgIEEgQlNUUiBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlw
IGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUJTVFIgSlNTdHJpbmdDb3B5QlNUUihjb25z
dCBKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIEJTVFIgSlNTdHJpbmdDb3B5QlNUUihj
b25zdCBKU1N0cmluZ1JlZiBzdHJpbmcpOwogICAgIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9Cklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmgJKHJldmlzaW9uIDI4MDI0KQorKysgSmF2
YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmQ0YuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyAr
NDQsNyBAQCBleHRlcm4gIkMiIHsKIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBDRlN0cmluZyB0byBj
b3B5IGludG8gdGhlIG5ldyBKU1N0cmluZy4KIEByZXN1bHQgICAgICAgICAgIEEgSlNTdHJpbmcg
Y29udGFpbmluZyBzdHJpbmcuIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICov
Ci1KU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBzdHJp
bmcpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENG
U3RyaW5nUmVmIHN0cmluZyk7CiAvKiEKIEBmdW5jdGlvbgogQGFic3RyYWN0ICAgICAgICAgQ3Jl
YXRlcyBhIENGU3RyaW5nIGZyb20gYSBKYXZhU2NyaXB0IHN0cmluZy4KQEAgLTUyLDcgKzUyLDcg
QEAgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoQwogQHBhcmFtIHN0cmlu
ZyAgICAgVGhlIEpTU3RyaW5nIHRvIGNvcHkgaW50byB0aGUgbmV3IENGU3RyaW5nLgogQHJlc3Vs
dCAgICAgICAgICAgQSBDRlN0cmluZyBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlwIGZvbGxv
d3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUNGU3RyaW5nUmVmIEpTU3RyaW5nQ29weUNGU3RyaW5n
KENGQWxsb2NhdG9yUmVmIGFsbG9jLCBKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIENG
U3RyaW5nUmVmIEpTU3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jLCBKU1N0
cmluZ1JlZiBzdHJpbmcpOwogICAgIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlUmVmLmgJKHJldmlzaW9uIDI4MDI0KQorKysgSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWVSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBleHRlcm4gIkMi
IHsKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB3aG9zZSB0eXBlIHlvdSB3YW50IHRvIG9i
dGFpbi4KIEByZXN1bHQgICAgICAgICBBIHZhbHVlIG9mIHR5cGUgSlNUeXBlIHRoYXQgaWRlbnRp
ZmllcyB2YWx1ZSdzIHR5cGUuCiAqLwotSlNUeXBlIEpTVmFsdWVHZXRUeXBlKEpTQ29udGV4dFJl
ZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIEpTVHlwZSBKU1ZhbHVlR2V0VHlw
ZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rpb24K
QEAgLTcwLDcgKzcwLDcgQEAgSlNUeXBlIEpTVmFsdWVHZXRUeXBlKEpTQ29udGV4dFJlZiBjdHgs
IAogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAg
dHJ1ZSBpZiB2YWx1ZSdzIHR5cGUgaXMgdGhlIHVuZGVmaW5lZCB0eXBlLCBvdGhlcndpc2UgZmFs
c2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNVbmRlZmluZWQoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1
ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNVbmRlZmluZWQoSlNDb250ZXh0
UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC03OSw3ICs3
OSw3IEBAIGJvb2wgSlNWYWx1ZUlzVW5kZWZpbmVkKEpTQ29udGV4dFJlZiBjdHgKIEBwYXJhbSB2
YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFs
dWUncyB0eXBlIGlzIHRoZSBudWxsIHR5cGUsIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpT
VmFsdWVJc051bGwoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBP
UlQgYm9vbCBKU1ZhbHVlSXNOdWxsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUp
OwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtODgsNyArODgsNyBAQCBib29sIEpTVmFsdWVJc051bGwo
SlNDb250ZXh0UmVmIGN0eCwgSlNWCiBAcGFyYW0gdmFsdWUgICAgVGhlIEpTVmFsdWUgdG8gdGVz
dC4KIEByZXN1bHQgICAgICAgICB0cnVlIGlmIHZhbHVlJ3MgdHlwZSBpcyB0aGUgYm9vbGVhbiB0
eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNCb29sZWFuKEpTQ29udGV4
dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzQm9v
bGVhbihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rp
b24KQEAgLTk3LDcgKzk3LDcgQEAgYm9vbCBKU1ZhbHVlSXNCb29sZWFuKEpTQ29udGV4dFJlZiBj
dHgsIAogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAg
ICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUgaXMgdGhlIG51bWJlciB0eXBlLCBvdGhlcndpc2UgZmFs
c2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDYsNyArMTA2LDcg
QEAgYm9vbCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSgogQHBhcmFtIHZhbHVl
ICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdz
IHR5cGUgaXMgdGhlIHN0cmluZyB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1Zh
bHVlSXNTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBP
UlQgYm9vbCBKU1ZhbHVlSXNTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMTUsNyArMTE1LDcgQEAgYm9vbCBKU1ZhbHVlSXNT
dHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSgogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRv
IHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUgaXMgdGhlIG9iamVj
dCB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNPYmplY3QoSlNDb250
ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNP
YmplY3QoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0
aW9uCkBAIC0xMjUsNyArMTI1LDcgQEAgYm9vbCBKU1ZhbHVlSXNPYmplY3QoSlNDb250ZXh0UmVm
IGN0eCwgSgogQHBhcmFtIGpzQ2xhc3MgVGhlIEpTQ2xhc3MgdG8gdGVzdCBhZ2FpbnN0LgogQHJl
c3VsdCB0cnVlIGlmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgaGFzIGpzQ2xhc3MgaW4gaXRzIGNs
YXNzIGNoYWluLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNs
YXNzKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFz
cyk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKEpTQ29udGV4dFJlZiBj
dHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFzcyk7CiAKIC8vIENvbXBhcmlu
ZyB2YWx1ZXMKIApAQCAtMTM4LDcgKzEzOCw3IEBAIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFz
cyhKU0NvbnRleHRSZWYKIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJl
ZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlv
dSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcmVzdWx0IHRydWUgaWYgdGhl
IHR3byB2YWx1ZXMgYXJlIGVxdWFsLCBmYWxzZSBpZiB0aGV5IGFyZSBub3QgZXF1YWwgb3IgYW4g
ZXhjZXB0aW9uIGlzIHRocm93bi4KICovCi1ib29sIEpTVmFsdWVJc0VxdWFsKEpTQ29udGV4dFJl
ZiBjdHgsIEpTVmFsdWVSZWYgYSwgSlNWYWx1ZVJlZiBiLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
OworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzRXF1YWwoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1
ZVJlZiBhLCBKU1ZhbHVlUmVmIGIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8qIQogQGZ1
bmN0aW9uCkBAIC0xNDgsNyArMTQ4LDcgQEAgYm9vbCBKU1ZhbHVlSXNFcXVhbChKU0NvbnRleHRS
ZWYgY3R4LCBKUwogQHBhcmFtIGIgICAgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gdGVzdC4KIEBy
ZXN1bHQgICAgICAgICB0cnVlIGlmIHRoZSB0d28gdmFsdWVzIGFyZSBzdHJpY3QgZXF1YWwsIG90
aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpTVmFsdWVJc1N0cmljdEVxdWFsKEpTQ29udGV4dFJl
ZiBjdHgsIEpTVmFsdWVSZWYgYSwgSlNWYWx1ZVJlZiBiKTsKK0pTX0VYUE9SVCBib29sIEpTVmFs
dWVJc1N0cmljdEVxdWFsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgYSwgSlNWYWx1ZVJl
ZiBiKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIEpTVmFsdWVJ
c1N0cmljdEVxdWFsKEpTQ29udGV4dFJlZiBjCiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0
byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBh
c3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3Vs
dCB0cnVlIGlmIHZhbHVlIGlzIGFuIG9iamVjdCBjb25zdHJ1Y3RlZCBieSBjb25zdHJ1Y3Rvciwg
YXMgY29tcGFyZWQgYnkgdGhlIEpTIGluc3RhbmNlb2Ygb3BlcmF0b3IsIG90aGVyd2lzZSBmYWxz
ZS4KICovCi1ib29sIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYg
Y3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25zdHJ1Y3RvciwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1
Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25z
dHJ1Y3RvciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLy8gQ3JlYXRpbmcgdmFsdWVzCiAK
QEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihK
U0NvCiBAcGFyYW0gY3R4ICBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgogQHJlc3VsdCAg
ICAgICAgIFRoZSB1bmlxdWUgdW5kZWZpbmVkIHZhbHVlLgogKi8KLUpTVmFsdWVSZWYgSlNWYWx1
ZU1ha2VVbmRlZmluZWQoSlNDb250ZXh0UmVmIGN0eCk7CitKU19FWFBPUlQgSlNWYWx1ZVJlZiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChKU0NvbnRleHRSZWYgY3R4KTsKIAogLyohCiBAZnVuY3Rpb24K
QEAgLTE3Nyw3ICsxNzcsNyBAQCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlVW5kZWZpbmVkKEpTQ29u
dGV4CiBAcGFyYW0gY3R4ICBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgogQHJlc3VsdCAg
ICAgICAgIFRoZSB1bmlxdWUgbnVsbCB2YWx1ZS4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtl
TnVsbChKU0NvbnRleHRSZWYgY3R4KTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtl
TnVsbChKU0NvbnRleHRSZWYgY3R4KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE4Niw3ICsxODYs
NyBAQCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVsbChKU0NvbnRleHRSZWYgCiBAcGFyYW0gYm9v
bGVhbiAgVGhlIGJvb2wgdG8gYXNzaWduIHRvIHRoZSBuZXdseSBjcmVhdGVkIEpTVmFsdWUuCiBA
cmVzdWx0ICAgICAgICAgQSBKU1ZhbHVlIG9mIHRoZSBib29sZWFuIHR5cGUsIHJlcHJlc2VudGlu
ZyB0aGUgdmFsdWUgb2YgYm9vbGVhbi4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9vbGVh
bihKU0NvbnRleHRSZWYgY3R4LCBib29sIGJvb2xlYW4pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYg
SlNWYWx1ZU1ha2VCb29sZWFuKEpTQ29udGV4dFJlZiBjdHgsIGJvb2wgYm9vbGVhbik7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC0xOTUsNyArMTk1LDcgQEAgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUJv
b2xlYW4oSlNDb250ZXh0UgogQHBhcmFtIG51bWJlciAgIFRoZSBkb3VibGUgdG8gYXNzaWduIHRv
IHRoZSBuZXdseSBjcmVhdGVkIEpTVmFsdWUuCiBAcmVzdWx0ICAgICAgICAgQSBKU1ZhbHVlIG9m
IHRoZSBudW1iZXIgdHlwZSwgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiBudW1iZXIuCiAqLwot
SlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZU51bWJlcihKU0NvbnRleHRSZWYgY3R4LCBkb3VibGUgbnVt
YmVyKTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVtYmVyKEpTQ29udGV4dFJl
ZiBjdHgsIGRvdWJsZSBudW1iZXIpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMjA1LDcgKzIwNSw3
IEBAIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlNDb250ZXh0UmUKICBuZXdseSBjcmVh
dGVkIEpTVmFsdWUgcmV0YWlucyBzdHJpbmcsIGFuZCByZWxlYXNlcyBpdCB1cG9uIGdhcmJhZ2Ug
Y29sbGVjdGlvbi4KIEByZXN1bHQgICAgICAgICBBIEpTVmFsdWUgb2YgdGhlIHN0cmluZyB0eXBl
LCByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIHN0cmluZy4KICovCi1KU1ZhbHVlUmVmIEpTVmFs
dWVNYWtlU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZyk7CitKU19F
WFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0
cmluZ1JlZiBzdHJpbmcpOwogCiAvLyBDb252ZXJ0aW5nIHRvIHByaW1pdGl2ZSB2YWx1ZXMKIApA
QCAtMjE2LDcgKzIxNiw3IEBAIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0
UmUKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byBjb252ZXJ0LgogQHJlc3VsdCAgICAg
ICAgIFRoZSBib29sZWFuIHJlc3VsdCBvZiBjb252ZXJzaW9uLgogKi8KLWJvb2wgSlNWYWx1ZVRv
Qm9vbGVhbihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKK0pTX0VYUE9SVCBi
b29sIEpTVmFsdWVUb0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0yMjYsNyArMjI2LDcgQEAgYm9vbCBKU1ZhbHVlVG9Cb29s
ZWFuKEpTQ29udGV4dFJlZiBjdHgsIAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBK
U1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5V
TEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgICAg
ICAgICBUaGUgbnVtZXJpYyByZXN1bHQgb2YgY29udmVyc2lvbiwgb3IgTmFOIGlmIGFuIGV4Y2Vw
dGlvbiBpcyB0aHJvd24uCiAqLwotZG91YmxlIEpTVmFsdWVUb051bWJlcihKU0NvbnRleHRSZWYg
Y3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JU
IGRvdWJsZSBKU1ZhbHVlVG9OdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTIzNiw3ICsy
MzYsNyBAQCBkb3VibGUgSlNWYWx1ZVRvTnVtYmVyKEpTQ29udGV4dFJlZiBjdHgsCiBAcGFyYW0g
ZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUg
YW4gZXhjZXB0aW9uLgogQHJlc3VsdCAgICAgICAgIEEgSlNTdHJpbmcgd2l0aCB0aGUgcmVzdWx0
IG9mIGNvbnZlcnNpb24sIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4gT3duZXJz
aGlwIGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0
cmluZ0NvcHkoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1ZhbHVlVG9TdHJpbmdDb3B5KEpT
Q29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0yNDYsNyArMjQ2LDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1
ZVRvU3RyaW5nQ29weShKU0NvbnRleAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBK
U1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5V
TEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgICAg
ICAgICBUaGUgSlNPYmplY3QgcmVzdWx0IG9mIGNvbnZlcnNpb24sIG9yIE5VTEwgaWYgYW4gZXhj
ZXB0aW9uIGlzIHRocm93bi4KICovCi1KU09iamVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlNDb250
ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pT
X0VYUE9SVCBKU09iamVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlNDb250ZXh0UmVmIGN0eCwgSlNW
YWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLy8gR2FyYmFnZSBjb2xs
ZWN0aW9uCiAvKiEKQEAgLTI1OCw3ICsyNTgsNyBAQCBKU09iamVjdFJlZiBKU1ZhbHVlVG9PYmpl
Y3QoSlNDb250ZXh0UmVmCiAgCiBBIHZhbHVlIG1heSBiZSBwcm90ZWN0ZWQgbXVsdGlwbGUgdGlt
ZXMgYW5kIG11c3QgYmUgdW5wcm90ZWN0ZWQgYW4gZXF1YWwgbnVtYmVyIG9mIHRpbWVzIGJlZm9y
ZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IgZ2FyYmFnZSBjb2xsZWN0aW9uLgogKi8KLXZvaWQgSlNW
YWx1ZVByb3RlY3QoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBP
UlQgdm9pZCBKU1ZhbHVlUHJvdGVjdChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVl
KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIEpTVmFsdWVQcm90
ZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTCiBAZGlzY3Vzc2lvbiAgICAgQSB2YWx1ZSBtYXkgYmUg
cHJvdGVjdGVkIG11bHRpcGxlIHRpbWVzIGFuZCBtdXN0IGJlIHVucHJvdGVjdGVkIGFuIAogIGVx
dWFsIG51bWJlciBvZiB0aW1lcyBiZWZvcmUgYmVjb21pbmcgZWxpZ2libGUgZm9yIGdhcmJhZ2Ug
Y29sbGVjdGlvbi4KICovCi12b2lkIEpTVmFsdWVVbnByb3RlY3QoSlNDb250ZXh0UmVmIGN0eCwg
SlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgdm9pZCBKU1ZhbHVlVW5wcm90ZWN0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17522</attachid>
            <date>2007-11-25 18:54:20 -0800</date>
            <delta_ts>2007-11-26 23:33:37 -0800</delta_ts>
            <desc>Update Win check and don&apos;t bother with Metrowerks</desc>
            <filename>js-export.patch</filename>
            <type>text/plain</type>
            <size>32059</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MDI5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTEtMjUgIEFscCBUb2tl
ciAgPGFscEBhdG9rZXIuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTY5
CisgICAgICAgIFtndGtdIEdUSyBKYXZhU2NyaXB0Q29yZSBuZWVkcyB0byBleHBvcnQgc3ltYm9s
cyBmb3IgSlNDIEFQSSBhbmQgV1RGCisKKyAgICAgICAgSW50cm9kdWNlIEpTX0VYUE9SVCB0byBt
YXJrIHN5bWJvbHMgdG8gYmUgZXhwb3J0ZWQgYXMgcHVibGljIEFQSS4KKworICAgICAgICBFeHBv
cnQgYWxsIHB1YmxpYyBzeW1ib2xzIGluIHRoZSBKYXZhU2NyaXB0Q29yZSBDIEFQSS4KKworICAg
ICAgICBUaGlzIG1hdGNoZXMgY29udmVudGlvbnMgZm9yIGV4cG9ydGluZyBzeW1ib2xzIHNldCBi
eSB0aGUgQ0YgYW5kIENHCisgICAgICAgIGZyYW1ld29ya3MuCisKKyAgICAgICAgKiBBUEkvSlNC
YXNlLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5oOgorICAgICAgICAqIEFQSS9KU09i
amVjdFJlZi5oOgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5oOgorICAgICAgICAqIEFQSS9K
U1N0cmluZ1JlZkJTVFIuaDoKKyAgICAgICAgKiBBUEkvSlNTdHJpbmdSZWZDRi5oOgorICAgICAg
ICAqIEFQSS9KU1ZhbHVlUmVmLmg6CisKIDIwMDctMTEtMjQgIExhc3psbyBHb21ib3MgIDxsYXN6
bG8uZ29tYm9zQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmgJKHJldmlzaW9uIDI4MDI5KQorKysgSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCwyMyBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhCiAvKiEgQHR5cGVkZWYgSlNPYmpl
Y3RSZWYgQSBKYXZhU2NyaXB0IG9iamVjdC4gQSBKU09iamVjdCBpcyBhIEpTVmFsdWUuICovCiB0
eXBlZGVmIHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU09iamVjdFJlZjsKIAorLyogSmF2YVNjcmlw
dCBzeW1ib2wgZXhwb3J0cyAqLworCisjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lO
MzIpCisgICAgI3VuZGVmIEpTX0VYUE9SVAorICAgICNpZiBkZWZpbmVkKEpTX0JVSUxESU5HX0pT
KQorICAgICAgICAjZGVmaW5lIEpTX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkgZXh0ZXJu
CisgICAgI2Vsc2UKKyAgICAgICAgI2RlZmluZSBKU19FWFBPUlQgX19kZWNsc3BlYyhkbGxpbXBv
cnQpIGV4dGVybgorICAgICNlbmRpZgorI2Vsc2UKKyAgICAjZGVmaW5lIEpTX0VYUE9SVCBfX2F0
dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChKU19FWFBPUlQpCisgICAgI2RlZmluZSBKU19FWFBPUlQgZXh0ZXJuCisjZW5kaWYKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgpAQCAtNzUsNyArOTIsNyBAQCBl
eHRlcm4gIkMiIHsKIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBp
biB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBk
byBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcmVzdWx0IFRoZSBKU1ZhbHVlIHRo
YXQgcmVzdWx0cyBmcm9tIGV2YWx1YXRpbmcgc2NyaXB0LCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlv
biBpcyB0aHJvd24uCiAqLwotSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJl
ZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJp
bmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3Ry
aW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24gSlNDaGVja1NjcmlwdFN5bnRheApAQCAtODcsNyAr
MTA0LDcgQEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZgogQHBhcmFt
IGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGEg
c3ludGF4IGVycm9yIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBj
YXJlIHRvIHN0b3JlIGEgc3ludGF4IGVycm9yIGV4Y2VwdGlvbi4KIEByZXN1bHQgdHJ1ZSBpZiB0
aGUgc2NyaXB0IGlzIHN5bnRhY3RpY2FsbHkgY29ycmVjdCwgb3RoZXJ3aXNlIGZhbHNlLgogKi8K
LWJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
Y3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgo
SlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyY2VV
UkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC0xMDMsNyArMTIwLDcgQEAgYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4
KEpTQ29udGV4dFJlZiBjdAogIEF0IHRoYXQgcG9pbnQsIGEgZ2FyYmFnZSBjb2xsZWN0aW9uIGNh
biBmcmVlIHRoZSBvYmplY3RzIHN0aWxsIHJlZmVyZW5jZWQgYnkgdGhlIAogIEpTR2xvYmFsQ29u
dGV4dFJlZidzIGdsb2JhbCBvYmplY3QsIGFsb25nIHdpdGggdGhlIGdsb2JhbCBvYmplY3QgaXRz
ZWxmLgogKi8KLXZvaWQgSlNHYXJiYWdlQ29sbGVjdChKU0NvbnRleHRSZWYgY3R4KTsKK0pTX0VY
UE9SVCB2b2lkIEpTR2FyYmFnZUNvbGxlY3QoSlNDb250ZXh0UmVmIGN0eCk7CiAKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuaAkocmV2aXNpb24g
MjgwMjkpCisrKyBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgZXh0ZXJuICJDIiB7CiAgTlVMTCB0byB1c2UgdGhlIGRlZmF1
bHQgb2JqZWN0IGNsYXNzLgogQHJlc3VsdCBBIEpTR2xvYmFsQ29udGV4dCB3aXRoIGEgZ2xvYmFs
IG9iamVjdCBvZiBjbGFzcyBnbG9iYWxPYmplY3RDbGFzcy4KICovCi1KU0dsb2JhbENvbnRleHRS
ZWYgSlNHbG9iYWxDb250ZXh0Q3JlYXRlKEpTQ2xhc3NSZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpOwor
SlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUoSlNDbGFz
c1JlZiBnbG9iYWxPYmplY3RDbGFzcyk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01MywxNCArNTMs
MTQgQEAgSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xvYmFsQ29udGV4dENyZWF0ZQogQHBhcmFtIGN0
eCBUaGUgSlNHbG9iYWxDb250ZXh0IHRvIHJldGFpbi4KIEByZXN1bHQgQSBKU0dsb2JhbENvbnRl
eHQgdGhhdCBpcyB0aGUgc2FtZSBhcyBjdHguCiAqLwotSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xv
YmFsQ29udGV4dFJldGFpbihKU0dsb2JhbENvbnRleHRSZWYgY3R4KTsKK0pTX0VYUE9SVCBKU0ds
b2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0UmV0YWluKEpTR2xvYmFsQ29udGV4dFJlZiBj
dHgpOwogCiAvKiEKIEBmdW5jdGlvbgogQGFic3RyYWN0IFJlbGVhc2VzIGEgZ2xvYmFsIEphdmFT
Y3JpcHQgZXhlY3V0aW9uIGNvbnRleHQuCiBAcGFyYW0gY3R4IFRoZSBKU0dsb2JhbENvbnRleHQg
dG8gcmVsZWFzZS4KICovCi12b2lkIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoSlNHbG9iYWxDb250
ZXh0UmVmIGN0eCk7CitKU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRleHRSZWxlYXNlKEpTR2xv
YmFsQ29udGV4dFJlZiBjdHgpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjgsNyArNjgsNyBAQCB2
b2lkIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoSlNHbG9iYWxDb250CiBAcGFyYW0gY3R4IFRoZSBK
U0NvbnRleHQgd2hvc2UgZ2xvYmFsIG9iamVjdCB5b3Ugd2FudCB0byBnZXQuCiBAcmVzdWx0IGN0
eCdzIGdsb2JhbCBvYmplY3QuCiAqLwotSlNPYmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2Jq
ZWN0KEpTQ29udGV4dFJlZiBjdHgpOworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTQ29udGV4dEdl
dEdsb2JhbE9iamVjdChKU0NvbnRleHRSZWYgY3R4KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuaAkocmV2aXNpb24gMjgwMjkpCisrKyBKYXZh
U2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDcgKzM3
Niw3IEBAIGV4dGVybiBjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiBrSlNDbGFzc0QKIEBwYXJhbSBk
ZWZpbml0aW9uIEEgSlNDbGFzc0RlZmluaXRpb24gdGhhdCBkZWZpbmVzIHRoZSBjbGFzcy4KIEBy
ZXN1bHQgQSBKU0NsYXNzIHdpdGggdGhlIGdpdmVuIGRlZmluaXRpb24uIE93bmVyc2hpcCBmb2xs
b3dzIHRoZSBDcmVhdGUgUnVsZS4KICovCi1KU0NsYXNzUmVmIEpTQ2xhc3NDcmVhdGUoY29uc3Qg
SlNDbGFzc0RlZmluaXRpb24qIGRlZmluaXRpb24pOworSlNfRVhQT1JUIEpTQ2xhc3NSZWYgSlND
bGFzc0NyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbik7CiAKIC8qIQog
QGZ1bmN0aW9uCkBAIC0zODQsMTQgKzM4NCwxNCBAQCBKU0NsYXNzUmVmIEpTQ2xhc3NDcmVhdGUo
Y29uc3QgSlNDbGFzc0RlCiBAcGFyYW0ganNDbGFzcyBUaGUgSlNDbGFzcyB0byByZXRhaW4uCiBA
cmVzdWx0IEEgSlNDbGFzcyB0aGF0IGlzIHRoZSBzYW1lIGFzIGpzQ2xhc3MuCiAqLwotSlNDbGFz
c1JlZiBKU0NsYXNzUmV0YWluKEpTQ2xhc3NSZWYganNDbGFzcyk7CitKU19FWFBPUlQgSlNDbGFz
c1JlZiBKU0NsYXNzUmV0YWluKEpTQ2xhc3NSZWYganNDbGFzcyk7CiAKIC8qIQogQGZ1bmN0aW9u
CiBAYWJzdHJhY3QgUmVsZWFzZXMgYSBKYXZhU2NyaXB0IGNsYXNzLgogQHBhcmFtIGpzQ2xhc3Mg
VGhlIEpTQ2xhc3MgdG8gcmVsZWFzZS4KICovCi12b2lkIEpTQ2xhc3NSZWxlYXNlKEpTQ2xhc3NS
ZWYganNDbGFzcyk7CitKU19FWFBPUlQgdm9pZCBKU0NsYXNzUmVsZWFzZShKU0NsYXNzUmVmIGpz
Q2xhc3MpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSlNDbGFz
c1JlbGVhc2UoSlNDbGFzc1JlZiBqc0NsYXNzKTsKIAogZGF0YSBpcyBzZXQgb24gdGhlIGNyZWF0
ZWQgb2JqZWN0IGJlZm9yZSB0aGUgaW50aWFsaXplIG1ldGhvZHMgaW4gaXRzIGNsYXNzIGNoYWlu
IGFyZSBjYWxsZWQuIFRoaXMgZW5hYmxlcyB0aGUgaW5pdGlhbGl6ZSBtZXRob2RzIHRvIHJldHJp
ZXZlIGFuZCBtYW5pcHVsYXRlIGRhdGEgdGhyb3VnaCBKU09iamVjdEdldFByaXZhdGUuCiAqLwot
SlNPYmplY3RSZWYgSlNPYmplY3RNYWtlKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganND
bGFzcywgdm9pZCogZGF0YSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlKEpT
Q29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganNDbGFzcywgdm9pZCogZGF0YSk7CiAKIC8qIQog
QGZ1bmN0aW9uCkBAIC00MTQsNyArNDE0LDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlKEpT
Q29udGV4dFJlZiBjdAogQHBhcmFtIGNhbGxBc0Z1bmN0aW9uIFRoZSBKU09iamVjdENhbGxBc0Z1
bmN0aW9uQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZC4KIEBy
ZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgZnVuY3Rpb24uIFRoZSBvYmplY3QncyBwcm90b3R5
cGUgd2lsbCBiZSB0aGUgZGVmYXVsdCBmdW5jdGlvbiBwcm90b3R5cGUuCiAqLwotSlNPYmplY3RS
ZWYgSlNPYmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0eCwgSlNT
dHJpbmdSZWYgbmFtZSwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxBc0Z1bmN0
aW9uKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbldpdGhDYWxs
YmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCBKU09iamVjdENhbGxBc0Z1
bmN0aW9uQ2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDI1
LDcgKzQyNSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGwKIEBy
ZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgY29uc3RydWN0b3IuIFRoZSBvYmplY3QncyBwcm90
b3R5cGUgd2lsbCBiZSB0aGUgZGVmYXVsdCBvYmplY3QgcHJvdG90eXBlLgogQGRpc2N1c3Npb24g
VGhlIGRlZmF1bHQgb2JqZWN0IGNvbnN0cnVjdG9yIHRha2VzIG5vIGFyZ3VtZW50cyBhbmQgY29u
c3RydWN0cyBhbiBvYmplY3Qgb2YgY2xhc3MganNDbGFzcyB3aXRoIG5vIHByaXZhdGUgZGF0YS4K
ICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4
LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBj
YWxsQXNDb25zdHJ1Y3Rvcik7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlQ29u
c3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCBKU09iamVjdENh
bGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2sgY2FsbEFzQ29uc3RydWN0b3IpOwogCiAvKiEKIEBmdW5j
dGlvbgpAQCAtNDQxLDcgKzQ0MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUNvbnN0cnVj
dG9yKEpTQ28KIEByZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgZnVuY3Rpb24sIG9yIE5VTEwg
aWYgZWl0aGVyIGJvZHkgb3IgcGFyYW1ldGVyTmFtZXMgY29udGFpbnMgYSBzeW50YXggZXJyb3Iu
IFRoZSBvYmplY3QncyBwcm90b3R5cGUgd2lsbCBiZSB0aGUgZGVmYXVsdCBmdW5jdGlvbiBwcm90
b3R5cGUuCiBAZGlzY3Vzc2lvbiBVc2UgdGhpcyBtZXRob2Qgd2hlbiB5b3Ugd2FudCB0byBleGVj
dXRlIGEgc2NyaXB0IHJlcGVhdGVkbHksIHRvIGF2b2lkIHRoZSBjb3N0IG9mIHJlLXBhcnNpbmcg
dGhlIHNjcmlwdCBiZWZvcmUgZWFjaCBleGVjdXRpb24uCiAqLwotSlNPYmplY3RSZWYgSlNPYmpl
Y3RNYWtlRnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5zaWdu
ZWQgcGFyYW1ldGVyQ291bnQsIGNvbnN0IEpTU3RyaW5nUmVmIHBhcmFtZXRlck5hbWVzW10sIEpT
U3RyaW5nUmVmIGJvZHksIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09i
amVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNp
Z25lZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwg
SlNTdHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5l
TnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDUw
LDcgKzQ1MCw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uKEpTQ29udGUKIEBw
YXJhbSBvYmplY3QgQSBKU09iamVjdCB3aG9zZSBwcm90b3R5cGUgeW91IHdhbnQgdG8gZ2V0Lgog
QHJlc3VsdCBBIEpTVmFsdWUgdGhhdCBpcyB0aGUgb2JqZWN0J3MgcHJvdG90eXBlLgogKi8KLUpT
VmFsdWVSZWYgSlNPYmplY3RHZXRQcm90b3R5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RS
ZWYgb2JqZWN0KTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJvdG90eXBlKEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCk7CiAKIC8qIQogQGZ1bmN0aW9uCkBA
IC00NTksNyArNDU5LDcgQEAgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3RvdHlwZShKU0NvbnRl
eAogQHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3Qgd2hvc2UgcHJvdG90eXBlIHlvdSB3YW50IHRv
IHNldC4KIEBwYXJhbSB2YWx1ZSBBIEpTVmFsdWUgdG8gc2V0IGFzIHRoZSBvYmplY3QncyBwcm90
b3R5cGUuCiAqLwotdm9pZCBKU09iamVjdFNldFByb3RvdHlwZShKU0NvbnRleHRSZWYgY3R4LCBK
U09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIHZvaWQgSlNP
YmplY3RTZXRQcm90b3R5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTQ2OCw3ICs0NjgsNyBAQCB2
b2lkIEpTT2JqZWN0U2V0UHJvdG90eXBlKEpTQ29udGV4dFJlZiBjCiBAcGFyYW0gcHJvcGVydHlO
YW1lIEEgSlNTdHJpbmcgY29udGFpbmluZyB0aGUgcHJvcGVydHkncyBuYW1lLgogQHJlc3VsdCB0
cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgcHJvcGVydHkgd2hvc2UgbmFtZSBtYXRjaGVzIHByb3Bl
cnR5TmFtZSwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJvb2wgSlNPYmplY3RIYXNQcm9wZXJ0eShK
U0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5
TmFtZSk7CitKU19FWFBPUlQgYm9vbCBKU09iamVjdEhhc1Byb3BlcnR5KEpTQ29udGV4dFJlZiBj
dHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lKTsKIAogLyoh
CiBAZnVuY3Rpb24KQEAgLTQ3OSw3ICs0NzksNyBAQCBib29sIEpTT2JqZWN0SGFzUHJvcGVydHko
SlNDb250ZXh0UmVmIGN0CiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVS
ZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5
b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3VsdCBUaGUgcHJvcGVy
dHkncyB2YWx1ZSBpZiBvYmplY3QgaGFzIHRoZSBwcm9wZXJ0eSwgb3RoZXJ3aXNlIHRoZSB1bmRl
ZmluZWQgdmFsdWUuCiAqLwotSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3BlcnR5KEpTQ29udGV4
dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQ
cm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24K
QEAgLTQ5MSw3ICs0OTEsNyBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJvcGVydHkoSlNDb250
ZXh0CiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2gg
dG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNh
cmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHBhcmFtIGF0dHJpYnV0ZXMgQSBsb2dpY2FsbHkg
T1JlZCBzZXQgb2YgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgdG8gZ2l2ZSB0byB0aGUgcHJvcGVydHku
CiAqLwotdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0
UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBK
U1Byb3BlcnR5QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwor
SlNfRVhQT1JUIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiB2YWx1
ZSwgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTUwMiw3ICs1MDIsNyBAQCB2b2lkIEpTT2JqZWN0U2V0
UHJvcGVydHkoSlNDb250ZXh0UmVmIGN0CiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBh
IEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3Mg
TlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3VsdCB0
cnVlIGlmIHRoZSBkZWxldGUgb3BlcmF0aW9uIHN1Y2NlZWRzLCBvdGhlcndpc2UgZmFsc2UgKGZv
ciBleGFtcGxlLCBpZiB0aGUgcHJvcGVydHkgaGFzIHRoZSBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgYXR0cmlidXRlIHNldCkuCiAqLwotYm9vbCBKU09iamVjdERlbGV0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIGJvb2wgSlNPYmplY3RE
ZWxldGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3Ry
aW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVu
Y3Rpb24KQEAgLTUxNCw3ICs1MTQsNyBAQCBib29sIEpTT2JqZWN0RGVsZXRlUHJvcGVydHkoSlND
b250ZXh0UmVmCiBAcmVzdWx0IFRoZSBwcm9wZXJ0eSdzIHZhbHVlIGlmIG9iamVjdCBoYXMgdGhl
IHByb3BlcnR5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KIEBkaXNjdXNzaW9uIENh
bGxpbmcgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXggaXMgZXF1aXZhbGVudCB0byBjYWxsaW5n
IEpTT2JqZWN0R2V0UHJvcGVydHkgd2l0aCBhIHN0cmluZyBjb250YWluaW5nIHByb3BlcnR5SW5k
ZXgsIGJ1dCBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleCBwcm92aWRlcyBvcHRpbWl6ZWQgYWNj
ZXNzIHRvIG51bWVyaWMgcHJvcGVydGllcy4KICovCi1KU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJv
cGVydHlBdEluZGV4KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgdW5zaWdu
ZWQgcHJvcGVydHlJbmRleCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU1Zh
bHVlUmVmIEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4KEpTQ29udGV4dFJlZiBjdHgsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTUyNiw3ICs1MjYsNyBAQCBKU1ZhbHVlUmVmIEpT
T2JqZWN0R2V0UHJvcGVydHlBdEluZGV4KEpTCiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0
byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBh
c3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQGRpc2N1
c3Npb24gQ2FsbGluZyBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleCBpcyBlcXVpdmFsZW50IHRv
IGNhbGxpbmcgSlNPYmplY3RTZXRQcm9wZXJ0eSB3aXRoIGEgc3RyaW5nIGNvbnRhaW5pbmcgcHJv
cGVydHlJbmRleCwgYnV0IEpTT2JqZWN0U2V0UHJvcGVydHlBdEluZGV4IHByb3ZpZGVzIG9wdGlt
aXplZCBhY2Nlc3MgdG8gbnVtZXJpYyBwcm9wZXJ0aWVzLgogKi8KLXZvaWQgSlNPYmplY3RTZXRQ
cm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNp
Z25lZCBwcm9wZXJ0eUluZGV4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOworSlNfRVhQT1JUIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBKU1Zh
bHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250
ZXgKIEBwYXJhbSBvYmplY3QgQSBKU09iamVjdCB3aG9zZSBwcml2YXRlIGRhdGEgeW91IHdhbnQg
dG8gZ2V0LgogQHJlc3VsdCBBIHZvaWQqIHRoYXQgaXMgdGhlIG9iamVjdCdzIHByaXZhdGUgZGF0
YSwgaWYgdGhlIG9iamVjdCBoYXMgcHJpdmF0ZSBkYXRhLCBvdGhlcndpc2UgTlVMTC4KICovCi12
b2lkKiBKU09iamVjdEdldFByaXZhdGUoSlNPYmplY3RSZWYgb2JqZWN0KTsKK0pTX0VYUE9SVCB2
b2lkKiBKU09iamVjdEdldFByaXZhdGUoSlNPYmplY3RSZWYgb2JqZWN0KTsKIAogLyohCiBAZnVu
Y3Rpb24KQEAgLTU0NCw3ICs1NDQsNyBAQCB2b2lkKiBKU09iamVjdEdldFByaXZhdGUoSlNPYmpl
Y3RSZWYgb2JqCiBAcmVzdWx0IHRydWUgaWYgb2JqZWN0IGNhbiBzdG9yZSBwcml2YXRlIGRhdGEs
IG90aGVyd2lzZSBmYWxzZS4KIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IG9iamVjdCBjbGFzcyBk
b2VzIG5vdCBhbGxvY2F0ZSBzdG9yYWdlIGZvciBwcml2YXRlIGRhdGEuIE9ubHkgb2JqZWN0cyBj
cmVhdGVkIHdpdGggYSBub24tTlVMTCBKU0NsYXNzIGNhbiBzdG9yZSBwcml2YXRlIGRhdGEuCiAq
LwotYm9vbCBKU09iamVjdFNldFByaXZhdGUoSlNPYmplY3RSZWYgb2JqZWN0LCB2b2lkKiBkYXRh
KTsKK0pTX0VYUE9SVCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmplY3Qs
IHZvaWQqIGRhdGEpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTUzLDcgKzU1Myw3IEBAIGJvb2wg
SlNPYmplY3RTZXRQcml2YXRlKEpTT2JqZWN0UmVmIG9iamUKIEBwYXJhbSBvYmplY3QgVGhlIEpT
T2JqZWN0IHRvIHRlc3QuCiBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBjYW4gYmUgY2FsbGVk
IGFzIGEgZnVuY3Rpb24sIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpTT2JqZWN0SXNGdW5j
dGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIGJv
b2wgSlNPYmplY3RJc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVj
dCk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBKU09iamVjdElz
RnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8g
YSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNz
IE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQg
VGhlIEpTVmFsdWUgdGhhdCByZXN1bHRzIGZyb20gY2FsbGluZyBvYmplY3QgYXMgYSBmdW5jdGlv
biwgb3IgTlVMTCBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIG9yIG9iamVjdCBpcyBub3QgYSBm
dW5jdGlvbi4KICovCi1KU1ZhbHVlUmVmIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b24oSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTU3NSw3ICs1
NzUsNyBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oSlNDb250CiBAcGFyYW0g
b2JqZWN0IFRoZSBKU09iamVjdCB0byB0ZXN0LgogQHJlc3VsdCB0cnVlIGlmIHRoZSBvYmplY3Qg
Y2FuIGJlIGNhbGxlZCBhcyBhIGNvbnN0cnVjdG9yLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9v
bCBKU09iamVjdElzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0KTsKK0pTX0VYUE9SVCBib29sIEpTT2JqZWN0SXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYg
Y3R4LCBKU09iamVjdFJlZiBvYmplY3QpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTg3LDcgKzU4
Nyw3IEBAIGJvb2wgSlNPYmplY3RJc0NvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiAKIEBwYXJhbSBl
eGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiBAcmVzdWx0IFRoZSBKU09iamVjdCB0aGF0IHJlc3VsdHMgZnJvbSBjYWxs
aW5nIG9iamVjdCBhcyBhIGNvbnN0cnVjdG9yLCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlvbiBpcyB0
aHJvd24gb3Igb2JqZWN0IGlzIG5vdCBhIGNvbnN0cnVjdG9yLgogKi8KLUpTT2JqZWN0UmVmIEpT
T2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdENh
bGxBc0NvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01OTYsNyArNTk2LDcgQEAgSlNP
YmplY3RSZWYgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvcihKUwogQHBhcmFtIG9iamVjdCBUaGUg
b2JqZWN0IHdob3NlIHByb3BlcnR5IG5hbWVzIHlvdSB3YW50IHRvIGdldC4KIEByZXN1bHQgQSBK
U1Byb3BlcnR5TmFtZUFycmF5IGNvbnRhaW5pbmcgdGhlIG5hbWVzIG9iamVjdCdzIGVudW1lcmFi
bGUgcHJvcGVydGllcy4KICovCi1KU1Byb3BlcnR5TmFtZUFycmF5UmVmIEpTT2JqZWN0Q29weVBy
b3BlcnR5TmFtZXMoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKK0pTX0VY
UE9SVCBKU1Byb3BlcnR5TmFtZUFycmF5UmVmIEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoSlND
b250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKIAogLyohCiBAZnVuY3Rpb24KQEAg
LTYwNCwxNCArNjA0LDE0IEBAIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgSlNPYmplY3RDb3B5UHJv
cGUKIEBwYXJhbSBhcnJheSBUaGUgSlNQcm9wZXJ0eU5hbWVBcnJheSB0byByZXRhaW4uCiBAcmVz
dWx0IEEgSlNQcm9wZXJ0eU5hbWVBcnJheSB0aGF0IGlzIHRoZSBzYW1lIGFzIGFycmF5LgogKi8K
LUpTUHJvcGVydHlOYW1lQXJyYXlSZWYgSlNQcm9wZXJ0eU5hbWVBcnJheVJldGFpbihKU1Byb3Bl
cnR5TmFtZUFycmF5UmVmIGFycmF5KTsKK0pTX0VYUE9SVCBKU1Byb3BlcnR5TmFtZUFycmF5UmVm
IEpTUHJvcGVydHlOYW1lQXJyYXlSZXRhaW4oSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBhcnJheSk7
CiAKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgUmVsZWFzZXMgYSBKYXZhU2NyaXB0IHByb3Bl
cnR5IG5hbWUgYXJyYXkuCiBAcGFyYW0gYXJyYXkgVGhlIEpTUHJvcGV0eU5hbWVBcnJheSB0byBy
ZWxlYXNlLgogKi8KLXZvaWQgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UoSlNQcm9wZXJ0eU5h
bWVBcnJheVJlZiBhcnJheSk7CitKU19FWFBPUlQgdm9pZCBKU1Byb3BlcnR5TmFtZUFycmF5UmVs
ZWFzZShKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5KTsKIAogLyohCiBAZnVuY3Rpb24KQEAg
LTYxOSw3ICs2MTksNyBAQCB2b2lkIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKEpTUHJvcGVy
CiBAcGFyYW0gYXJyYXkgVGhlIGFycmF5IGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGNvdW50
LgogQHJlc3VsdCBBbiBpbnRlZ2VyIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgbmFtZXMgaW4gYXJy
YXkuCiAqLwotc2l6ZV90IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChKU1Byb3BlcnR5TmFt
ZUFycmF5UmVmIGFycmF5KTsKK0pTX0VYUE9SVCBzaXplX3QgSlNQcm9wZXJ0eU5hbWVBcnJheUdl
dENvdW50KEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNjI4LDcgKzYyOCw3IEBAIHNpemVfdCBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQoSlNQ
cm8KIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHByb3BlcnR5IG5hbWUgdG8gcmV0cmll
dmUuCiBAcmVzdWx0IEEgSlNTdHJpbmdSZWYgY29udGFpbmluZyB0aGUgcHJvcGVydHkgbmFtZS4K
ICovCi1KU1N0cmluZ1JlZiBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgoSlNQcm9w
ZXJ0eU5hbWVBcnJheVJlZiBhcnJheSwgc2l6ZV90IGluZGV4KTsKK0pTX0VYUE9SVCBKU1N0cmlu
Z1JlZiBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgoSlNQcm9wZXJ0eU5hbWVBcnJh
eVJlZiBhcnJheSwgc2l6ZV90IGluZGV4KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTYzNiw3ICs2
MzYsNyBAQCBKU1N0cmluZ1JlZiBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0CiBAcGFyYW0g
YWNjdW11bGF0b3IgVGhlIGFjY3VtdWxhdG9yIG9iamVjdCB0byB3aGljaCB0byBhZGQgdGhlIHBy
b3BlcnR5IG5hbWUuCiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIGFk
ZC4KICovCi12b2lkIEpTUHJvcGVydHlOYW1lQWNjdW11bGF0b3JBZGROYW1lKEpTUHJvcGVydHlO
YW1lQWNjdW11bGF0b3JSZWYgYWNjdW11bGF0b3IsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSk7
CitKU19FWFBPUlQgdm9pZCBKU1Byb3BlcnR5TmFtZUFjY3VtdWxhdG9yQWRkTmFtZShKU1Byb3Bl
cnR5TmFtZUFjY3VtdWxhdG9yUmVmIGFjY3VtdWxhdG9yLCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5h
bWUpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9K
U1N0cmluZ1JlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1Jl
Zi5oCShyZXZpc2lvbiAyODAyOSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MywxNCArNTMsMTQgQEAgZXh0ZXJuICJDIiB7CiBAcGFyYW0g
bnVtQ2hhcnMgICBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weSBmcm9tIHRoZSBidWZm
ZXIgcG9pbnRlZCB0byBieSBjaGFycy4KIEByZXN1bHQgICAgICAgICAgIEEgSlNTdHJpbmcgY29u
dGFpbmluZyBjaGFycy4gT3duZXJzaGlwIGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUpT
U3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoY29uc3QgSlNDaGFyKiBjaGFy
cywgc2l6ZV90IG51bUNoYXJzKTsKK0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKGNvbnN0IEpTQ2hhciogY2hhcnMsIHNpemVfdCBudW1DaGFycyk7CiAv
KiEKIEBmdW5jdGlvbgogQGFic3RyYWN0ICAgICAgICAgQ3JlYXRlcyBhIEphdmFTY3JpcHQgc3Ry
aW5nIGZyb20gYSBudWxsLXRlcm1pbmF0ZWQgVVRGOCBzdHJpbmcuCiBAcGFyYW0gc3RyaW5nICAg
ICBUaGUgbnVsbC10ZXJtaW5hdGVkIFVURjggc3RyaW5nIHRvIGNvcHkgaW50byB0aGUgbmV3IEpT
U3RyaW5nLgogQHJlc3VsdCAgICAgICAgICAgQSBKU1N0cmluZyBjb250YWluaW5nIHN0cmluZy4g
T3duZXJzaGlwIGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUpTU3RyaW5nUmVmIEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZyk7CitKU19FWFBPUlQg
SlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3Ry
aW5nKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTY4LDEzICs2OCwxMyBAQCBKU1N0cmluZ1JlZiBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluCiBAcGFyYW0gc3RyaW5nICAgICBUaGUgSlNTdHJp
bmcgdG8gcmV0YWluLgogQHJlc3VsdCAgICAgICAgICAgQSBKU1N0cmluZyB0aGF0IGlzIHRoZSBz
YW1lIGFzIHN0cmluZy4KICovCi1KU1N0cmluZ1JlZiBKU1N0cmluZ1JldGFpbihKU1N0cmluZ1Jl
ZiBzdHJpbmcpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTU3RyaW5nUmV0YWluKEpTU3RyaW5n
UmVmIHN0cmluZyk7CiAvKiEKIEBmdW5jdGlvbgogQGFic3RyYWN0ICAgICAgICAgUmVsZWFzZXMg
YSBKYXZhU2NyaXB0IHN0cmluZy4KIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBKU1N0cmluZyB0byBy
ZWxlYXNlLgogKi8KLXZvaWQgSlNTdHJpbmdSZWxlYXNlKEpTU3RyaW5nUmVmIHN0cmluZyk7CitK
U19FWFBPUlQgdm9pZCBKU1N0cmluZ1JlbGVhc2UoSlNTdHJpbmdSZWYgc3RyaW5nKTsKIAogLyoh
CiBAZnVuY3Rpb24KQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBKU1N0cmluZ1JlbGVhc2UoSlNTdHJp
bmdSZWYgc3RyaW5nKQogQHBhcmFtIHN0cmluZyAgICAgVGhlIEpTU3RyaW5nIHdob3NlIGxlbmd0
aCAoaW4gVW5pY29kZSBjaGFyYWN0ZXJzKSB5b3Ugd2FudCB0byBrbm93LgogQHJlc3VsdCAgICAg
ICAgICAgVGhlIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMgc3RvcmVkIGluIHN0cmluZy4K
ICovCi1zaXplX3QgSlNTdHJpbmdHZXRMZW5ndGgoSlNTdHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VY
UE9SVCBzaXplX3QgSlNTdHJpbmdHZXRMZW5ndGgoSlNTdHJpbmdSZWYgc3RyaW5nKTsKIC8qIQog
QGZ1bmN0aW9uCiBAYWJzdHJhY3QgICAgICAgICBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgVW5p
Y29kZSBjaGFyYWN0ZXIgYnVmZmVyIHRoYXQgCkBAIC05MSw3ICs5MSw3IEBAIHNpemVfdCBKU1N0
cmluZ0dldExlbmd0aChKU1N0cmluZ1JlZiBzdHIKIEByZXN1bHQgICAgICAgICAgIEEgcG9pbnRl
ciB0byB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgYnVmZmVyIHRoYXQgc2VydmVzIGFzIHN0cmluZydz
IAogIGJhY2tpbmcgc3RvcmUsIHdoaWNoIHdpbGwgYmUgZGVhbGxvY2F0ZWQgd2hlbiBzdHJpbmcg
aXMgZGVhbGxvY2F0ZWQuCiAqLwotY29uc3QgSlNDaGFyKiBKU1N0cmluZ0dldENoYXJhY3RlcnNQ
dHIoSlNTdHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VYUE9SVCBjb25zdCBKU0NoYXIqIEpTU3RyaW5n
R2V0Q2hhcmFjdGVyc1B0cihKU1N0cmluZ1JlZiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtMTAzLDcgKzEwMyw3IEBAIGNvbnN0IEpTQ2hhciogSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRy
KEoKICBudWxsLXRlcm1pbmF0ZWQgVVRGOCBzdHJpbmcuIFRoZSBudW1iZXIgb2YgYnl0ZXMgdGhh
dCB0aGUgY29udmVyc2lvbiBhY3R1YWxseSBlbmRzIAogIHVwIHJlcXVpcmluZyBjb3VsZCBiZSBs
ZXNzIHRoYW4gdGhpcywgYnV0IG5ldmVyIG1vcmUuCiAqLwotc2l6ZV90IEpTU3RyaW5nR2V0TWF4
aW11bVVURjhDU3RyaW5nU2l6ZShKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIHNpemVf
dCBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoSlNTdHJpbmdSZWYgc3RyaW5nKTsK
IC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgQ29udmVydHMgYSBKYXZhU2NyaXB0IHN0cmluZyBp
bnRvIGEgbnVsbC10ZXJtaW5hdGVkIFVURjggc3RyaW5nLCAKQEAgLTExNyw3ICsxMTcsNyBAQCBz
aXplX3QgSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplCiBAcGFyYW0gYnVmZmVyU2l6
ZSBUaGUgc2l6ZSBvZiB0aGUgZXh0ZXJuYWwgYnVmZmVyIGluIGJ5dGVzLgogQHJlc3VsdCBUaGUg
bnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gaW50byBidWZmZXIgKGluY2x1ZGluZyB0aGUgbnVsbC10
ZXJtaW5hdG9yIGJ5dGUpLgogKi8KLXNpemVfdCBKU1N0cmluZ0dldFVURjhDU3RyaW5nKEpTU3Ry
aW5nUmVmIHN0cmluZywgY2hhciogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSk7CitKU19FWFBP
UlQgc2l6ZV90IEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoSlNTdHJpbmdSZWYgc3RyaW5nLCBjaGFy
KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEyNiw3
ICsxMjYsNyBAQCBzaXplX3QgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhKU1N0cmluZ1JlCiBAcGFy
YW0gYiAgICAgIFRoZSBzZWNvbmQgSlNTdHJpbmcgdG8gdGVzdC4KIEByZXN1bHQgICAgICAgdHJ1
ZSBpZiB0aGUgdHdvIHN0cmluZ3MgbWF0Y2gsIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpT
U3RyaW5nSXNFcXVhbChKU1N0cmluZ1JlZiBhLCBKU1N0cmluZ1JlZiBiKTsKK0pTX0VYUE9SVCBi
b29sIEpTU3RyaW5nSXNFcXVhbChKU1N0cmluZ1JlZiBhLCBKU1N0cmluZ1JlZiBiKTsKIC8qIQog
QGZ1bmN0aW9uCiBAYWJzdHJhY3QgICAgIFRlc3RzIHdoZXRoZXIgYSBKYXZhU2NyaXB0IHN0cmlu
ZyBtYXRjaGVzIGEgbnVsbC10ZXJtaW5hdGVkIFVURjggc3RyaW5nLgpAQCAtMTM0LDcgKzEzNCw3
IEBAIGJvb2wgSlNTdHJpbmdJc0VxdWFsKEpTU3RyaW5nUmVmIGEsIEpTU3QKIEBwYXJhbSBiICAg
ICAgVGhlIG51bGwtdGVybWluYXRlZCBVVEY4IHN0cmluZyB0byB0ZXN0LgogQHJlc3VsdCAgICAg
ICB0cnVlIGlmIHRoZSB0d28gc3RyaW5ncyBtYXRjaCwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJv
b2wgSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhKU1N0cmluZ1JlZiBhLCBjb25zdCBjaGFy
KiBiKTsKK0pTX0VYUE9SVCBib29sIEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoSlNTdHJp
bmdSZWYgYSwgY29uc3QgY2hhciogYik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDog
SmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmQlNUUi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkJTVFIuaAkocmV2aXNpb24gMjgwMjkpCisrKyBKYXZh
U2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZCU1RSLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcg
KzQ2LDcgQEAgZXh0ZXJuICJDIiB7CiBAcGFyYW0gc3RyaW5nICAgICBUaGUgQlNUUiB0byBjb3B5
IGludG8gdGhlIG5ldyBKU1N0cmluZy4KIEByZXN1bHQgICAgICAgICAgIEEgSlNTdHJpbmcgY29u
dGFpbmluZyBzdHJpbmcuIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICovCi1K
U1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhCU1RSKGNvbnN0IEJTVFIgc3RyaW5nKTsKK0pT
X0VYUE9SVCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhCU1RSKGNvbnN0IEJTVFIgc3Ry
aW5nKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTU0LDcgKzU0LDcgQEAgSlNTdHJpbmdSZWYgSlNT
dHJpbmdDcmVhdGVXaXRoQlNUUihjb25zdAogQHBhcmFtIHN0cmluZyAgICAgVGhlIEpTU3RyaW5n
IHRvIGNvcHkgaW50byB0aGUgbmV3IEJTVFIuCiBAcmVzdWx0ICAgICAgICAgICBBIEJTVFIgY29u
dGFpbmluZyBzdHJpbmcuIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICovCi1C
U1RSIEpTU3RyaW5nQ29weUJTVFIoY29uc3QgSlNTdHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VYUE9S
VCBCU1RSIEpTU3RyaW5nQ29weUJTVFIoY29uc3QgSlNTdHJpbmdSZWYgc3RyaW5nKTsKICAgICAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5n
UmVmQ0YuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5o
CShyZXZpc2lvbiAyODAyOSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgZXh0ZXJuICJDIiB7CiBAcGFyYW0gc3Ry
aW5nICAgICBUaGUgQ0ZTdHJpbmcgdG8gY29weSBpbnRvIHRoZSBuZXcgSlNTdHJpbmcuCiBAcmVz
dWx0ICAgICAgICAgICBBIEpTU3RyaW5nIGNvbnRhaW5pbmcgc3RyaW5nLiBPd25lcnNoaXAgZm9s
bG93cyB0aGUgQ3JlYXRlIFJ1bGUuCiAqLwotSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRo
Q0ZTdHJpbmcoQ0ZTdHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1N0
cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBzdHJpbmcpOwogLyohCiBAZnVuY3Rp
b24KIEBhYnN0cmFjdCAgICAgICAgIENyZWF0ZXMgYSBDRlN0cmluZyBmcm9tIGEgSmF2YVNjcmlw
dCBzdHJpbmcuCkBAIC01Miw3ICs1Miw3IEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0
aENGU3RyaW5nKEMKIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBKU1N0cmluZyB0byBjb3B5IGludG8g
dGhlIG5ldyBDRlN0cmluZy4KIEByZXN1bHQgICAgICAgICAgIEEgQ0ZTdHJpbmcgY29udGFpbmlu
ZyBzdHJpbmcuIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICovCi1DRlN0cmlu
Z1JlZiBKU1N0cmluZ0NvcHlDRlN0cmluZyhDRkFsbG9jYXRvclJlZiBhbGxvYywgSlNTdHJpbmdS
ZWYgc3RyaW5nKTsKK0pTX0VYUE9SVCBDRlN0cmluZ1JlZiBKU1N0cmluZ0NvcHlDRlN0cmluZyhD
RkFsbG9jYXRvclJlZiBhbGxvYywgSlNTdHJpbmdSZWYgc3RyaW5nKTsKICAgICAKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oCShyZXZpc2lvbiAyODAy
OSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYxLDcgKzYxLDcgQEAgZXh0ZXJuICJDIiB7CiBAcGFyYW0gdmFsdWUgICAgVGhlIEpTVmFsdWUg
d2hvc2UgdHlwZSB5b3Ugd2FudCB0byBvYnRhaW4uCiBAcmVzdWx0ICAgICAgICAgQSB2YWx1ZSBv
ZiB0eXBlIEpTVHlwZSB0aGF0IGlkZW50aWZpZXMgdmFsdWUncyB0eXBlLgogKi8KLUpTVHlwZSBK
U1ZhbHVlR2V0VHlwZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKK0pTX0VY
UE9SVCBKU1R5cGUgSlNWYWx1ZUdldFR5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2
YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC03MCw3ICs3MCw3IEBAIEpTVHlwZSBKU1ZhbHVl
R2V0VHlwZShKU0NvbnRleHRSZWYgY3R4LCAKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0
byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUncyB0eXBlIGlzIHRoZSB1bmRl
ZmluZWQgdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJvb2wgSlNWYWx1ZUlzVW5kZWZpbmVk
KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNW
YWx1ZUlzVW5kZWZpbmVkKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAv
KiEKIEBmdW5jdGlvbgpAQCAtNzksNyArNzksNyBAQCBib29sIEpTVmFsdWVJc1VuZGVmaW5lZChK
U0NvbnRleHRSZWYgY3R4CiBAcGFyYW0gdmFsdWUgICAgVGhlIEpTVmFsdWUgdG8gdGVzdC4KIEBy
ZXN1bHQgICAgICAgICB0cnVlIGlmIHZhbHVlJ3MgdHlwZSBpcyB0aGUgbnVsbCB0eXBlLCBvdGhl
cndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNOdWxsKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzTnVsbChKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTg4LDcgKzg4
LDcgQEAgYm9vbCBKU1ZhbHVlSXNOdWxsKEpTQ29udGV4dFJlZiBjdHgsIEpTVgogQHBhcmFtIHZh
bHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1
ZSdzIHR5cGUgaXMgdGhlIGJvb2xlYW4gdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJvb2wg
SlNWYWx1ZUlzQm9vbGVhbihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKK0pT
X0VYUE9SVCBib29sIEpTVmFsdWVJc0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC05Nyw3ICs5Nyw3IEBAIGJvb2wgSlNWYWx1
ZUlzQm9vbGVhbihKU0NvbnRleHRSZWYgY3R4LCAKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1
ZSB0byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUncyB0eXBlIGlzIHRoZSBu
dW1iZXIgdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJvb2wgSlNWYWx1ZUlzTnVtYmVyKEpT
Q29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1
ZUlzTnVtYmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEKIEBm
dW5jdGlvbgpAQCAtMTA2LDcgKzEwNiw3IEBAIGJvb2wgSlNWYWx1ZUlzTnVtYmVyKEpTQ29udGV4
dFJlZiBjdHgsIEoKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0LgogQHJlc3Vs
dCAgICAgICAgIHRydWUgaWYgdmFsdWUncyB0eXBlIGlzIHRoZSBzdHJpbmcgdHlwZSwgb3RoZXJ3
aXNlIGZhbHNlLgogKi8KLWJvb2wgSlNWYWx1ZUlzU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzU3RyaW5nKEpTQ29udGV4
dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTE1LDcg
KzExNSw3IEBAIGJvb2wgSlNWYWx1ZUlzU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEoKIEBwYXJh
bSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYg
dmFsdWUncyB0eXBlIGlzIHRoZSBvYmplY3QgdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLgogKi8KLWJv
b2wgSlNWYWx1ZUlzT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwor
SlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVS
ZWYgdmFsdWUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTI1LDcgKzEyNSw3IEBAIGJvb2wgSlNW
YWx1ZUlzT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgsIEoKIEBwYXJhbSBqc0NsYXNzIFRoZSBKU0Ns
YXNzIHRvIHRlc3QgYWdhaW5zdC4KIEByZXN1bHQgdHJ1ZSBpZiB2YWx1ZSBpcyBhbiBvYmplY3Qg
YW5kIGhhcyBqc0NsYXNzIGluIGl0cyBjbGFzcyBjaGFpbiwgb3RoZXJ3aXNlIGZhbHNlLgogKi8K
LWJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhc3MpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzT2Jq
ZWN0T2ZDbGFzcyhKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU0NsYXNzUmVm
IGpzQ2xhc3MpOwogCiAvLyBDb21wYXJpbmcgdmFsdWVzCiAKQEAgLTEzOCw3ICsxMzgsNyBAQCBi
b29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmCiBAcGFyYW0gZXhjZXB0aW9u
IEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0
aW9uLgogQHJlc3VsdCB0cnVlIGlmIHRoZSB0d28gdmFsdWVzIGFyZSBlcXVhbCwgZmFsc2UgaWYg
dGhleSBhcmUgbm90IGVxdWFsIG9yIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAqLwotYm9vbCBK
U1ZhbHVlSXNFcXVhbChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIGEsIEpTVmFsdWVSZWYg
YiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc0VxdWFs
KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgYSwgSlNWYWx1ZVJlZiBiLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTQ4LDcgKzE0OCw3IEBAIGJvb2wg
SlNWYWx1ZUlzRXF1YWwoSlNDb250ZXh0UmVmIGN0eCwgSlMKIEBwYXJhbSBiICAgICAgICBUaGUg
c2Vjb25kIHZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB0aGUgdHdvIHZh
bHVlcyBhcmUgc3RyaWN0IGVxdWFsLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVl
SXNTdHJpY3RFcXVhbChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIGEsIEpTVmFsdWVSZWYg
Yik7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNTdHJpY3RFcXVhbChKU0NvbnRleHRSZWYgY3R4
LCBKU1ZhbHVlUmVmIGEsIEpTVmFsdWVSZWYgYik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xNTks
NyArMTU5LDcgQEAgYm9vbCBKU1ZhbHVlSXNTdHJpY3RFcXVhbChKU0NvbnRleHRSZWYgYwogQHBh
cmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3Jl
IGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgdHJ1ZSBpZiB2YWx1ZSBpcyBhbiBvYmplY3QgY29u
c3RydWN0ZWQgYnkgY29uc3RydWN0b3IsIGFzIGNvbXBhcmVkIGJ5IHRoZSBKUyBpbnN0YW5jZW9m
IG9wZXJhdG9yLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNJbnN0YW5jZU9m
Q29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNPYmplY3RS
ZWYgY29uc3RydWN0b3IsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgYm9vbCBK
U1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSwgSlNPYmplY3RSZWYgY29uc3RydWN0b3IsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7
CiAKIC8vIENyZWF0aW5nIHZhbHVlcwogCkBAIC0xNjksNyArMTY5LDcgQEAgYm9vbCBKU1ZhbHVl
SXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoSlNDbwogQHBhcmFtIGN0eCAgVGhlIGV4ZWN1dGlvbiBj
b250ZXh0IHRvIHVzZS4KIEByZXN1bHQgICAgICAgICBUaGUgdW5pcXVlIHVuZGVmaW5lZCB2YWx1
ZS4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtlVW5kZWZpbmVkKEpTQ29udGV4dFJlZiBjdHgp
OworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VVbmRlZmluZWQoSlNDb250ZXh0UmVm
IGN0eCk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xNzcsNyArMTc3LDcgQEAgSlNWYWx1ZVJlZiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChKU0NvbnRleAogQHBhcmFtIGN0eCAgVGhlIGV4ZWN1dGlvbiBj
b250ZXh0IHRvIHVzZS4KIEByZXN1bHQgICAgICAgICBUaGUgdW5pcXVlIG51bGwgdmFsdWUuCiAq
LwotSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZU51bGwoSlNDb250ZXh0UmVmIGN0eCk7CitKU19FWFBP
UlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZU51bGwoSlNDb250ZXh0UmVmIGN0eCk7CiAKIC8qIQog
QGZ1bmN0aW9uCkBAIC0xODYsNyArMTg2LDcgQEAgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZU51bGwo
SlNDb250ZXh0UmVmIAogQHBhcmFtIGJvb2xlYW4gIFRoZSBib29sIHRvIGFzc2lnbiB0byB0aGUg
bmV3bHkgY3JlYXRlZCBKU1ZhbHVlLgogQHJlc3VsdCAgICAgICAgIEEgSlNWYWx1ZSBvZiB0aGUg
Ym9vbGVhbiB0eXBlLCByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIGJvb2xlYW4uCiAqLwotSlNW
YWx1ZVJlZiBKU1ZhbHVlTWFrZUJvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgYm9vbCBib29sZWFu
KTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9vbGVhbihKU0NvbnRleHRSZWYg
Y3R4LCBib29sIGJvb2xlYW4pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTk1LDcgKzE5NSw3IEBA
IEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VCb29sZWFuKEpTQ29udGV4dFIKIEBwYXJhbSBudW1iZXIg
ICBUaGUgZG91YmxlIHRvIGFzc2lnbiB0byB0aGUgbmV3bHkgY3JlYXRlZCBKU1ZhbHVlLgogQHJl
c3VsdCAgICAgICAgIEEgSlNWYWx1ZSBvZiB0aGUgbnVtYmVyIHR5cGUsIHJlcHJlc2VudGluZyB0
aGUgdmFsdWUgb2YgbnVtYmVyLgogKi8KLUpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlND
b250ZXh0UmVmIGN0eCwgZG91YmxlIG51bWJlcik7CitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1Zh
bHVlTWFrZU51bWJlcihKU0NvbnRleHRSZWYgY3R4LCBkb3VibGUgbnVtYmVyKTsKIAogLyohCiBA
ZnVuY3Rpb24KQEAgLTIwNSw3ICsyMDUsNyBAQCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVtYmVy
KEpTQ29udGV4dFJlCiAgbmV3bHkgY3JlYXRlZCBKU1ZhbHVlIHJldGFpbnMgc3RyaW5nLCBhbmQg
cmVsZWFzZXMgaXQgdXBvbiBnYXJiYWdlIGNvbGxlY3Rpb24uCiBAcmVzdWx0ICAgICAgICAgQSBK
U1ZhbHVlIG9mIHRoZSBzdHJpbmcgdHlwZSwgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiBzdHJp
bmcuCiAqLwotSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBK
U1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJp
bmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyaW5nKTsKIAogLy8gQ29udmVydGlu
ZyB0byBwcmltaXRpdmUgdmFsdWVzCiAKQEAgLTIxNiw3ICsyMTYsNyBAQCBKU1ZhbHVlUmVmIEpT
VmFsdWVNYWtlU3RyaW5nKEpTQ29udGV4dFJlCiBAcGFyYW0gdmFsdWUgICAgVGhlIEpTVmFsdWUg
dG8gY29udmVydC4KIEByZXN1bHQgICAgICAgICBUaGUgYm9vbGVhbiByZXN1bHQgb2YgY29udmVy
c2lvbi4KICovCi1ib29sIEpTVmFsdWVUb0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1
ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlVG9Cb29sZWFuKEpTQ29udGV4dFJl
ZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMjI2LDcgKzIy
Niw3IEBAIGJvb2wgSlNWYWx1ZVRvQm9vbGVhbihKU0NvbnRleHRSZWYgY3R4LCAKIEBwYXJhbSBl
eGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiBAcmVzdWx0ICAgICAgICAgVGhlIG51bWVyaWMgcmVzdWx0IG9mIGNvbnZl
cnNpb24sIG9yIE5hTiBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duLgogKi8KLWRvdWJsZSBKU1Zh
bHVlVG9OdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBkb3VibGUgSlNWYWx1ZVRvTnVtYmVyKEpTQ29udGV4
dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC0yMzYsNyArMjM2LDcgQEAgZG91YmxlIEpTVmFsdWVUb051bWJlcihK
U0NvbnRleHRSZWYgY3R4LAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVl
UmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYg
eW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgICAgICAgICBB
IEpTU3RyaW5nIHdpdGggdGhlIHJlc3VsdCBvZiBjb252ZXJzaW9uLCBvciBOVUxMIGlmIGFuIGV4
Y2VwdGlvbiBpcyB0aHJvd24uIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICov
Ci1KU1N0cmluZ1JlZiBKU1ZhbHVlVG9TdHJpbmdDb3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFs
dWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgSlNTdHJpbmdS
ZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVl
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMjQ2LDcgKzI0
Niw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXgKIEBwYXJhbSBl
eGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiBAcmVzdWx0ICAgICAgICAgVGhlIEpTT2JqZWN0IHJlc3VsdCBvZiBjb252
ZXJzaW9uLCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAqLwotSlNPYmplY3RS
ZWYgSlNWYWx1ZVRvT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNWYWx1ZVRvT2Jq
ZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbik7CiAKIC8vIEdhcmJhZ2UgY29sbGVjdGlvbgogLyohCkBAIC0yNTgsNyArMjU4LDcgQEAg
SlNPYmplY3RSZWYgSlNWYWx1ZVRvT2JqZWN0KEpTQ29udGV4dFJlZgogIAogQSB2YWx1ZSBtYXkg
YmUgcHJvdGVjdGVkIG11bHRpcGxlIHRpbWVzIGFuZCBtdXN0IGJlIHVucHJvdGVjdGVkIGFuIGVx
dWFsIG51bWJlciBvZiB0aW1lcyBiZWZvcmUgYmVjb21pbmcgZWxpZ2libGUgZm9yIGdhcmJhZ2Ug
Y29sbGVjdGlvbi4KICovCi12b2lkIEpTVmFsdWVQcm90ZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIHZvaWQgSlNWYWx1ZVByb3RlY3QoSlNDb250ZXh0
UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBKU1ZhbHVlUHJvdGVjdChKU0NvbnRleHRSZWYgY3R4LCBKUwogQGRpc2N1
c3Npb24gICAgIEEgdmFsdWUgbWF5IGJlIHByb3RlY3RlZCBtdWx0aXBsZSB0aW1lcyBhbmQgbXVz
dCBiZSB1bnByb3RlY3RlZCBhbiAKICBlcXVhbCBudW1iZXIgb2YgdGltZXMgYmVmb3JlIGJlY29t
aW5nIGVsaWdpYmxlIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uCiAqLwotdm9pZCBKU1ZhbHVlVW5w
cm90ZWN0KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIHZv
aWQgSlNWYWx1ZVVucHJvdGVjdChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17543</attachid>
            <date>2007-11-26 23:33:37 -0800</date>
            <delta_ts>2007-11-27 20:15:50 -0800</delta_ts>
            <desc>Now with non-GCC support</desc>
            <filename>js-export-2.patch</filename>
            <type>text/plain</type>
            <size>32022</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MDY5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTEtMjUgIEFscCBUb2tl
ciAgPGFscEBhdG9rZXIuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTY5
CisgICAgICAgIFtndGtdIEdUSyBKYXZhU2NyaXB0Q29yZSBuZWVkcyB0byBleHBvcnQgc3ltYm9s
cyBmb3IgSlNDIEFQSSBhbmQgV1RGCisKKyAgICAgICAgSW50cm9kdWNlIEpTX0VYUE9SVCB0byBt
YXJrIHN5bWJvbHMgdG8gYmUgZXhwb3J0ZWQgYXMgcHVibGljIEFQSS4KKworICAgICAgICBFeHBv
cnQgYWxsIHB1YmxpYyBzeW1ib2xzIGluIHRoZSBKYXZhU2NyaXB0Q29yZSBDIEFQSS4KKworICAg
ICAgICBUaGlzIG1hdGNoZXMgY29udmVudGlvbnMgZm9yIGV4cG9ydGluZyBzeW1ib2xzIHNldCBi
eSB0aGUgQ0YgYW5kIENHCisgICAgICAgIGZyYW1ld29ya3MuCisKKyAgICAgICAgKiBBUEkvSlNC
YXNlLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5oOgorICAgICAgICAqIEFQSS9KU09i
amVjdFJlZi5oOgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5oOgorICAgICAgICAqIEFQSS9K
U1N0cmluZ1JlZkJTVFIuaDoKKyAgICAgICAgKiBBUEkvSlNTdHJpbmdSZWZDRi5oOgorICAgICAg
ICAqIEFQSS9KU1ZhbHVlUmVmLmg6CisKIDIwMDctMTEtMjYgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1pdHouCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9BUEkvSlNCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFz
ZS5oCShyZXZpc2lvbiAyODA2OSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNTgsNiArNTgsMjEgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
SlNWYWx1ZSogSlNWYQogLyohIEB0eXBlZGVmIEpTT2JqZWN0UmVmIEEgSmF2YVNjcmlwdCBvYmpl
Y3QuIEEgSlNPYmplY3QgaXMgYSBKU1ZhbHVlLiAqLwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlSlNW
YWx1ZSogSlNPYmplY3RSZWY7CiAKKy8qIEphdmFTY3JpcHQgc3ltYm9sIGV4cG9ydHMgKi8KKwor
I3VuZGVmIEpTX0VYUE9SVAorI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQor
ICAgICNpZiBkZWZpbmVkKEpTX0JVSUxESU5HX0pTKQorICAgICAgICAjZGVmaW5lIEpTX0VYUE9S
VCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkgZXh0ZXJuCisgICAgI2Vsc2UKKyAgICAgICAgI2RlZmlu
ZSBKU19FWFBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGV4dGVybgorICAgICNlbmRpZgorI2Vs
aWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICAjZGVmaW5lIEpTX0VYUE9SVCBfX2F0dHJpYnV0ZV9f
KCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UKKyAgICAjZGVmaW5lIEpTX0VYUE9SVCBl
eHRlcm4KKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlm
CkBAIC03NSw3ICs5MCw3IEBAIGV4dGVybiAiQyIgewogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50
ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55
LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEBy
ZXN1bHQgVGhlIEpTVmFsdWUgdGhhdCByZXN1bHRzIGZyb20gZXZhbHVhdGluZyBzY3JpcHQsIG9y
IE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KICovCi1KU1ZhbHVlUmVmIEpTRXZhbHVh
dGVTY3JpcHQoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1i
ZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU0V2YWx1
YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbiBKU0NoZWNrU2Ny
aXB0U3ludGF4CkBAIC04Nyw3ICsxMDIsNyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQo
SlNDb250ZXh0UmVmCiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYg
aW4gd2hpY2ggdG8gc3RvcmUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3Mg
TlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9u
LgogQHJlc3VsdCB0cnVlIGlmIHRoZSBzY3JpcHQgaXMgc3ludGFjdGljYWxseSBjb3JyZWN0LCBv
dGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJl
ZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIGJvb2wg
SlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQs
IEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEwMyw3ICsxMTgsNyBAQCBib29s
IEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250ZXh0UmVmIGN0CiAgQXQgdGhhdCBwb2ludCwgYSBn
YXJiYWdlIGNvbGxlY3Rpb24gY2FuIGZyZWUgdGhlIG9iamVjdHMgc3RpbGwgcmVmZXJlbmNlZCBi
eSB0aGUgCiAgSlNHbG9iYWxDb250ZXh0UmVmJ3MgZ2xvYmFsIG9iamVjdCwgYWxvbmcgd2l0aCB0
aGUgZ2xvYmFsIG9iamVjdCBpdHNlbGYuCiAqLwotdm9pZCBKU0dhcmJhZ2VDb2xsZWN0KEpTQ29u
dGV4dFJlZiBjdHgpOworSlNfRVhQT1JUIHZvaWQgSlNHYXJiYWdlQ29sbGVjdChKU0NvbnRleHRS
ZWYgY3R4KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5oCShyZXZpc2lvbiAyODA2OSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBleHRlcm4gIkMiIHsKICBO
VUxMIHRvIHVzZSB0aGUgZGVmYXVsdCBvYmplY3QgY2xhc3MuCiBAcmVzdWx0IEEgSlNHbG9iYWxD
b250ZXh0IHdpdGggYSBnbG9iYWwgb2JqZWN0IG9mIGNsYXNzIGdsb2JhbE9iamVjdENsYXNzLgog
Ki8KLUpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUoSlNDbGFzc1JlZiBn
bG9iYWxPYmplY3RDbGFzcyk7CitKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xvYmFs
Q29udGV4dENyZWF0ZShKU0NsYXNzUmVmIGdsb2JhbE9iamVjdENsYXNzKTsKIAogLyohCiBAZnVu
Y3Rpb24KQEAgLTUzLDE0ICs1MywxNCBAQCBKU0dsb2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250
ZXh0Q3JlYXRlCiBAcGFyYW0gY3R4IFRoZSBKU0dsb2JhbENvbnRleHQgdG8gcmV0YWluLgogQHJl
c3VsdCBBIEpTR2xvYmFsQ29udGV4dCB0aGF0IGlzIHRoZSBzYW1lIGFzIGN0eC4KICovCi1KU0ds
b2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0UmV0YWluKEpTR2xvYmFsQ29udGV4dFJlZiBj
dHgpOworSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRSZXRhaW4o
SlNHbG9iYWxDb250ZXh0UmVmIGN0eCk7CiAKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgUmVs
ZWFzZXMgYSBnbG9iYWwgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dC4KIEBwYXJhbSBjdHgg
VGhlIEpTR2xvYmFsQ29udGV4dCB0byByZWxlYXNlLgogKi8KLXZvaWQgSlNHbG9iYWxDb250ZXh0
UmVsZWFzZShKU0dsb2JhbENvbnRleHRSZWYgY3R4KTsKK0pTX0VYUE9SVCB2b2lkIEpTR2xvYmFs
Q29udGV4dFJlbGVhc2UoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCk7CiAKIC8qIQogQGZ1bmN0aW9u
CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShKU0dsb2JhbENv
bnQKIEBwYXJhbSBjdHggVGhlIEpTQ29udGV4dCB3aG9zZSBnbG9iYWwgb2JqZWN0IHlvdSB3YW50
IHRvIGdldC4KIEByZXN1bHQgY3R4J3MgZ2xvYmFsIG9iamVjdC4KICovCi1KU09iamVjdFJlZiBK
U0NvbnRleHRHZXRHbG9iYWxPYmplY3QoSlNDb250ZXh0UmVmIGN0eCk7CitKU19FWFBPUlQgSlNP
YmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJl
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5oCShyZXZp
c2lvbiAyODA2OSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNzYsNyArMzc2LDcgQEAgZXh0ZXJuIGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9u
IGtKU0NsYXNzRAogQHBhcmFtIGRlZmluaXRpb24gQSBKU0NsYXNzRGVmaW5pdGlvbiB0aGF0IGRl
ZmluZXMgdGhlIGNsYXNzLgogQHJlc3VsdCBBIEpTQ2xhc3Mgd2l0aCB0aGUgZ2l2ZW4gZGVmaW5p
dGlvbi4gT3duZXJzaGlwIGZvbGxvd3MgdGhlIENyZWF0ZSBSdWxlLgogKi8KLUpTQ2xhc3NSZWYg
SlNDbGFzc0NyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbik7CitKU19F
WFBPUlQgSlNDbGFzc1JlZiBKU0NsYXNzQ3JlYXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBk
ZWZpbml0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTM4NCwxNCArMzg0LDE0IEBAIEpTQ2xh
c3NSZWYgSlNDbGFzc0NyZWF0ZShjb25zdCBKU0NsYXNzRGUKIEBwYXJhbSBqc0NsYXNzIFRoZSBK
U0NsYXNzIHRvIHJldGFpbi4KIEByZXN1bHQgQSBKU0NsYXNzIHRoYXQgaXMgdGhlIHNhbWUgYXMg
anNDbGFzcy4KICovCi1KU0NsYXNzUmVmIEpTQ2xhc3NSZXRhaW4oSlNDbGFzc1JlZiBqc0NsYXNz
KTsKK0pTX0VYUE9SVCBKU0NsYXNzUmVmIEpTQ2xhc3NSZXRhaW4oSlNDbGFzc1JlZiBqc0NsYXNz
KTsKIAogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBSZWxlYXNlcyBhIEphdmFTY3JpcHQgY2xh
c3MuCiBAcGFyYW0ganNDbGFzcyBUaGUgSlNDbGFzcyB0byByZWxlYXNlLgogKi8KLXZvaWQgSlND
bGFzc1JlbGVhc2UoSlNDbGFzc1JlZiBqc0NsYXNzKTsKK0pTX0VYUE9SVCB2b2lkIEpTQ2xhc3NS
ZWxlYXNlKEpTQ2xhc3NSZWYganNDbGFzcyk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC00MDQsNyAr
NDA0LDcgQEAgdm9pZCBKU0NsYXNzUmVsZWFzZShKU0NsYXNzUmVmIGpzQ2xhc3MpOwogCiBkYXRh
IGlzIHNldCBvbiB0aGUgY3JlYXRlZCBvYmplY3QgYmVmb3JlIHRoZSBpbnRpYWxpemUgbWV0aG9k
cyBpbiBpdHMgY2xhc3MgY2hhaW4gYXJlIGNhbGxlZC4gVGhpcyBlbmFibGVzIHRoZSBpbml0aWFs
aXplIG1ldGhvZHMgdG8gcmV0cmlldmUgYW5kIG1hbmlwdWxhdGUgZGF0YSB0aHJvdWdoIEpTT2Jq
ZWN0R2V0UHJpdmF0ZS4KICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2UoSlNDb250ZXh0UmVm
IGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKTsKK0pTX0VYUE9SVCBKU09iamVj
dFJlZiBKU09iamVjdE1ha2UoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2
b2lkKiBkYXRhKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTQxNCw3ICs0MTQsNyBAQCBKU09iamVj
dFJlZiBKU09iamVjdE1ha2UoSlNDb250ZXh0UmVmIGN0CiBAcGFyYW0gY2FsbEFzRnVuY3Rpb24g
VGhlIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayB0byBpbnZva2Ugd2hlbiB0aGUgZnVu
Y3Rpb24gaXMgY2FsbGVkLgogQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMgYSBmdW5jdGlvbi4g
VGhlIG9iamVjdCdzIHByb3RvdHlwZSB3aWxsIGJlIHRoZSBkZWZhdWx0IGZ1bmN0aW9uIHByb3Rv
dHlwZS4KICovCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayhK
U0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCBKU09iamVjdENhbGxBc0Z1bmN0aW9u
Q2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24pOworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5h
bWUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5jdGlvbik7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC00MjUsNyArNDI1LDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtl
RnVuY3Rpb25XaXRoQ2FsbAogQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMgYSBjb25zdHJ1Y3Rv
ci4gVGhlIG9iamVjdCdzIHByb3RvdHlwZSB3aWxsIGJlIHRoZSBkZWZhdWx0IG9iamVjdCBwcm90
b3R5cGUuCiBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCBvYmplY3QgY29uc3RydWN0b3IgdGFrZXMg
bm8gYXJndW1lbnRzIGFuZCBjb25zdHJ1Y3RzIGFuIG9iamVjdCBvZiBjbGFzcyBqc0NsYXNzIHdp
dGggbm8gcHJpdmF0ZSBkYXRhLgogKi8KLUpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUNvbnN0cnVj
dG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganNDbGFzcywgSlNPYmplY3RDYWxsQXND
b25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxBc0NvbnN0cnVjdG9yKTsKK0pTX0VYUE9SVCBKU09iamVj
dFJlZiBKU09iamVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVm
IGpzQ2xhc3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsQXNDb25zdHJ1
Y3Rvcik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC00NDEsNyArNDQxLDcgQEAgSlNPYmplY3RSZWYg
SlNPYmplY3RNYWtlQ29uc3RydWN0b3IoSlNDbwogQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMg
YSBmdW5jdGlvbiwgb3IgTlVMTCBpZiBlaXRoZXIgYm9keSBvciBwYXJhbWV0ZXJOYW1lcyBjb250
YWlucyBhIHN5bnRheCBlcnJvci4gVGhlIG9iamVjdCdzIHByb3RvdHlwZSB3aWxsIGJlIHRoZSBk
ZWZhdWx0IGZ1bmN0aW9uIHByb3RvdHlwZS4KIEBkaXNjdXNzaW9uIFVzZSB0aGlzIG1ldGhvZCB3
aGVuIHlvdSB3YW50IHRvIGV4ZWN1dGUgYSBzY3JpcHQgcmVwZWF0ZWRseSwgdG8gYXZvaWQgdGhl
IGNvc3Qgb2YgcmUtcGFyc2luZyB0aGUgc2NyaXB0IGJlZm9yZSBlYWNoIGV4ZWN1dGlvbi4KICov
Ci1KU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0
cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYg
cGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJM
LCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQ
T1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpT
U3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVkIHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1Jl
ZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VV
UkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8q
IQogQGZ1bmN0aW9uCkBAIC00NTAsNyArNDUwLDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtl
RnVuY3Rpb24oSlNDb250ZQogQHBhcmFtIG9iamVjdCBBIEpTT2JqZWN0IHdob3NlIHByb3RvdHlw
ZSB5b3Ugd2FudCB0byBnZXQuCiBAcmVzdWx0IEEgSlNWYWx1ZSB0aGF0IGlzIHRoZSBvYmplY3Qn
cyBwcm90b3R5cGUuCiAqLwotSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3RvdHlwZShKU0NvbnRl
eHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNP
YmplY3RHZXRQcm90b3R5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0KTsK
IAogLyohCiBAZnVuY3Rpb24KQEAgLTQ1OSw3ICs0NTksNyBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0
R2V0UHJvdG90eXBlKEpTQ29udGV4CiBAcGFyYW0gb2JqZWN0IFRoZSBKU09iamVjdCB3aG9zZSBw
cm90b3R5cGUgeW91IHdhbnQgdG8gc2V0LgogQHBhcmFtIHZhbHVlIEEgSlNWYWx1ZSB0byBzZXQg
YXMgdGhlIG9iamVjdCdzIHByb3RvdHlwZS4KICovCi12b2lkIEpTT2JqZWN0U2V0UHJvdG90eXBl
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiB2YWx1ZSk7
CitKU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFByb3RvdHlwZShKU0NvbnRleHRSZWYgY3R4LCBK
U09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEKIEBmdW5jdGlvbgpA
QCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm90b3R5cGUoSlNDb250ZXh0UmVm
IGMKIEBwYXJhbSBwcm9wZXJ0eU5hbWUgQSBKU1N0cmluZyBjb250YWluaW5nIHRoZSBwcm9wZXJ0
eSdzIG5hbWUuCiBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aG9z
ZSBuYW1lIG1hdGNoZXMgcHJvcGVydHlOYW1lLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBK
U09iamVjdEhhc1Byb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwg
SlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lKTsKK0pTX0VYUE9SVCBib29sIEpTT2JqZWN0SGFzUHJv
cGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm9wZXJ0eU5hbWUpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDc5LDcgKzQ3OSw3IEBAIGJvb2wg
SlNPYmplY3RIYXNQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3QKIEBwYXJhbSBleGNlcHRpb24gQSBw
b2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlm
IGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24u
CiBAcmVzdWx0IFRoZSBwcm9wZXJ0eSdzIHZhbHVlIGlmIG9iamVjdCBoYXMgdGhlIHByb3BlcnR5
LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KICovCi1KU1ZhbHVlUmVmIEpTT2JqZWN0
R2V0UHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmlu
Z1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgSlNW
YWx1ZVJlZiBKU09iamVjdEdldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
OwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNDkxLDcgKzQ5MSw3IEBAIEpTVmFsdWVSZWYgSlNPYmpl
Y3RHZXRQcm9wZXJ0eShKU0NvbnRleHQKIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEg
SlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBO
VUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcGFyYW0gYXR0
cmlidXRlcyBBIGxvZ2ljYWxseSBPUmVkIHNldCBvZiBKU1Byb3BlcnR5QXR0cmlidXRlcyB0byBn
aXZlIHRvIHRoZSBwcm9wZXJ0eS4KICovCi12b2lkIEpTT2JqZWN0U2V0UHJvcGVydHkoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWVSZWYgdmFsdWUsIEpTUHJvcGVydHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTAyLDcgKzUwMiw3
IEBAIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3QKIEBwYXJhbSBleGNl
cHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNl
cHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBl
eGNlcHRpb24uCiBAcmVzdWx0IHRydWUgaWYgdGhlIGRlbGV0ZSBvcGVyYXRpb24gc3VjY2VlZHMs
IG90aGVyd2lzZSBmYWxzZSAoZm9yIGV4YW1wbGUsIGlmIHRoZSBwcm9wZXJ0eSBoYXMgdGhlIGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBhdHRyaWJ1dGUgc2V0KS4KICovCi1ib29sIEpT
T2JqZWN0RGVsZXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0
LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19F
WFBPUlQgYm9vbCBKU09iamVjdERlbGV0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTE0LDcgKzUxNCw3IEBAIGJvb2wgSlNPYmpl
Y3REZWxldGVQcm9wZXJ0eShKU0NvbnRleHRSZWYKIEByZXN1bHQgVGhlIHByb3BlcnR5J3MgdmFs
dWUgaWYgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHksIG90aGVyd2lzZSB0aGUgdW5kZWZpbmVkIHZh
bHVlLgogQGRpc2N1c3Npb24gQ2FsbGluZyBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleCBpcyBl
cXVpdmFsZW50IHRvIGNhbGxpbmcgSlNPYmplY3RHZXRQcm9wZXJ0eSB3aXRoIGEgc3RyaW5nIGNv
bnRhaW5pbmcgcHJvcGVydHlJbmRleCwgYnV0IEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4IHBy
b3ZpZGVzIG9wdGltaXplZCBhY2Nlc3MgdG8gbnVtZXJpYyBwcm9wZXJ0aWVzLgogKi8KLUpTVmFs
dWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmpl
Y3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoSlND
b250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTI2LDcgKzUy
Niw3IEBAIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoSlMKIEBwYXJhbSBl
eGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiBAZGlzY3Vzc2lvbiBDYWxsaW5nIEpTT2JqZWN0U2V0UHJvcGVydHlBdElu
ZGV4IGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBKU09iamVjdFNldFByb3BlcnR5IHdpdGggYSBz
dHJpbmcgY29udGFpbmluZyBwcm9wZXJ0eUluZGV4LCBidXQgSlNPYmplY3RTZXRQcm9wZXJ0eUF0
SW5kZXggcHJvdmlkZXMgb3B0aW1pemVkIGFjY2VzcyB0byBudW1lcmljIHByb3BlcnRpZXMuCiAq
Lwotdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIEpTVmFsdWVSZWYgdmFsdWUs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitKU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFByb3Bl
cnR5QXRJbmRleChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVk
IHByb3BlcnR5SW5kZXgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBKU09iamVjdFNldFBy
b3BlcnR5QXRJbmRleChKU0NvbnRleAogQHBhcmFtIG9iamVjdCBBIEpTT2JqZWN0IHdob3NlIHBy
aXZhdGUgZGF0YSB5b3Ugd2FudCB0byBnZXQuCiBAcmVzdWx0IEEgdm9pZCogdGhhdCBpcyB0aGUg
b2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBpZiB0aGUgb2JqZWN0IGhhcyBwcml2YXRlIGRhdGEsIG90
aGVyd2lzZSBOVUxMLgogKi8KLXZvaWQqIEpTT2JqZWN0R2V0UHJpdmF0ZShKU09iamVjdFJlZiBv
YmplY3QpOworSlNfRVhQT1JUIHZvaWQqIEpTT2JqZWN0R2V0UHJpdmF0ZShKU09iamVjdFJlZiBv
YmplY3QpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTQ0LDcgKzU0NCw3IEBAIHZvaWQqIEpTT2Jq
ZWN0R2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmoKIEByZXN1bHQgdHJ1ZSBpZiBvYmplY3QgY2Fu
IHN0b3JlIHByaXZhdGUgZGF0YSwgb3RoZXJ3aXNlIGZhbHNlLgogQGRpc2N1c3Npb24gVGhlIGRl
ZmF1bHQgb2JqZWN0IGNsYXNzIGRvZXMgbm90IGFsbG9jYXRlIHN0b3JhZ2UgZm9yIHByaXZhdGUg
ZGF0YS4gT25seSBvYmplY3RzIGNyZWF0ZWQgd2l0aCBhIG5vbi1OVUxMIEpTQ2xhc3MgY2FuIHN0
b3JlIHByaXZhdGUgZGF0YS4KICovCi1ib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJl
ZiBvYmplY3QsIHZvaWQqIGRhdGEpOworSlNfRVhQT1JUIGJvb2wgSlNPYmplY3RTZXRQcml2YXRl
KEpTT2JqZWN0UmVmIG9iamVjdCwgdm9pZCogZGF0YSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01
NTMsNyArNTUzLDcgQEAgYm9vbCBKU09iamVjdFNldFByaXZhdGUoSlNPYmplY3RSZWYgb2JqZQog
QHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3QgdG8gdGVzdC4KIEByZXN1bHQgdHJ1ZSBpZiB0aGUg
b2JqZWN0IGNhbiBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbiwgb3RoZXJ3aXNlIGZhbHNlLgogKi8K
LWJvb2wgSlNPYmplY3RJc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9i
amVjdCk7CitKU19FWFBPUlQgYm9vbCBKU09iamVjdElzRnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0
eCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTU2Niw3ICs1NjYs
NyBAQCBib29sIEpTT2JqZWN0SXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4CiBAcGFyYW0gZXhj
ZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLgogQHJlc3VsdCBUaGUgSlNWYWx1ZSB0aGF0IHJlc3VsdHMgZnJvbSBjYWxsaW5n
IG9iamVjdCBhcyBhIGZ1bmN0aW9uLCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24g
b3Igb2JqZWN0IGlzIG5vdCBhIGZ1bmN0aW9uLgogKi8KLUpTVmFsdWVSZWYgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmpl
Y3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAvKiEKIEBm
dW5jdGlvbgpAQCAtNTc1LDcgKzU3NSw3IEBAIEpTVmFsdWVSZWYgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihKU0NvbnQKIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHRvIHRlc3QuCiBAcmVzdWx0
IHRydWUgaWYgdGhlIG9iamVjdCBjYW4gYmUgY2FsbGVkIGFzIGEgY29uc3RydWN0b3IsIG90aGVy
d2lzZSBmYWxzZS4KICovCi1ib29sIEpTT2JqZWN0SXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYg
Y3R4LCBKU09iamVjdFJlZiBvYmplY3QpOworSlNfRVhQT1JUIGJvb2wgSlNPYmplY3RJc0NvbnN0
cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCk7CiAKIC8qIQogQGZ1
bmN0aW9uCkBAIC01ODcsNyArNTg3LDcgQEAgYm9vbCBKU09iamVjdElzQ29uc3RydWN0b3IoSlND
b250ZXh0UmVmIAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGlu
IHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRv
IG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgVGhlIEpTT2JqZWN0IHRo
YXQgcmVzdWx0cyBmcm9tIGNhbGxpbmcgb2JqZWN0IGFzIGEgY29uc3RydWN0b3IsIG9yIE5VTEwg
aWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBvciBvYmplY3QgaXMgbm90IGEgY29uc3RydWN0b3Iu
CiAqLwotSlNPYmplY3RSZWYgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYg
Y3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIEpT
T2JqZWN0UmVmIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAg
LTU5Niw3ICs1OTYsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yKEpT
CiBAcGFyYW0gb2JqZWN0IFRoZSBvYmplY3Qgd2hvc2UgcHJvcGVydHkgbmFtZXMgeW91IHdhbnQg
dG8gZ2V0LgogQHJlc3VsdCBBIEpTUHJvcGVydHlOYW1lQXJyYXkgY29udGFpbmluZyB0aGUgbmFt
ZXMgb2JqZWN0J3MgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLgogKi8KLUpTUHJvcGVydHlOYW1lQXJy
YXlSZWYgSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVj
dFJlZiBvYmplY3QpOworSlNfRVhQT1JUIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgSlNPYmplY3RD
b3B5UHJvcGVydHlOYW1lcyhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpOwog
CiAvKiEKIEBmdW5jdGlvbgpAQCAtNjA0LDE0ICs2MDQsMTQgQEAgSlNQcm9wZXJ0eU5hbWVBcnJh
eVJlZiBKU09iamVjdENvcHlQcm9wZQogQHBhcmFtIGFycmF5IFRoZSBKU1Byb3BlcnR5TmFtZUFy
cmF5IHRvIHJldGFpbi4KIEByZXN1bHQgQSBKU1Byb3BlcnR5TmFtZUFycmF5IHRoYXQgaXMgdGhl
IHNhbWUgYXMgYXJyYXkuCiAqLwotSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBKU1Byb3BlcnR5TmFt
ZUFycmF5UmV0YWluKEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOworSlNfRVhQT1JUIEpT
UHJvcGVydHlOYW1lQXJyYXlSZWYgSlNQcm9wZXJ0eU5hbWVBcnJheVJldGFpbihKU1Byb3BlcnR5
TmFtZUFycmF5UmVmIGFycmF5KTsKIAogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBSZWxlYXNl
cyBhIEphdmFTY3JpcHQgcHJvcGVydHkgbmFtZSBhcnJheS4KIEBwYXJhbSBhcnJheSBUaGUgSlNQ
cm9wZXR5TmFtZUFycmF5IHRvIHJlbGVhc2UuCiAqLwotdm9pZCBKU1Byb3BlcnR5TmFtZUFycmF5
UmVsZWFzZShKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5KTsKK0pTX0VYUE9SVCB2b2lkIEpT
UHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOwog
CiAvKiEKIEBmdW5jdGlvbgpAQCAtNjE5LDcgKzYxOSw3IEBAIHZvaWQgSlNQcm9wZXJ0eU5hbWVB
cnJheVJlbGVhc2UoSlNQcm9wZXIKIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgZnJvbSB3aGljaCB0
byByZXRyaWV2ZSB0aGUgY291bnQuCiBAcmVzdWx0IEFuIGludGVnZXIgY291bnQgb2YgdGhlIG51
bWJlciBvZiBuYW1lcyBpbiBhcnJheS4KICovCi1zaXplX3QgSlNQcm9wZXJ0eU5hbWVBcnJheUdl
dENvdW50KEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgYXJyYXkpOworSlNfRVhQT1JUIHNpemVfdCBK
U1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQoSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBhcnJheSk7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC02MjgsNyArNjI4LDcgQEAgc2l6ZV90IEpTUHJvcGVydHlO
YW1lQXJyYXlHZXRDb3VudChKU1BybwogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcHJv
cGVydHkgbmFtZSB0byByZXRyaWV2ZS4KIEByZXN1bHQgQSBKU1N0cmluZ1JlZiBjb250YWluaW5n
IHRoZSBwcm9wZXJ0eSBuYW1lLgogKi8KLUpTU3RyaW5nUmVmIEpTUHJvcGVydHlOYW1lQXJyYXlH
ZXROYW1lQXRJbmRleChKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5LCBzaXplX3QgaW5kZXgp
OworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTUHJvcGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRl
eChKU1Byb3BlcnR5TmFtZUFycmF5UmVmIGFycmF5LCBzaXplX3QgaW5kZXgpOwogCiAvKiEKIEBm
dW5jdGlvbgpAQCAtNjM2LDcgKzYzNiw3IEBAIEpTU3RyaW5nUmVmIEpTUHJvcGVydHlOYW1lQXJy
YXlHZXROYW1lQXQKIEBwYXJhbSBhY2N1bXVsYXRvciBUaGUgYWNjdW11bGF0b3Igb2JqZWN0IHRv
IHdoaWNoIHRvIGFkZCB0aGUgcHJvcGVydHkgbmFtZS4KIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhl
IHByb3BlcnR5IG5hbWUgdG8gYWRkLgogKi8KLXZvaWQgSlNQcm9wZXJ0eU5hbWVBY2N1bXVsYXRv
ckFkZE5hbWUoSlNQcm9wZXJ0eU5hbWVBY2N1bXVsYXRvclJlZiBhY2N1bXVsYXRvciwgSlNTdHJp
bmdSZWYgcHJvcGVydHlOYW1lKTsKK0pTX0VYUE9SVCB2b2lkIEpTUHJvcGVydHlOYW1lQWNjdW11
bGF0b3JBZGROYW1lKEpTUHJvcGVydHlOYW1lQWNjdW11bGF0b3JSZWYgYWNjdW11bGF0b3IsIEpT
U3RyaW5nUmVmIHByb3BlcnR5TmFtZSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDog
SmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvQVBJL0pTU3RyaW5nUmVmLmgJKHJldmlzaW9uIDI4MDY5KQorKysgSmF2YVNjcmlwdENv
cmUvQVBJL0pTU3RyaW5nUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDE0ICs1MywxNCBAQCBl
eHRlcm4gIkMiIHsKIEBwYXJhbSBudW1DaGFycyAgIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0
byBjb3B5IGZyb20gdGhlIGJ1ZmZlciBwb2ludGVkIHRvIGJ5IGNoYXJzLgogQHJlc3VsdCAgICAg
ICAgICAgQSBKU1N0cmluZyBjb250YWluaW5nIGNoYXJzLiBPd25lcnNoaXAgZm9sbG93cyB0aGUg
Q3JlYXRlIFJ1bGUuCiAqLwotSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMpOworSlNfRVhQT1JUIEpTU3Ry
aW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoY29uc3QgSlNDaGFyKiBjaGFycywg
c2l6ZV90IG51bUNoYXJzKTsKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgICAgICAgICBDcmVh
dGVzIGEgSmF2YVNjcmlwdCBzdHJpbmcgZnJvbSBhIG51bGwtdGVybWluYXRlZCBVVEY4IHN0cmlu
Zy4KIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBudWxsLXRlcm1pbmF0ZWQgVVRGOCBzdHJpbmcgdG8g
Y29weSBpbnRvIHRoZSBuZXcgSlNTdHJpbmcuCiBAcmVzdWx0ICAgICAgICAgICBBIEpTU3RyaW5n
IGNvbnRhaW5pbmcgc3RyaW5nLiBPd25lcnNoaXAgZm9sbG93cyB0aGUgQ3JlYXRlIFJ1bGUuCiAq
LwotSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciog
c3RyaW5nKTsKK0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhjb25zdCBjaGFyKiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjgsMTMgKzY4
LDEzIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW4KIEBwYXJhbSBz
dHJpbmcgICAgIFRoZSBKU1N0cmluZyB0byByZXRhaW4uCiBAcmVzdWx0ICAgICAgICAgICBBIEpT
U3RyaW5nIHRoYXQgaXMgdGhlIHNhbWUgYXMgc3RyaW5nLgogKi8KLUpTU3RyaW5nUmVmIEpTU3Ry
aW5nUmV0YWluKEpTU3RyaW5nUmVmIHN0cmluZyk7CitKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNT
dHJpbmdSZXRhaW4oSlNTdHJpbmdSZWYgc3RyaW5nKTsKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJh
Y3QgICAgICAgICBSZWxlYXNlcyBhIEphdmFTY3JpcHQgc3RyaW5nLgogQHBhcmFtIHN0cmluZyAg
ICAgVGhlIEpTU3RyaW5nIHRvIHJlbGVhc2UuCiAqLwotdm9pZCBKU1N0cmluZ1JlbGVhc2UoSlNT
dHJpbmdSZWYgc3RyaW5nKTsKK0pTX0VYUE9SVCB2b2lkIEpTU3RyaW5nUmVsZWFzZShKU1N0cmlu
Z1JlZiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtODIsNyArODIsNyBAQCB2b2lkIEpT
U3RyaW5nUmVsZWFzZShKU1N0cmluZ1JlZiBzdHJpbmcpCiBAcGFyYW0gc3RyaW5nICAgICBUaGUg
SlNTdHJpbmcgd2hvc2UgbGVuZ3RoIChpbiBVbmljb2RlIGNoYXJhY3RlcnMpIHlvdSB3YW50IHRv
IGtub3cuCiBAcmVzdWx0ICAgICAgICAgICBUaGUgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVy
cyBzdG9yZWQgaW4gc3RyaW5nLgogKi8KLXNpemVfdCBKU1N0cmluZ0dldExlbmd0aChKU1N0cmlu
Z1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIHNpemVfdCBKU1N0cmluZ0dldExlbmd0aChKU1N0cmlu
Z1JlZiBzdHJpbmcpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCAgICAgICAgIFJldHVybnMg
YSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIGNoYXJhY3RlciBidWZmZXIgdGhhdCAKQEAgLTkxLDcg
KzkxLDcgQEAgc2l6ZV90IEpTU3RyaW5nR2V0TGVuZ3RoKEpTU3RyaW5nUmVmIHN0cgogQHJlc3Vs
dCAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIGNoYXJhY3RlciBidWZmZXIgdGhh
dCBzZXJ2ZXMgYXMgc3RyaW5nJ3MgCiAgYmFja2luZyBzdG9yZSwgd2hpY2ggd2lsbCBiZSBkZWFs
bG9jYXRlZCB3aGVuIHN0cmluZyBpcyBkZWFsbG9jYXRlZC4KICovCi1jb25zdCBKU0NoYXIqIEpT
U3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIGNv
bnN0IEpTQ2hhciogSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKEpTU3RyaW5nUmVmIHN0cmluZyk7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDMsNyArMTAzLDcgQEAgY29uc3QgSlNDaGFyKiBKU1N0
cmluZ0dldENoYXJhY3RlcnNQdHIoSgogIG51bGwtdGVybWluYXRlZCBVVEY4IHN0cmluZy4gVGhl
IG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBjb252ZXJzaW9uIGFjdHVhbGx5IGVuZHMgCiAgdXAg
cmVxdWlyaW5nIGNvdWxkIGJlIGxlc3MgdGhhbiB0aGlzLCBidXQgbmV2ZXIgbW9yZS4KICovCi1z
aXplX3QgSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKEpTU3RyaW5nUmVmIHN0cmlu
Zyk7CitKU19FWFBPUlQgc2l6ZV90IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShK
U1N0cmluZ1JlZiBzdHJpbmcpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBDb252ZXJ0cyBh
IEphdmFTY3JpcHQgc3RyaW5nIGludG8gYSBudWxsLXRlcm1pbmF0ZWQgVVRGOCBzdHJpbmcsIApA
QCAtMTE3LDcgKzExNyw3IEBAIHNpemVfdCBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1Np
emUKIEBwYXJhbSBidWZmZXJTaXplIFRoZSBzaXplIG9mIHRoZSBleHRlcm5hbCBidWZmZXIgaW4g
Ynl0ZXMuCiBAcmVzdWx0IFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBpbnRvIGJ1ZmZlciAo
aW5jbHVkaW5nIHRoZSBudWxsLXRlcm1pbmF0b3IgYnl0ZSkuCiAqLwotc2l6ZV90IEpTU3RyaW5n
R2V0VVRGOENTdHJpbmcoSlNTdHJpbmdSZWYgc3RyaW5nLCBjaGFyKiBidWZmZXIsIHNpemVfdCBi
dWZmZXJTaXplKTsKK0pTX0VYUE9SVCBzaXplX3QgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhKU1N0
cmluZ1JlZiBzdHJpbmcsIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpOwogCiAvKiEK
IEBmdW5jdGlvbgpAQCAtMTI2LDcgKzEyNiw3IEBAIHNpemVfdCBKU1N0cmluZ0dldFVURjhDU3Ry
aW5nKEpTU3RyaW5nUmUKIEBwYXJhbSBiICAgICAgVGhlIHNlY29uZCBKU1N0cmluZyB0byB0ZXN0
LgogQHJlc3VsdCAgICAgICB0cnVlIGlmIHRoZSB0d28gc3RyaW5ncyBtYXRjaCwgb3RoZXJ3aXNl
IGZhbHNlLgogKi8KLWJvb2wgSlNTdHJpbmdJc0VxdWFsKEpTU3RyaW5nUmVmIGEsIEpTU3RyaW5n
UmVmIGIpOworSlNfRVhQT1JUIGJvb2wgSlNTdHJpbmdJc0VxdWFsKEpTU3RyaW5nUmVmIGEsIEpT
U3RyaW5nUmVmIGIpOwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCAgICAgVGVzdHMgd2hldGhl
ciBhIEphdmFTY3JpcHQgc3RyaW5nIG1hdGNoZXMgYSBudWxsLXRlcm1pbmF0ZWQgVVRGOCBzdHJp
bmcuCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBKU1N0cmluZ0lzRXF1YWwoSlNTdHJpbmdSZWYg
YSwgSlNTdAogQHBhcmFtIGIgICAgICBUaGUgbnVsbC10ZXJtaW5hdGVkIFVURjggc3RyaW5nIHRv
IHRlc3QuCiBAcmVzdWx0ICAgICAgIHRydWUgaWYgdGhlIHR3byBzdHJpbmdzIG1hdGNoLCBvdGhl
cndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKEpTU3Ry
aW5nUmVmIGEsIGNvbnN0IGNoYXIqIGIpOworSlNfRVhQT1JUIGJvb2wgSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhKU1N0cmluZ1JlZiBhLCBjb25zdCBjaGFyKiBiKTsKIAogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZCU1RSLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmQlNUUi5oCShyZXZp
c2lvbiAyODA2OSkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkJTVFIuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBleHRlcm4gIkMiIHsKIEBwYXJhbSBzdHJpbmcg
ICAgIFRoZSBCU1RSIHRvIGNvcHkgaW50byB0aGUgbmV3IEpTU3RyaW5nLgogQHJlc3VsdCAgICAg
ICAgICAgQSBKU1N0cmluZyBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlwIGZvbGxvd3MgdGhl
IENyZWF0ZSBSdWxlLgogKi8KLUpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aEJTVFIoY29u
c3QgQlNUUiBzdHJpbmcpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0
aEJTVFIoY29uc3QgQlNUUiBzdHJpbmcpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNTQsNyArNTQs
NyBAQCBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhCU1RSKGNvbnN0CiBAcGFyYW0gc3Ry
aW5nICAgICBUaGUgSlNTdHJpbmcgdG8gY29weSBpbnRvIHRoZSBuZXcgQlNUUi4KIEByZXN1bHQg
ICAgICAgICAgIEEgQlNUUiBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlwIGZvbGxvd3MgdGhl
IENyZWF0ZSBSdWxlLgogKi8KLUJTVFIgSlNTdHJpbmdDb3B5QlNUUihjb25zdCBKU1N0cmluZ1Jl
ZiBzdHJpbmcpOworSlNfRVhQT1JUIEJTVFIgSlNTdHJpbmdDb3B5QlNUUihjb25zdCBKU1N0cmlu
Z1JlZiBzdHJpbmcpOwogICAgIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L0FQSS9KU1N0cmluZ1JlZkNGLmgJKHJldmlzaW9uIDI4MDY5KQorKysgSmF2YVNjcmlwdENvcmUv
QVBJL0pTU3RyaW5nUmVmQ0YuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBleHRl
cm4gIkMiIHsKIEBwYXJhbSBzdHJpbmcgICAgIFRoZSBDRlN0cmluZyB0byBjb3B5IGludG8gdGhl
IG5ldyBKU1N0cmluZy4KIEByZXN1bHQgICAgICAgICAgIEEgSlNTdHJpbmcgY29udGFpbmluZyBz
dHJpbmcuIE93bmVyc2hpcCBmb2xsb3dzIHRoZSBDcmVhdGUgUnVsZS4KICovCi1KU1N0cmluZ1Jl
ZiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQ
T1JUIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU3RyaW5nUmVmIHN0
cmluZyk7CiAvKiEKIEBmdW5jdGlvbgogQGFic3RyYWN0ICAgICAgICAgQ3JlYXRlcyBhIENGU3Ry
aW5nIGZyb20gYSBKYXZhU2NyaXB0IHN0cmluZy4KQEAgLTUyLDcgKzUyLDcgQEAgSlNTdHJpbmdS
ZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoQwogQHBhcmFtIHN0cmluZyAgICAgVGhlIEpT
U3RyaW5nIHRvIGNvcHkgaW50byB0aGUgbmV3IENGU3RyaW5nLgogQHJlc3VsdCAgICAgICAgICAg
QSBDRlN0cmluZyBjb250YWluaW5nIHN0cmluZy4gT3duZXJzaGlwIGZvbGxvd3MgdGhlIENyZWF0
ZSBSdWxlLgogKi8KLUNGU3RyaW5nUmVmIEpTU3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9y
UmVmIGFsbG9jLCBKU1N0cmluZ1JlZiBzdHJpbmcpOworSlNfRVhQT1JUIENGU3RyaW5nUmVmIEpT
U3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jLCBKU1N0cmluZ1JlZiBzdHJp
bmcpOwogICAgIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZVJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
UmVmLmgJKHJldmlzaW9uIDI4MDY5KQorKysgSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBleHRlcm4gIkMiIHsKIEBwYXJhbSB2
YWx1ZSAgICBUaGUgSlNWYWx1ZSB3aG9zZSB0eXBlIHlvdSB3YW50IHRvIG9idGFpbi4KIEByZXN1
bHQgICAgICAgICBBIHZhbHVlIG9mIHR5cGUgSlNUeXBlIHRoYXQgaWRlbnRpZmllcyB2YWx1ZSdz
IHR5cGUuCiAqLwotSlNUeXBlIEpTVmFsdWVHZXRUeXBlKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFs
dWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIEpTVHlwZSBKU1ZhbHVlR2V0VHlwZShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTcwLDcgKzcw
LDcgQEAgSlNUeXBlIEpTVmFsdWVHZXRUeXBlKEpTQ29udGV4dFJlZiBjdHgsIAogQHBhcmFtIHZh
bHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1
ZSdzIHR5cGUgaXMgdGhlIHVuZGVmaW5lZCB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9v
bCBKU1ZhbHVlSXNVbmRlZmluZWQoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7
CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNVbmRlZmluZWQoSlNDb250ZXh0UmVmIGN0eCwgSlNW
YWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wg
SlNWYWx1ZUlzVW5kZWZpbmVkKEpTQ29udGV4dFJlZiBjdHgKIEBwYXJhbSB2YWx1ZSAgICBUaGUg
SlNWYWx1ZSB0byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUncyB0eXBlIGlz
IHRoZSBudWxsIHR5cGUsIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29sIEpTVmFsdWVJc051bGwo
SlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1Zh
bHVlSXNOdWxsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCiAvKiEKIEBm
dW5jdGlvbgpAQCAtODgsNyArODgsNyBAQCBib29sIEpTVmFsdWVJc051bGwoSlNDb250ZXh0UmVm
IGN0eCwgSlNWCiBAcGFyYW0gdmFsdWUgICAgVGhlIEpTVmFsdWUgdG8gdGVzdC4KIEByZXN1bHQg
ICAgICAgICB0cnVlIGlmIHZhbHVlJ3MgdHlwZSBpcyB0aGUgYm9vbGVhbiB0eXBlLCBvdGhlcndp
c2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNCb29sZWFuKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzQm9vbGVhbihKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTk3LDcg
Kzk3LDcgQEAgYm9vbCBKU1ZhbHVlSXNCb29sZWFuKEpTQ29udGV4dFJlZiBjdHgsIAogQHBhcmFt
IHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2
YWx1ZSdzIHR5cGUgaXMgdGhlIG51bWJlciB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9v
bCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitK
U19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDYsNyArMTA2LDcgQEAgYm9vbCBKU1Zh
bHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSgogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1Zh
bHVlIHRvIHRlc3QuCiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUgaXMgdGhl
IHN0cmluZyB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNTdHJpbmco
SlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1Zh
bHVlSXNTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQog
QGZ1bmN0aW9uCkBAIC0xMTUsNyArMTE1LDcgQEAgYm9vbCBKU1ZhbHVlSXNTdHJpbmcoSlNDb250
ZXh0UmVmIGN0eCwgSgogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiBAcmVz
dWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUgaXMgdGhlIG9iamVjdCB0eXBlLCBvdGhl
cndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNPYmplY3QoSlNDb250ZXh0UmVmIGN0eCwg
SlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNPYmplY3QoSlNDb250
ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMjUs
NyArMTI1LDcgQEAgYm9vbCBKU1ZhbHVlSXNPYmplY3QoSlNDb250ZXh0UmVmIGN0eCwgSgogQHBh
cmFtIGpzQ2xhc3MgVGhlIEpTQ2xhc3MgdG8gdGVzdCBhZ2FpbnN0LgogQHJlc3VsdCB0cnVlIGlm
IHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgaGFzIGpzQ2xhc3MgaW4gaXRzIGNsYXNzIGNoYWluLCBv
dGhlcndpc2UgZmFsc2UuCiAqLwotYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKEpTQ29udGV4
dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFzcyk7CitKU19FWFBP
UlQgYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVS
ZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFzcyk7CiAKIC8vIENvbXBhcmluZyB2YWx1ZXMKIApA
QCAtMTM4LDcgKzEzOCw3IEBAIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRS
ZWYKIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0
byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2Fy
ZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcmVzdWx0IHRydWUgaWYgdGhlIHR3byB2YWx1ZXMg
YXJlIGVxdWFsLCBmYWxzZSBpZiB0aGV5IGFyZSBub3QgZXF1YWwgb3IgYW4gZXhjZXB0aW9uIGlz
IHRocm93bi4KICovCi1ib29sIEpTVmFsdWVJc0VxdWFsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFs
dWVSZWYgYSwgSlNWYWx1ZVJlZiBiLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JU
IGJvb2wgSlNWYWx1ZUlzRXF1YWwoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiBhLCBKU1Zh
bHVlUmVmIGIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0x
NDgsNyArMTQ4LDcgQEAgYm9vbCBKU1ZhbHVlSXNFcXVhbChKU0NvbnRleHRSZWYgY3R4LCBKUwog
QHBhcmFtIGIgICAgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gdGVzdC4KIEByZXN1bHQgICAgICAg
ICB0cnVlIGlmIHRoZSB0d28gdmFsdWVzIGFyZSBzdHJpY3QgZXF1YWwsIG90aGVyd2lzZSBmYWxz
ZS4KICovCi1ib29sIEpTVmFsdWVJc1N0cmljdEVxdWFsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFs
dWVSZWYgYSwgSlNWYWx1ZVJlZiBiKTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc1N0cmljdEVx
dWFsKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgYSwgSlNWYWx1ZVJlZiBiKTsKIAogLyoh
CiBAZnVuY3Rpb24KQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIEpTVmFsdWVJc1N0cmljdEVxdWFs
KEpTQ29udGV4dFJlZiBjCiBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVS
ZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5
b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3VsdCB0cnVlIGlmIHZh
bHVlIGlzIGFuIG9iamVjdCBjb25zdHJ1Y3RlZCBieSBjb25zdHJ1Y3RvciwgYXMgY29tcGFyZWQg
YnkgdGhlIEpTIGluc3RhbmNlb2Ygb3BlcmF0b3IsIG90aGVyd2lzZSBmYWxzZS4KICovCi1ib29s
IEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVl
UmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25zdHJ1Y3RvciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25zdHJ1Y3RvciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLy8gQ3JlYXRpbmcgdmFsdWVzCiAKQEAgLTE2OSw3ICsx
NjksNyBAQCBib29sIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihKU0NvCiBAcGFyYW0g
Y3R4ICBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgogQHJlc3VsdCAgICAgICAgIFRoZSB1
bmlxdWUgdW5kZWZpbmVkIHZhbHVlLgogKi8KLUpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoSlNDb250ZXh0UmVmIGN0eCk7CitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChKU0NvbnRleHRSZWYgY3R4KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE3Nyw3ICsx
NzcsNyBAQCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlVW5kZWZpbmVkKEpTQ29udGV4CiBAcGFyYW0g
Y3R4ICBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgogQHJlc3VsdCAgICAgICAgIFRoZSB1
bmlxdWUgbnVsbCB2YWx1ZS4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVsbChKU0NvbnRl
eHRSZWYgY3R4KTsKK0pTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVsbChKU0NvbnRl
eHRSZWYgY3R4KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE4Niw3ICsxODYsNyBAQCBKU1ZhbHVl
UmVmIEpTVmFsdWVNYWtlTnVsbChKU0NvbnRleHRSZWYgCiBAcGFyYW0gYm9vbGVhbiAgVGhlIGJv
b2wgdG8gYXNzaWduIHRvIHRoZSBuZXdseSBjcmVhdGVkIEpTVmFsdWUuCiBAcmVzdWx0ICAgICAg
ICAgQSBKU1ZhbHVlIG9mIHRoZSBib29sZWFuIHR5cGUsIHJlcHJlc2VudGluZyB0aGUgdmFsdWUg
b2YgYm9vbGVhbi4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9vbGVhbihKU0NvbnRleHRS
ZWYgY3R4LCBib29sIGJvb2xlYW4pOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VC
b29sZWFuKEpTQ29udGV4dFJlZiBjdHgsIGJvb2wgYm9vbGVhbik7CiAKIC8qIQogQGZ1bmN0aW9u
CkBAIC0xOTUsNyArMTk1LDcgQEAgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUJvb2xlYW4oSlNDb250
ZXh0UgogQHBhcmFtIG51bWJlciAgIFRoZSBkb3VibGUgdG8gYXNzaWduIHRvIHRoZSBuZXdseSBj
cmVhdGVkIEpTVmFsdWUuCiBAcmVzdWx0ICAgICAgICAgQSBKU1ZhbHVlIG9mIHRoZSBudW1iZXIg
dHlwZSwgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiBudW1iZXIuCiAqLwotSlNWYWx1ZVJlZiBK
U1ZhbHVlTWFrZU51bWJlcihKU0NvbnRleHRSZWYgY3R4LCBkb3VibGUgbnVtYmVyKTsKK0pTX0VY
UE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlTnVtYmVyKEpTQ29udGV4dFJlZiBjdHgsIGRvdWJs
ZSBudW1iZXIpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMjA1LDcgKzIwNSw3IEBAIEpTVmFsdWVS
ZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlNDb250ZXh0UmUKICBuZXdseSBjcmVhdGVkIEpTVmFsdWUg
cmV0YWlucyBzdHJpbmcsIGFuZCByZWxlYXNlcyBpdCB1cG9uIGdhcmJhZ2UgY29sbGVjdGlvbi4K
IEByZXN1bHQgICAgICAgICBBIEpTVmFsdWUgb2YgdGhlIHN0cmluZyB0eXBlLCByZXByZXNlbnRp
bmcgdGhlIHZhbHVlIG9mIHN0cmluZy4KICovCi1KU1ZhbHVlUmVmIEpTVmFsdWVNYWtlU3RyaW5n
KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZyk7CitKU19FWFBPUlQgSlNWYWx1
ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHJp
bmcpOwogCiAvLyBDb252ZXJ0aW5nIHRvIHByaW1pdGl2ZSB2YWx1ZXMKIApAQCAtMjE2LDcgKzIx
Niw3IEBAIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0UmUKIEBwYXJhbSB2
YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byBjb252ZXJ0LgogQHJlc3VsdCAgICAgICAgIFRoZSBib29s
ZWFuIHJlc3VsdCBvZiBjb252ZXJzaW9uLgogKi8KLWJvb2wgSlNWYWx1ZVRvQm9vbGVhbihKU0Nv
bnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVU
b0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CiAKIC8qIQogQGZ1
bmN0aW9uCkBAIC0yMjYsNyArMjI2LDcgQEAgYm9vbCBKU1ZhbHVlVG9Cb29sZWFuKEpTQ29udGV4
dFJlZiBjdHgsIAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGlu
IHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRv
IG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgICAgICAgICBUaGUgbnVt
ZXJpYyByZXN1bHQgb2YgY29udmVyc2lvbiwgb3IgTmFOIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJv
d24uCiAqLwotZG91YmxlIEpTVmFsdWVUb051bWJlcihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVl
UmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworSlNfRVhQT1JUIGRvdWJsZSBKU1Zh
bHVlVG9OdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTIzNiw3ICsyMzYsNyBAQCBkb3Vi
bGUgSlNWYWx1ZVRvTnVtYmVyKEpTQ29udGV4dFJlZiBjdHgsCiBAcGFyYW0gZXhjZXB0aW9uIEEg
cG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBp
ZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LgogQHJlc3VsdCAgICAgICAgIEEgSlNTdHJpbmcgd2l0aCB0aGUgcmVzdWx0IG9mIGNvbnZlcnNp
b24sIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4gT3duZXJzaGlwIGZvbGxvd3Mg
dGhlIENyZWF0ZSBSdWxlLgogKi8KLUpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlND
b250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsK
K0pTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU1ZhbHVlVG9TdHJpbmdDb3B5KEpTQ29udGV4dFJlZiBj
dHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIC8qIQogQGZ1
bmN0aW9uCkBAIC0yNDYsNyArMjQ2LDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29w
eShKU0NvbnRleAogQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGlu
IHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRv
IG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KIEByZXN1bHQgICAgICAgICBUaGUgSlNP
YmplY3QgcmVzdWx0IG9mIGNvbnZlcnNpb24sIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRo
cm93bi4KICovCi1KU09iamVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlNDb250ZXh0UmVmIGN0eCwg
SlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK0pTX0VYUE9SVCBKU09i
amVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogLy8gR2FyYmFnZSBjb2xsZWN0aW9uCiAvKiEK
QEAgLTI1OCw3ICsyNTgsNyBAQCBKU09iamVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlNDb250ZXh0
UmVmCiAgCiBBIHZhbHVlIG1heSBiZSBwcm90ZWN0ZWQgbXVsdGlwbGUgdGltZXMgYW5kIG11c3Qg
YmUgdW5wcm90ZWN0ZWQgYW4gZXF1YWwgbnVtYmVyIG9mIHRpbWVzIGJlZm9yZSBiZWNvbWluZyBl
bGlnaWJsZSBmb3IgZ2FyYmFnZSBjb2xsZWN0aW9uLgogKi8KLXZvaWQgSlNWYWx1ZVByb3RlY3Qo
SlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSk7CitKU19FWFBPUlQgdm9pZCBKU1Zh
bHVlUHJvdGVjdChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKIAogLyohCiBA
ZnVuY3Rpb24KQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIEpTVmFsdWVQcm90ZWN0KEpTQ29udGV4
dFJlZiBjdHgsIEpTCiBAZGlzY3Vzc2lvbiAgICAgQSB2YWx1ZSBtYXkgYmUgcHJvdGVjdGVkIG11
bHRpcGxlIHRpbWVzIGFuZCBtdXN0IGJlIHVucHJvdGVjdGVkIGFuIAogIGVxdWFsIG51bWJlciBv
ZiB0aW1lcyBiZWZvcmUgYmVjb21pbmcgZWxpZ2libGUgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbi4K
ICovCi12b2lkIEpTVmFsdWVVbnByb3RlY3QoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2
YWx1ZSk7CitKU19FWFBPUlQgdm9pZCBKU1ZhbHVlVW5wcm90ZWN0KEpTQ29udGV4dFJlZiBjdHgs
IEpTVmFsdWVSZWYgdmFsdWUpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
</data>
<flag name="review"
          id="7546"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>