Check-in [8d336a92f5]
Not logged in
Overview
Comment:Add variables to package repository client to configure various parameters, including 'quiet mode' and whether or not to automatically load Tcl/Garuda and install the hook.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8d336a92f55312bb1847e6feb44ac3bdb05b3ad7
User & Date: mistachkin on 2016-08-15 22:11:16
Other Links: manifest | tags
Context
2016-08-15
22:18
Coding style corrections. check-in: 509edf2c46 user: mistachkin tags: trunk
22:11
Add variables to package repository client to configure various parameters, including 'quiet mode' and whether or not to automatically load Tcl/Garuda and install the hook. check-in: 8d336a92f5 user: mistachkin tags: trunk
21:03
Enable 'quiet' mode for the package lookup request to the package repository server. check-in: 878e274ae3 user: mistachkin tags: trunk
Changes

Added client/pkgIndex.eagle version [3790f29011].











































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
###############################################################################
#
# pkgIndex.eagle --
#
# Extensible Adaptable Generalized Logic Engine (Eagle)
# Package Index File
#
# Copyright (c) 2007-2012 by Joe Mistachkin.  All rights reserved.
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: $
#
###############################################################################

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
if {![package vsatisfies [package provide Eagle] 1.0]} {return}

package ifneeded Eagle.Package.Repository 1.0 \
    [list source [file join $dir pkgr.eagle]]

Added client/pkgIndex.eagle.harpy version [50c972f469].





































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<!--
    Eagle Enterprise Edition Script Certificate

    The format of this file is proprietary and may not be reverse
    engineered.

    This certificate file is subject to the terms of the license agreement
    located at:

    https://eagle.to/enterprise/license.html

    By using this file and/or the associated software, you agree to abide
    by the terms of the license agreement.

    PLEASE DO NOT EDIT THIS FILE.
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>bd4c7683-b636-4e5a-814d-af281cf8a8e8</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T21:35:31.1481953Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    K4mwPnHD6CEc7CNyhetY/hJcze09F6WQ50TdOuiQc7T4d4gyTeVa3uyEscWLyuSqqXF1y79Z0GEc
    mwCEYr2QffYvtpx+NiAsvuAp+N+awnVxaSa6c40R/6fyQ9mQD3QRPMgZGdVBL4MRLK79mmmQvTXb
    fUdZ2Gara7nUJ9wbruYUtzb9Hg5kZe6+CUIQKQ3jE8YRNd4yQcMb80PbjlhWdauXxRiLZzLMC3sd
    wgZVVkXMRC5XwgB44LCSoTM/AaJS6if+n6xf3KQ2r2j7AlR65PFY9NRM579zbxBop5ZiPDc15Gen
    K5d+XBGp6iM7hpKjfcVfeeWV1Wgcw1lMfgZg32NxwYQFQa8Spt8XUL6UGObCqiy+cjpFZmT7WP66
    uNeUSEbE0Q+HkLsfXu9LcUt5B92GmM6WxQFy6yjRb0rb0Lxwd8hGOcFx3I+1hkDjGwlFK5CdLsx6
    d+KHAQR9qvMrF1+oUy4FwhgcVNJAc95euFy1I4zb8ruFi1L/2u+RPAgGMT97D7RwTA6lSctI7AZ5
    j8DZc/4YTvuyxY2SsOK0j55b5BikxQsAx+tX2cJ1dv3nFSswXS5whoKRAX2b0NSFZwpFAa4EtTyM
    5AJ+2jCO4Vxo78bGqmWxoQnWQ631XzNzrEG9b3sDSeXsuhHTqjdF7/KA0mXA4Tauzun/F0uxd8i7
    aV2k3a9AadTYoG85/wWDU4a1kLa+i4DtiWXpULrjVG2ImNGpUyAqc9Ih5rpp7JlZVc8PsS0hGSPY
    yp0vYiXkXN4gGavHSWhsqqoLUomhE50iwFsOrr5PxlhOPC1NMB+DHwiJD+WjJUMK4Iy41Y8o327F
    Zce+U0hKDhXC8LG2o9MDPfPpQSdWM98MuYYxwJuZI4RAxu+/LE2/3s4PdMLhl9QEiIRw18n9664l
    puQkjuPkZFwvuegoKvy+iQAWDYIGu4uBX1hUT0rUER+XfMJqhFvlyHcCyZfWtKR/URGjZlSpBJH4
    ru0hdD03NBOSCFV0TLQRRizhqTxs75yolBnfcrf6LhDN0L5GhnsS1eUCripljYz9Wvhm/pgNxX1H
    xwVKunMyrZMwcfD8OgSll83i81xG6xtzJ4WXNKckenZ7fMC7rjMqVEsA917ue9MWyiDN+UUk/wZ/
    LppOtFelORbfJny0OYvijTdXzNKgyVBT/LfACvvJRbhAYrJaW8Cxvl0m1/dRmJvDmQue0yr0vtrY
    UIJN699kUnAg6v60uPldIZaQvMPHGTHohaMuwjZ6oQNzWXl+cv2JsQ+MDFFseBnJ5YetOpkIdW1n
    On1lKWagO50AtY8dqATvYSBINoWOA2+s/Ry2ZzLgXY7YmV9a5PrXeSG3uuglkCbuDSVpORohlg==
  </Signature>
</Certificate>

Added client/pkgIndex.tcl version [75024466f9].











































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
###############################################################################
#
# pkgIndex.tcl --
#
# Extensible Adaptable Generalized Logic Engine (Eagle)
# Package Index File
#
# Copyright (c) 2007-2012 by Joe Mistachkin.  All rights reserved.
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: $
#
###############################################################################

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
if {[string length [package provide Eagle]] > 0} then {return}

package ifneeded Eagle.Package.Repository 1.0 \
    [list source [file join $dir pkgr.eagle]]

Added client/pkgIndex.tcl.harpy version [e08d6f044c].





































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<!--
    Eagle Enterprise Edition Script Certificate

    The format of this file is proprietary and may not be reverse
    engineered.

    This certificate file is subject to the terms of the license agreement
    located at:

    https://eagle.to/enterprise/license.html

    By using this file and/or the associated software, you agree to abide
    by the terms of the license agreement.

    PLEASE DO NOT EDIT THIS FILE.
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>6dbcb424-0213-43a5-af65-59a3015b500c</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T21:36:39.0690938Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    Bxt8syFTFTeddS7O+ilRnuIs7TPkar73FZWTgeLrrIe4MQ7EbVdnWUzpaL7NTajo8/QWSoyl4cUL
    fmoeMXs52eqn7Kc4KOmoUVAhdJ5+5seO57/fXCTpyGzdm6B3GZVRmcKfTVYsKmHPITMNYVctQtd9
    nkQuIvRQHecMv+yI4msCvqQSIShd/9gN8AILk0WuUNdTV4QZpFLivC5sRpRbLuhl6XzF8ODi7s0O
    bJ/Wt4dlTeCdge+KqBJfjM2+kRefAX+6nYlS4hztsLZtoHVK7ayRtwqUxhZ82eMIeB8MN3EEjOiQ
    tR5U4DBRu/YpCMTb76ridnPKayjwVScz6icEHV0GPIOTrT0fUnK2Q4LGDW0JfCNs6YHrVNOGVRks
    cNVAm2OQxLNvr4LCuMTylhh2VgaifzbMJK2rMmTzlApVoGS12y6wllo6UW4WWy18vKA72q7VZYL2
    OqyD5P60pojLztvw5gnlzTi1xkPoqVakR/WwDR3ppsc/CQNNfx4Qsjm9rr0MonZVbmJsp5U80/92
    mS0S9lvIULAmpSiJipaeoo2AZ6ByWihqya15TUBXX9/zvPW7sJKUZ/juOa0Sa4g1rH0+LlSRaLkT
    UdyKiKZg7j9QcvfkJW/JBsKSGn/7+qKcMN4HiqNzphblFtO3BbYc4RvMnnQkjgK3o3yO2y8dFGHi
    IObLQuq9535h2psnRjtPb/erVwNDs5zeQA344QrKXLblaj256NTKDopZtGd6ke0IX/SZWbeO8TY1
    teImYZ/aDiAej69pYETpqjjq3fiZCEltBLt+tIM6lDhXx8HA3zN3PQ4pXb7arOxKXt0Oz8h6Viz/
    64gy0d2kP8gC0KBhF0o5unNSHiamGYV4g+BsTBHROZ1e/cRzcPzWSvzzrRUORi5lf1LpsmAVxzIV
    3KyvJZv13XXmrORh/KGAU1paWihZT0u4mGi0lBIpfkL3EF40tAoBVr0AoQKam0ovphsS4ZSpWZ55
    TUY2+M59lJ1mOEt/FAJYvUVppXQC5bnhCH+dWf6+oUfdqPIGML526h3sLNvczaoKVvLKFvDIFBBh
    F1TGNn2ZywIHOTPoih9RdATo4r6+CUny+ms8n+PZEE8VoP6IN/gl3sSHRhQyzrnkZLARYV2OkYU+
    21Ia4X4n9koY9fOg0UMGNtBGWwIut6xA9xkoeyXlIYPxmTU/HCAWdx+Y3x+PvYdjmbeR/W8kKRxy
    s62QFkSUscwpimAoBQxCc57h++OxcVDQhkcvanlkG41Dg13nAjkSFpt/5gCA3UUOhxGyC8lTIV1Y
    d9YmPTByWFgSBHJrPGhF2/tZFcpzKbAvnJlNW2w50SX9MQUdNjL78uMn1mk2NFFjIMpJWvGFRw==
  </Signature>
</Certificate>

Modified client/pkgr.eagle from [4a20860d6d] to [68c13f40af].

122
123
124
125
126
127
128


129
130
131
132
133
134
135
136
    if {[string length $uri] == 0} then {
      return ""
    }

    if {[isEagle]} then {
      set data [uri download -inline $uri]
    } else {


      set data [getFileViaHttp $uri 10 stdout true]
    }

    set data [string map [list &lt\; < &gt\; > &quot\; \" &amp\; &] $data]
    set data [string map [list \r\n \n \r \n] $data]
    set data [string map [list \n \r\n] $data]
    set data [string trim $data]








>
>
|







122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
    if {[string length $uri] == 0} then {
      return ""
    }

    if {[isEagle]} then {
      set data [uri download -inline $uri]
    } else {
      variable quiet

      set data [getFileViaHttp $uri 10 stdout $quiet]
    }

    set data [string map [list &lt\; < &gt\; > &quot\; \" &amp\; &] $data]
    set data [string map [list \r\n \n \r \n] $data]
    set data [string map [list \n \r\n] $data]
    set data [string trim $data]

450
451
452
453
454
455
456






























457
458
459
460
461
462
463

      eagle [list proc $newProcName(2) {} [info body [appendArgs \
          [namespace current] :: tclMustBeReady]]]

      return [eagle $script(outer)]
    }
  }































  proc hookPackageUnknownHandler {} {
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      error "package unknown handler already hooked"
    }







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495

      eagle [list proc $newProcName(2) {} [info body [appendArgs \
          [namespace current] :: tclMustBeReady]]]

      return [eagle $script(outer)]
    }
  }

  proc setupPackageUnknownHandler {} {
    variable autoHook
    variable autoLoadTcl
    variable autoRequireGaruda

    if {$autoRequireGaruda && ![isEagle]} then {
      #
      # TODO: Assume this package is trusted?  How can we verify it
      #       at this point?
      #
      package require Garuda
    }

    if {$autoLoadTcl && [isEagle]} then {
      #
      # NOTE: Load a native Tcl library.  It must be signed with a valid
      #       Authenticode signature.
      #
      tcl load -findflags +TrustedOnly -loadflags +SetDllDirectory
    }

    if {$autoHook} then {
      #
      # NOTE: Install our [package unknown] handler and save the original
      #       one for our use as well.
      #
      hookPackageUnknownHandler
    }
  }

  proc hookPackageUnknownHandler {} {
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      error "package unknown handler already hooked"
    }
560
561
562
563
564
565
566










































567
568
569
570
571
572
573

    #
    # NOTE: Both [package unknown] handlers failed in some way, return the
    #       error messages (i.e. both of them).
    #
    error [array get error]
  }











































  proc main { package version } {
    #
    # NOTE: Issue the lookup request to the remote package repository.
    #
    set data [getLookupData \
        [getLookupApiKey] $package [getLookupVersion $version]]







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647

    #
    # NOTE: Both [package unknown] handlers failed in some way, return the
    #       error messages (i.e. both of them).
    #
    error [array get error]
  }

  proc setupPackageUnknownVars {} {
    #
    # NOTE: Prevent progress messages from being displayed while downloading
    #       from the repository, etc?  By default, this is enabled.
    #
    variable quiet; # DEFAULT: true

    if {![info exists quiet]} then {
      set quiet true
    }

    #
    # NOTE: Automatically install our [package unknown] handler when this
    #       package is loaded?
    #
    variable autoHook; # DEFAULT: true

    if {![info exists autoHook]} then {
      set autoHook true
    }

    #
    # NOTE: Automatically [tcl load] when this package is loaded from the
    #       Eagle language?
    #
    variable autoLoadTcl; # DEFAULT: true

    if {![info exists autoLoadTcl]} then {
      set autoLoadTcl true
    }

    #
    # NOTE: Automatically [package require Garuda] when this package is
    #       loaded from the Tcl language?
    #
    variable autoRequireGaruda; # DEFAULT: true

    if {![info exists autoRequireGaruda]} then {
      set autoRequireGaruda true
    }
  }

  proc main { package version } {
    #
    # NOTE: Issue the lookup request to the remote package repository.
    #
    set data [getLookupData \
        [getLookupApiKey] $package [getLookupVersion $version]]
789
790
791
792
793
794
795











796
797
798
799
800
801
802
    }

    ###########################################################################
    ############################## END Tcl ONLY ###############################
    ###########################################################################
  }












  #
  # NOTE: Provide the package to the interpreter.
  #
  package provide Eagle.Package.Repository \
    [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}








>
>
>
>
>
>
>
>
>
>
>







863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
    }

    ###########################################################################
    ############################## END Tcl ONLY ###############################
    ###########################################################################
  }

  #
  # NOTE: Setup the variables, within this namespace, used by this script.
  #
  setupPackageUnknownVars

  #
  # NOTE: Setup for our [package unknown] handler, which may involve a few
  #       different operations.
  #
  setupPackageUnknownHandler

  #
  # NOTE: Provide the package to the interpreter.
  #
  package provide Eagle.Package.Repository \
    [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}


Modified client/pkgr.eagle.harpy from [5f3b392ed1] to [0e50cf177b].

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>dfa81a18-2ec6-4e30-a8ea-5323c39d1b3d</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T21:03:17.1188984Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    LIrAzd6ooElJLXzYLV3IYcFtPoOT29SVyen+ZIZkCH5DTcyS9O9k90dA5VBI3Q3+J56fnA0zz0VN
    De39v1zwFI+Syth5MSCvkZ7e44wGSl4UqRU3rK0QSfeysYVIujN+X5TFwiXajvu8KY4Uxcw2ELU2
    n1qpcNUuck5l0toE/gPT/N3E/s0m72jxxwXccrvlM5+wwx/MoILKGB5H6/ntXSG5wt1e+qjssN1K
    gC2WvF5+eGWA9bc/dlE4w+r5we5sOmtEcFAjl7/LvoVO7mc7Cz1fGzhCIqRU2MvZgoFE55A4d7TB
    FmqJYdfyATwi3XwIHfX44ws9GCv1mL5U+n9vszZkcaOioMGIaU+FMcxcYSMYdPf9l8UXqIHwINTb
    WpOTxnl+IPnF0V1DJCc3UO1IOJV1nww7t86EY31bTExpulisFYbr6dPz4ShXDX9/bfSvTWbdJGE7
    CMtujLOGfseBQCUPd0sPmsdxgkTAd3aWXp06l3QI6g01chTDZwp/Zdcne9jXLW4KTD4UteCaicLg
    LH81+/nY3m/FuatOiLtaJ9/BfkQyH92PVtY2um+evtWyiZMDCzh1pdHvYu4zEEU+WN80u/egeHSj
    nhHREK70+HVdEDQjL+Qd+GItgdZQvVrGv9ve99it1hVWxK4Wp4nBw5mZX9yWxMkDQKlu2g2tXi/v
    b0nqyj2Ic/3F6WvWZa6w+Ohsfi1j/j2JYPEys673uJrHQTANKG4tqQoSPlXydCAwdC9UYGir1oyk
    KJX2IW4tgYOMon3SZPnSVkESbheLoMFkrADQ564TEK2nLz7xh0y+HNqC7l0MJV+bnKhjasevnYpr
    qpwFy7pjomBzUROO08Aj6fxmS03JAk4wk5AHO5wtqTP00WzLKK3zxqbSJVZVpqqxOXDIgSTTgEza
    LZPG0fUvM9rnowfsndXNc0TAinhQaVJn4+bbuKnxbGYlBAZg+RcLF3OZwWZx75irSU6xNlW+/PtI
    N8Kas2g7b3vlo8J9a5JCB4CRsuAEnpBkHw8rGvRWNysqVTwDRHbFFH8v2q9ubDCqf7d1OcPE4dtB
    GCEmH/K+CQgl4TUwlDQgRHCp0bHlTR0vWz5g0YcZYH5Jk+qK0EwbwxhIC6176qwSg8svxdgbjcZp
    PT8xdElDmC5T26aglc3JqZS9BpIRhJVDpyq39o0Q3MscAQvV8xa/RtNfLuieEmlPO7G8tur4pk3L
    LRbyanWU91rlI8bPqbx82PaK2rMqUUCpxdyos4TskrnCMQSw+VojCy3r+T4Jx3uYTiUP2TOEIi0S
    MC34fcowVcYDicvoNQJA8gocKplycgNLu8QujnEl3tUJM/czO6V6QKoPkUiu7K5RfjfaOhk49A==
  </Signature>
</Certificate>







|


|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>c986d65c-b0fc-464c-a3a4-4a1990c1f135</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T21:58:22.7790547Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    a2YvVkMcsJLqHYHZD8yY0LJO+SViJ6Ur4iur1bYnvMhFb9wn9oQEQ+BMy9EbTp8ptPOHBDD9rgZW
    qhLiuXPgQjgU2aF4y86f2T57xt9VWEbkzPH0CzcWz446h/8XjMzM1Ghznh051ggqNZLpg9NVUo+q
    2xX/4opBI5hhTVZO8dMmVswcG0BiMTpL5EbJck8dkWyyXB2zLQgfUF5YTwyISAkwxfSESouqnh3D
    hJzlAZWa2R0Zb2N9/V3wzmX9tqzFfT8vGYvLt4YFDsgD8cnDIA0eFWbzrH3znuQG1k9kxcy9dJH3
    8qeXNlln9ROEgvgwSLlL8ux3fm5evr5rMx6d2V9+Uzrllbi1e0qjXNCziZpvb2dsH2iukFA9V0bP
    /+LZa3/LuSQwN7u3xhAuY3fEHexf7APRtG8qusNR28o2+X4CDHNUACHe51faTrUQvHN+xd4FCsG9
    34sV7j1dEOT7+QBObDOEJWDQpK2JQpziqBvbAszXhm5MbDATUxe6u/5b14tB7sFSETiCDML7iTuj
    c84ywp7KlBtXvLjox5qdNqWOB2soO5neOcEbLVlK0cc4EnHE5YvPe/ORtvZJLOfhYDprN9VwTk+R
    Zdus/7nRJ7UxGigZPO37VzwlOVz0MAUEU4/tgMu8UIeSdNnVysmU5BOLy5C+2Lzp/oGdcfFVKn+R
    dSTdXJTvv8F7FxzUUm8SsskbI/hggbCRLI1E3wCHkiJ6wLjua/fNaJR3e1JmEv2sGkm3irjc7edx
    EawK9WJw9P+OF1cU8esdZOktPsAohsp9FT0CwIb/CfKUIan6fM6QgvT23Gf9bBXnexv1qrvtXPeT
    Y5WERKyjPuPEk1+6sw0AKp1yKH1KcYTe28MBOrxTSKtApW9Btw9R94HmlYrUFsrFVBD9bXUd0RcO
    vu2hW3DLG0cNTUxd6vxdQJfbyjnRki3jem7nXVmB484S9EA4UV0AchNAQFD8+MxXeS0v3CvPWFbb
    c4TqSIw68fG+F2lPCZJ8MtXlC46HxSyFO0x7sIGVMqjz69Nq9qTS3KzHsIbywaH6mrhjc8CowCGH
    bNgq7wSKwnIVe04egaeR7UAeDjpWrrU+NpETIkDIVn2nX+iUsteO0NXFo2Tm47pKbBzhgwMD79fb
    +tGJHaHKUKMu/obFLaGob7AQsXIQx/kgh8evMV2Maf77Zf0DfWqUjYJwahxvpUEkYx+pAYzbx6NI
    OF8/AupA7ULrEPNdrBvl8PRNZC++vC5O32nzDHhkZvkK+fHWgXOSthkhG77YkgY/EKt/pOjy5tpu
    qqUqRwFUrxmDOC9k3meVWJfguHRAMG/hPuVFPw/T3DiN/6oYqPIqDm3Og4m0R1mDR/H5QXsjmA==
  </Signature>
</Certificate>