pax_global_header00006660000000000000000000000064152547021770014524gustar00rootroot0000000000000052 comment=32823fb97236e71bea00ddf98097599a5dcdb966 siskin-0.22.5/000077500000000000000000000000001525470217700131125ustar00rootroot00000000000000siskin-0.22.5/.editorconfig000066400000000000000000000005041525470217700155660ustar00rootroot00000000000000# EditorConfig is awesome: https://EditorConfig.org # top-most EditorConfig file root = true [*] indent_size = 4 [*.{r,r3,reb,c,h,cpp}] indent_style = tab [*.{r,r3,reb}] charset = utf-8 [*.{bat,vcproj,vcxproj,sln,vbs,rc}] end_of_line = crlf [*.{yml}] indent_style = space indent_size = 2 [LICENSE] end_of_line = crlf siskin-0.22.5/.github/000077500000000000000000000000001525470217700144525ustar00rootroot00000000000000siskin-0.22.5/.github/workflows/000077500000000000000000000000001525470217700165075ustar00rootroot00000000000000siskin-0.22.5/.github/workflows/blurhash.yml000066400000000000000000000025211525470217700210420ustar00rootroot00000000000000name: 'Build BlurHash' on: # Triggers the workflow on push or pull request events but only for the main branch # push: # branches: [ main ] # pull_request: # branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build_blurhash: name: BlurHash runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest - macOS-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.7.2 - name: Build BlurHash encoder utility run: ./rebol3 siskin.r3 utility/blurhash blurhash_encoder - name: Build BlurHash decoder utility run: ./rebol3 siskin.r3 utility/blurhash blurhash_decoder - name: Test BlurHash encoder run: ./tree/utility/build/blurhash_encoder 3 3 assets/siskin-48.png - name: Test BlurHash decoder run: ./tree/utility/build/blurhash_decoder "KNEUlr3BXm3;[;NHs:NwwJ" 256 256 tmp.png ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v3 with: name: blurhash-${{matrix.os}}-CI-${{github.run_id}} path: ./tree/utility/build/blurhash* siskin-0.22.5/.github/workflows/boron.yml000066400000000000000000000020751525470217700203550ustar00rootroot00000000000000name: 'Build Boron' on: # Triggers the workflow on push or pull request events but only for the main branch # push: # branches: [ main ] # pull_request: # branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build_qoi: name: Boron runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest # - windows-latest # needs installed zlib library on Windows - macOS-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.7.1 - name: Build Boron run: ./rebol3 siskin.r3 boron 1 - name: Test Boron run: ./tree/boron/build/boron ./tree/boron/code/test/func.b ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v2 with: name: boron-${{matrix.os}}-CI-${{github.run_id}} path: ./tree/boron/build/* siskin-0.22.5/.github/workflows/brotli.yml000066400000000000000000000043461525470217700205340ustar00rootroot00000000000000name: 'Build Brotli' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.11.0 - name: Build 64bit Brotli using msvc run: | ./rebol3.exe siskin.r3 utility/brotli --msvc 1 MOVE ./tree/utility/msvc/Release-x64/brotli.exe ./ - name: Simple test run: ./brotli.exe -h - uses: actions/upload-artifact@v3 with: name: brotli path: ./brotli.exe linux: strategy: fail-fast: true matrix: os: [ubuntu-20.04] #os: [ubuntu-20.04, ubuntu-18.04] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.11.0 - name: Build 64bit Brotli using gcc run: ./rebol3 siskin.r3 utility/brotli 1 - name: Move results into the root for uploading run: mv ./tree/utility/build/brotli ./brotli - name: Simple test run: chmod +x ./brotli & ./brotli -h - name: Compress results before uploading run: gzip -9 ./brotli - uses: actions/upload-artifact@v3 with: name: brotli path: ./brotli.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.11.0 - name: Build 64bit Brotli run: ./rebol3 siskin.r3 utility/brotli 1 - name: Move results into the root for uploading run: mv ./tree/utility/build/brotli ./brotli-osx - name: Simple test run: chmod +x ./brotli-osx & ./brotli-osx -h - name: Compress results before uploading run: gzip -9 ./brotli-osx - uses: actions/upload-artifact@v3 with: name: brotli path: ./brotli-osx.gz siskin-0.22.5/.github/workflows/bsd.yml000066400000000000000000000030741525470217700200060ustar00rootroot00000000000000name: BSD cross-compilation test on: workflow_dispatch: jobs: test: runs-on: ${{ matrix.os.host }} strategy: matrix: os: # - name: freebsd # architecture: x86-64 # version: '13.1' # host: macos-12 # # - name: openbsd # architecture: x86-64 # version: '7.2' # host: macos-12 # # - name: openbsd # architecture: arm64 # version: '7.2' # host: ubuntu-latest # - name: netbsd architecture: x86-64 version: '9.2' host: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Test on ${{ matrix.os.name }} uses: cross-platform-actions/action@v0.10.0 timeout-minutes: 5 env: MY_ENV1: MY_ENV1 MY_ENV2: MY_ENV2 with: environment_variables: MY_ENV1 MY_ENV2 operating_system: ${{ matrix.os.name }} architecture: ${{ matrix.os.architecture }} version: ${{ matrix.os.version }} shell: bash run: | uname -a echo $SHELL curl -k https://github.com/Siskin-framework/Rebol/archive/refs/tags/3.7.2-bootstrap-alpine.tar.gz --silent ls -lah gunzip ./3.7.2-bootstrap-alpine.tar.gz pwd ls -lah cd ./3.7.2-bootstrap-alpine/make/ make -f rebol-linux-bootstrap-64bit.mk # whoami # env | sort - name: Output run: ls -la ./tree/rebol/Rebol/build/ siskin-0.22.5/.github/workflows/build-rebol-brotli.yml000066400000000000000000000077321525470217700227340ustar00rootroot00000000000000### This file was generated! ### name: 'Rebol/Brotli extension' on: push: branches: - main - master paths: - .github/workflows/build-rebol-brotli.yml workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release CI_BUILD_OUTPUT: ${{github.WORKSPACE}}/Release SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Build x86 static Brotli library run: ./siskin rebol/brotli static-lib-x86 - name: Build x86 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-windows-x86.rebx --msvc brotli-windows-x86 - name: Build x64 static Brotli library run: ./siskin rebol/brotli static-lib-x64 - name: Build x64 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-windows-x64.rebx --msvc brotli-windows-x64 - name: Build arm64 static Brotli library run: ./siskin rebol/brotli static-lib-arm64 - name: Build arm64 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-windows-arm64.rebx --msvc brotli-windows-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Brotli-windows-${{github.run_id}} path: ${{env.OUT}}/*.rebx linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build x86 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-linux-x86.rebx --gzip brotli-linux-x86 - name: Build x64 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-linux-x64.rebx --gzip brotli-linux-x64 - uses: actions/upload-artifact@v4 with: name: Rebol-Brotli-linux-${{github.run_id}} path: ${{env.OUT}}/*-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build x64 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-macos-x64.rebx --gzip brotli-macos-x64 - name: Build arm64 Rebol/Brotli extension run: ./siskin rebol/brotli -o ${{env.OUT}}/brotli-macos-arm64.rebx --gzip brotli-macos-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Brotli-macos-${{github.run_id}} path: ${{env.OUT}}/*-macos-*.gz siskin-0.22.5/.github/workflows/build-rebol-deflate.yml000066400000000000000000000073351525470217700230440ustar00rootroot00000000000000### This file was generated! ### name: 'Rebol/Deflate extension' on: push: branches: - main - master paths: - .github/workflows/build-rebol-deflate.yml workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release CI_BUILD_OUTPUT: ${{github.WORKSPACE}}/Release SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Build x86 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-windows-x86.rebx --msvc deflate-windows-x86 - name: Build x64 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-windows-x64.rebx --msvc deflate-windows-x64 - name: Build arm64 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-windows-arm64.rebx --msvc deflate-windows-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Deflate-windows-${{github.run_id}} path: ${{env.OUT}}/*.rebx linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build x86 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-linux-x86.rebx --gzip deflate-linux-x86 - name: Build x64 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-linux-x64.rebx --gzip deflate-linux-x64 - uses: actions/upload-artifact@v4 with: name: Rebol-Deflate-linux-${{github.run_id}} path: ${{env.OUT}}/*-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build x64 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-macos-x64.rebx --gzip deflate-macos-x64 - name: Build arm64 Rebol/Deflate extension run: ./siskin rebol/deflate -o ${{env.OUT}}/deflate-macos-arm64.rebx --gzip deflate-macos-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Deflate-macos-${{github.run_id}} path: ${{env.OUT}}/*-macos-*.gz siskin-0.22.5/.github/workflows/build-rebol-zlib-ng.yml000066400000000000000000000102231525470217700227700ustar00rootroot00000000000000### This file was generated! ### name: 'Rebol/Zlib-ng extension' on: push: branches: - main - master paths: - .github/workflows/build-rebol-zlib-ng.yml workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release CI_BUILD_OUTPUT: ${{github.WORKSPACE}}/Release SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Build x86 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-x86 - name: Build x86 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-windows-x86.rebx --msvc zlib-ng-windows-x86 - name: Build x64 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-x64 - name: Build x64 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-windows-x64.rebx --msvc zlib-ng-windows-x64 - name: Build arm64 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-arm64 - name: Build arm64 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-windows-arm64.rebx --msvc zlib-ng-windows-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zlib-ng-windows-${{github.run_id}} path: ${{env.OUT}}/*.rebx linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build x64 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-x64 - name: Build x64 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-linux-x64.rebx --gzip zlib-ng-linux-x64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zlib-ng-linux-${{github.run_id}} path: ${{env.OUT}}/*-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build x64 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-x64 - name: Build x64 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-macos-x64.rebx --gzip zlib-ng-macos-x64 - name: Build arm64 static Zlib-ng library run: ./siskin rebol/zlib-ng static-lib-arm64 - name: Build arm64 Rebol/Zlib-ng extension run: ./siskin rebol/zlib-ng -o ${{env.OUT}}/zlib-ng-macos-arm64.rebx --gzip zlib-ng-macos-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zlib-ng-macos-${{github.run_id}} path: ${{env.OUT}}/*-macos-*.gz siskin-0.22.5/.github/workflows/build-rebol-zstd.yml000066400000000000000000000076141525470217700224240ustar00rootroot00000000000000### This file was generated! ### name: 'Rebol/Zstd extension' on: push: branches: - main - master paths: - .github/workflows/build-rebol-zstd.yml workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release CI_BUILD_OUTPUT: ${{github.WORKSPACE}}/Release SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Build x86 static Zstd library run: ./siskin rebol/zstd static-lib-x86 - name: Build x86 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-windows-x86.rebx --msvc zstd-windows-x86 - name: Build x64 static Zstd library run: ./siskin rebol/zstd static-lib-x64 - name: Build x64 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-windows-x64.rebx --msvc zstd-windows-x64 - name: Build arm64 static Zstd library run: ./siskin rebol/zstd static-lib-arm64 - name: Build arm64 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-windows-arm64.rebx --msvc zstd-windows-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zstd-windows-${{github.run_id}} path: ${{env.OUT}}/*.rebx linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build x86 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-linux-x86.rebx --gzip zstd-linux-x86 - name: Build x64 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-linux-x64.rebx --gzip zstd-linux-x64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zstd-linux-${{github.run_id}} path: ${{env.OUT}}/*-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.0 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build x64 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-macos-x64.rebx --gzip zstd-macos-x64 - name: Build arm64 Rebol/Zstd extension run: ./siskin rebol/zstd -o ${{env.OUT}}/zstd-macos-arm64.rebx --gzip zstd-macos-arm64 - uses: actions/upload-artifact@v4 with: name: Rebol-Zstd-macos-${{github.run_id}} path: ${{env.OUT}}/*-macos-*.gz siskin-0.22.5/.github/workflows/bzip2.yml000066400000000000000000000043131525470217700202610ustar00rootroot00000000000000name: 'Build bzip2' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit bzip2 using mingw64 run: | ./rebol3.exe siskin.r3 utility/bzip2 bzip2 MOVE ./tree/utility/build/bzip2.exe ./ - name: Simple test run: ./bzip2.exe --help - uses: actions/upload-artifact@v2 with: name: bzip2 path: ./bzip2.exe linux: strategy: fail-fast: true matrix: os: [ubuntu-20.04] #os: [ubuntu-20.04, ubuntu-18.04] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit bzip2 using gcc run: ./rebol3 siskin.r3 utility/bzip2 bzip2 - name: Move results into the root for uploading run: mv ./tree/utility/build/bzip2 ./bzip2 - name: Simple test run: chmod +x ./bzip2 & ./bzip2 -h - name: Compress results before uploading run: gzip -9 ./bzip2 - uses: actions/upload-artifact@v2 with: name: bzip2 path: ./bzip2.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit bzip2 run: ./rebol3 siskin.r3 utility/bzip2 bzip2 - name: Move results into the root for uploading run: mv ./tree/utility/build/bzip2 ./bzip2-osx - name: Simple test run: chmod +x ./bzip2-osx & ./bzip2-osx -h - name: Compress results before uploading run: gzip -9 ./bzip2-osx - uses: actions/upload-artifact@v2 with: name: bzip2 path: ./bzip2-osx.gz siskin-0.22.5/.github/workflows/dragonflybsd.yml000066400000000000000000000032321525470217700217100ustar00rootroot00000000000000name: Test DragonFlyBSD Action on: workflow_dispatch: jobs: test: runs-on: ubuntu-latest name: A job to run test in DragonFlyBSD env: # MYTOKEN : ${{ secrets.MYTOKEN }} MYTOKEN2: "value2" steps: - uses: actions/checkout@v4 - name: Test in DragonFlyBSD id: test uses: vmactions/dragonflybsd-vm@v1 with: envs: 'MYTOKEN2' usesh: true prepare: | pkg install -y llvm16 libnghttp2 git libiconv run: | ln -s /usr/local/bin/clang16 /usr/local/bin/clang clang --version echo "Rebol [] unprotect 'system/platform system/platform: 'DragonFlyBSD" > ~/user.reb cat ~/user.reb cd .. git clone -b bootstrap https://github.com/Siskin-framework/Rebol.git --depth 1 cd ./Rebol/make/ make -f rebol-bsd-bootstrap-64bit.mk mv ./rebol-bsd-bootstrap-64bit ../../Builder/r3 cd ../../Builder ./r3 siskin.r3 rebol rebol3-bulk-dragonflybsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-dragonflybsd-x64 ./rebol3-bulk-dragonflybsd-x64 ./rebol3-bulk-dragonflybsd-x64 siskin.r3 rebol/siskin 2 mv ./tree/rebol/Siskin/build/siskin-dragonflybsd-x86_64 ./siskin-dragonflybsd-x86_64 - name: Prepare build results run: | gzip -9 ./rebol3-bulk-dragonflybsd-x64 gzip -9 ./siskin-dragonflybsd-x86_64 - uses: actions/upload-artifact@v3 with: name: Rebol-DragonFlyBSD-${{github.run_id}} path: ./rebol3*.gz - uses: actions/upload-artifact@v3 with: name: Siskin-DragonFlyBSD-${{github.run_id}} path: ./siskin*.gzsiskin-0.22.5/.github/workflows/freebsd.yml000066400000000000000000000025721525470217700206520ustar00rootroot00000000000000name: Test FreeBSD Action on: workflow_dispatch: jobs: test: runs-on: ubuntu-latest name: A job to run test in FreeBSD env: # MYTOKEN : ${{ secrets.MYTOKEN }} MYTOKEN2: "value2" steps: - uses: actions/checkout@v4 - name: Test in FreeBSD id: test uses: vmactions/freebsd-vm@v1 with: envs: 'MYTOKEN2' usesh: true prepare: | pkg install -y curl git run: | pwd ls -lah whoami env freebsd-version curl -L -S https://github.com/Siskin-framework/Builder/releases/download/0.13.0/siskin-freebsd-x86_64.gz --output siskin.gz gunzip ./siskin.gz chmod u+x ./siskin ./siskin rebol %rebol3-bulk-freebsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-freebsd-x64 ./rebol3-bulk-freebsd-x64 ./rebol3-bulk-freebsd-x64 siskin.r3 rebol/siskin 2 mv ./tree/rebol/Siskin/build/siskin-freebsd-x86_64 ./siskin-freebsd-x86_64 - name: Prepare build results run: | gzip -9 ./rebol3-bulk-freebsd-x64 gzip -9 ./siskin-freebsd-x86_64 - uses: actions/upload-artifact@v3 with: name: Rebol-FreeBSD-${{github.run_id}} path: ./rebol3*.gz - uses: actions/upload-artifact@v3 with: name: Siskin-FreeBSD-${{github.run_id}} path: ./siskin*.gzsiskin-0.22.5/.github/workflows/lz4.yml000066400000000000000000000043351525470217700177500ustar00rootroot00000000000000name: 'Build LZ4' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit lz4 using msvc run: | ./rebol3.exe siskin.r3 utility/lz4 [msvc %lz4cli] MOVE ./tree/utility/msvc/Release-x64/lz4cli.exe ./ - name: Simple test run: ./lz4cli.exe -h - uses: actions/upload-artifact@v2 with: name: lz4 path: ./lz4cli.exe linux: strategy: fail-fast: true matrix: os: [ubuntu-20.04] #os: [ubuntu-20.04, ubuntu-18.04] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit lz4 using gcc run: ./rebol3 siskin.r3 utility/lz4 lz4cli - name: Move results into the root for uploading run: mv ./tree/utility/build/lz4cli ./lz4cli - name: Simple test run: chmod +x ./lz4cli & ./lz4cli -h - name: Compress results before uploading run: gzip -9 ./lz4cli - uses: actions/upload-artifact@v2 with: name: lz4 path: ./lz4cli.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit lz4 run: ./rebol3 siskin.r3 utility/lz4 lz4cli - name: Move results into the root for uploading run: mv ./tree/utility/build/lz4cli ./lz4cli-osx - name: Simple test run: chmod +x ./lz4cli-osx & ./lz4cli-osx -h - name: Compress results before uploading run: gzip -9 ./lz4cli-osx - uses: actions/upload-artifact@v2 with: name: lz4 path: ./lz4cli-osx.gz siskin-0.22.5/.github/workflows/lzfse.yml000066400000000000000000000037771525470217700203730ustar00rootroot00000000000000name: 'Build LZFSE' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit LZFSE using msvc run: | ./rebol3.exe siskin.r3 utility/lzfse [msvc 1] MOVE ./tree/utility/msvc/Release-x64/lzfse.exe ./ - uses: actions/upload-artifact@v2 with: name: lzfse path: ./lzfse.exe linux: strategy: fail-fast: true matrix: os: [ubuntu-20.04] #os: [ubuntu-20.04, ubuntu-18.04] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit LZFSE using gcc run: ./rebol3 siskin.r3 utility/lzfse 1 - name: Move results into the root for uploading run: mv ./tree/utility/build/lzfse ./lzfse - name: Compress results before uploading run: gzip -9 ./lzfse - uses: actions/upload-artifact@v2 with: name: lzfse path: ./lzfse.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit LZFSE run: ./rebol3 siskin.r3 utility/lzfse 1 - name: Move results into the root for uploading run: mv ./tree/utility/build/lzfse ./lzfse-osx - name: Compress results before uploading run: gzip -9 ./lzfse-osx - uses: actions/upload-artifact@v2 with: name: lzfse path: ./lzfse-osx.gz siskin-0.22.5/.github/workflows/lzw.yml000066400000000000000000000020551525470217700200500ustar00rootroot00000000000000name: 'Build LZW' on: # Triggers the workflow on push or pull request events but only for the main branch # push: # branches: [ main ] # pull_request: # branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build_qoi: name: LZW runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest - macOS-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.7.1 - name: Build lzwtester utility run: ./rebol3 siskin.r3 utility/lzw lzwtester - name: Build lzwfilter utility run: ./rebol3 siskin.r3 utility/lzw lzwfilter ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v2 with: name: qoiconv-${{matrix.os}}-CI-${{github.run_id}} path: ./tree/utility/build/lzw* siskin-0.22.5/.github/workflows/openbsd.yml000066400000000000000000000030611525470217700206640ustar00rootroot00000000000000name: Test OpenBSD Action on: workflow_dispatch: jobs: test: runs-on: ubuntu-latest name: A job to run test in OpenBSD env: # MYTOKEN : ${{ secrets.MYTOKEN }} MYTOKEN2: "value2" steps: - uses: actions/checkout@v4 - name: Test in OpenBSD id: test uses: vmactions/openbsd-vm@v1 with: envs: 'MYTOKEN2' usesh: true prepare: | pkg_add curl git iconv libiconv run: | pkg_info -L libiconv echo "Rebol [] unprotect 'system/platform system/platform: 'openbsd" > ~/user.reb cat ~/user.reb cd .. git clone -b bootstrap https://github.com/Siskin-framework/Rebol.git --depth 1 ls -la ./ cd ./Rebol/make/ make -f rebol-bsd-bootstrap-64bit.mk ls -la . mv ./rebol-bsd-bootstrap-64bit ../../Builder/r3 cd ../../Builder ./r3 siskin.r3 rebol rebol3-bulk-openbsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-openbsd-x64 ./rebol3-bulk-openbsd-x64 ./rebol3-bulk-openbsd-x64 siskin.r3 rebol/siskin 2 mv ./tree/rebol/Siskin/build/siskin-openbsd-x86_64 ./siskin-openbsd-x86_64 - name: Prepare build results run: | gzip -9 ./rebol3-bulk-openbsd-x64 gzip -9 ./siskin-openbsd-x86_64 - uses: actions/upload-artifact@v3 with: name: Rebol-OpenBSD-${{github.run_id}} path: ./rebol3*.gz - uses: actions/upload-artifact@v3 with: name: Siskin-OpenBSD-${{github.run_id}} path: ./siskin*.gzsiskin-0.22.5/.github/workflows/qoi.yml000066400000000000000000000017241525470217700200260ustar00rootroot00000000000000name: 'Build QOI' on: # Triggers the workflow on push or pull request events but only for the main branch # push: # branches: [ main ] # pull_request: # branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build_qoi: name: QOI runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest - macOS-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.7.1 - name: Build QoiConv utility run: ./rebol3 siskin.r3 utility/qoi qoiconv ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v2 with: name: qoiconv-${{matrix.os}}-CI-${{github.run_id}} path: ./tree/utility/build/qoiconv* siskin-0.22.5/.github/workflows/rebol-blend2d.yml000066400000000000000000000123731525470217700216530ustar00rootroot00000000000000name: 'Rebol/Blend2D' on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Rebol uses: oldes/install-rebol@v3.18.0 - name: Build 32bit static Blend2D library run: ./rebol3 siskin.r3 rebol/blend2d static-lib-x86 - name: Build 32bit Rebol/Blend2D extension run: ./rebol3 siskin.r3 rebol/blend2d --msvc blend2d-windows-x86 - name: Prepare 32bit Rebol/Blend2D extension run: MOVE ./tree/rebol/Rebol-Blend2D/msvc/Release-Win32/blend2d-windows-x86.dll ./blend2d-windows-x86.rebx - name: Build 64bit static Blend2D library run: ./rebol3 siskin.r3 rebol/blend2d static-lib-x64 - name: Build 64bit Rebol/Blend2D extension run: ./rebol3 siskin.r3 rebol/blend2d --msvc blend2d-windows-x64 - name: Prepare 64bit Rebol/Blend2D extension run: MOVE ./tree/rebol/Rebol-Blend2D/msvc/Release-x64/blend2d-windows-x64.dll ./blend2d-windows-x64.rebx - name: Minimal Rebol/Blend2D extension test run: | MOVE tree\rebol\Rebol-Blend2D\.github/ci-test.r3 .\test-blend2d.r3 ./rebol3 test-blend2d.r3 - uses: actions/upload-artifact@v4 with: name: Rebol-Blend2D-windows-${{github.run_id}} path: ./blend2d*.rebx linux: runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Rebol uses: oldes/install-rebol@v3.18.0 - name: Build 64bit static Blend2D library run: ./rebol3 siskin.r3 rebol/blend2d static-lib-x64 - name: Build 64bit Rebol/Blend2D extension run: ./rebol3 siskin.r3 rebol/blend2d blend2d-linux-x64 - name: Prepare 64bit Rebol Blend2D extension run: mv ./tree/rebol/Rebol-Blend2D/build/blend2d-linux-x64.so ./blend2d-linux-x64.rebx - name: Test Rebol/Blend2D extension run: | mv ./tree/rebol/Rebol-Blend2D/.github/ci-test.r3 ./test-blend2d.r3 ./rebol3 test-blend2d.r3 - name: Compress 64bit Rebol/Blend2D extension run: gzip -9 ./blend2d-linux-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-Blend2D-linux-${{github.run_id}} path: ./blend2d*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Rebol uses: oldes/install-rebol@v3.18.0 - name: Build 64bit static Blend2D library (x64) run: ./rebol3 siskin.r3 rebol/blend2d static-lib-x64 - name: Build 64bit static Blend2D library (arm64) run: ./rebol3 siskin.r3 rebol/blend2d static-lib-arm64 - name: Build 64bit Rebol/Blend2D extension run: ./rebol3 siskin.r3 rebol/blend2d blend2d-macos-x64 - name: Build 64bit Rebol/Blend2D extension run: ./rebol3 siskin.r3 rebol/blend2d blend2d-macos-arm64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol-Blend2D/build/blend2d-macos-x64.dylib -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol-Blend2D/build/blend2d-macos-arm64.dylib -v - name: Prepare 64bit Rebol Blend2D extension run: | mv ./tree/rebol/Rebol-Blend2D/build/blend2d-macos-x64.dylib ./blend2d-macos-x64.rebx mv ./tree/rebol/Rebol-Blend2D/build/blend2d-macos-arm64.dylib ./blend2d-macos-arm64.rebx - name: Test Rebol/Blend2D extension run: | mv ./tree/rebol/Rebol-Blend2D/.github/ci-test.r3 ./test-blend2d.r3 ./rebol3 test-blend2d.r3 - name: Compress 64bit Rebol/Blend2D extension run: | gzip -9 ./blend2d-macos-x64.rebx gzip -9 ./blend2d-macos-arm64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-Blend2D-macos-${{github.run_id}} path: ./blend2d*.gz siskin-0.22.5/.github/workflows/rebol-blurhash.yml000066400000000000000000000153271525470217700221530ustar00rootroot00000000000000name: 'Rebol/BlurHash' on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 with: product: Bulk - name: Build 32bit Rebol/BlurHash extension run: ./rebol3 siskin.r3 rebol/blurhash blurhash-windows-x86 - name: Prepare 32bit Rebol/BlurHash extension run: MOVE .\tree\rebol\Rebol-BlurHash\build\blurhash-windows-x86.dll .\tree\rebol\Rebol-BlurHash\blurhash-windows-x86.rebx - name: Build 64bit Rebol/BlurHash extension run: ./rebol3 siskin.r3 rebol/blurhash blurhash-windows-x64 - name: Prepare 64bit Rebol/BlurHash extension run: MOVE .\tree\rebol\Rebol-BlurHash\build\blurhash-windows-x64.dll .\tree\rebol\Rebol-BlurHash\blurhash-windows-x64.rebx - name: Minimal Rebol/BlurHash extension test run: ./rebol3 .\tree\rebol\Rebol-BlurHash\ci-test.r3 - uses: actions/upload-artifact@v3 with: name: Rebol-BlurHash-CI-${{github.run_id}} path: .\tree\rebol\Rebol-BlurHash\*.rebx linux: runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 with: product: Bulk - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build 32bit Rebol/BlurHash extension run: ./rebol3 siskin.r3 rebol/blurhash blurhash-linux-x86 - name: Prepare 32bit Rebol BlurHash extension run: mv ./tree/rebol/Rebol-BlurHash/build/blurhash-linux-x86.so ./tree/rebol/Rebol-BlurHash/blurhash-linux-x86.rebx - name: Build 64bit Rebol/BlurHash extension run: ./rebol3 siskin.r3 rebol/blurhash blurhash-linux-x64 - name: Prepare 64bit Rebol BlurHash extension run: mv ./tree/rebol/Rebol-BlurHash/build/blurhash-linux-x64.so ./tree/rebol/Rebol-BlurHash/blurhash-linux-x64.rebx - name: Minimal Rebol/BlurHash extension test run: ./rebol3 ./tree/rebol/Rebol-BlurHash/ci-test.r3 - name: Compress 32bit Rebol/BlurHash extension run: gzip -9 ./tree/rebol/Rebol-BlurHash/blurhash-linux-x86.rebx - name: Compress 64bit Rebol/BlurHash extension run: gzip -9 ./tree/rebol/Rebol-BlurHash/blurhash-linux-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-BlurHash-${{github.run_id}} path: ./tree/rebol/Rebol-BlurHash/blurhash*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 with: product: Bulk - name: Build 64bit Rebol/BlurHash extension run: ./rebol3 siskin.r3 rebol/blurhash blurhash-macos-x64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol-BlurHash/build/blurhash-macos-x64.dylib -v - name: Prepare 64bit Rebol BlurHash extension run: mv ./tree/rebol/Rebol-BlurHash/build/blurhash-macos-x64.dylib ./tree/rebol/Rebol-BlurHash/blurhash-macos-x64.rebx - name: Minimal Rebol/BlurHash extension test run: ./rebol3 ./tree/rebol/Rebol-BlurHash/ci-test.r3 - name: Compress 64bit Rebol/BlurHash extension run: gzip -9 ./tree/rebol/Rebol-BlurHash/blurhash-macos-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-BlurHash-${{github.run_id}} path: ./tree/rebol/Rebol-BlurHash/blurhash*.gz Haiku-x86: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x86 - name: Build all Rebol/BlurHash for Haiku OS x86 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol/blurhash blurhash-haiku-x86' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Rebol-BlurHash/build/blurhash-haiku-x86.so ./blurhash-haiku-x86.rebx sudo gzip -9 ./blurhash-haiku-x86.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-BlurHash-${{github.run_id}} path: ./blurhash-*.gz Haiku-x64: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x64 - name: Build all Rebol/BlurHash for Haiku OS x64 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol/blurhash blurhash-haiku-x64' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Rebol-BlurHash/build/blurhash-haiku-x64.so ./blurhash-haiku-x64.rebx sudo gzip -9 ./blurhash-haiku-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-BlurHash-${{github.run_id}} path: ./blurhash-*.gz siskin-0.22.5/.github/workflows/rebol-bzip2.yml000066400000000000000000000104521525470217700213630ustar00rootroot00000000000000### This file was generated! ### name: 'Rebol/Bzip2 extension' on: push: branches: - main - master paths: - .github/workflows/build-rebol-bzip2.yml workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release CI_BUILD_OUTPUT: ${{github.WORKSPACE}}/Release SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Build x86 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-x86 - name: Build x86 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-windows-x86.rebx --msvc bzip2-windows-x86 - name: Build x64 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-x64 - name: Build x64 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-windows-x64.rebx --msvc bzip2-windows-x64 - name: Build arm64 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-arm64 - name: Build arm64 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-windows-arm64.rebx --msvc bzip2-windows-arm64 - uses: actions/upload-artifact@v5 with: name: Rebol-Bzip2-windows-${{github.run_id}} path: ${{env.OUT}}/*.rebx linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build x86 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-x86 - name: Build x64 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-x64 - name: Build x86 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-linux-x86.rebx --gzip bzip2-linux-x86 - name: Build x64 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-linux-x64.rebx --gzip bzip2-linux-x64 - uses: actions/upload-artifact@v5 with: name: Rebol-Bzip2-linux-${{github.run_id}} path: ${{env.OUT}}/*-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build x64 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-x64 - name: Build arm64 static Bzip2 library run: ./siskin rebol/bzip2 static-lib-arm64 - name: Build x64 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-macos-x64.rebx --gzip bzip2-macos-x64 - name: Build arm64 Rebol/Bzip2 extension run: ./siskin rebol/bzip2 -o ${{env.OUT}}/bzip2-macos-arm64.rebx --gzip bzip2-macos-arm64 - uses: actions/upload-artifact@v5 with: name: Rebol-Bzip2-macos-${{github.run_id}} path: ${{env.OUT}}/*-macos-*.gz siskin-0.22.5/.github/workflows/rebol-easing.yml000066400000000000000000000101121525470217700215740ustar00rootroot00000000000000name: 'Rebol/Easing' on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 32bit Rebol/Easing extension run: ./rebol3 siskin.r3 rebol/easing --msvc easing-windows-x86 - name: Prepare 32bit Rebol/Easing extension run: MOVE ./tree/rebol/Rebol-Easing/msvc/Release-Win32/easing-windows-x86.dll ./easing-windows-x86.rebx - name: Build 64bit Rebol/Easing extension run: ./rebol3 siskin.r3 rebol/easing --msvc easing-windows-x64 - name: Prepare 64bit Rebol/Easing extension run: MOVE ./tree/rebol/Rebol-Easing/msvc/Release-x64/easing-windows-x64.dll ./easing-windows-x64.rebx - name: Minimal Rebol/Easing extension test run: | MOVE tree\rebol\Rebol-Easing\ci-test.r3 .\test-easing.r3 ./rebol3 test-easing.r3 - uses: actions/upload-artifact@v3 with: name: Rebol-Easing-${{github.run_id}} path: ./easing*.rebx linux: runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 64bit Rebol/Easing extension run: ./rebol3 siskin.r3 rebol/easing easing-linux-x64 - name: Prepare 64bit Rebol Easing extension run: mv ./tree/rebol/Rebol-Easing/build/easing-linux-x64.so ./easing-linux-x64.rebx - name: Test Rebol/Easing extension run: | mv ./tree/rebol/Rebol-Easing/ci-test.r3 ./test-easing.r3 ./rebol3 test-easing.r3 - name: Compress 64bit Rebol/Easing extension run: gzip -9 ./easing-linux-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Easing-${{github.run_id}} path: ./easing*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 64bit Rebol/Easing extension run: ./rebol3 siskin.r3 rebol/easing easing-macos-x64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol-Easing/build/easing-macos-x64.dylib -v - name: Prepare 64bit Rebol Easing extension run: mv ./tree/rebol/Rebol-Easing/build/easing-macos-x64.dylib ./easing-macos-x64.rebx - name: Test Rebol/Easing extension run: | mv ./tree/rebol/Rebol-Easing/ci-test.r3 ./test-easing.r3 ./rebol3 test-easing.r3 - name: Compress 64bit Rebol/Easing extension run: gzip -9 ./easing-macos-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Easing-${{github.run_id}} path: ./easing*.gz siskin-0.22.5/.github/workflows/rebol-mathpresso.yml000066400000000000000000000113621525470217700225230ustar00rootroot00000000000000name: 'Rebol/MathPresso' on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 32bit static MathPresso library run: ./rebol3 siskin.r3 rebol/mathpresso static-lib-x86 - name: Build 32bit Rebol/MathPresso extension run: ./rebol3 siskin.r3 rebol/mathpresso --msvc mathpresso-windows-x86 - name: Prepare 32bit Rebol/MathPresso extension run: MOVE ./tree/rebol/Rebol-MathPresso/msvc/Release-Win32/mathpresso-windows-x86.dll ./mathpresso-windows-x86.rebx - name: Build 64bit static MathPresso library run: ./rebol3 siskin.r3 rebol/mathpresso static-lib-x64 - name: Build 64bit Rebol/MathPresso extension run: ./rebol3 siskin.r3 rebol/mathpresso --msvc mathpresso-windows-x64 - name: Prepare 64bit Rebol/MathPresso extension run: MOVE ./tree/rebol/Rebol-MathPresso/msvc/Release-x64/mathpresso-windows-x64.dll ./mathpresso-windows-x64.rebx - name: Minimal Rebol/MathPresso extension test run: | MOVE tree\rebol\Rebol-MathPresso\ci-test.r3 .\test-mathpresso.r3 ./rebol3 test-mathpresso.r3 - uses: actions/upload-artifact@v3 with: name: Rebol-MathPresso-${{github.run_id}} path: ./mathpresso*.rebx linux: runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 64bit static MathPresso library run: ./rebol3 siskin.r3 rebol/mathpresso static-lib-x64 - name: Build 64bit Rebol/MathPresso extension run: ./rebol3 siskin.r3 rebol/mathpresso mathpresso-linux-x64 - name: Prepare 64bit Rebol MathPresso extension run: mv ./tree/rebol/Rebol-MathPresso/build/mathpresso-linux-x64.so ./mathpresso-linux-x64.rebx - name: Test Rebol/MathPresso extension run: | mv ./tree/rebol/Rebol-MathPresso/ci-test.r3 ./test-mathpresso.r3 ./rebol3 test-mathpresso.r3 - name: Compress 64bit Rebol/MathPresso extension run: gzip -9 ./mathpresso-linux-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-MathPresso-${{github.run_id}} path: ./mathpresso*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install Rebol uses: oldes/install-rebol@v3.14.0 - name: Build 64bit static MathPresso library run: ./rebol3 siskin.r3 rebol/mathpresso static-lib-x64 - name: Build 64bit Rebol/MathPresso extension run: ./rebol3 siskin.r3 rebol/mathpresso mathpresso-macos-x64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol-MathPresso/build/mathpresso-macos-x64.dylib -v - name: Prepare 64bit Rebol MathPresso extension run: mv ./tree/rebol/Rebol-MathPresso/build/mathpresso-macos-x64.dylib ./mathpresso-macos-x64.rebx - name: Test Rebol/MathPresso extension run: | mv ./tree/rebol/Rebol-MathPresso/ci-test.r3 ./test-mathpresso.r3 ./rebol3 test-mathpresso.r3 - name: Compress 64bit Rebol/MathPresso extension run: gzip -9 ./mathpresso-macos-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-MathPresso-${{github.run_id}} path: ./mathpresso*.gz siskin-0.22.5/.github/workflows/rebol-speak.yml000066400000000000000000000071461525470217700214460ustar00rootroot00000000000000name: 'Rebol/Speak' on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] paths: - .github/workflows/rebol-speak.yml # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release REBOL_MODULES_DIR: ${{github.WORKSPACE}}/Release jobs: windows: runs-on: windows-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory shell: bash run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build 32bit Rebol/Speak extension shell: bash run: ./rebol3 siskin.r3 rebol/speak --msvc -o $OUT/speak-windows-x86.rebx speak-x86 - name: Build 64bit Rebol/Speak extension shell: bash run: ./rebol3 siskin.r3 rebol/speak --msvc -o $OUT/speak-windows-x64.rebx speak-x64 - name: Minimal Rebol/Speak extension test shell: bash run: ./rebol3 ./tree/rebol/Rebol-Speak/ci-test.r3 - uses: actions/upload-artifact@v3 with: name: Rebol-Speak-${{github.run_id}} path: ${{env.OUT}}/speak*.rebx macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build Rebol/Speak extension (x64) run: ./rebol3 siskin.r3 rebol/speak -o $OUT/speak-macos-x64.rebx speak-x64 - name: Build Rebol/Speak extension (arm64) run: ./rebol3 siskin.r3 rebol/speak -o $OUT/speak-macos-arm64.rebx speak-arm64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/speak-macos-x64.rebx -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/speak-macos-arm64.rebx -v - name: Minimal Rebol/Speak extension test run: ./rebol3 ./tree/rebol/Rebol-Speak/ci-test.r3 - name: Compress Rebol/Speak extensions run: | gzip -9 $OUT/speak-macos-x64.rebx gzip -9 $OUT/speak-macos-arm64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Speak-${{github.run_id}} path: ${{env.OUT}}/speak-macos-*.gz siskin-0.22.5/.github/workflows/rebol-sqlite.yml000066400000000000000000000255161525470217700216450ustar00rootroot00000000000000name: 'Rebol/SQLite' on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] paths: - .github/workflows/rebol-sqlite.yml # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release REBOL_MODULES_DIR: ${{github.WORKSPACE}}/Release jobs: windows: runs-on: windows-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory shell: bash run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build 32bit Rebol/SQLite extension shell: bash run: ./rebol3 siskin.r3 rebol/sqlite --msvc -o $OUT/sqlite-windows-x86.rebx sqlite-x86 - name: Build 64bit Rebol/SQLite extension shell: bash run: ./rebol3 siskin.r3 rebol/sqlite --msvc -o $OUT/sqlite-windows-x64.rebx sqlite-x64 - name: Minimal Rebol/SQLite extension test shell: bash run: ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-Windows path: ${{env.OUT}}/sqlite*.rebx linux: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Install minimal 32-bit support run: sudo apt-get update && sudo apt-get install -y gcc-multilib libc6-dev-i386 - name: Build 32bit Rebol/SQLite extension run: ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-linux-x86.rebx sqlite-x86 - name: Build 64bit Rebol/SQLite extension run: ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-linux-x64.rebx sqlite-x64 - name: Minimal Rebol/SQLite extension test run: ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - name: Compress 32bit Rebol/SQLite extension run: gzip -9 $OUT/sqlite-linux-x86.rebx - name: Compress 64bit Rebol/SQLite extension run: gzip -9 $OUT/sqlite-linux-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-Linux path: ${{env.OUT}}/sqlite-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build Rebol/SQLite extension (x64) run: ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-macos-x64.rebx sqlite-x64 - name: Build Rebol/SQLite extension (arm64) run: ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-macos-arm64.rebx sqlite-arm64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/sqlite-macos-x64.rebx -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/sqlite-macos-arm64.rebx -v - name: Minimal Rebol/SQLite extension test run: ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - name: Compress Rebol/SQLite extensions run: | gzip -9 $OUT/sqlite-macos-x64.rebx gzip -9 $OUT/sqlite-macos-arm64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-macOS path: ${{env.OUT}}/sqlite-macos-*.gz openbsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for OpenBSD uses: vmactions/openbsd-vm@v1 with: release: "7.8" envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg_add curl git run: | uname -a ls -l /usr/lib/libc.so.* mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.21.0/rebol3-bulk-openbsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ldd ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-openbsd-x64.rebx sqlite-x64 file $OUT/sqlite-openbsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - name: Compress 64bit Rebol/SQLite extension run: gzip -9 $OUT/sqlite-openbsd-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-OpenBSD path: ${{env.OUT}}/sqlite-openbsd-*.gz freebsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for FreeBSD uses: vmactions/freebsd-vm@v1 with: envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg install -y curl git run: | env freebsd-version mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.17.0/rebol3-bulk-freebsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-freebsd-x64.rebx sqlite-x64 file $OUT/sqlite-freebsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - name: Compress 64bit Rebol/SQLite extension run: gzip -9 $OUT/sqlite-freebsd-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-FreeBSD path: ${{env.OUT}}/sqlite-freebsd-*.gz dragonflybsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for DragonFlyBSD uses: vmactions/dragonflybsd-vm@v1 with: envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg install -y llvm16 libnghttp2 git run: | env ln -s /usr/local/bin/clang16 /usr/local/bin/clang clang --version mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.17.0/rebol3-bulk-dragonflybsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/sqlite -o $OUT/sqlite-dragonflybsd-x64.rebx sqlite-x64 file $OUT/sqlite-dragonflybsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-SQLite/ci-test.r3 - name: Compress 64bit Rebol/SQLite extension run: gzip -9 $OUT/sqlite-dragonflybsd-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-DragonflyBSD path: ${{env.OUT}}/sqlite-dragonflybsd-*.gz Haiku-x86: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x86 - name: Build all Rebol/SQLite for Haiku OS x86 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol/sqlite sqlite-x86' - name: Compress result before uploading run: | mkdir $OUT sudo mv ./tree/rebol/Rebol-SQLite/build/sqlite-x86.so $OUT/sqlite-haiku-x86.rebx sudo gzip -9 $OUT/sqlite-haiku-x86.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-Haiku-x86 path: ${{env.OUT}}/sqlite-*.gz Haiku-x64: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x64 - name: Build all Rebol/SQLite for Haiku OS x64 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol/sqlite sqlite-x64' - name: Compress result before uploading run: | mkdir $OUT sudo mv ./tree/rebol/Rebol-SQLite/build/sqlite-x64.so $OUT/sqlite-haiku-x64.rebx sudo gzip -9 $OUT/sqlite-haiku-x64.rebx - uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-Haiku-x64 path: ${{env.OUT}}/sqlite-*.gz release: runs-on: ubuntu-latest needs: [windows, linux, macos, openbsd, freebsd, dragonflybsd, Haiku-x86, Haiku-x64] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Download all artifacts uses: actions/download-artifact@v4 with: path: artifacts merge-multiple: true - name: Create single archive run: | cd artifacts zip -r ../Rebol-SQLite-all-platforms-${{ github.run_id }}.zip . cd .. - name: Upload single archive uses: actions/upload-artifact@v4 with: name: Rebol-SQLite-all-platforms path: Rebol-SQLite-all-platforms-${{ github.run_id }}.zip retention-days: 90siskin-0.22.5/.github/workflows/rebol-triangulate.yml000066400000000000000000000242601525470217700226560ustar00rootroot00000000000000name: 'Rebol/Triangulate' on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] paths: - .github/workflows/rebol-triangulate.yml # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release REBOL_MODULES_DIR: ${{github.WORKSPACE}}/Release jobs: windows: runs-on: windows-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory shell: bash run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build 32bit Rebol/Triangulate extension shell: bash run: ./rebol3 siskin.r3 rebol/triangulate --msvc -o $OUT/triangulate-windows-x86.rebx triangulate-x86 - name: Build 64bit Rebol/Triangulate extension shell: bash run: ./rebol3 siskin.r3 rebol/triangulate --msvc -o $OUT/triangulate-windows-x64.rebx triangulate-x64 - name: Minimal Rebol/Triangulate extension test shell: bash run: ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate*.rebx linux: runs-on: ubuntu-20.04 if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Build 32bit Rebol/Triangulate extension run: ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-linux-x86.rebx triangulate-x86 - name: Build 64bit Rebol/Triangulate extension run: ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-linux-x64.rebx triangulate-x64 - name: Minimal Rebol/Triangulate extension test run: ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - name: Compress 32bit Rebol/Triangulate extension run: gzip -9 $OUT/triangulate-linux-x86.rebx - name: Compress 64bit Rebol/Triangulate extension run: gzip -9 $OUT/triangulate-linux-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-linux-*.gz macos: runs-on: macos-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare output directory run: mkdir $OUT - name: Install Rebol uses: oldes/install-rebol@v3.17.0 with: product: Bulk - name: Build Rebol/Triangulate extension (x64) run: ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-macos-x64.rebx triangulate-x64 - name: Build Rebol/Triangulate extension (arm64) run: ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-macos-arm64.rebx triangulate-arm64 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/triangulate-macos-x64.rebx -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID $OUT/triangulate-macos-arm64.rebx -v - name: Minimal Rebol/Triangulate extension test run: ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - name: Compress Rebol/Triangulate extensions run: | gzip -9 $OUT/triangulate-macos-x64.rebx gzip -9 $OUT/triangulate-macos-arm64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-macos-*.gz openbsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for OpenBSD uses: vmactions/openbsd-vm@v1 with: envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg_add curl git run: | mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.17.0/rebol3-bulk-openbsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-openbsd-x64.rebx triangulate-x64 file $OUT/triangulate-openbsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - name: Compress 64bit Rebol/Triangulate extension run: gzip -9 $OUT/triangulate-openbsd-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-openbsd-*.gz freebsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for FreeBSD uses: vmactions/freebsd-vm@v1 with: envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg install -y curl git run: | env freebsd-version mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.17.0/rebol3-bulk-freebsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-freebsd-x64.rebx triangulate-x64 file $OUT/triangulate-freebsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - name: Compress 64bit Rebol/Triangulate extension run: gzip -9 $OUT/triangulate-freebsd-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-freebsd-*.gz dragonflybsd: runs-on: ubuntu-latest if: true steps: - uses: actions/checkout@v4 - name: Crosscompilation for DragonFlyBSD uses: vmactions/dragonflybsd-vm@v1 with: envs: 'OUT REBOL_MODULES_DIR' usesh: true prepare: | pkg install -y llvm16 libnghttp2 git run: | env ln -s /usr/local/bin/clang16 /usr/local/bin/clang clang --version mkdir $OUT curl https://github.com/Oldes/Rebol3/releases/download/3.17.0/rebol3-bulk-dragonflybsd-x64.gz --output ./rebol3.gz --silent -L gunzip ./rebol3.gz chmod +x ./rebol3 ./rebol3 -V ls -la . ./rebol3 siskin.r3 rebol/triangulate -o $OUT/triangulate-dragonflybsd-x64.rebx triangulate-x64 file $OUT/triangulate-dragonflybsd-x64.rebx ./rebol3 ./tree/rebol/Rebol-Triangulate/ci-test.r3 - name: Compress 64bit Rebol/Triangulate extension run: gzip -9 $OUT/triangulate-dragonflybsd-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-dragonflybsd-*.gz Haiku-x86: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x86 - name: Build all Rebol/Triangulate for Haiku OS x86 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol/triangulate triangulate-x86' - name: Compress result before uploading run: | mkdir $OUT sudo mv ./tree/rebol/Rebol-Triangulate/build/triangulate-x86.so $OUT/triangulate-haiku-x86.rebx sudo gzip -9 $OUT/triangulate-haiku-x86.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-*.gz Haiku-x64: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x64 - name: Build all Rebol/Triangulate for Haiku OS x64 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol/triangulate triangulate-x64' - name: Compress result before uploading run: | mkdir $OUT sudo mv ./tree/rebol/Rebol-Triangulate/build/triangulate-x64.so $OUT/triangulate-haiku-x64.rebx sudo gzip -9 $OUT/triangulate-haiku-x64.rebx - uses: actions/upload-artifact@v3 with: name: Rebol-Triangulate-${{github.run_id}} path: ${{env.OUT}}/triangulate-*.gz siskin-0.22.5/.github/workflows/rebol.yml000066400000000000000000000377311525470217700203500ustar00rootroot00000000000000name: 'Build Rebol' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin uses: oldes/install-siskin@v0.22.0 - name: Build 64bit Rebol/Core using MSVC run: | ./siskin rebol --msvc %rebol3-core-windows-x64 MOVE ./tree/rebol/Rebol/msvc/Release-x64/rebol3-core-windows-x64.exe ./ - name: Build 64bit Rebol/Bulk using MSVC run: | ./siskin rebol --msvc %rebol3-bulk-windows-x64 MOVE ./tree/rebol/Rebol/msvc/Release-x64/rebol3-bulk-windows-x64.exe ./ - name: Build 32bit Rebol/Core using MSVC run: | ./siskin rebol --msvc %rebol3-core-windows-x86 MOVE ./tree/rebol/Rebol/msvc/Release-Win32/rebol3-core-windows-x86.exe ./ - name: Build 32bit Rebol/Bulk using MSVC run: | ./siskin rebol --msvc %rebol3-bulk-windows-x86 MOVE ./tree/rebol/Rebol/msvc/Release-Win32/rebol3-bulk-windows-x86.exe ./ - name: Build ARM64 Rebol/Bulk using MSVC run: | ./siskin rebol --msvc %rebol3-bulk-windows-arm64 MOVE ./tree/rebol/Rebol/msvc/Release-ARM64/rebol3-bulk-windows-arm64.exe ./ ############################################################################### # Building Rebol as a shared library... - name: Build 32bit Rebol/Core as a shared library using MSVC run: ./siskin rebol --msvc %lib-rebol3-core-windows-x86 - name: Build 64bit Rebol/Core as a shared library using MSVC run: ./siskin rebol --msvc %lib-rebol3-core-windows-x64 ############################################################################### # Building sample host applications using Rebol as a shared library... - name: Build 32bit Rebol/Core as a host application using MSVC run: ./siskin rebol --msvc %host-core-windows-x86 - name: Build 64bit Rebol/Core as a host application using MSVC run: ./siskin rebol --msvc %host-core-windows-x64 - name: Move library and host files into root run: | MOVE ./tree/rebol/Rebol/msvc/Release-Win32/lib-rebol3-core-windows-x86.dll ./ MOVE ./tree/rebol/Rebol/msvc/Release-Win32/lib-rebol3-core-windows-x86.lib ./ MOVE ./tree/rebol/Rebol/msvc/Release-Win32/host-core-windows-x86.exe ./ MOVE ./tree/rebol/Rebol/msvc/Release-x64/lib-rebol3-core-windows-x64.dll ./ MOVE ./tree/rebol/Rebol/msvc/Release-x64/lib-rebol3-core-windows-x64.lib ./ MOVE ./tree/rebol/Rebol/msvc/Release-x64/host-core-windows-x64.exe ./ ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-windows path: | ./rebol3-*.exe ./lib-*.dll ./lib-*.lib ./host-*.exe linux: strategy: fail-fast: true runs-on: ubuntu-22.04 steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install GCC multilib run: sudo apt-get install gcc-multilib - name: Bootstrap Rebol run: | git clone --branch bootstrap --single-branch https://github.com/Siskin-framework/Rebol.git cd Rebol/make make -f rebol-linux-bootstrap-64bit.mk mv ./rebol-linux-bootstrap-64bit ../../rebol-stage0 - name: Build 32bit Rebol/Core using gcc run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-x86 - name: Build 32bit Rebol/Bulk using gcc run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-x86 - name: Build 64bit Rebol/Core using gcc run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-x64 - name: Build 64bit Rebol/Bulk using gcc run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-x64 - name: Setup arm cross-compilers run: | sudo apt-get update sudo apt-get install gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu gcc-riscv64-linux-gnu - name: Build Rebol/Core for armv6 (gnueabi) run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-gnueabi - name: Build Rebol/Bulk for armv6 (gnueabi) run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-gnueabi - name: Build Rebol/Core for armv7 (gnueabihf) run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-gnueabihf - name: Build Rebol/Bulk for armv7 (gnueabihf) run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-gnueabihf - name: Build Rebol/Core for arm64 (aarch64) run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-aarch64 - name: Build Rebol/Bulk for arm64 (aarch64) run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-aarch64 - name: Build Rebol/Core for riscv64 run: ./rebol-stage0 siskin.r3 rebol %rebol3-core-linux-riscv64 - name: Build Rebol/Bulk for riscv64 run: ./rebol-stage0 siskin.r3 rebol %rebol3-bulk-linux-riscv64 - name: Rename ARM cross-compilation target results run: | mv ./tree/rebol/Rebol/build/rebol3-core-linux-gnueabi ./tree/rebol/Rebol/build/rebol3-core-linux-armv6 mv ./tree/rebol/Rebol/build/rebol3-bulk-linux-gnueabi ./tree/rebol/Rebol/build/rebol3-bulk-linux-armv6 mv ./tree/rebol/Rebol/build/rebol3-core-linux-gnueabihf ./tree/rebol/Rebol/build/rebol3-core-linux-armv7 mv ./tree/rebol/Rebol/build/rebol3-bulk-linux-gnueabihf ./tree/rebol/Rebol/build/rebol3-bulk-linux-armv7 mv ./tree/rebol/Rebol/build/rebol3-core-linux-aarch64 ./tree/rebol/Rebol/build/rebol3-core-linux-arm64 mv ./tree/rebol/Rebol/build/rebol3-bulk-linux-aarch64 ./tree/rebol/Rebol/build/rebol3-bulk-linux-arm64 - name: Create archives from each version run: | gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-x86 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-x86 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-x64 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-x64 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-armv6 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-armv6 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-armv7 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-armv7 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-arm64 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-arm64 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-linux-riscv64 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-linux-riscv64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-linux path: ./tree/rebol/Rebol/build/rebol3-*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin uses: oldes/install-siskin@v0.22.0 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning - name: Build 64bit Rebol/Core using clang run: ./siskin rebol %rebol3-core-macos-x64 - name: Build 64bit Rebol/Bulk using clang run: ./siskin rebol %rebol3-bulk-macos-x64 - name: Build ARM64 Rebol/Core using clang run: ./siskin rebol %rebol3-core-macos-arm64 - name: Build ARM64 Rebol/Bulk using clang run: ./siskin rebol %rebol3-bulk-macos-arm64 - name: Build 64bit Rebol/Core as a shared library run: ./siskin rebol %lib-rebol3-core-macos-x64 - name: Build 64bit Rebol/Core as a host application run: ./siskin rebol %host-core-macos-x64 - name: Codesign executables env: MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} run: | /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/rebol3-core-macos-x64 -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/rebol3-bulk-macos-x64 -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/rebol3-core-macos-arm64 -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/rebol3-bulk-macos-arm64 -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/lib-rebol3-core-macos-x64.dylib -v /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./tree/rebol/Rebol/build/host-core-macos-x64 -v - name: Create archives from each version run: | gzip -9 ./tree/rebol/Rebol/build/rebol3-core-macos-x64 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-macos-x64 gzip -9 ./tree/rebol/Rebol/build/rebol3-core-macos-arm64 gzip -9 ./tree/rebol/Rebol/build/rebol3-bulk-macos-arm64 gzip -9 ./tree/rebol/Rebol/build/lib-rebol3-core-macos-x64.dylib gzip -9 ./tree/rebol/Rebol/build/host-core-macos-x64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-macos path: ./tree/rebol/Rebol/build/*.gz DragonFlyBSD: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Build Rebol in DragonFlyBSD uses: vmactions/dragonflybsd-vm@v1 with: usesh: true prepare: | pkg install -y rsync llvm16 libnghttp2 git libiconv run: | ln -s /usr/local/bin/clang16 /usr/local/bin/clang clang --version echo "Rebol [] unprotect 'system/platform system/platform: 'dragonflybsd" > ~/user.reb cat ~/user.reb cd .. git clone -b bootstrap https://github.com/Siskin-framework/Rebol.git --depth 1 cd ./Rebol/make/ make -f rebol-bsd-bootstrap-64bit.mk mv ./rebol-bsd-bootstrap-64bit ../../Builder/r3 cd ../../Builder ./r3 -s siskin.r3 rebol --platform dragonflybsd --list ./r3 -s siskin.r3 rebol --platform dragonflybsd rebol3-core-dragonflybsd-x64 mv ./tree/rebol/Rebol/build/rebol3-core-dragonflybsd-x64 ./rebol3-core-dragonflybsd-x64 ./r3 -s siskin.r3 rebol --platform dragonflybsd rebol3-bulk-dragonflybsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-dragonflybsd-x64 ./rebol3-bulk-dragonflybsd-x64 - name: Prepare build results run: | gzip -9 ./rebol3-core-dragonflybsd-x64 gzip -9 ./rebol3-bulk-dragonflybsd-x64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-dragonfly path: ./rebol3*.gz OpenBSD: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Build Rebol in OpenBSD uses: vmactions/openbsd-vm@v1 with: usesh: true prepare: | pkg_add curl git iconv libiconv run: | echo "Rebol [] unprotect 'system/platform system/platform: 'openbsd" > ~/user.reb cd .. git clone -b bootstrap https://github.com/Siskin-framework/Rebol.git --depth 1 cd ./Rebol/make/ make -f rebol-bsd-bootstrap-64bit.mk mv ./rebol-bsd-bootstrap-64bit ../../Builder/r3 cd ../../Builder ./r3 siskin.r3 rebol rebol3-core-openbsd-x64 mv ./tree/rebol/Rebol/build/rebol3-core-openbsd-x64 ./rebol3-core-openbsd-x64 ./r3 siskin.r3 rebol rebol3-bulk-openbsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-openbsd-x64 ./rebol3-bulk-openbsd-x64 - name: Prepare build results run: | gzip -9 ./rebol3-core-openbsd-x64 gzip -9 ./rebol3-bulk-openbsd-x64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-openbsd path: ./rebol3*.gz FreeBSD: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Build Rebol in FreeBSD uses: vmactions/freebsd-vm@v1 with: usesh: true prepare: | pkg install -y curl git run: | cd .. git clone -b bootstrap https://github.com/Siskin-framework/Rebol.git --depth 1 cd ./Rebol/make/ make -f rebol-bsd-bootstrap-64bit.mk mv ./rebol-bsd-bootstrap-64bit ../../Builder/r3 cd ../../Builder ./r3 siskin.r3 rebol rebol3-core-freebsd-x64 mv ./tree/rebol/Rebol/build/rebol3-core-freebsd-x64 ./rebol3-core-freebsd-x64 ./r3 siskin.r3 rebol rebol3-bulk-freebsd-x64 mv ./tree/rebol/Rebol/build/rebol3-bulk-freebsd-x64 ./rebol3-bulk-freebsd-x64 - name: Prepare build results run: | gzip -9 ./rebol3-core-freebsd-x64 gzip -9 ./rebol3-bulk-freebsd-x64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-freebsd path: ./rebol3*.gz Haiku-x86: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v5 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x86 - name: Build all Rebol for Haiku OS x86 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol rebol3-base-haiku-x86 rebol3-core-haiku-x86 rebol3-bulk-haiku-x86' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Rebol/build/rebol3-core-haiku-x86 ./ sudo mv ./tree/rebol/Rebol/build/rebol3-bulk-haiku-x86 ./ sudo gzip -9 ./rebol3-core-haiku-x86 sudo gzip -9 ./rebol3-bulk-haiku-x86 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-haiku-x86 path: ./rebol3-*.gz Haiku-x64: runs-on: ubuntu-latest if: true steps: - name: Checkout repository uses: actions/checkout@v5 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x64 - name: Build all Rebol for Haiku OS x64 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol rebol3-base-haiku-x64 rebol3-core-haiku-x64 rebol3-bulk-haiku-x64' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Rebol/build/rebol3-core-haiku-x64 ./ sudo mv ./tree/rebol/Rebol/build/rebol3-bulk-haiku-x64 ./ sudo gzip -9 ./rebol3-core-haiku-x64 sudo gzip -9 ./rebol3-bulk-haiku-x64 - uses: actions/upload-artifact@v7 with: name: Rebol-${{github.run_id}}-haiku-x64 path: ./rebol3-*.gz siskin-0.22.5/.github/workflows/red.yml000066400000000000000000000054331525470217700200110ustar00rootroot00000000000000name: 'Build Red' on: # Triggers the workflow on push or pull request events but only for the master branch # push: # branches: [ master ] # pull_request: # branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build Red CLI console run: | ./rebol3 siskin.r3 red console MOVE ./tree/red/console.exe ./red-cli.exe - name: Build Red GUI console run: | ./rebol3 siskin.r3 red gui-console MOVE ./tree/red/gui-console.exe ./red-gui.exe ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v2 with: name: Red-Windows path: ./red-*.exe linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Install 32bit dependencies run: | sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libxt6:i386 libXaw:i386 libc6:i386 libcurl4:i386 libgtk-3-0:i386 libgdk-pixbuf2.0-0:i386 - name: Build Red CLI console run: | ./rebol3 siskin.r3 red console mv ./tree/red/console ./red-cli-linux file ./red-cli-linux - name: Build Red GUI console run: | ./rebol3 siskin.r3 red gui-console mv ./tree/red/gui-console ./red-gui-linux file ./red-gui-linux - name: Create archives from each version run: | gzip -9 ./red-cli-linux gzip -9 ./red-gui-linux - uses: actions/upload-artifact@v2 with: name: Red-Linux path: ./red-* # # There is only 64bit macOS in GithHub Actions... Red is 32bit, so no way # # macos: # runs-on: macos-latest # steps: # - name: Checkout repository # uses: actions/checkout@v2 # # - name: Install Rebol # uses: oldes/install-rebol@v3.6.0 # # - name: Build Red CLI console # run: | # ./rebol3 siskin.r3 red console # mv ./tree/red/console ./red-cli-osx # # - name: Build Red GUI console # run: | # ./rebol3 siskin.r3 red gui-console # mv ./tree/red/gui-console ./red-gui-osx # # - name: Create archives from each version # run: | # gzip -9 ./red-cli-osx # gzip -9 ./red-gui-osx # # - uses: actions/upload-artifact@v2 # with: # name: Red-macOS # path: ./red-* siskin-0.22.5/.github/workflows/siskin.yml000066400000000000000000000313031525470217700205320ustar00rootroot00000000000000name: 'Build Siskin' on: # Triggers the workflow when these files are modified push: paths: - test/** - tree/rebol/Siskin/** - tree/rebol/siskin.nest - .github/workflows/siskin.yml # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: windows: strategy: fail-fast: true runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 # 32bit gcc version would fail for now (requires 32bit mingw) # - name: Build 32bit Siskin using gcc # run: | # ./rebol3 siskin.r3 rebol/siskin siskin-windows-x86 # MOVE ./tree/rebol/Siskin/build/siskin-windows-x86.exe ./siskin-windows-x86-gcc.exe # # - name: Build 64bit Siskin using gcc # run: | # ./rebol3 siskin.r3 rebol/siskin siskin-windows-x86_64 # MOVE ./tree/rebol/Siskin/build/siskin-windows-x86_64.exe ./siskin-windows-x86_64-gcc.exe - name: Build 32bit Siskin using msvc run: ./siskin rebol/siskin -o ./ --msvc siskin-windows-x86 - name: Build 64bit Siskin using msvc run: ./siskin rebol/siskin -o ./ --msvc siskin-windows-x86_64 - name: Build Arm64bit Siskin using msvc run: ./siskin rebol/siskin -o ./ --msvc siskin-windows-arm64 #- name: Test 32bit Siskin project (gcc) # run: ./siskin-windows-x86-gcc.exe #- name: Test 64bit Siskin project (gcc) # run: ./siskin-windows-x86_64-gcc.exe - name: Test 32bit Siskin project (msvc) run: ./siskin-windows-x86.exe - name: Test 64bit Siskin project (msvc) run: ./siskin-windows-x86_64.exe - name: List all possible test targets run: ./siskin-windows-x86_64.exe test --list - name: Test build 1 run: ./siskin-windows-x86_64.exe test test-1 - name: Test build 2 run: ./siskin-windows-x86_64.exe test test-2 - name: Test build 3 run: ./siskin-windows-x86_64.exe test test-3 - name: Test build 4 run: ./siskin-windows-x86_64.exe test test-4 - name: Test build 5 run: ./siskin-windows-x86_64.exe test test-5 - name: Test build 6 run: ./siskin-windows-x86_64.exe test test-6 - name: Test build 7 run: ./siskin-windows-x86_64.exe test test-7 - name: Test build 8 run: ./siskin-windows-x86_64.exe test "test-8 spaced" - name: Test build multiple at once run: ./siskin-windows-x86_64.exe test 1 2 "test-8 spaced" - name: Test build with output override run: | ./siskin-windows-x86_64.exe test --output new.exe test-1 ./new.exe - name: Test Rebol Preprocessor run: | ./siskin-windows-x86_64.exe test test.r3 ./siskin --script ./test/build/test.r3 - name: Test build 8 (MSVC) run: ./siskin-windows-x86_64.exe test -d --msvc 8 - name: Test build 8 with output override (MSVC) run: | ./siskin-windows-x86_64.exe test -d --msvc -o new.exe 8 ./new.exe - name: Test only single command run: ./siskin-windows-x86_64.exe test list-dir - uses: actions/upload-artifact@v5 with: name: Siskin-windows path: | ./siskin-windows-x86.exe ./siskin-windows-x86_64.exe ./siskin-windows-arm64.exe # ./siskin-windows-x86-gcc.exe # ./siskin-windows-x86_64-gcc.exe linux: strategy: fail-fast: true matrix: os: [ubuntu-latest] #os: [ubuntu-latest] #os: [ubuntu-20.04, ubuntu-18.04] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Install GCC multilib run: | sudo apt-get update sudo apt-get install gcc-multilib - name: Build 32bit Siskin using gcc run: ./siskin rebol/siskin -o ./ --gzip siskin-linux-x86 - name: Build 64bit Siskin using gcc run: ./siskin rebol/siskin -o ./ --gzip siskin-linux-x86_64 - name: Install Musl tools run: sudo apt-get install musl-tools - name: Build 64bit Siskin as static run: ./siskin rebol/siskin -o ./ --gzip siskin-linux-x86_64-static - name: List all possible test targets run: ./siskin-linux-x86_64 test --list - name: Test build 1 run: ./siskin-linux-x86_64 test test-1 - name: Test build 2 run: ./siskin-linux-x86_64 test test-2 - name: Test build 3 run: ./siskin-linux-x86_64 test test-3 - name: Test build 4 run: ./siskin-linux-x86_64 test test-4 - name: Test build 5 run: ./siskin-linux-x86_64 test test-5 - name: Test build 6 run: ./siskin-linux-x86_64 test test-6 - name: Test build 7 run: ./siskin-linux-x86_64 test test-7 - name: Test build 8 run: ./siskin-linux-x86_64 test "test-8 spaced" - name: Test build multiple at once run: ./siskin-linux-x86_64 test 1 2 "test-8 spaced" - name: Test build with output override run: | ./siskin-linux-x86_64 test --output new test-1 ./new - name: Test Rebol Preprocessor run: | ./siskin-linux-x86_64 test test.r3 ./siskin --script ./test/build/test.r3 - name: Test only single command run: ./siskin-linux-x86_64 test list-dir - uses: actions/upload-artifact@v5 with: name: Siskin-linux path: ./siskin-linux*.gz macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Install the Apple certificate # https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development env: BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db # import certificate from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH # import certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH # list available codesigning identities security find-identity -v -p codesigning #It looks it's not possible to build 32bit macOS version anymore using GitHub actions! # #- name: Build 32bit Siskin # run: ./siskin rebol/siskin -o ./ siskin-macos-x86 - name: Build x86_64 Siskin env: SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} run: ./siskin rebol/siskin -o ./ --gzip siskin-macos-x86_64 - name: Build ARM64 Siskin env: SISKIN_SIGN_IDENTITY: ${{ secrets.MACOS_IDENTITY_ID }} run: ./siskin rebol/siskin -o ./ --gzip siskin-macos-aarch64 # - name: Codesign executables # env: # MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} # run: | # /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./siskin-macos-x86_64 -v # /usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./siskin-macos-aarch64 -v - name: List all possible test targets run: ./siskin-macos-x86_64 test --list - name: Test build 1 run: ./siskin-macos-x86_64 test test-1 - name: Test build 2 run: ./siskin-macos-x86_64 test test-2 - name: Test build 3 run: ./siskin-macos-x86_64 test test-3 - name: Test build 4 run: ./siskin-macos-x86_64 test test-4 - name: Test build 5 run: ./siskin-macos-x86_64 test test-5 - name: Test build 6 run: ./siskin-macos-x86_64 test test-6 - name: Test build 7 run: ./siskin-macos-x86_64 test test-7 - name: Test build 8 run: ./siskin-macos-x86_64 test "test-8 spaced" - name: Test build multiple at once run: ./siskin-macos-x86_64 test 1 2 "test-8 spaced" - name: Test build with output override run: | ./siskin-macos-x86_64 test --output new test-1 ./new - name: Test Rebol Preprocessor run: | ./siskin-macos-x86_64 test test.r3 ./siskin --script ./test/build/test.r3 - name: Test only single command run: ./siskin-macos-x86_64 test list-dir - uses: actions/upload-artifact@v5 with: name: Siskin-macos path: ./siskin-macos-*.gz script: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Siskin Builder uses: oldes/install-siskin@v0.21.15 - name: Preprocess Siskin script run: ./siskin rebol/siskin siskin.r3 - name: Move results into the root for uploading run: mv ./tree/rebol/Siskin/build/siskin.r3 ./build.r3 - name: List all possible test targets run: ./siskin --script build.r3 test --list - name: Test build 1 run: ./siskin --script build.r3 test test-1 - name: Test build 2 run: ./siskin --script build.r3 test test-2 - name: Test build 3 run: ./siskin --script build.r3 test test-3 - name: Test build 4 run: ./siskin --script build.r3 test test-4 - name: Test build 5 run: ./siskin --script build.r3 test test-5 - name: Test build 6 run: ./siskin --script build.r3 test test-6 - name: Test build 7 run: ./siskin --script build.r3 test test-7 - name: Test build 8 run: ./siskin --script build.r3 test "test-8 spaced" - name: Test build multiple at once run: ./siskin --script build.r3 test 1 2 "test-8 spaced" - name: Test Rebol Preprocessor run: | ./siskin --script build.r3 test test.r3 ./siskin --script ./test/build/test.r3 - name: Test only single command run: ./siskin --script build.r3 test list-dir - name: Compress results before uploading run: gzip -9 ./build.r3 - uses: actions/upload-artifact@v5 with: name: Siskin-script path: ./build.r3.gz Haiku-x86: strategy: fail-fast: false runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x86 - name: Build all Siskin for Haiku OS x86 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol/siskin siskin-haiku-x86' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Siskin/build/siskin-haiku-x86 ./ sudo gzip -9 ./siskin-haiku-x86 - uses: actions/upload-artifact@v5 with: name: Siskin-Haiku-x86 path: ./siskin-haiku-x86.gz Haiku-x86_64: strategy: fail-fast: false runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Download Haiku Rebol-dev container run: docker pull docker.io/oldes/rebol-dev:haiku-x64 - name: Build all Siskin for Haiku OS x86_64 run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol/siskin siskin-haiku-x86_64' - name: Compress result before uploading run: | sudo mv ./tree/rebol/Siskin/build/siskin-haiku-x86_64 ./ sudo gzip -9 ./siskin-haiku-x86_64 - uses: actions/upload-artifact@v5 with: name: Siskin-Haiku-x64 path: ./siskin-haiku-x86_64.gz siskin-0.22.5/.github/workflows/test.yml000066400000000000000000000016331525470217700202140ustar00rootroot00000000000000name: 'Just a test of Github actions' on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] paths: - .github/workflows/test.yml # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: OUT: ${{github.WORKSPACE}}/Release/ REBOL_MODULES_DIR: $OUT jobs: windows: runs-on: windows-latest steps: - name: Info shell: bash run: | echo "Temp: $RUNNER_TEMP Test: $REBOL_MODULES_DIR $OUT" linux: runs-on: ubuntu-20.04 env: REBOL_MODULES_DIR: ~/rebol/modules/ steps: - name: Info run: | echo "Temp: $RUNNER_TEMP Test: $REBOL_MODULES_DIR $OUT" macos: runs-on: macos-latest env: REBOL_MODULES_DIR: ~/rebol/modules/ steps: - name: Info run: | echo "Temp: $RUNNER_TEMP Test: $REBOL_MODULES_DIR $OUT" siskin-0.22.5/.github/workflows/triangle.yml000066400000000000000000000021161525470217700210370ustar00rootroot00000000000000name: 'Build Triangle' on: # Triggers the workflow on push or pull request events but only for the main branch # push: # branches: [ main ] # pull_request: # branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build_triangle: name: Triangle runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest - macOS-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rebol uses: oldes/install-rebol@v3.6.0 - name: Build 64bit Traingle utility run: ./rebol3 siskin.r3 utility/triangle triangle-x64 - name: Test 64bit Triangle run: ./tree/utility/triangle/build/triangle-x64 ############################################################################### # Collecting build artifacts... - uses: actions/upload-artifact@v2 with: name: Triangle-${{matrix.os}}-CI-${{github.run_id}} path: ./tree/utility/triangle/build/* siskin-0.22.5/.gitignore000066400000000000000000000002121525470217700150750ustar00rootroot00000000000000/* /**/msvc/ !/.cirrus.yml !/.github !/.gitignore !/.editorconfig !/tree/ !/test/ !/siskin.r3 !/README.md !/LICENSE !/assets/ siskin-0.22.5/LICENSE000066400000000000000000000261361525470217700141270ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. siskin-0.22.5/README.md000066400000000000000000000061311525470217700143720ustar00rootroot00000000000000[![siskin-builder](https://github.com/user-attachments/assets/56ca61c1-0ed5-4f0d-b9df-7ea916b2a9c9)](https://github.com/Siskin-framework/Builder) [![Gitter](https://badges.gitter.im/rebol3/community.svg)](https://app.element.io/#/room/#siskin-builder:gitter.im) [![Zulip](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://rebol.zulipchat.com/) # Siskin-framework Builder [![Build Siskin](https://github.com/Siskin-framework/Builder/actions/workflows/siskin.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/siskin.yml) [![Build Rebol](https://github.com/Siskin-framework/Builder/actions/workflows/rebol.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol.yml) [![Build Boron](https://github.com/Siskin-framework/Builder/actions/workflows/boron.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/boron.yml) [Rebol3](https://github.com/Siskin-framework/Rebol) based command line utility useful for compilation of various projects (originally designed for building the Rebol project). # Rebol extension builds: [![Rebol/Blend2D](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-blend2d.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-blend2d.yml) [![Rebol/BlurHash](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-blurhash.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-blurhash.yml) [![Rebol/Easing](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-easing.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-easing.yml) [![Rebol/MathPresso](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-mathpresso.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-mathpresso.yml) [![Rebol/SQLite](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-sqlite.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/rebol-sqlite.yml) ## Compression Utility builds: [![Build Brotli](https://github.com/Siskin-framework/Builder/actions/workflows/brotli.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/brotli.yml) [![Build bzip2](https://github.com/Siskin-framework/Builder/actions/workflows/bzip2.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/bzip2.yml) [![Build LZ4](https://github.com/Siskin-framework/Builder/actions/workflows/lz4.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/lz4.yml) [![Build LZFSE](https://github.com/Siskin-framework/Builder/actions/workflows/lzfse.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/lzfse.yml) [![Build LZW](https://github.com/Siskin-framework/Builder/actions/workflows/lzw.yml/badge.svg)](https://github.com/Siskin-framework/Builder/actions/workflows/lzw.yml) ## Here is a screen capture from a little bit older version in action: ![](https://raw.githubusercontent.com/Oldes/media/master/screens/build-siskin.gif "Building a Rebol based utility") siskin-0.22.5/assets/000077500000000000000000000000001525470217700144145ustar00rootroot00000000000000siskin-0.22.5/assets/Siskin.iconset/000077500000000000000000000000001525470217700173175ustar00rootroot00000000000000siskin-0.22.5/assets/Siskin.iconset/icon_512x512@2x.png000066400000000000000000002162141525470217700223440ustar00rootroot00000000000000‰PNG  IHDRHÃÛ±gAMA±� üasRGB®ÎéPLTEGpL ÂÖÜTUU¶ÊÎoomnoo›«¯UXXÄØÞÌàèÎäê‰�‘p{{¸ÇÎ?u?vv>uuss8jj=tt5dd0\\*SSÑçî&&&9kk>Ðæì–¥¾ÏÔ�¬ß///ÙÓæ¢‘–˜ÿGG·ÆËˆŒŒ|}}²”šœ$$$CCCwwv€Òçî÷îÃÖÛÿ›¤¦°½À¨³·ÆØÞÉÝãž§ªçÚ·Ž’”ʼ™áÓ­±¿Ã‹��ÿ�„„ÿ~¬¹½ÁÓØxxy´ÃÇÌáçFFFKKK¡«®Êß倂‚øÇÚàÜΨö“𪶺ÖÈ£yÿKK–ŒqПèØ ¼°�(IIà6HH ¡–yÎ&??ªž€ ª­U66i9\\·«Š9SS.@''±¥†X[\�ycehiòòòXIAG;3jcQÑ>>ßßßÌÌÌRSQ*MM�@@q99ê;;¸BBìAA±CggCpp§99Žò00¸!!ëJJw諜!tRNS "/)%:@62‡qbÔ¢BSªÆÞÔBÇ–]\ IDATxÚìÝÍjÛXÆñ‘y,L-¤7ð ß’ü~«õ¢2P×%ðšÓ/O>ñ.ZED{ µÔº¦_š}uîS‡’¶±¡{ªÁc¤’]Y¢$Õ ®µ Nò?ÜHþé$…ÄßRv)ÊÙ¯äøòχæ=9þ³4]¤ÕðŠÒÏ~Zî5/ê~²E>½øMH—Ñö£·´ŸÙ¶ Ã0CoíÙrضòØõzW+z1ÌvÊÏ ]á Ùr¢ƒü>ñúÁ«mb„Z€x éO†_ýhèEæ½Ä×—4—b™¼Nðú@Ô�¦îE Ðk�þHøeÑ×½Ø×êÎhB3ÛäåÕ1ÌqøU +z`¼P”AËyüUáOf_$¿nŽïÔEhÊPva[»ôdz¯WË5úµðr Z±…Ë€õ‰¿2üz¥ÜhûsÀ`¥ß~ñÛ$¿SuF§üMFïþ[Ö_–áç,À ¸Áœÿ‹ª.hÆëfµ­™Ÿ´Á!¬^·@ÚB€ XÇô�çý†xæ�ÑÐYfp�;ÃV²†uЮWªÒ�wÙËgüGé�‡ß·šc¨mäFøVõ$ˆ‹oF£œ(�DP9‹ÿ¤ô‹ð[âF3�Î-à•€–èiйŒdê¯4 ËbdcŠðj ^ѳuAÌIü#“ÿðµ=þÔï0¢1CX�X ¶T@®ãI¿c0õcv–å–‡/�/¨€ÜÄ?¾ô¯–mÒ�—2-#ÖT@î⟘ü5]œøsZÄöÑ� °šü«ã_©3f1Ï;„ŽiÕª�ßø‡'ÿF0ßU€áV[ÙN€ ÈGü7ªunùaQ'‚Fd@ä,þÚFÅ5­¶ ,L#Q±�)]tþU³¿·ög|b±§íV64y°XâôŸýõšéåßáÁc¾�¶—ùáWÄ»·Àl;e� XùêÿáË}ñoóà±à‡X˜æ„ ¯‹^ýGgÿºéïüž<æþ�}§7ÖÚª `°„Õtï_ìÎò•Sõ^ØÝ³|}-û(_y ŒÛ@¬¼�@ä,àM¬H킦ÿ7‘Õ¿¸íoŽÇÿ°HÏw§W_öÇo?Ý?|íu½|zñ;8:L$¡5¶½±½³�]³¸¦¸J;±K¼³ºüÉßùðèääbwë©Óí]¿÷éÇÕ£;$³� cTFðÑ0¡ HîÈî¦ÿpüµŠ)éáó4Ó»çüãñûý^g÷¯Ë½ áém))òÏ&fè…Vª”ßkg;øñÃË¿vû½¯ï?|yOãÞ£oãðûo–Ó¨úÀ"`yùſڭû�Ø“4Å—ŽóíÃûƒ=‘èÍMøzmnúm°wâUÁç«ÐÊ1ýËñ[°D}‡íÔtiÐ �þ5M¯%¶iáçÈp&ûêøº»{ ¦òB¯Ä ºÌE°Õ}øt_ØGÖûé+`Ë÷4ÀB§ÿŠm¡ðÇž£Iß>ÿðµqØl1߼Ċàè¢{ýï]xÑŸ²�- LÅ>€ ˜GþåÓÃ1g<н;Þº«}†?F=Ðlžt®Ïf½I`‹[‚‹€åLÿšV*û}¿z»ÍM¢é‘nsïéë�Òï8¦åVÃû€è"€,¿4ÿÁô?:ü3mñp¦y8ßoú—M6ûHm�æÛî§©Àï€Ða Û€,ÿƒé_+{ñ·ÍiÞÓszßÙcx#“ËþÍÿœìsK[ÌEŽÙ–/h€—ç?<ýwÿö%àÜÞwš-¦~dwÔ¿Óº‘}�‰y&r@Ìqù?šþ+Óeß{bžo:‡ hLí ûÁ™j¥éXV#ºà `Îù×ëbú÷¯vðaÂÛY÷€¡Œ]ôþ™Üã ÉÛ8eMµ ×/[þ{×µêŠ-WöJ~¼ßbcv?7›�gÂ$*q$X×ÙÌ-ÿñÓ?ÇÏþ¡‹//æ³îQ“�?^êmï4Ó2 ¸/%εø6€xqþõºíqF†£_»é0t1§Áî™=A0ýû‚læºýLÿU7vóÅ=öCÏ÷» [Ìo+ð³s3ÅkNlõ6€„O‘ÿÐö_«Ä§yG:ïûn{3f1_Û[÷v&b`Z }´ fË쵿vâ…¶¢~Ï»M>ëso€Öî½�u `µ+¡m ð’í¿æoÿ�lõkŸv�«XˆVëâk¶€­eÕQ 9ÏžÿÁò_oĦ~¥ïÄ ­€ÝŒO�›óÉuòµ6_ìŸ0F±à øoæ DŽi€©ó_QäÝŒ†ß¶ïw›-F(^O$ÃÏT7À 0eþ#¯þI›ôCMpÌ‹þ°,ý+ÉL¶€zM 0}þ5?ÿŽò°Å_ò«>£ËsØ‹$ÞŒÌLfè•A4À‹ò?xõ_bÙŸXnõø|?,Óövpèø/Êä~À‘ܤ&ç°ü/Õ3¶x›^ó�%W@«ó9ÓèT5©Ÿ˜½®<ï}íœýc%°³?ñP(—Æ7h€iòßÈR°×ÜùǪnlýÊ2Di€ÅåÿóÃ+\ôh€Uæÿa�1ˆ•6ÀVÊg »4@Ƙ-ÿ·ìþ±ú}ÀCZü]`aùÿ—íyh€þ]Ú0ui€l€Içÿ‰å?Cùpð1ÃÝ@ {þ3ÜÿÿÞç…ÿÈ�÷4À<ó_›x5¯.tÈÏ. u=\•¿= 7@äUÁä?øü?IþÝáE�?Î.tÈUt£VrP¥T€áü>ÿ/¸Š®ôµ¿Œ8äÍߟ£·þÜøÜe»‘øƒˆåðù?¥Jô"JÖ×lÿ‘?GgÁÀ•®Ä÷ê‰(ò1@üßÿÌÿUÛŽ®â×ò¹ËXC.‡lrã*þ…�R賃 ÞÉ@1ÿë‘”,žÆo�üÃÈïÍYìCK€zIÚä”ÿ†–¼ž§ÿ#Ç7’c6<š]»j€bJó_ª»òcÿàñ�Wÿ!Ï Ð}N¬¢ß¬ÐÊ¥RY{7Ø ¸ÿ\2È�c››ý»Ñˆ� Ý`(ÛU•ù¯¸Ž,ýÃ…”íþàsÿ‘wO·‘yk<ˆ‡oÜ Pˆÿÿ§«äýÐGþå?äßÖ­›:Œòà@—û�–gäë`÷Qºû-üƒ@­ÈǪÀ´€{¶ÇÐÂz4ÀmÊÀÿ¬€øA`±6‰-8LY°þÇ:íËØ}ÐÝD‚@½:,H…äku¨Zˆ½A±�$€RI¦ß–½¹_8ÿÇ:éÜ©†²¯¦÷@~Xí‘dµùù’!…µÒO9pŧËŽ µˆT†«#Wºo:åû�uÓSÜxÖG P°M€ô@wÇ€dgž¿ý?{×ÚF–ÆaÂj�“`!¶±9gâ#‡� ¸¨XprwUq!I¡VjܦZ¬Ti\G¼dS‰ìJ�@¼qXT\áJh¦B…1.£òº›ý{3ïûdgÞ�ÞèûÉ‘e9²ôÞ|ßo~ߟ÷†Ì‰ ®^ý:û�NqÆò‚&áÀ ;=Þ¯&­ÿ#(ˆÌ!ý3•€—X-y< tåo‚’põÉ4³~¬±i€E‘ÞÀI¤=É�È”j"ÿ�†��c»¸pA€;øŠ 0’TEõn؆±€A\qã1”+q€çaÿ¿|>_*•ʪ6 öÇh a ?>ƒ#âû(YË:dóÀ÷ܹŸ1p�e€E�P i†a.nœÜ¿«Èòø²íêû•î…¸µN·.:0}›,N°ø $3úãÌ4cÜûE«ÀÀ²ñx4I†Ûû��Úl €…NÇ4Í–Ùn÷Û6¬û~/Gž¦*ŠÎÊVË:¶f§Ó™í¦Rï'íùg�öR ,@)kŒá|ŒæeümV—ÿÝ®>:=­|ß%Ÿ‰.ÆDþÏÊéé£Y)ËLæµqlLŒšùnÙ}#¶HAŒfƒ9ñ�ÍæúŸ'{w‹Žièä&‹‚ïÞ<ÜÛž‰y•Þ±ÖíºI.Xpµ%m0áÈámÀ”¯gê—«û½���ä‹…¬uÐÛûÕò ’÷ VÕŽ¿Û÷��Ó‹€@ÚN ·£€ƒµÓVÿvÏÂßÈöÑ¿ÝoµNƒ5´sÄÀm,O*ÏÂÀÊp ù 2P>í˜ñ‘_¯sz'@c»ó2ðá·…É"@cÌ†Þ °pïM‹ÌžÀF�7î8S8BÀqsAò€ ˆ5Œ޽ ðS`ÑYéÑÝì&Ù<�-d³½jpð›øþðA’[i`Z4-i°‚È¥ŒOA‰³Û͒Ÿ¦�n÷~`ÅÁ·$ÿV¯±A@T%/® zÝÀ4ÈÌV¿O¡?Étûý– dî(Ž—¸<`„ `(À%|VžVƒÅn¯S[a ØíB­ Lï/ç8¸%@4Ìj¸ÿPØ.n’‰.Q(‘ x‰Úúã%nQPt €-Noå€ÎÖeþ—©lmìÑ„c5êéÂqOöô?4éôO¸|2àßÒ3ÛS‚€e0e`˸ÿŸKÞ–¡c¶Éÿ _€ïÚfgOúši'ˆì’@hW¦€wr[Ê×É  _Sr*à3nñ— XšU°Ü¥Ô?Án´Ë³ÊŽ%@$K��˜V�›ü‘Ú~þp«W˜Q°i ð¥@fð´ß£•¾ß Ð7e®|0­Ùn —øêbð«Ä¬ûÔöGC_¢9î6ñvÀ˜WD�K äfHÛðN¹²ALC÷ïey;�ãf¯EU€ Ñ@£!i%À“N±HòŸ ˆÍbQÞ¥i«OQ �Œª@ÊÀˆð@ZÞ¥Ü&ë%ÈÀÝŽ48ÃìÞ0ŒˆR; TˆÕ±ó¿q&Kÿ›mŠÿ R�ëJc€üÌð�SÑ” H£¡Ð;IÍ¥ÿò4@EÖ–aŸQ ÐŒ1í€c ðµK ]À IàÄ$£%HDVZjúgLé(J°@³(ÆGI½W-ºZAj°aÊ’ Ë. ‘f ž,�Dç@Žø½Eå?‚ì<€)i…ÊϘñÚDD¦èÝÈ1Ôÿåì´gÒùŸ ²à 5ÿ$'”'H$ÒÁ €<Åÿ„@¢9™Àü;Äú›õ˜H€ÈÔGÅ–1ÿ—Ó`RþŸd¿X¤£&À †Æ@‡2¦w¿M¦J7¥d«O1X‹AÍ@‹“”° �úAæ¤t�_&  €X¾„}òÔÿCTTÄWm?G ­«¨¿Ðv‡L”(Š2òToñV€X”Ò€Þà•©ÀkëÿÈB �âÆ–ø!™OèIP‹”€€4Á[ã³xÐ'%ž�°GÐ/˜¤\i@Å ŒÐ&€Â]À'&åÿÁC|� ?�J`³¹¥èŒÅ–0î®ÞÙ¥` Ðß ¤ë`‹¢€@á¾Æ·¢�U!«“q‚‡Þ^³žy ;�]`$€Ú­l0î\Å€p ðô&ù?a&ÈvŠZë'D4쀗‘iH`5€æ™p€ “0#ä® ¯Z{+€z„b0¨! àHtF÷{d—„™A¸#ð ö¿4(JÞÀiÐM8øíÌ“ÿfˆ¶èÒà ¬šÆZTb° 8å à>Ñˈ³$á†À'X6,‘Šˈx*H¨{=ê$Ìm—i°( "1$¬ñ�ŒöZ´ˆ0SÜ4wÙo"HF#€»�¶ ±u@´aæ(ž 2ÀKØ¢RkIgˆ<>ŠMe‡®F˜9ro·Æä°æŠTM¸`ÄV#äHO¬ ø¤EÖH˜=–«ˆv �šêëFÀŸÙuZ³sž`@‹ !@tYà$ °…¬¤‘ Õ2ZHC´Äv¯9ƒ½¡^KD @RAÔòäÿ„P Ø TÁê(G@0K¬ Û ¤J@}Áþõgˆ?¤Õ�¸" -X @hË=ê „‚-A pŽu$Fû©L—O­.·6É !1€ÐÕÂ2;H`Eý$TL¤8Ú€Ì�²bûØ ‘P½§–ë0D®ò;mN‘Äš�þ;DsUõ$œ°FÝÄ®HVH�*b›ÀQO�1€ê) $»zó¥Huÿ.Y!!4\ë I€ âkª'ø€%ÒÕÙÃ} 2…ÿ"#$„ ¡R`q‰šêI0�„Ù®.ÔLû€Â…P;à3Ð#šuMí$œX†èÎú*5�•"ðöÝê8P•¾†r€ xA;�Æuó½z‹â¦âY@O `JБõmº!\ôDN`ϧXr%”Û L¤‘±þ*0Éÿ a€H/P ö‰Ú�ÚY@ï^N�B@d%Ð>!l*þ„xEBåå`0¾„ õ¹ÿ&€ê­ „ŒtEöÄz5•“pð#B ŠÖÂÇÆž<@¼"íN(L£@é;�`…¬�><èdýŒ(€TBáMAÀ`EÚ œ0ØúþNÀeÕ$€—´)E€šÿ"ÀI‡2„ð¡o‚(8I%³€p`Ê•usîØ›ÀeÁIæ"»œ8ÅèÎþª'ÔÍ‚9Àø`%@�ãºoý§ˆs�ûðËØ)jûÁ—¥k~ãÀ�þ玮B˜ ´ꇈX{ÕÍ&Ž °©Z›L�0ð� ÌùÄ)FçGçQZÝ2HqkT@@¤ X" ÌLÿVüÛÄ)êì}JÝ2XÐàóM  X% (OÏÀÜjK UWÃE€Õ‘| ïêµ÷צ ‚æ$ p¹ûeÝ>*[€‹i&ÓÁÖ¶'ÿ'Ìô¶@€Mý3Ar=®j30\H�Nù𙀠ª¬S"¶ã}–y_Ѐ1æÑ§Ú4ü®®Á­»ß–'·°?ðóãžNÏ‹�!ëcð.˺8Ä$nGE>üCÎûœ{¬øä{§îbÆðÒÿðç¶À’ÖÚçÜ8ü¶Ê—Ô$'?@€ê¬v¹cå62€à#;z2ç=Í¢¯à­ØíT9Î58— 9ÏN1VæEnßâ~ç>sgåés“›—Óø's€Žûÿdòu—Gë^¦çˆ“gw¹둆€÷ï ÿŸÞö½7x&ó€�ŠGçë>=Z  XðOàv@ñ¨jOý3çnºv_´r–ÃÎ)عQäz¾¿ôâ(É-Ç€­•ƒvOøPèÿÝ»ê¿=>*<€î±“¹@[·bŸ!íU|.g¿ü�Lœ»,=‡8ˆnŽ×ËÎ-ÔÈ­;N~Îõž+‡«D Aÿ¨E� vÔI0=³4zàä7±Z,1ðpø y@GŠ8G÷¡/5jÃÒv¦iv�šûÑ’¶Ø¼›  ÀQ;À‹ãÈO²©mjtϺµQ¾� ÷v°ýÚ=H ÎõGu¿ƒ}Ž tŠ$€:x Es¶¸q'é™Í=åÐ=šå(Äñ`�©€pÐýøIà–Õoœš¶}ž];K ¤Çü•óK…,i§!rP�‚ëz®“¤ÙÌ>=àô ØÂâØ<d*  ï@ȽUþ†=ÍÛå¿ V¿X�ûjƒÀD�VΈð F‘ŸM'ÆÁæ…ÝSç q<áR‡ €¢ðñ¦Ü €Ûmùߤ™ÏôÛé¿Z•u R €Æ¼ ˆ£$�†¡Ùø  !§U! €? -X Ⱥ|¡ É’·üý%ÊçR{ÚtD�w[DI–ÍÂÉA {.ðK…8>‘L !åÃ8†O±Ç`@ Ñû·Âµü©~k4íïeÊþ@¶O™·Ú®‚dfOò†€uXá€8Qˆcw4ÀTÀꉀ߶À®;^k°¡?Üf‰_ãé;~'«úkPÀóâ8ö–I’>==°$Á°{RûÉ…:† !ø¡â׸;µìišËéÔê¸AçŠDü\Z0^¨$@Ž€ ˆÝlv6 ÍŠöÀßê¸?À\à=ð©ûX €*ô7ÅmLJUìøMa@§-=€¨Ô?B@¬]4^(o ºÁÅÉ¿ê¸7|÷50×(«ÃN'r$;M}éë«EƒÏ"PE¨þcd^°]¯·9ž Âywü¥wœ ü@qŠŽ@ßÖ¿}“±É| �ûPÜßáúû¡ð_ ¦À¤Rx^EdÁjGé�ô ôÀµM€QÀë>HUÿ§7Ùµ_TÏRî>�ÎïK+8ò Ñy� céWž‰Pý¢`À*’,<= t ôWE7À@�z´Ûm ß­@ÏÖv½äd ã)eÍÌdûE}®~ €Ôö/À6¨þ‰@½€ ¢lf[ãÏ ê€÷ uŒ Òéá—y,n³— Ü×âÿ»˾A±‡ßë´”2/k‡•5ðL&¨Ò�¼ A{Ø-­æ¡žýë÷ÀÝà‰|v�C§/KТYpÖ¦HÕÚoÚ{L靸8MŸ“_ ­½0Ìô:ŠøÌp†« IDATñ{JçÞQ>ˆ ñ‡Õ¿¬*}2P^1½€Œüq�`¬Ö±›¤vñëÒeÇsÚ—tÑ™­d§òµf/ªòXâE M6 €îã�ÿ¦ðp4<(@Yëoª ôþâ6°`&˜Òå‹[Ö%ó*ÊL¸ŸjŠ~!ìŸ;¨xóA·óqDŒp÷õ‚û¬hØOX´þ…ð¼(m®H Dó[<#”w ø< JÿÄ@X­p~ pY«óEY¬$]Ò=À~©´á¥y\U²•|ŒêŸîxþìgQåĈð‘Jžœ^ñþê¶p{V+wõFívaÈwÿ¾‡+7°o2UŠn)ÎZõJ€âaÀÄ€ý”�&è V`»™}ª<#õEhpÓµbIa¨iѸõfÅÂÀó?1>1�ÈíxLàO�Lw¾h¯¾"úoTw?‹Ë÷®pp뿾ºŽjëï%³³ƒjˆ_�þ¹@¾€Öÿ b[],SÛR lõíK€E_,6+ðª³ð¹=$;àx`x,ÐÑŽwp(æNzàPÍN—i¸CUx¤òࡽŒâÝâÉ¿d¸¿D�ê±€d¥RýL&@Õ@õŸÿ-Ss¼%Ò''Ÿym�ú5Ʀþ'¼»ÒèT¯™™‰ÁyFÚ4R‡­Î#FºDÀå;F@å@µ~±ˆ?kU6 Ç`•ÿF4 Àöü¶c[ÈT+ïŽø@6ŒPñî�@ù/Šq¿Îðý#ÀÜJÿD¥€p™E¢ûÏ5 �Ëi4T¶ ¼lj–€øX`.PU•Gm”w{<hZ–µ°Ð 1‹3¶x¬†»®XÎlI_¹]‘iõ�˜ÏA§„%ÒºàÖÌø%f®rü9A–ÓŒä#•Ü¡¹-MÚ^$X{Ijò hzšŠâ"Ëåââ®XÊ»@U®ÀB~¿b±Vÿ†óî�ú}'v ÉÍæáðžrÀ=®…Sýü³Î ¤²âgòK`XH[âW`gâî¤5¸{F¸%¹[ š'Ò…GH1Ï(Úÿðpœ+$é’Wa6�&ÍyJQµ8?(€ºëmô½Í ª¦ª³gäPÀ¤ü ÈØ‚ÑnYЪâGè €O 8v ¾:6°õGcªÚwI7MƒþÅ»Æö¶î®¾VìM¾o%¯º™µœ¦¾ë,•U?¨I ‹®Ù@g¡ 3tH0ΰ ¶k/} ˆ¯Nq,�ÙRÀª½|Ý2nmþˆµw„vnÁyw<ÿ«c7h|ËvnP¡ñº—WiYE®pÐMP¿£¦ƒìck2MH��<”W?U¯�™SkeäŽmÃó0@o³söhžd‚”´Ún·™}:±ö6àZ5“œß¬éFPï�§4û¼�Šc3`@|ˆÂØuÿb ÌL£Ð¿: Çè_V71IùÂrôLŸbµ8npè´çªÅLB "À:J'ÆèŠæ|Þý¡€ŽÂA~0"Àˆû—ÀžÀ4ójµ/*?–µÇåx]h²«V¥½z&(�Sé?'À*I'`ùÁÑà ´—°ÓØ× žeK·AþP ,ŠXÄ‹_\�þ×6€ „ ØnÝéÄ25<€«1@{·`†�¹Šf¿§®zEQSe‹K�8‹œ½:c±YÃpúÏm½Nά‘ ¼q{ß©{~Õhßþ7-;ó]¦ögB}@½Ï+»·,yAš‚Õƒ ¨q,€��“I 0I-C€|9 Âx4ÜWà‡~0 OS?ªúá<8ÖˆœÓ3 ómatO h…¾±¡ø xÿëm2›hÔ`DÀ×€iÌÔ:Ûøñ7ªú4¬òRíëõšN¬ñ?ë L ‚Vȱ’ÔÖ(p«�GéÜÑÐÈõ?KjrnƒJþ°ÞIÕ»æ„Y!Pô¾jaA ÌÊès }_\x3Û05»Íæ§_ t`0ÂÄ‹ïŸé•‹AG�õîE�_`+ßò‰5�,þ£(LäJS¬€ 1’Ï„ãþyDùçó×ʧ‚ß/ôÎþb{¯ÐÚR?ŽÜ2�$ÛrêDÙSÄßh’_À�fŸØ!ûé ?$™ŽÇÐhdmÍž%ì³wÕ]l55~[#H8Ý�&H~ÉEœÙ†¡pòB!�'cÀîVÐå*&´Ä˜&Ú‘pÌšO /j .²¢=M�ãÏ蟄٤Z¿Nü—ø…;·˜º¼¨f7ºMà¢PÓäÂMíI»+¦¸x¦ÕrÅ>ašÀíò¿ÀÝÑx?öønÐ¥zM¡¤L2‡YN&KãåÎ-2Á•ª5˜à-ÂÕÍCNÂTÞ}¦egÉÊ+šþ.îWVü€x/÷±Ö�ƒ­$lÈ�»$Š8À*ÎÎLƒž?½Vô óå ›8É—šX’¦ê:ƒEnr7�ìŸ-¿PùZ€ÇRŽþÝ|è€Ðlk–¹§Y–Ãü¨[QÚ‚Ü¡ÂfËN#ù!�ôe?L^Öȃ5‚­˜G@å¯J<`<–ËäÌ€/ñ¾…¶÷ívgµÜo8ÛWÐïÐð €+îËÿê¿€A[Ñ ™>\M 7òÕÂûv®6ºì`èÔvÔÛö2ÈÎGQL=Ȩø#€BðÕ_ñ¢Ðl_¾|¹É¢˜yÄžÐÃwÑÂßg´´€eÁœcÀ%Ø"èB€|Í /›NWÔ1®ôq5*pò¿*'®4jlòöÎ'´m,�ã0°Ë…Îe({vfÝC×›Rpu0„ô0Ø¡ÂÆ¤Klt‘oîÅ®�\æâƒÐ¡¤0Nom¡vÛ-Ã[‚ËB 9$P0zI}Il·Áε=íÓ“ôôþ*vÜ.cɿزËNléûyßßï==Å—VãŸ?}útÔMgÓÔAužëjŸïí}} àPíMø†÷´KQb€À¡I€ (à¬YÍu¯Eº§xoé’àe¸eì›ÿ, liõ§U þÞn¦D‹?'LùR}_ø“f‚à{w¬áDNÀ[+Û»*-EE¤~$ ˜)‡ ¨á'0·€ ï_µÅÔŸ,¥ÒÌ0Ÿ@õ'øv¿0CÐ^@\` ƒç[pÓ½úS´Ðð­q¨V„? Ôÿ¨'S²ûüÒh>¬£?XúÓˆ¾æóˆç<ûLX L÷¤ˆ;Rö¸l‡Ë°Ÿ±±¾ŽóOzcý1ùs�?áú'jðk“GpVÀ÷Ø!E DÇ#w�¤ˆ;Ì!#¡Ð`Î "À\ýØe°]øû;Ðg­’­¤S^¯!ÿÀ|¿)T;©úVËY¶Ô–µz > Àä i£…à!Ç“”sy³7çe€ÙkT79gÀ|€ÊàÝÙ �ü—€ú�v“îá~žüYÛ/êÝ hì[X¨l À< P ’Á�A6 ÈŠ˜foc)Â`“hÿ݇ۡs›”Í™!#À*”?Ìüý1?®ü±ƒwó<Ïdò…ª¡iª00¸ ËοÅ$ÄŽ Fw #�šï,`V@x÷ahR€ËWèÏçÞÌ €pÈ¿“IUÈñ¾üÆk÷yÒweÛ �¾Æ û !°¬[€;Jp"dáÁÁ‘îdJda«0@ãdlÄÈý½Sê ©˜„ü‰¦?!h÷ÉO+}. 8, �üÔ™ìè6 À¦ .Å" €M²B¶*`wj «ÛÍî,€ºþ€üKYfz Ÿ·¯T__“~@~¯ÍøÛ±A·Û˜ugÊ °´M¸²ðð'€K—®ø}›®ô��øES€Ø @à½2Ƽ!³V,vÞuŸGk‘ë»OÚòïó_¡¦÷ñFÓ4›y3�‰²À7�ô-6luûoà¬ȼ0€@�€3?65¹™:ºvîvò¿¾)67zÙ$/¡÷ªÉv—ÙÐÀtï“àÇïBÛ8²o`Ÿ,¾¤ˆÍþ ™÷ãàÜ}_�;ùß)U²|ýW›ªi&T{ª"í'Š|çµû–Å•¾“ôº†n©½ ?'@¥AÏPã)äDÀ`®]�ON€Ø›š1AÛ@ÿêæl`“Ö¿}ÙþÎ>9`ÀNVƒ3Þž]|µD⦯­˜×{ÛÙožQ#ÃvL¸øò¦¥�‘-9oŸ Ú{ Ôž‹þ$Ôo ;QÑúÛ“ôäOOw 5ÐÊÖM¦ÊÏkú›}ŨmGàà7j!a 6QPÑïΧ€ß=ॠÎÐΘ@OÿYGÿx-°z$-ŒØ,1ÒuÅÎÙ\ä†Â¶ ŸHs÷/>±Ø,�ýáx°\þÓ>ž Ì €iÃÛv1Ó¼EœT4ý|Œ‚AЛIŽüsÿü=ĸŸ‚^==Þß{Ó·d+‘‡ zø&U¿‚5к¼²²"˲Úü÷é�'OîÜ»»ÞIÈ+Z«%ð ´"5 ÈΈ÷T»W—xß6÷!ï»�Ç/¸Ué×ó¶,w}ïÞÍDâÂ;óß6‘4x¹"À ð wÿßøƒ…Ù—™3ÏtgÛÊ«z²ÿîp«Ý.ï÷wUÙ¨ÕëÍ‚°í'•¯Y\ñë P¿!¯ÍäÙÉ`ý·{¯^ŽG£áp8�Æÿzr÷D³¹ €·¯³”` �¥œÔ¸`“ ,˜3Ø4»sº)g_ arD/€k¢ €[ YýÔˤs9rv?G3ù‚ÖLž¾}ö¼ cëð]ÿ,­‚<]+#@Ë_lú1éÃP,Ý0Z¥“õ?Úv´?¼}\ÀPàÑÝA'ÝÔ‹Å¢�/aàåxÏ ] ª&YäêßýÒ½kÑ@-Ü·5eÀ®Ûþg93{&j3uzðz¯íÇþ›ƒÓ�Ùf­¥jj­ÐÉ'¿£¥V<ýÝ‘þm&†£ñ/Oœe² Û, · ½€ÆØöÀá:9áù‡ý�@—¿÷ <à{¸Æ&þ # [þ]✹j¾žh©U¿õG±µÿæmÿƒ ̹ZãjŸ-÷É£¿a@I›ƒ;ãGú>ßûGNƒo±¡�V@€*8  Ž:w�™�Ó$à˧�0àÇ|�9Üâd¢ €[·ìc~�:k¹*9¹'tͦY�ådÿý~¹Í‹ç‡)]/¨ç¹~ à ÝRntžŽƒÔïCà÷ß27nÇà»T§€�|\T7~îpüĆ€½�¸A4¨k8À7¸À €³4#€[ ó‡�Š?»§©é…³þñáó¶ Ê[{‡ïû)£¦2êçX~Oú®þuíäÕhý;x5Èé:F³”à˜¼àg¾ü=Ù;w<T»WãÑs ž ðí\;nD°ñïeRYG(íwËæ Íìôß‹åïæÏ>ê0¶ûPðº¦'�F·' � Üßm ’¢Ø¢;ëL!�I* < ˜éÞ<à+ô¸øóüàò_°=Ä¡ü+fÕÄ«~Þñ3Íf¾Ú?Þ+¿ì-öš*#n³oQûoN oOÃѯ•L&¸ àVë~€<$ˆOäÌROZ T¸$@3Zî˜ÿÝT¿IMï Õ¢Õ:ïöÔ_n;—²M€š¢*–S¡ŠÈ¿h_ÁR·TcJýƒ=ìÈš ˆ‚J€*òØ‘Hþ�ðøgü´Ý�¥æ™ÒÌI’æKý¶ùß©8³d™Ä$_ŽTjÅ�ý×Ϥÿr¹½u¸k5EÜòÉP4ÅL­›»†¥é6 ¦@dبÀ™°GáÂOWðÓžU*¹äõøaÀ¥P�à˜ÿ®›ú›Dê•Ro©©Ó·Ï¶ÄÖ¿ìHÅA®ØBò7(õÓPŠró"úYÀÃ]Uלš‚ ˆYìÈ`¿#Зš tÚólz»X Xþ¶üáés©Ìꤩ6súoö{a7ýîO¹ýìÔräÏ$üTã/ËEݰ²ëã èÖΚº¥`àyrH qP € ï´çÞùÏ*½�¢+*�>Û'ø‚gÓ¦Îè'ù9s+Ù?Þ öþPý~´Ÿ÷«Ë–"pü¶îñÛa(ÆÎ‹±°¿oÈè¯ðx¬KÀñ~€� Æ {*R^¸&Î…X:º¶@ˆð~œmìêD1X]ýt”ÉU«þQ~ø _ùjÍP’ý÷{…?n´ßXQVþ2+òŠnKwFÂ~4�GAŽ,/ �šF €uÒ5€ ÕúûÀ±ùîõ%i€`Û–½»€·ð~$�ƒÖ?‹�Ö§Š«?_Ó‹&øSUý]ß_¦8°Õ>ìC0†X~_þ++²!+É;üá?Ãñ//Ögg'ƒÿúH‡›Á¿VW® üQä/`å> îSæÿ5ò$8zëE�†ýØ|Ï=ün¤ÁÿE;ô]›€Ÿ[Þ&^DÅëÝ>ÑG ž5@ÑO •Á{2ˆZ`¶pà¿$<B(¸U:­ÿš¬ì ühièÝBŸ25àOïsƒ_�Ì€útq@朕Œ„œMæ  Mõ¨^èÞ55<2Yü\?¬tÙ¦xÌñ�AQhÔ [·çoןÅú÷3gþ€Þȳþ{…dü»žç¾¼ÑàÿEËóÝœlE×·Ýêò·:0º¹­ÒLZ ï ¢ lwÁR`Il2ƒ¢`k}°;&EèÍ`"òHW¦v,|D „ÿ”˜‘Gî•Ù€úîÿ¤Èô¿¼MáÏÉN9Q’üP*ú Ä-ÐdüPä(€þO5ÏoÆ©>;Å\ß«iJÆ-¹žŠÿÈ"ÍP}¬©�žuýÔÕ‰ÐÅ)L,(x TÚÖ ë.€:>–Prüp¯&À§©ˆüt e|U¿ø²írÁß;<†‘¿€­ñåâ?ÿùB¼Ùn’);A:Ç|±(ð_ô]oWóèO»nÍÎ¥˜sg7: pÈ£ Hµ@lO¸%ȆŒw}¨J[ƒSªÀ¿4Àð±�1¨f%ëTÄ/Ibÿøšž üÛU¿u{üæ(HA¿þ ÞÉC>·?_†M Ÿ˜�ü�Wñ{^³v¡èy‚äÐCî?ölÏÏ4^ÀøÛ²ú²P լ܅"4�¬EqÀèYBD N ]—.žÀ@ °X ÿus"™¿S`𺹰kj°Â—/ ‡Ö% ’Üù_cè_N,¢!ȧŽÁ9ÙPºÅÐu=êneLÎäÀXH·ìa ¹†�›¹*€…Š|T@A(£jÖ£è�izªáðf’÷ñÔ ¾CЊ!µÂÎ"îÿvZ2÷zUÿêüýQ­ðßßϨòEh¤ü´Ñ¬d៸É éÙ¹IVtýª’ V”Êîñ ÊÄ9€-˜ÀSÿ27è ¬l 28[šnјeYš@}™Õ€  v>H`|±/J~îÀÝ@ £«èT «9™c[m´˜®,‚ÿr¡Íþªý Ñu~.Eê�R¥‡üði?þQ ”MnÓ{%¹ò£?¼*ú“ —÷Ýîs‰;Æv¥¢†4‰@‰hÐX”FŒ’TÀæð›TÁ¥¿é5¡¦/³Î�€2y€/š‹¸'€¹*ÁÝš©Zó†¤4-àÃ) rÿWþ þÄ÷ßk•®£ý>i±ß~¦ÀÁ?™úñ½srÕô²€o·.$O~ü²a§§aÀ®ÝJä1~m.ÔLYXW�u¢xK.X›ÄëQ*P¯·R̘4ÇS4¡W¸ D÷pwÀÃ9–ea•ÂCd¡—B ™ €6eH þüp¸]èaø7…BËõß¾3Rà�¢þ�„~úëäÊmê€Ñâžh�oh¯<‘=€Û¨ÐgsÝ=) 0~ºÞt/N@—%J¸ˆazI&`èÌ[¤°,)ø«xXX|DÜ+€4øÅÇ#€%Ü]ˆ,à¨Aƒ!cô¦#ÂÄ(ø £ÇÒèìÈý_KPÐß+´+níöøÇ~÷÷‚i}à?[÷x}éÅ ú1ú FàÕw’ÿïÝi À÷kR qü¼œ÷¼¦²5\€+Ø–@,°wX‹Á¿¦E?倕͡å()=)ØcMc©'ÊA<ŸÀÉBóeì­¥{¸C�b þ1¦z3& ,Ñ89±þpPj÷—?þÑìß«z]iÕOf±/þqôðï“ÛÑuÃöm1ësèÇV´+öí÷Rài×ö¦#€f3||#—ç*^SÙ_@ÔòKƒÀ$ Ý(Òÿø«ä&3@œÎÒ‹St¨4J=yLhüž> vß,CgRŸƒãõ¥á [àøghíµ¯øU~ùnÞés?Jü§#¿ß¡è�~o�Yžá>áHM[Šä�Æ­¢›ŸÒð¤‚àÑ÷gùh[ ¦nI0»JhCÙ�^ìBSý ø%ˆ3�ƒ¥ù€•¥&Œ™{ø„ àέ~:X§Sà¿QmóÊŸ@Lÿ©“ rý�t ÏÑOûR!àˆ IDAT�·WnÍfÓ^²¢mç8ôóÓ €œmû¯ðB¢ÑÍE>LÝD”÷؂Ŗ ]î€ÖË«Ä8$O¢(Àé7Ö'o÷0‰4‹Aõa©Ð(`ø÷¿ê^ŸàµþY[|AÌCôs?e€à]D4ä—W  ¨ÀM·XœššËÿÄQÀ›—9žôu ‚Q  -ÞXU@4Ñ¿¬‰F°yú€ Dš?ï`1 ªýan�ã¿PõÊ×ï^ýðç¨O û3À‹¹¿Mÿý#½éÀM¹hç§VòRâñ9�n (WãMÁˆ4®'€2Á*»‹º@Âk‹Oz|,²˜ƒ 0mø÷£Âÿ·ÃR¹—h^‚ÿÖU¼çGJ~ö3JþqØ?PdŸ+ú<†¿?‰|%°S¶§'ïö@"€§€%€¼ˆî·€aæ¬2? ñ’zàú§vZD÷ƒ €¥á`›Ç¼9ü�Vk÷øDüfnï+À ù¯ þõ¥Û$¨Ø3(×­È{ Dà1ð¥< ¶˜×þ÷°LKJÇ_–`øXP°³(  þpØm° pÀZÞå»#°ê7kƒìõëæ~ð§ªÜ"°›I¡{«‰LI¾_“÷Ž @Ù<¬…ª(€ øj@I©Ÿˆ$à=н�6‡_’XÄ à#µø–ÜÉí³&£~ú/{ þ^«Ò¼fWú›¼»·¨ûU§þ>˜ýcÕÏ‘ÏîÁûK;›”,ÀnsÚ,€ïWŸHpó�œç©A@¼1hK\¨Ì¯J�q ”,”‹€W…1 @¯0x`,4¤àãs$€¯R €ÿ‘ â, 6 *þ½°ºyN7ýʼ²OAh¢~ïÜåGØ�‚/‰ÌO'Ov�ÏjÓú¾/—?ºùM”hêñ_CË�!þE)ЯHÀÏ `LD*`yh9‹N|,°¿OðÜç­ê§ÿaïjzÚÆÖðŸAÃ"RUEJ½ˆd9WbƒVP$¼ˆC,oœÝ„1Êf¶(‹Š5t×Vª�P]Í•b6AÍ"‘:ŠŠà. ›¡QÂüƒkûØÇçã=&mÓÛàá8„|²Ÿç<ïwo³a ž¹éìÕvBã?Æô‡›ü�›“2üðwïºÙ�Å ZÌT°~¥¬c@ZUËL @äÀÀ! HÀfH¡À%‚€�½Õ„ˆ�ÄÀÁ�/kðÚ ¾î/Àò¿ìµÃœµÃf?1nÿÂlBÐ{?�~÷ÖºÒÒŠˆd5]ZaD|ÿ—õ1S�eYYgK‰=JS#BÉràR˜ VQ€2�ªù*"€ÅÅ,ëÿ£VD¾ Ù ÂG‚` ý_ØÊAfÎ}%€ÜêǪà?cZ…N·ÿâûÕ„ðǪ¿Vãlþ& ÿ`}ºIk†€5Ý`Ýxýݪª�EŠ\çÊ�w×Ó5ÈÔˆùÀ>þ[àX&¦VøÀ,(X˜•M0>’C�W#b7ä鸯ðèb™ßüËeݨ^�µkñÍ~Èz¿58Ï—òø‡Š¿É?|iïê àie¼jÀ´¡”Yù0º6ë þi@=íh@x‘m ViÀYÿˆªSŸ øm ÀG’LLqøá÷0Æä¶¬ó˨duŽ7ÿݧ¥zñ¦sÜ"ü‹à‡úyÍ_‹@_Ñï­ÖY^3T!8/Xøï˜`ª›o àÍ!Õ\ƒ,€¨38� Ì%�4@NÀ€òó½ÉJÁ'KÀsâ·¾ƒ â#‰ $·É(¶ë+W°õ{¥Zºò@7*Ä£íÿc¯X¶9øëv~𩽶3ÙgMäñ#²üAÙ/Z-ï¶w¥ÆLzN6¯Ù¾~ïÇUÖák¶!PÆòÝ”ª&†ƒ52tÀr<, ÀýH%¬¢@³ˆÌ�[ËË·–Ø~9úÒ ;pWÙ¤…�¤ùHóf>€T*jØŒOmº—$€ŽûÉ’d#hïÅG§€÷ß6µíNû.³_ó#+ü0ú#ð×èo! x¿iÊ 0ä[®±çíX>€´’.±„wó²üGåÀ¸!áŒ�ˆ8 Õ „wúw~&@~>¿ìJ€x–ö¾SîqþHNH9€r“$>Ø¢<œˆxpWƒW +,ð¦$AŸ€Öã^‘Uÿ¾õ¿í¥þßéôã@“òõ‘ž>ÀáG@¿~s�Φ¡� ÀëtôŽëìk�“ hÊöS¶!XÃÒ™Á`ÐÓ”0,ŠÚ‚óÅ€ ,„©@~2àò…Kãœi <¯\ç`)÷å‹å ‰ø#ˆðøH’ °…½œÄ¿ø½ `ÒKzôóé%ÿ=�WC³2ƒ³nSÔà—éñlýd|¿£ûê؇w­æñ@W•.p$à¢xþ9ÛÙ÷maŒ®À²¢¦Y°UÕLb<¸†;Òy€lEn@(Yˆ ½�¹i^ßj€øH”€Ö}#€Ù¿ Û¦á_¶ë嬟ú'„Lƒ*Õ/øXñS{¿wsWç³iȺ/½º”5åΩ†²ð’/ëa% $ˆ¹ 6LtS yº( ÆÂ0`¾:ï J*ÖL¤f{ë6»ýÛ®æ½=­ÿÚÕÝ@~3B~Mˆ}lë7é}¿…—+,”ìÙîŒÐXd§ƒs4C‰·ÿ£^|Êýaju¶ˆ'œÀ7£\@,˜0@–ÇHùÂÅìOð@?ŠR¹Ôã^Ùa¶oÿw®Ž›; Ë_˜îC4õˆqöÓ¦¾�x„zûhµ;EY {ùø‘e4Þ²�ÀѵeZb7€g9¨J‘­ê\Zc.(7¢~¨30/+ ðù¡r@Œ|¢À%€åÞÇŸRð@?ˆ¤ÕŸO×üžù_2ç;œõ_#û{‚ŽÍZœÁß"îðñ:¨¦áa׿EHN§UE;:`%Àëíºe Õ¿a)Šyôœ*>|¾�-ÊÐI'`Ô¸AÀ:!ªdM0."ZE=‚"ØìÍMÀWÝ$œÿ½Üpü—³tØéRq!øÉXŒ±O8ù0àÅÀw7ÿ¶w…€„~Ú÷ ʪYú7 >?Ô S•!ñoyfCeåOn2ðhŪkôd`¨{Y€êÞ^hŸï 1Á"E®d(,Nµð�þÿ� ¤güñ |J~ ‘<~Ù�šýØ+Ú<þKå#×ü§l~Êí9üÉ,?0°ÏHþ&úúÁ]·c*Kž!àJËȾd§üŸ9¦ª¨ÞL‘4Ö žË@±ŒråöÙˆýÄRÿÍ‘¥Sí@¨(EˆBŽæ<¼p  :ß{ž$âl¥»З :¿è-â÷¤¨ )ö Aï?À )8ˆóOžIüõ3)ÿItº%æLúoDŸHIþ/Nmà¶ñÒ7ç­hœgL¢¢€8ä·üƒ½_°×û`gDŸlõƒÌXòÈàJ™Ë\¾¹,¹h6 Åë)®„Ë2½°ò'O”•¨ˆrè: m€õ�¢ÎÀ–I €4@PœwI£Ð›�Àž9|~£$�½ø«€þ!‰øUÁåä½/¥D }X¢â�~¤ i@œv‰5õw®ÉËa5•“æþÊè�Ë/\Ž»ÿùN·†;ú &t÷�cï ÐßöúvùàA»Ý¾½ÿlÊ ÿ™0$ hrö9¿¡�v/mD²¡ù®›®° ø/õŸf �Á¿©An@‚™ Gl:0Õ„´+è�@ä • )EìY¥/jw\îI‚ƒùmÁ‹pì_“UàéauåDh/¬€ÚÝíßµþQŠkˆ~Ç)—,ýö¤[ ƒ}kq>wÄø¢]¿ ¿�d~ˆ|bO½\ rè{MÌú%'úýáþ³•Ë…åF}ÆUª·ÿ«ÅÛo@ø/õ_êš�®°A´Š#€Åì"? 4R‰œ•‹\*FHb:]° ûg™ùæb  Wû÷@äV}ëß±)ü»ê__x•¿5r˜7Åa3OÈÕßâv~Ñ®Olõ äéÕ½² &€´¬© ¯X÷‡£ÿ¼Üýå÷••ëëKw]¯ì¾�ð_êo]—,�qDq@:Àf$E¨"°Ê;#p�Ž�ÿ(°Ÿ ØßoÁ�L€$v˜°p­ÿŒîØþ=1àxmÿ�›Øø}ƒn^@˜ŸËæc ’ùï0î»î�ï: K€©nü1„�Ý¢5r×p؇á¿Ô?xQ6ñT`A€ Ç.N$fW‘mÿ¤¨Ì£™â•ÙTnJÀ7€ 3ü[p‡ŽiW.þ×]°úßžû¤dÝœ´wÖb•˜àWƒý‚�¿ ïü4î=Àw»mê8É@ 1€"›Ûl�³ú£]ÑüÓ1ªˆ%²hÇ‘@M[Ì“Bx¼š›&@¾:€ÇG²pLµXõrÿlפ%Ž{…—Mœ·è!žD¾ÛуOé�¢{Mú-ôç>ôñ÷p¹O>hæ/’†Uú}ôõ 0ºn¨uË‚ðÏ'‘õÀ"¾5(“@XÞºx’[M¬ŽÀÁw"€ï¨¤Ô\¯ì]ÏNàðµ¿SÖꛃ÷­5x�GMç� óµIÝßâ…¾úmòÛñgšùÚÆÓá×îÿÕ¢išb`Ê�qÍ$Š(üçýT ÈÀŽ ÃÕjï‘G T|$‰ cª€‡ÿ íÿ> vÝ5ÿ÷š5fœ_3nçÐ�‹xšôÎ/„7B?‰xny¯ïÝÔÓBH«Vúò×þWâ×Å¿æêó8pî&ÄDE0 ü¼L€„* òìß;°úø¯L ¡ÞA2ÀÝþÝ+Ü‹þ�µý8ÏŸ)îÃÕ||^iñó>úÐڋퟜŠ�dEÖ¯_} ßl»P÷ñ?.84PN@ {ƒfãi ³ U 7öýuÀ|íïO¯È¥æNmÝvJ^îÕm›3¦WúO£Nî#2ü„‰} É�=|ÖýÛ^û6�ý÷çg'�«AU›I 5ø7@ÿÕ¥¬k.ö ÎÐ=Áˆ¦@ . à§ãÆ`A >v .b PL€ä)>DÜ¿ç½2µ @zò¯S'ðiá2×’ndn;{͵�`ìïÎ×ÿ—|ŽD)> ÁO�Ÿ{ÞfÿþüüüÓÙÙÉI§su5Ül4ÊN©.¨ðO}‚dòo_¿”úû×%o¹ýÿ�½kéiËÂÿE¢»i¡¡4HnS6Ñd]E/’EË£îÍlÂ$»Ú"/fÕ°u4³AUϨ‘JJ�@EŒÔ*<¢*úÌ}ûÞëëGx¸} 1;€ìï»ß9÷œsCÓ€ÂD`[RÒár"@T{p¹˜jL�Æê ºYÙSQøÈ–Ü“UsÓß7k!h—GG�w�G.OË)~¹8i'ÁOì«É>a@F~xù]y„øáèæêjóZ¹QYkm´- |‘Õý¬E¸ã¿ýט"àÓÖEËõ±ü—(Àõ4 öoj `=Ð=¢*È'öBf€Ù!€0Á=a¿ÿpL~ÉÚÕQŸ`0�õ#íààèütYwÁ»ƒm‡ì0ÜÞσAóÐ î!è×ZmÏœØöáÖ3 !3ºÅOÀ†YþóÇ—ŸÞ\´=ŸÀ_ŽÉÀ¾Z €´4mÀZƒ–¥–öÃ@£Ë˜2¨"ð‘) Ê›§«¦&‘ÿ¯â¿¶Ò¸z{=ë“öÛ1L²‘ú0f j¦ÛœÝØXÙ`5D 8(¶^¹¾¾Bˆ–¨âo}Â/òWð�µ¦[À0 =ô[&zDÎÿÛr!,]0‰PQðçÿšV\^~þÛ p-8ÌÀ“@^Tê *䯉ÀÖ“rT9°$‡'ÅÌ*>2PõÍ)€ˆÛ>§<1±1€—VBèǸϯ×HHÐùâóÏÍ÷]ÇìõL³‡jlzxÛ‡Þï›€Ž¨pǘr¸O�1å1É àûx„'7ã@Æéõà1Ø™‰%€‚¸Z¸Ü›TþÿØB-@ü‡R�]W"€( P•‚�(•JÑÙ@K"ÐdÀÊû ÊýŠÆê\ ÈzÔÌé f.ôî! ÃGÆfÂv_ A´â?ŽÅcˆÚâa­®Ã xð9' çè‡fùú Ã2š=Çs¢L@A½‹UµGv4çSB»a&ù�ÙÃcÆPÜ 'Z.ܱj›É"àòÓÖOåúÜ8ÐôoK©@ÑÀ%€6 H. a@ä¼_§ÈænsÑ=Ì„-'€qà67O{ºýñJÊøÎ±NðαÌ`EFþÏN�+í1¸óM¸B7ì03hÆ` µüÄuÁSv<¿r± ¸üôï_nJ5*¬R" @[ ¬Àl<”’@ð*K'S�fc=JvN�O¶ý0£Añuµ^×㟠øT‘˨àŽÄ;6\fP¹ý>mºƒÜ“ ø›@ÛÄ„ùýŒ¶B* ˜ñÃýøãçèÒ¿ËϹX�)tFüuàE€Æ¨ª=�P5PüDo FñÏêÞO.L=IË ‹PW†ýVý þ@0zºCC/DQB<4 n� ‡#~n ˆOÍòiÀs�Ö¦m—€­ßm˜.ôwH\ŽHA2�âÔՂඦpMb€«(³æ€B$Pl >/t*UæOž&ä 3`/L×Ä3óö5ƒ¿ÿ*üM�‰pW� ß@è70ƃŠy €~@³zñÓÿ¶HBðåòÓç|ûÇ:Z”ý#ˆj ìÄW¼/€àó󞀫¤+ (r�ÀÃÀ÷{n=äökFÙéWðojM†¼ø-íÇü-Š@T›Íåù·ÿ¹�vñË�oüóÍ�ßÞÌoø(!¨˜0þEЬØÖ®¤- ™e±7`�û'´¢NlTJйÈ àA `rïg_�Öó5ø×øþcá_ÔþR<ÿÞ   Y7Ü3�c0­Ùù›�oæ›ð çzÀ4c À‡(¬IÙÀAPm ƾäàÇFÕ§ì\<;ØÒnÏ„$íûsúÇ"€[ã==„)ÍÀÿÅAø&�Á'PpÒô|Ë¡� ôŸHN€ç¥™d]C+„Š™@Ì(© @S–ÈÂÀ«”)dPèñ‘ØzV1€_}˯+±?ÿ®þN¼ûÏøOûhüãœE tǵ(‚QÜŸÿÅ<�–äY¶> Ø€-Î@©$&-ÍÚ_!²<&€—Œlå à)Íüpˆê_-1ÑÇJòþ¸�ú7î í†aŒM" 8,ñH%€€¢}”¥¤®}�gådà0k„ˆÕ�þ_ Ê�*å“§èä à (€bñ�„—8nBàº>à$økfþb¡þûÀÿ' šp;�ˆ@¶ nO² °.Õ*°LüñÑ@°ü$ W±°aw%€‡ríÅoö�ëâC.àŸ@^F£�óñ¸OƒüH48b{Nïu³\׌™($2@˜8ú@¸3x<4dX]$�r(=}¸›ˆÂGv@/qî‰l;Ê��‹ßÙÒE¡7˜›²§_ÖMåù†¦þ¼¨&Ä‹C}g/ðimž¤8 èBx…”þ»<ŒN÷!$iüýÒÙëkk,  A¿¥œPE°P dé«Ħ`­j+è T ú‚ø—*‚h4€å¢3DXÐÜgï4ƒ»m‡~`Ë?Ð=JòOµ¿öî ¹ˆ#€�ì2|o=®àiœÇñWª­¶QÓãŸÐGsl®X-`yd NCLæM€º Ï.=ª4™¸à΢Úâá°p4¬cù†…d`Z'@LVÀr5��ká¾ r_° #ˆ"”AX±2IÀ àñL ‰X{‘+€,¾õÅÉ×{Ç5×qEüÓ@ÃnÄ Õî/·6š5T?kHêPÁ`*":pä’!x²FõSW`¸µ•ÖÚz¥|}}uÅ ~ºÛít–AL Ù 0£œ€„z M.p[i š`P§„æ€, @%$™ÒZN™#¤&_žùðaeþÖ[×£aŸ6öÙÝ==G�9‡CÆ’Uª5 _]ARÕM³çÐzŽX0Œtv­9[E¨ß¼¢�DúýþE~w M ]:Pê(@t6`È3€R Á €ô°ºX´sÈ à1Ùô«Ã:}ØÅQ VBÐÝ! þH«@Ò´wô:b†˜atµ¾ÂZŒÕk,ÇÀ¯ûJ_%´¾n«"sìùXÏ»ˆuhÛ@ÚNì`ýÎ9™  ËªÅÀº” \f!9M.‘:ÙXn¼ŸœÊ '€G#Ûž|}Xjæ|þ\œÊ¨Þy—`;¸w÷Ñ�ØpØ�ì%x€Fv¦-°¾@íêwhã@ÙØÁ~ 1.@¸*(y*P)Ò?ŒºD¸Özƒ—yS0y€%È1R  `ÚÎ '€G${zqï h <÷÷›Ë£þQ—4û ¯Ú'6ôÆ=?q—_f¸/(Ã8Ä<‚}0¾wø5‰ß~§;tLcÜ„À$ +€¤iÀ@(][JO1ˆÏÐ K¼ ®X•c€•Rx–°­Ù¾<¤|ƒÅ½ºÎüõÈŠÙn³²9œïB¾ ¯ÞÓ‘ñ—õéì/á`g<#çf<óÎ? _ÐJ&€ª–Ä5‚•žó<@Pdp:‹ ÅG†`ûßacп´…ø‰ÜN GÄëíâׇ–¶î«˜îúõ $�Ón‡õóßá#s°‹TïÂnGõcÑÀùȰÀ¸5é@” @m ¤ë Œ`]YD¨’cqP´•)Ü<~Ç¥Ÿ'Eßöàzõ‘ùJvÙ `û7âlËŸ÷AÅXÓÞLÄ¿Íôâ¡”þ~\[¾g¢„k:»’eø³AÔNÁýÎí�Ϭ5ã˜ãV¥U ¡)¥FÊÁU‘‚‚À²Dá5I" Ž¾¸…ž˜ûq|dÍPÿÅ»ÀãÙW{g†é9š¶?x|t @=ÐõÏ»wÂñ­¯Î £pß@ x^JPª�ü‹ÀV]]bI@RS0Š~‰ž „ìî @ƒ�ÌÀö6Ä?1iÿŒ øõÞ™ è\¾Zù‡ð�ÈÁõÜZõjxÔ%á¾`C�=ôl··®>0x:rzIà×å¥�Ž� ¨!ÍD'€¡@.jK-@ÄNàê !€F9ƒ°˜„�ì€6Æñ¼ ø§ßŸ¡f ¢î¯ò‘R_¾�*ý+ý©u„†r7mп+S€´?Ú4ãî9ˆ%q@ì "Ô¯ !ö¢ à¥AÊï'‹ÅÌ@>²¤4¶õ¼ 8ýÕ7Çgo”£«þíA/˜Vit°ÛM¶}‘ÕU!¥ÀryÁ^ðg¿lºÆ-Zƒ¤ª v¢RÓÀl˜–y9_„—³*@!P àåT1à @ÂG®ž§¦¾ux ¨©fDÛ\"èfÞöO»ÿgïlVÙ¶8þ.¡Àt7} "‚Iuqú¤áJ›BÉÀ :8IáDI�m’GçÎÏ �a?AÈÀ rKä˜�"¨ƒ›7¸µwÕÞµ?µüH¢Õ{kÔVcÛ]®Ÿÿµöú¸}@'ÿÜF‚ ypƒtÉú»>ç†8̘ž»ÖË_n#К• X(ˆÛÊðg‘‰@Yº¨Ÿ@g àGò“RJ¼¼•8üÒé• ¡sÀdW¬r}z?DY>Òuû0O!øúà†ÁsNý‰­¹Úê € ‚G؈‰² ‡ƒ aµˆN@þH´ �ûGW @)€wù$¤¿=öÅ ´tª‡VhCž�P¸œLï»}œÊ^ 9ð0ß]¸ à 7¤^ðÿо²lm™ö€ó��L¾'�]ÁhøƒxT)ÀÀ™R±P«@×߃ggÉ‹]�ÅFŽü”þZÖ@À°Ï®ø3S̈Üï»y�;•·€0€k J )r;� €Z, YJl `0àLÿ¼ïéǶ�À™‘S¶ÌÆ"À;y \ Y„4¸Er�p‹Æ IDAT`®w€ã ?-ÚN$ó×–Øï0�¹MA @†(Bó²UÞ Àöï�•P àÝào ø 0 7èÆöðóu@¹`×€x‘ àtÁ-R(„(]ÝZÅ0# €#šF·¥z\Jb( ð24¬þû�f«üHD€œRJl’úÅ÷£��Þ4ûµ…_žåb} ù‡Ã®C‰" õfć{ïMDí,È`ÁmG¤›‚¡]Q"@=� ˆžÀL�O�jÏ9öGåŸJ(° H&Ï’‰Ã?¾v G<÷Ã3�ÿZÎu~ò?È€.µ†] DÁÂàò6x G 3øBÍEh "ë DïFž˜ âÛ PË=* °ð‹Bû�AE6ú×r³e&ã)`€h »4 úC‰ Â�6Àš =¶{ID®úl=`‰O&›‚¢z@$ðtàl5K×¥P1€¶² v.†À'en@`]îŽ]ò¼1ñЫ XÐîÎ�ýaðÅíÃhÏ4ï0ŽíŸeÀL€JÐlÒ™@TS°ÀþéŠ`,`5P&ܨÁ•ËÇÊØ^À€àŸ��ed,€ü‚…¹4…d°þ€˜$B ô[ˆ   ¸íNmgyÌ•TÊÒ\@¦��A¦ Y l¶J+°�¸ãÎñÀY2uøÃ�âÁ?¦?t£qþ0à¾-ZŒà¥Àºä0p?1íU@$@2@ €kf4Ó(Ç€˜ ÇÃÁQ)0RñÌ؇RÛ H|øØ”*–d�kythµìSà8Ä@[D�!¡è(ápzmµÜ×€DD¤;Qõ€rÔ‚•ËÆ1Ww¯t‚§sOe^QŸƒæñOg‰£—^ņn€pÚŸe[`´ ŽüîÀmøCQ -„ÀpÈdMD�ȵœ‡ŒQX @çrÓÃÁ?©ù l€Ý Äa@dÿ¹Ús‚8Šè˜êáŸDGG—Oú7èÄóñ'C%Ü)`9 s ¯H‹8¾Ë.ô)©/½²fX¸ �Ðr=“*úû>Ü @C@èOÏ[¶¶øÂöoD ÎÜh4ä`Ûc³>¸¢§ƒ…ÉÀ¾ù{çúÓç¤àH‡·ùŠ�™9ìI�ÉGŠú’ ž¢\€wq6o¥>ÿõØ+Y†tþo ÆM»Ü(æ|g?‚©˜ð $sèaØ>­,à〦¥-M€2Ó´!ÙlîIb(býÙ*Ó4�&á]¿�X.ÿ”HnÞqW.ÀlˆÎ] 'Sß÷ Û4„3�¡é™–÷hË­\Ÿg`DN ¡B`( öÛÓ‚ei« B2 Û¤\ž °ÇÆòªY„� *ÁªÇw¿E"«pb  @j Ôˆ‘À® ¦x˜Zét2f!@*�.¥èÜA?68:uZ;o.°\®ðå€BìÍ=€€ß ƒP‹­à}€Øàî×�·~ÁSpoÄ€‰?üÔ “ÿþ'øæv=S,#¾eJ +‰ ö½óýXs–ŠÌ"@$`V2° §‚Ñ@Ôxpâ‚j ú1TÐ>ó§8îÎ'>ź~±û¥SòL«‰B%`Ùž-íM¦ÓH �~wZÑ–ÌK7DMA(˜Öà8p.Ê$@88(&ò€Ò¨/8Ù°àG @ÙE, B\Œ�ÔG� 5A@“& µ\»qÝ$ö…¾|`41mW[–«”vã“�¯f€ JMªÒ ^}Ž#§˜à÷R �8úÚ”Ê�˜e‰Þ¥V¾üÉ1@ Э7€¤+ .ˆžJO:¦=2(KG02±À/ b €ßD»Åÿzé5ÊŽ¥ÍÁÎÀÎŽV¬Q`2…(W`Ø5-[[Ùþ̓sZƒ—xA¬Â\`Dyr CÄ_Hþ…« •Ò·�‰ž€_óÆ|›ôloÇ5�  €$¤ µÇ ÓÒ´õÇæL •uÆQ€ëké€`b:( ›%àýªRÛñZ[@�tðá?�½AÅÐ #Š]zÖWiœÒž•#ÔEž@{Tt–¶ÿÅ‚€*NE\H*€k¢)ë0Õ€h0Œ¦©Æ€ˆ@ÄRH–@,�Lê©ïG/½ÒœHvLÍt�âÕd,H ‚÷cÛjioC[Ø\Ø´ÄôÝ#z‚Û€l=0²9 I¨?ë Û=åG‹e+2\ÍtD›D½@·=½´Mm]0–vʲj€9ÈÍ@Z€|næ@ ©u J(šuš–«iÖ‰€6)< 0»ÎÚ@$p‚Då@¸+ €=9a l V“­ÁƒdàzöP@`Ë×îÇ^ÃÔ¢‰_X6ŒPûÓKm�ÀX& ( BF‰b ŸL&`ú„ŒMAaûð€ù\ýI@`+ ü¢�š‘.HtJç& !ÐMœ¥S"H€H¤Ó�Âm€sI"PØÀÌ6@:‹ ‚3ä>`^)€­@R?Øñ`Ffˆ…½ - _›¶¦½f&Ê‚‚z º#+0Ø}@¾(Œ|VPØJÀž!^z;j( ȶpóÜ;`tµRp¾iF([ €]:Pè – ÈðO(/€©Î?oàqWPˆ LþûëÀ1´ÈÐÌ–¥iN«èL –ýª0gÖD€p€Tƒn`''T€žZS»[ €¿…§�ØFø±€ýÇ�eh‹0À´ìr£†‚Ðþ]WÓÖŒ€9pÄ]A R@ pE¦g2l5à X¤ýglf1ÀŠÛGlð·d­ €øFEB Å+‚µü;üûÑܤŸNÿý²ä�ÌßA<Îß'xGÞõî—E¢�þ–€i€b!¿hx4ÖLsíö¿¸í¿Ì¥³ÉÀ¤¨3ÁPvB�.@õ©×ž’ôÿ7y Ñ!f?ÄcáãÌ+È¿Pˆ‡Ÿ²U ³�@Œ¸5€´íiØœýC»ÃO%n“ÖIÿžÎ½¾„14 øÜ; >ö �óð`˜V¹YíCÆço3Ú>@Á;7X\ãd`¾X\ ˜å@ ˜ RÏ= xLâ°¦P˜ _"%÷)EŸ xÇŠÛG|p÷J µÐâ‘�â>Íé…$¸‘-ï­ë©Ã—AÅ4ŒE`YÚÎŽi5ëEm=kØÒ €Ø¸f‚LK Ø HCd‰l ùãg=ÒÑÖ£ËÕ>6øÁÕp§Àâ8L, €ÍZÞ›O€ÜÀEü€ w¬~Ì�æØâá ”€À1v° ƒƒ¤N|œœ„ ÁÔ>@-Ÿý¡oÜÑ‚!Ÿ!øÒ Áø�ÓÀz—Xö²–TÞ{õJ²â¿#W¹“–¥RÙ©WõÓ«W¯êÙÐÝÿ’@¿`C ¬÷ÛÓ€š;„¹àSm›€ s úi¢ô/wW €ÊAÀµ gS G°c ƒÐýèàÐ,o>|{9½<^.jz»„Ùx� ©�Çd&ŠîŸ;�tF^ø³àŽûçÀ¸Š7ùö²·Ô�@ 3 t°çÀ·-ØX¬ÖFÀ è~@`?€6õÐV€ NކaÓÀ÷�fkw3@4 Ò9(Þφ—[[K3 Ö°îÙ»‚¸Ðz {©|ÖF@½X=ÿÁN Ä s–A‚'?·'G£$h¼p×p `.ž€Bzj§@!¥ÈIPè„qõmÂÊ'"r;- Þ¦ßäÀþ"Qd}+ûdæ]~�!àåjoI¨·)Àå”xx Î€xpzäî€G''¨ºc…k½sd2í‡J.bNáêÜ5€ÆÛî&¯9 —Š­AËJ:’/Ø‘u6@;#.Moí‚à½bIeA¡¸CÜdƒý«ãݵë L‚ƒœU8” �­Å’ Þ~¢ê™.–¿¬`‰(-�²Ï»q-J¸óÀTPÏQÓä{ô8¦¿›¾n²�Æ„žæ~Ä u y´pŸmg³¿V„ô}1ø1 ?~ø6Qv[+ÀÞ4îÀvx 3×@n \8ç 1`çÇ£e¸íŒaõYb“$Çõl¿QÂŒ´Ì"*úˆ½7�-S¯ÔÓîæ`�¢šÈC÷J�{ð`D |-cyI_GO t³ÂܳËsà Ï‚Þ1ùQ;™eŠß½/L‚KD@E”@!Œ_À¨`Aðg3PV@8Ðn; ý�o‡û�ª}Vl¨"‘°l”†VÜ…+ßj¸qYâô6€ZÀ×yÌH9hÑ ‡. ÓpÇ Ô/t øÚ$ˆ.^dó"VD‘þŸÞ›jøñíóõ‡e¨vÆ*^ €Ö!WÀ|9� ä@¬Ê�q”i ÚHÍâŠÄuÊK<: ¼- })eÞÀ]³5€y rñ¦‡"ñè±èÀ�î¥ù�ù½�nú|³©¡ºi�¼Û.G'ÏëÂùdõ YºQ²F—<�·Ö Î�3œ3¸@Pž½²þß�9ŽvöQ £š�„ªI(�½‰”l¡h¡i†>% €ÄégÊpǾæ¢è6˜�¡j1BKôTaº©i3 ñ€­qÀß Ð-A€Ï%7  ÂÕG¼?kí.q P_@1‚ÏϹ��‹A€Àgµ øöèÐŒ\ý¿ €ñ˜`$QÑŠD€€o¹J·î—£Kg ¬OÈßÏGÿh ø¿ïînvÑñЧ²Ý¯AO5çº?è”øÒhàɰ­”�´T©›Nþ²·g[­€3â™À+¼$PàkÛ(:˜4b#@Û‰e̼{ü—Ôq X¶fíj'à—yt»:FDZ�i 3ÀÕ?š€yLJÉõL™Ô¥$“‰±÷L�:h¤ŸòÅ}F#/ÞÐnŸ¬²Gº·ôñ-ô¥H)-\š™®2sSÅS'‰>¼,y*pŠ�AÑ<À‰ÊÅ¿· ‡‡À°]9ÈÒ0œT]"åº:œ ‰àp 7‰H·dÚ3‚ÌÔ@dNO~g¾§æš.zV€«4Ž¿pfd� ) sy_Q©8¡ò "¿R ù’D›‹õd�¼XdK¤å *ŽESÑÔQ@•|­Nd ,‘% Up¢T•¢�ÑrÁ_¡¾Uð×—Ý•ÎT - jÂÝ[ë�nÁ† p) “rÐ*)øJ¾G¹ƒ¸ªr,�ÄXõMƒAÇ&WB“J¨C8eÀî T8YŽ€²Ç§)6xü™ðÕúùê0=ž®Z­•M`Ã]è’àþ©$”V ¼ Õj�Û4lÿð€€Ü<_-x& ~ p~O€S—ðX‰'€ÖRó¾ÙðC€ràée•`ÄRWdA ÛÙ¥ Õú€žÈ쀛€èïk€ãô+6‘Ó,”ÒŸhÉÀ‚½qèà°QÞ½,Ö0)ýU VÀ~¿ïtÄV@2 è§¾öÀAB†7.x&°U+N°Y0Epkop­ÈõÀ jàŸ¶±0¥�ÂnÇaâà°Io<hÕ&Ý�éD`{—8CGà \‚ÓÔÚÌÀ`ã>õ÷Z뀲ð}~9À½ L ×#KR3 �¦ÚÌ#€8 7 ÉÇçņ «3(™è÷]ë�¶·ñ< �¢¡¿&€ž Øéõ†ûÞà°Yˆ“ðûuk™ƒ€ª��.íA§Ø x®ö‘›‚˜ð`p�¶Õ ` ×[»€@™—@= @üãj•�+M”p€8؆[çБè@?÷u2¦ÀN¯=Š›¾4[x\"´¹› VsÚ\/18àKU– z=æoâN¿y9^Ýš`÷ÞÀtIp¿Ü€"ÞÚ�Î?6àª@©TÉÏäˆc(Õ˜¯s[ì.Z‡ó×¦àŸ¹ ºÝéûÌõ(7b|€+W}z³}{:\´;pÝy@WÖ¶€Èø *mD�}x¨í‡ã}7`_Fð1d�pVzmÄóѸþÑÌ!@ñ+?˜ 7Ýn7¦I‰Ú¼7g¼ˆZ‹ëŽ’dõe>Slõdw.ØNcü¥•;p¿µJì–¯ F0ž@¿<àå@Œ/ 5  �S’” �¹qC!!Q¹Ût uN¤DÚ 8‰ï¿™�ŽþÑ ¡�ù54:%ßÏ[ë¢X˜ô}{i06€Š¤cá �¸Þ �íѺ‰~&¸úGÃ�€�ë €Ê�d[ ŒxÀZ¼ l€Ù,àÉ­é”òIšG¡hý£™`�Àz 5Ý4À%À)¯HhœèØ@Ú ÈXX 7ÞMÕ@ÿhœ t¯¼ïW €Ýª=ÐÍ\8 ý€X `€­½á(n @ûGS5€yÙÂp³ Ö Ç¶'À9À@n8Ñ6@+6pZ®ìtÚ㸹@ól�ŽäP[ëã dö¾¶"„�¡ÈðŸÀXí # `P(cè´GM¸úGsÀr<jàí²0­ pI¢ €à Y xdO´qçÐ1À$ëx¿Ipô�fk¿Þy¬j{3Þ€•c€[à€ü'ïúƒAöÏšŽÃ†k“þá5€5¿/˜¸b„ÛèP7¥P(W€5#€×V§„% Ë.ê;Ã"½ª ”1®õEà¹~¶„îʇ4H(« àì ˆpØ#aAtÿ@ ÝV 5æ¬Áz§½°` `f#`¨’ÝIT\5¹Ä+Ë`Š›¶xN»>­®™  \b#Àéqü‚�·9XO@ÓÿÊ0Àî€ã¾ÆœòõÅ6mš¿ðØt `PW8_aÅUØõËÊ()Ä.nÚ/Ï¡¦ë(|ÕC€*O¢\T Ã¸ 4p V ÇùŠP«ÆJª°¶Ø¦}ùY€•`“4€Éù·g[Ë�úJà�~6»‚#@Ú¶FÌ@¯ Ž¢xx `=4€z ‚è¶@üÎÀf°}Ov¾€¼#îÿƒ@g8ò€×6GXôZ€W€®<=eb @îð Íô°�1x `“ÐÍ“6”M-èç×ynwÍm¨4þA�³™Bº°P8[:ÌvCë‹’Ûàß'½@í0ÁÀÐÚ„ÆÓ€Jø„æz� ¤ €t€N§3…œêÔ2–h8Œ8»]Gã`ÛQ×  ¿:ÒLøxp eb¥0tœ�b„M#´ A×s'ØGAvÓÓ­\ޝ¢/Z¡3­•‚È,À¹f p„ý  •¾ÚhöŽÃ./EYáKÊ%ÍfªÜøc?ÎWÿð¨ÀAw£R¸ ´¦‹j‡@«`|P¸'È'9 Í€Ð0@Ïÿm´" ܬ…l<<ž~XxˆðW­˜Ú¨6ÔÛj @. $FÀ¼×«YÀüðÛð7lÜéµÇ›ðøøpº»µµ^Pƒ&@(Þàg€[d¨€JÃoÿùý÷ßÐ’€�ÞÎpßÀ`ÒÁOÏÇ[+Àî4(Àà .øò†<9¡®Ä 00¦ÀáÓàßÿúã�ÿ= ;Ò pààÐüôîÿì�ÏOÛhǯûwDLO.ROì°Ug¨l3„ Ó©Ø #ÚÌ.¤j�V3P ŠÐ¬vÅfWâ°*Ziµ\ qK.=Tª"QÑ­5$ùq òa’VJóú×ë÷}ýÚ1š€ë'mHìØIüúùäû<Ïû¾–bwûz@€Ë/âÀsÌ®p4€®üÓª•+u‘Û’Ëi(T Àû¸æˆSoW»º5õï˜,fÑŒ½µ(€ïÅ’¢w‘96ê,åƒÚ¤£±=²Ã‡¥.$.I€ñ»ÖËÑ/ „—´°yÁ�@³reû0-Ve‘S¬¦æƒ³ Y &ª(,žßGXÐ7´i–Ò¨úÚÎ`ã¾pÃð!´)Íhy×Iƒ­7Ó¨±èybñŠ ¾–Å‹õhñÞðtüä Q7EÖ›á¯ÖNÀ/¾* uÉÿ/ÓÀÒÈš„e@ÕýÑ$€*`€ŒLTër£R“ëœÈ‰"Ð�²À4àXääi?È!ä,À<¼md3¼7Kì 9ËÔg¾è¾`¦m{^j}(äxj„· 9lÒ�Ú¡;€K`œLNZ†ÀÀ"Ôá˦£)€`¢R¯×/.¸o9àÿÜE%�ôR²ïÛÄv í²©ì_æ+€^(†ý\løËÒÝkâÿC¶EÓV—Òû1€ª(à0Qã¶¶À?§€€\I›9€Á1 †{Þ@¾p@ÜÆ|¸4æ^öÑ@�"Xp ¤à ¤„¬ø½áÿ 8¹¬%´©Ä]H€k;ÿðè"Ç€Ë8 ÿp| k¸D! ´Y�1@ÿW`ôF�á–I‰t™ÃM äD‘‘ÁÞK€@÷ïà_td_e‡º',p €:ô, êÿ´‰�íê@äâ@z%øMKþƒ8¢XI¤Òï¿¸ÑøÅW>ì¶´ÐKØO H\Øre ] 0y‰`CV/8Ñ"¸z "Á_ø À»v«Ô×]ÿwKëP€0vu`4xIK98 ˜˜ ½ÝàHSkµjÉŒ¥ßû ÀOzÔú¥X×€#À.ÀÆ:cžSð tL°Ê€´T¹@ó0Pú‘`¬×y@? Ø}°ÃŸB¿+ tÙÿ•÷sS \ Œ tVà—d@‹ "!›ÍÍ !IÕ Qä8Šë5)¸ ÑzùøÏóúíxŸKXâ,¾˜¶]Œ<¥ïC_Œ~ûw³ÿXÄöz Pšì¶ÿ·é €'ljŽÄt S8V¨´Ì‰Á IDATþ/§µFU’àïBJWë¢ÑB€‹ ŒY" ߮©á1¶4[?™ˆ—X }ô¼Õ0ÿskn·�;G¹p‰íÿŸOÁÜ/�÷8Ð> €%))2c¨"Òi£^—+Ûjø?&%*2âðd ÊU¥X h€ôÉS»#Ê:žö+/q.ù¸.ðœÝ>\¸f²+„ 0…†wVð€ , Õ³'O6Îåà $EÒÁmàÿ"öcà¸oe é ÐÃóÁ€€OcÌï³ã½È:õ°©ƒ�ˆÀ.%@cí ÁÙª|xËBý‡�†z¼0`8å ÿ¸S*•<@û!×F³åÚÅ666êgrM–ëõówŸ n«–0*cJ ô�>Ú`‡rç ½ÝÏöÀÿÛ rÈX&7@éÙéi©„6aPF…ÚÙƒ#õ`¢nÖ$ ¾H€ *z¨:Í?<Ê×Ûñà&ø_©¯G°'€ �~@ÓÄŒ€/K§ÍV«ºygåÙH °,TÎæŸÌP€@´€x¡•MŒ¥go&èþáeà‡.#©›óà¥@@Ç£“‚[ºÞi�¯®4'î(¾Oô–—«çóó¦€�.DJ!ÀÆN†½¡âžV;Ê¿ë .»ƒvo‰®¿<…~Û+€`È´@Ì k€/Ÿ+þ]]Zm�–67õ€ € ,g«gºûà ÀP¸Û›U [5 æÕZ 0ØA)@k1¦÷ Àðï`ÇrSï:£{�af’«¬~O]E<7_H:8mÿðuøè›;BÞ ß‘±,ôåõÀ€KLÆÂ±Ø$2! ’˜Û]i¾ŠFW��·ª++››Êï¿6!Ðè7Yµ Gªÿ� 11 {(rõê¶ÙP€žÀ�?ýøZš_®/Tï--‡¶ºx¶#Øø‡—`~+äoG˜…Îǃ,³[cÙŒ\F}!¶[›ý+ys õl!Þ„|ÀR? —ñÒtŸÓÅ=d €ÉÉpŒˆ”‘€»¹·ÑU�Q¹9Q*Á ðþ‰ÓŠâÿX0¢I…Ö‘@jei!€ ;ÐxS)Í¢‡œËj6Qmœ­­©þ¯Pf@ŸÈ �L–Ó'$ÞñãË:+¤qi-÷I€�xÚÑ,®ÿ7ì‘÷{• €wH2ùãÂ'ì 4à"@PXÈ}Øß{Õ:ïš `îùTó"–––ÎÏÏåV£Z­4ä³ó5àÿkš0Ë€ˆû‹¦Ïoцj× 0ºE5àÓF°ÝW;6þqð:4¸_Ѹu€áa�+¦?»`€T¦ï(ŸûËŸÿUì;êΘ`:`G€G 8þðzÿàc165¥ €¹Ý¹ÜÛWªûC fÏeùLuàÿšгÐN[[[ÔqÁ\½¶mÌ ¢¦• €¹Y `ÇÆ?<í»Å ÀůDx[0÷J6“§2™dñÍÙşÞäûR�Oåÿ® ÍŠö÷÷ö÷Þ}ŸŸžÚ5&Ì}þo Ehž¬­a`/B`SZzÕ+H�`•éÙᛥâtÿðâæ¿8䜯ûôÖô]*™dáøñO‹‹‹x˜;ʤº2@@*e7hr!ÿBùýØ;h�PÀ\®Õý_K,ia°µ5 �:ÀØ›2=˜x¡Ž 6®$£‘ô×ÌÍRtÿðT°ƒÆ7Úwô€³à¿¶™ ü(“Éç~œYœ™™Y\‘9êRàh(“LÚäÂ……ãƒ}U€Û«f1¦„±éæÛ¨f«Ðt`¸¿ÆÍÿapÃ6 ˆ§E•ذ@u‚Ñ“ažJæë­�û¸×µ8ü–¾pTümiœrAÀ@ªï¨øâŸ3š-~—Kf2]™H €€»(` ¯$5 Ü^h¾œž.6[¯t°dQPXÓ€¢è¬´õ[rE š“©•€aþ¦)ÔG´g^Sq$Õ©~Ëž(KË_±@ïœÓ>p?K‰2™@êø�ßþ¿¸þCþÓÄd90�JŠÅL2eÀøýÿøZõ~%ÿ^¿k5›­·¯£†­’þ¿´D €yØxd„’ f4ÔåJY™LP Œ é{Œë€Uà €i£˜«Pq’q�)šy_°vÛSžó–*À­ ðëŸIæ�þqf}]ó@€ãB*Ó¤’CÇ�’@X�x€âÑ=èÿ0а¶dU&Fl°E!ÇÕÕ d`TéH‘ÿ×VPÍ€°6Eo)–îç,ÓžmW;b™6ïÂ�U?Âú§‰¹™L*Y|ó×õuÍÿ¾/&“)3p(OŽ\§”Ú> H ?ÿão¹¤’Às…Bþ±îÿ†Ðüo/jJ£ `ÖHÀ`Ä–]«)“À< ÀSƹ©†Ðl.ÍšîñÐxÝú¥0ž^ž*ä~øiF€�€Å™ÅT!ƒTÀ�4ðþ”Ûò pi 6¼èÍßÿóïÅ< UüÊÞù¼¶‘dqö°—Ìß0áƒ5·ÍUC†4xì(†°›lØƉ½q�Õ8nçLJX(RÐA° ù:ö ú°ÌDC»ÁÝòÉC‰±÷°—­êîªz¯ªÔÊ`'ã•L[jµ”i½Oß÷½*¿^£Ýâ@(€w±xúd 4(½@QüWÕð§sƒ?íg8¦³+‡ùIã«�«1þ¤G?R )€Àõ–ç×·¢Á]€B­îwS)§K ä�|;ð»½ÔçxŽí�¡¯%Ð!©G®Ùj4;˜7î¿<ñþÓC$«Š� $N$ [U¼<(Ý…îI°›M Èf3×ó“cŒ4F›?ÿãM¶]·óš‡?"ÀnÝõÃ8vœ‰Àï÷]Ï«¿ôúAÊ–Zؾë¹AWGÐ hwƒz¥Ñjµ¬¾t9î<±Ÿ<ò¶˜�<ÆÞ ¥\Ƚ€P�†V,|8ÉĘ�Àëcðgà/‰x4@ÒøáhTgwÝÚÚ²,K"-Üï¸~8ú^}çm-WXZÊ=sía“…ÿõšiy¾­!o ;�Ê4þ[•Ž�”!Jl;÷¿ þ-�°ª‘16E0N¤Ad€:€‰˜ùpfQ?`T ààû½½5Ý÷›1>½ »¿F¿Å�‹@}@îÖüâòÎÛ9+·d–é0Ëæ³¾“J$@×îvûó¥J³RªûŽÝ˜8�Ó¿OâŸ" Ü!Qo‡é?ݼßèõŸYÈÐT˜Ø„­@H`@ ÀÃ` j€}Þ 0ý|úýÃoÚø%hljã#@Šäÿs– @X ,,Ñ2LÓ¤?¦YÞê�OŒ'ðÖ‹2šKnJÓRÈ€ÀñJaø7Z ³c_£W~B�7úo£×ÿpÞ©uW¥>€ÍM¹p0ª`jŒÿ™™3B€Yîd£YßÖÆ ` Åø,FP³,ŒQ(ÄÁ 3å¥û¾�JŠÛïXaü“q¿ïØŽäáˆ[‹ù]^tý.¾[·*-rù `æ/ØLîhD0„B, 4€àxvöölL€é¯¦. +€1ð€pzäZmÉØ‚ @@Àd°ÜÀqÇà×s$þ#˜õ@-FpHªÿ¬Øj04š¹eÏ¥ž¤Ul´Ú-ž°ðçÐ8¼xCºù@¨XÄ¿dï³Ó“Ì,·ž¯|%œ[¬�ÀÒ ë øpx H€×~×Ö‡�Du¿^.V˜¨¬÷»Ž£Mì®íš 2hЊT@¥d›ÑmÄ]XD˜€²˜0#Ì &ãî]€…) 3Û§Ç+N€ììa~¬Æ àÛìº'>€ ³N†,bÈIC@ͤ¨­÷ºT)rP)=¶m[k�T!ŒÿFd Ñ€nhË læEe6€ž xR`ÿUµ0Ú‘àÃñw‰84¾0âÀšöëÂ`êI6Œo;xÂÐë¦HºnEˆ0À\€-œ`˜ž¯óöh»`×Ý1‹$þ‹\˜´@³o`÷wšìú/Å¿ªP°D+ hÀ&šˆ�À<'°Š°À“€ÛgŽ÷W2ñ¤€lØøY¿cŒ?ôº€@ý+€DäÂ�N¸݃îÇ�w zwÈÏ‚�ÏiLâ[ÀK‰7ᳺçÿéèX å×#¬[ë€Ü ,°J@ÿq!€Z{Šس'pïÓø  R|«KHªà×KLh QŠ (ª º² ˆm€‰2¦xàô8³Âú�²Ù÷¢)ØÐÆ=z/òCû¸Å÷ Àšæç¢ F³rN¥˜5 ð]ê»oèÞ+ÆÀ[Ðãeˆ'†ÏóHdýå(þ×y& •Kää:�Ü D›ÿº�;WŽâ?B@�²§ìLâ?:…F'àKŸ­s€ƒ.>F {ñ7úïIøõÁÕkà#€ú�e€Û ¸À’€¥gD×óú^ª8$ðÞš¥R©Xˆ’€Ç}’ñ±`ÓN?³ÙCÉXø‹*@[©¬ÂÉ: qæTU0ü0Q  ¦ß?Ì_f ˆ�€ø—ÁÍç@~”`€©@]÷U€Ú` P€í&C@n¹�ø§“„S”=ß}i•K!JŒaôSðe�â"ªÒ­®_7›Í„ð9€&Pâ1·nn* `àÂÕª®úa1p%&ÀåWJ|Œ¢@�ûçƒÇÏûoÛ›#¿VæD"Àä>@á™×:U˜\Ðý¾[ß] Ã?–ÑõŸi€Ù·K—ê†Kî2½þ7Í8РÝB)€nI 0þ5`ƒOæ. •Ûgÿû}–-žÍN>¼ÔÐÆÇHà¯ß]¹ò=ü—œéÑVðS�z�·?À:jØÂý€¨X6×=7ž*ør>^ý#ˆ$€I€J镨=Ú@¿߱*<ü�¨$`6Ð;1ö¿P�6àd yqpY,ÌÈ@× °}öéöJ¼Dѳ‡·.q  ��QÀwþ:ÒéÑöî  5áw(j,@ "`KΨ`N`Ù,ÌͿڭåhê_* ÄÑ_ Y1w\º¶@·ï-æhø71%m]#ÀªÚ ¸�[”%P!`&!˜J’”NØêÙéç™ÃK €½ñ1B @?ÆHéƒG¢ˆ`®�u�@Ýj?‘f4K¸\†  |@>J…ùÇ‹;ó…r±xýoÈ¥€vK7@� €›_„3‚ue€§ÚR Ú TÕ® 0szr0Ë×ù²¥€óš€Ú1J `-Ö6ñ¯1†Žüht&úu€9…8þE?î .óè§—ú P)"€&ôΊÿ¦$Z ZƒÖ�@ꪀp6 ´°ÀÖãµÀê`œ�Ò–@Øt¹ ÇÇ()PéÙ΃ãÇ£;)€—sµ¹9¤¬„R€ˆ¨bpP•@ÑTá¡ Ld vÐ’`ºU5@øL)Í2Bü{%2W¨øþË9�çöö öF¨*€‹Mò Ì Lk\A^)�7&ㇰƒ€’Bš&-î‡OK Y_DZy!iq3~µy|´Éüõ7ºýå(ü…�zôs–pôG(•xÀ²€ Î$ ÄF0šAmÐÐæë‚‹u�–Äñ?œÌHtÉxúé÷Q x¾ �6@#‰nKÿžÒ]uòù‹P{£š\�€{pëÜ € \iÝà‘öÎó;ÃûÁAø¾àAâæ"XtñNåS‚ÐÚ@úO œÁ¥€Ob¡àðóB~º•Ž nhNZš½#ø©2ÄY’Þ(ð¦ èco4=Y\ àçjà0nƒè”î6”ÃKσƒ÷’žGóZá땹öüðH´Pì0Ä X$r–2Áå?F@Q2*( à`ᦨëè[�P/઼&€´,Ц2#詆SÂÔj€ííÓh�Ðx}�Ðÿó哯y­=�òi¸€@‹�±0ÔDWÕA€]¢õÛêÉÔo P…ï †ZºQ÷JPàëv¥Þúøù°P!Í áo‚ˆX ,Já_P-µ—|—œlhm€ém@uJPÂ'…B0%°}vúö®çµ­+ of?«B×%‹(;ÌÊ& ¡.&z‰aPLÌÌÀ˜Ú!u%žcÜ$Z Ø ¢¦r�íÑ"ša�ñ_´ìF C Ç ¨»˜fV.^Äù± …y÷¾wï=¿î“)±óú®lY¿ñt?}çœï|çjÅM ¹R+)€ø=^`x^(àû´°›ò2à‰è†Ãȱ< }�àK×!ƒ@&‚Q  Hº‚V0‚ÞÜÁZ ¸ÿ-�¯%hIh ¤iC€œ¨¿ÔãBL1°Vªì”Á†ÄÆ 'À~:€œ™„c½/œp÷ᙟþ ÀQ¢6š`h6ï�kœ f‰D.Ð6•oWe@ ð@Ôqo`¬[‚ú#À ls€×ÿVsC�CP­vyçBp6g'ÀZø þ+g¾@áÒ€3»»?mÜo`$ÀÉ�îIy@¨d…X \ñel°éIB) f°!8ƒ_ »’'@2#@Šô€¾ )‚^½Þï�  ÊgO!he”|¨ÞZ+~{-púã€2Ë c{Ÿ‚fÀÝï¾_¾Þ @ÀQ ®'È6̯­áZÀš?°IÒ¼)¨íÃä ð@r1aÀD$@Æ~A0ΠXT`òªÎ(p¥T›|V>U Àî°=²Ã>ô Ü « ¼„àáÏßO_×û¿!®%§±h W@€»À<ì J•=`JJân€Åtc�HËŠ�A¯^ŽNª(À‘€ÊN985  e÷G+« @½³„¸ŸœøÀ'žüü�F£!RAÐM—¼é­¬™<Q*@ôzÿozô€Ô7 €ft`Il Œ ÎJ7¼àÀëûjnh5” gOO µ` ùÉhå àx9€¿  ^DgQ0�Õók®+ÀPl{Öýj -T °B -Ú0‡�AAKP?P�0�}jÅW‡W{ ¨àB„ã§"Ђ[?› ÙþÝZC`ÁQ€u�.rZ�¢º›À\÷À=I4ï+’ `�è�6q9°M{XGP‡e戀§á¼#Ë= )z³" Ö`@ PuŠà:É&¨(IV ”"Âp`†^h½× BO ÿ Z‚€Ê¸C$èÍ9TòÛÅ%xî8“‚å¾ ·C²Æé+¤/%½‰�ip¹1m �àŽbŸà›¼ˆÚ‚¬(xE@€MÒ@ýÁ|u4! ipÀN µÎ` !€¤ ˜@ˆšM_&°®O±Uðd%¡¥ÚÎ…2<œä°²† }èÝ@ïý¥ï.D§¬@ÄZ†Ø?ê ³ëãÿýɆXp‚À;i]R1`ÕÊ@_ÀºO,4¶Å–`:!Œ°ïŒ�Y3%¬ª ¡˜ ý?áÆ'hÀ%Au5:x/+‚j%Õ <ŒÃ5p å €öB¶€Á·‡q9xWpÀî®  ‚5S£yaÐQ€5f†ÓÐ…BK´êæ  Àz —X¶@€ø3�ÉÈp� ðêàùd%#@­·S.œ8 uŒû“1`ßœ}“9øàÙß.xòô«Lƒ<CÞ,»ƒÌ#€ò€«+¨! ®E ÐÁΠX D8Üÿ‹hH±›.èbÀ~V\ªUtpÒ  …Óã™cᆢÌ2Œ—ýÙÀG=yúùtcZ¯B€Û îÄjX  �¸-`r€Uä&Ô�p©!›Ìa9 ÆzÍæŸõeÜœ 4˜šjúM´šàÅëýŠ1 7©ÀÁIÀðBð5™!õ?î}Ô 0æ’€é‡&ñmâfö ¾œ|Í—”^ ÿËäŠàïç!üø�Úûñ¯ ô ¼aóó¾î`[ \¼x_ð¦Øg¶$w`®€i€%¡  )aE)í}=7LD�ÅúËç{Ê'Ì"@©ò¬\�VØç@™Ð4@†@Ëæ9ÑÏ?e.ƒŽ¬}ÄÌ>¿ dåý�a1±Pà»Ø÷Òün äeÉË�=úÀg °@Á´È|‚…æ`ä² �Âö_—¤$ À#¼r@8( L ð¨�=³‹bhÒÁ¡’IPôz“£N…câá'l „ŽíØPªîGŸe‡ÈûáÛ¡ú#ïtvsÚsØÃ޵|¸�öbä®±^8S` Ôþog¯™ a0€<WP1PIÎ ‚;81 C˜A(§õz]˜J‹S>ÀP¬¿8ÜŸì9(éá k0à›CŸ½Çð;ÊDøvР�Õuv¤wÞÀÇßýø5`ܾÃ2�tdà-ê6ïs`•Ž l‰€�aZ8âhX¨l\çÀœ 0¥`€Î @1€nz^éUК “€²o‡d"à°€K‚$˜G™@@„J€ØÈ Bm"€O E•œ³I °4ˇ1àƒ‚,Àg†©æ ‡½Ë@¬4AÁI2$”K.dˆ,`[ÈÀQÀE _:0A€7 à£}8s Á @ µ'°ƒó€Ì"Í äÆ`¤+ØkÔL’€M‡Ž=P]ýV_½Ü¿\µ­Aøä¤Àì»5’³ 1üÖ äp 0�—ÔxÛgN'Þ” Ä h�vyMÂ])k;HÌ£*¸+NðÕpS@sÂR4§šM¿G�¢ÕêÁóÑÞ$B€à¤€eý �±@²Z`åà]#½ógŒ“9# IDAT|†·¿B€4Hä>M0β4âb€uP DÎ^s°dVx‡„Y5´Y)@ÕS("—p£Ћ¤o³ƒ#pp8z¹àÍ£€�sÒÊ {__ÍàX°Lƒ˜¸/!€/€%Akó, °J¶?ïØÜ” �Иd»Ñ�ÔœA$s@,t»Ÿ @Ò  éŸ¬ þB!À¤Ñ’”˜ýf‰,`‚�Ž j9@@hà÷`SÀÍtUð*åÈd‹dA`ÍyàNÑþïÎE¿``0¸HÚ‚] À7%@v n˜uÁ˜Ô«¯+{£ñØ0­ ~ã<Àà�}²ɺ–@Jà Ò|“€Âš`À9€cn`´Š¦¯R@®ÚôÀ‚6ØÕ§ø N �Á´'Xœïÿ"IÚ @�ÀT_Pñú—=02àJï 9Àà:ôÝ¿�)€9€Vž8R@€]±xy#@cZrôq7+€ôâæ`.€ö`ëx^°8)ˆA€Æ€n'ÚúñšS?Xd+R Jª�Œx )(0ë¯G÷**ÏÆrð–À°`d$Ë àâ|¾¼L€#r-€æиÚXÊ žà6õD…À®:©å `Î@q¢æ€U©P,ú&qô ôp+ RPªì\Éàý`C€þ„"…sØ»ã%AòžrÀ•46\¬ÜšÁANúð{ƒlŠm�˜tètÁ" ©,Ak ©%ÈW  €)­+½I76¨teç\9Èà]0€+ƒÀ%ÄÄ"AÀCü@{`zrî�ϧO:æ‡>ÏþOt3� ÀWjãoDKÊDû� ’9À­[²El “ÃÁ˜€aTPÛ;*Ì·;ÝvtÚîlwÕ‰#€‹|þÀÕ*k î$àÔ�iP¬W£(àÐ\º¼S觤Ϻ”€~ÿÁÛ¸Âè®Ð[ôµ0  ?0D�…�7×ôÇÜâÍ›|R‚c-ø¯8’`#Þÿ–4PຈdbØ #’?HÊ Ô'…¹( c Ÿº (h+€( 1`QŽpG@•‘€ô4€á‚EÀ„T P™@ÈJµˆØoásÃbi àƒ·Åð^Wø-d³™[ÑLÐg#ÐÏ ˆë„á(¾©P†íÀ l8X¦¥@P HãldPxš°"0¶Z—=‚·л¿Óiëoÿ¶Þÿíxóo&íþî¢Kà, Ðþ¯¦ ‚)LYipj9°!@OK‚L"@ù�G> A�À 0€Þ1€à‚@voøæ ÀAIY`–¹=�¡7µ0€N�¤@¥‰؃�D €€NÛíídi ØN¥wMGÐ’ L€Ä¬9�%�É_Š7 xÅF¤@e.ý€æ  ø§xÊ€ÈÔÙXÏ*Àp�EÂÌ�™™Q û@¥@îÖF`÷»³e÷~´óÕ9^üª0`±K\Â}í³(¨J9h›˜šj¦TucÀäe\»¦<Þ�·GÎ~› @_Ñ9lphp°’€û|h,pŸ@¡ÈGã$·°¶Žÿ·#ÐmwloêF�˜€ €†”ÌŠ9�3n ˆ#o" n$A¶3 ¢×JµÞ¹ �3€SÍ<_¼x“J[YB‚~ ÀàEr¹ ‚¸­�þå!ãVrqŒç�,€€pfˆgjàM& }ÁÐÌ©ˆ=!Š´Ûú·ÛÖÀìù?~üƒ¹q€_#°Œî.úê ˜õ@%&D@@@€¢ ö{½Ic¨! ò¬ Sˆ-8Ä98q…~_´Gø.>öSÞÖ*à`À†¦Ó>àA€± �!@Q€gˆGá™áv^ j ø?{çóÓÖ•Åñ‘ú_t±qvt–A`1£9a"Y€Š�¥ Xrìc É5ì’F¨Q1¿YdUسév¼É #Ù Éx�=«D,ø‘€”´š÷î»ïÝsÎ=÷Ù &í8ïB#÷a"s>ï{~›“�¶Ìß»ù—vÊ•ó‹ØÇ•‹JIX¿«œ0ž ¦¢ÜXƒ�3@%FÖ ôQ~™÷ïNíî@O ED,0PZ‚ÆÿO �¹×ÕxjÈ ÏÕ×Cîë�ïç^SûûÙ.D®…$¢ß!ü[Y‰!`$€Û"ü\À ½�hU0]†‡ƒ©0€Wô‚L•óA€ù;Ø©\|ܪU‡�ê/¿—K›%Çþ“™ÜÀ¯ Àß pp@˜�&°%@&stbOnÀðÌn_�z›Bð7ÍýÅ'P¾ €ÿ®¶AH“á Q·Ó�n”ä’nÆÞ»â�:äw-dü€<ÑFì¼Þ¶°@ƒ‰#ðƒ¬ Î¡HàSfm Þ„«�–q`™Ž�=êlÚŸÎýÿ¢6–H§ÓIë,6>–aÀ)B»‚ž0Q@½!@¾ú�\/@#À ̼;=ð†„ L‹_3òžÑ·úR0˜Çjç(ÿ0Ò. dºã† v‚7sdøú{ Ã[¬þìOP!ög¤� ¦@%£àö`/ À | /‡ ŽZÇmA/Hg°¸ÿoŠy!ÂþKë;÷cé1û$Ç’‡w/@„¦ì8ÝÊL¤»Â™‚`<"xHÿH =$Än p'Ø�€AÎ  ov€/®nvwÇ›»þŒ‘~ÂÓ[vÙÍWBÄÜáÏÇ� Р%`Ž#‰ûŠ÷ú {(œû¿�&Ü\_/•c�z2�“gq±ö»åˆh Ÿ˜æ¿é`$H Ü�‘V`½øÙÉ›ÉÁÉI¯ `xxh÷z�?ÈC·o^ û€?âñ+�ÅÝ6BŸ‹†ÖXÔ›�¤p£0ĈP¹ÒÈG¤à$Œh-/´ûÿh5™K:€…�ÅdÃ’2 `g`OVt@¸±�%–౟0›™Íœ½;½3˜Ú?îoò¾Þl‹èPÀ�?;þ¸cR1%ð`—Š8è.W3‚ÔÊV,a °œG»‚<¬ãûÿ¦ýåR®­§í€°4ÀÝZÅMnŠá ‡�€ò¦\ ª1:1œ"ÀŽîï«þ`K G^ÝôÏ´Aèèxð�-`�À P¦Tª ~šó+0¢r ü2רrëâþ¿.Í¿´¾~^K¤“i÷$«ç›²ÀR¨#Àu¦ùñÀ~�@Ú<âG$n‘8€å|¸q5€uöýó�7ƒ@ Ú[6*7î0u"Œû€”1[H ð…W¤ò‚ËåZݺû'ž°£�ó’ud`JE¦µñ dQ o_°¶'ÀdFˆF€Ù³§w'A2`fÿ¸çjÀWÀ'ÄR1xPc°J`ÀÖ €ÜSÃÞ@øžç÷èûBå#qÑ”W‰€­là´èC€à;ø0€D±�?Þ�¼�™�C‘Ýþî@|¦àÏe@Oç*€n €k–ˆQ ù€ˆsz$��ð™€% Àøn ÀUªJ`y¼Z/¢‰„G€tzl,]õ€Å7€$À“i- §ƒe&üK‚Œ*`­‰à¸og"°"`~æ•Ù ¸¤àO)€—T‡DH¨8ÀP´$и-€4² %è @©uû·îÿ¥òýp=�ˆZG ™LW+%Ïx)p?D[ à£Z‰ŽøïÈdŽÞˆî Pý�p¥  ««à …°Ú9/๖ ÈéÀ[@Æë3‚q-¨ðnÿëùÑj¸`ÛB‰ËþïÖÊ%é¸S´ XOx]�ߦC Èz¾˜�8:ñ¢5`xhÿzw€@üA ÀúH)ÄÜ® gzÀ&€¶9Œ]ÌåI-ê fǃ9a?iÿÖÆkuËþÃá¨Ô¢x,Ýø¸ã(€Òo"—„€± l0ƒâÓ„À{º(²Á@€€[·h$ÀžtÙ"ÀÑvE@<@ ¾xÀ€ý™J¡d *²0JãÏy0�²-pIÏâ�hg0ê”–ó?Fë–ý‡= �¨^Ø}ÁJˆ~€Ç´ˆ‹fˆÀˆ@\ T,ú¦4 àøïNåÞ cMP› *ðÿwøK ®Dtum  å €ï t)ðý_¬ÏÒ«�–h.�z`• TKK¶ù¯/�7Â…¨ €0R‰ÚyÉ‘%èhM�l[`†‘\5€.ŠE p…ð³<ÔþÈœ�ÜždÓ��ðÀ)€xÏר;Ü’P"€™ËçL5Á­8*@÷óÕ@ÂÈ?<Ü«‡Ã.T`«R’À%€Ê¨©†¶à‰f€ËÂü€l €H¡ÎŽNö'#^`ÞÞþ:€NÀÕ(€>€næè—½§¿‡ýfñýEð…ü_D~«v¾œkâ=©±ÀVV˜>zOÀŠèõ@<Üá°/§ó ŒÀq@düvð¢Q/ì…1,óOþ\Þq}áL¹ýS†=�ZOàDÓj€– Ik Ê8 ÐG'².pFÚê­Ú¤þíý(€¦èñ`°?£Y7µüÍ4n«j#·.ÜÖ_A§ÿU2ü�ÒÛõš€”®FñâpÚ!ü\O(/à€$À‚— 4í ACB=,çŸÖ …B8Œ �.$ÕQ(¦^¢-AÌ’c2°éª ¿T 7#DˆAp0´Û×C~Ú$:*ð­ÿ¹,º;õÜîyuàZ¡ö“]Ì‘Â@s 0ç„r=îÂ`²*•Ê( ñJÖ…¥ûõBt/† ±u¾c@Äd)ÀÔK´'P—O 倦’à�Vœ€5¾&Èc€@æìÝ›I—"°ûwò»×Ä|À·«ìGãé9þ/@WWí¾@–!À3Ý `w†˜S�¤à ì�é ÐB,çj½õB¸·— ‘NUÊe 6Uð1õ¦ Q³æ‚@¿B€5š €˜u§ÙNÇÙé>Ìï_o'6V�Ï ï‘x(€¯Q€×² )6 80§!K€ŒŽ3=¤1õæád„‘ÌÿÔè-ìõB8HWse e‡îT�).À4S8Á`Ö\¤Pl¡2ÀU³³ïÏNnÜQ¡À¡Èq¼� À±úÕUeÿ�¥XÀç�µôVt0JúMÓô0€Ö°Àtà…a21h]|P³#€½”õD}ë¼\.«(”�Éd sS`/ å¾@CkÀ-®0ØÙzƒŽo¶SHãßP·Ç@  ê9&€ª · @¯Èé]Ìš¸+l�ËzAR XWóÙÆva»·— �¨ß¯”]pAG¨-!Í[2³-Ýý‹##tdЀ¡&È6#ª*pxÐÜ> �܃@ �Èfü0§m3z�@Òà1€jTè, �Éç�%ªõíB¸—À²ÿDãB`‡àW6È&2ͽ€{÷p. ¨Æ’Þ 5¿ª@gV˜½BT…gvûÚå( (€âüMWÙ,B@  5¨€9ژˑÞ@fJ0m X’a@\%�®X^^È ½êxˆn=(W*R؉/ 0E2�Z9�i0€À¬Í ‚èúP“0›9z+‰áù¡ý¾žveÜ»~ ˆs`¯ús*K�â†ã0€@ÀsßšàL&@Åó Ü\9!PaÀŽìq¨G±Šeÿ®P¢N€ê ÖSOž˜rͰPliRÓäVFáÈp/pÙ€.6‚:€O@<gM)¾7=‰¾F¼É×ù/~†¡3?‘¸‚p­‹Û@53!쇖š–T@ÛD»ä�0ûÿóßö¶{)¢Ñh½–ö_Qa@WüJR�@L»^À~>`Æ (‹­TS�¼�€ÂöÒ€žöÔ` Ð!uß|Ià€¸öÐß O‹7@ü³ìŸ|›sീ‡Ùè öËŽ’r f>ÈøSfY»'ÄÐ,ï,=ÜC€$@´nüøH)€2Gµ#Ä�hš à¤pÜ€b ˜{ƒœ8@æìäí œ0´{ÜoC K€�©øF*Þþ7Ú`´q`TÎÿ#–æ}!Ž©×/Á<�ý&r —ÁOf¼ü׃„Àµm ±l– …FËX �p¸e!d[€©P«‚{B` WÛ¦èuP]©8çP-é „N€+ mÁ,lÀ‡æ¥!€™o&�ö@'9î‹Ç/€ a ÎYuÿ´>;Glðç’èï‰wî¹Nðc*KÓº-‹¦Õ)€$ÀÿØ;Ÿ×¶²+Žo ýºZu7*]�Q%3f6Ãl:¦.ŒÇ?A,ˆ�ììˆ`ã�Æ6Å ø/ðB^¿.¼�tHØ kaÉtÑ2Ð4?è¦ïÇýqî9çÞ§D‚Ò7ïÆ‘;#Å0÷ãïùž_›X¬ÇMA+ ¹À}> P��¯èûEB€/¿ü¬µ)îÿ…NJðìì‘©¶h*`;1`w¡ж@ò?¦CBº`iF^àW¡Óˆoü!z—)€”R €{Éàú‚ãÿ& pI I˲ ÔˆW…‘Áúlör¹ÿÅÏ:�Îpgý¢z!]€ŸT-(ÜbÀÏ©�E!ˆ‹v€^˨Àð¿"aÀ¬°ß¾¾üâáCE€p`𫱀$€¼ûB¤H€ï¼ý5€õÜÁ8‰°“€0?Ì£õÁ|APÍm€¶ 4 Дêìï  žçõßW/.t€ê�• ¨‚º2|î ZsKÎp—‘zbVD2@,{*ˆ^NBÄ÷^ª€T)ž¬ç €! €eµ(d—˜ ˜³·’z@6ÀkHIð÷Âh´¹N.@Á„@€“Í@WH cqÿÏL€NY3|€¤jÔ„§„±3Âî3X4Z¢0 ÀÃÏõò°àLVÄ(È@‚ ˜fL_>Y€-yñwvp5±wa]šdDb€*î @ÕDÄ@Xï÷¿[ˆŽá½�rø¼6 M#`¤âLà¶±'Àèù@:pÛ! ެf ˜ðY$ Ç7¡p˜6€?™9€ðòK<æû‚9`L°MÀ, D>€¸ðûðúo/†/W ðüAo.xâ‹àMi#¨ê�·hE ¶«¨ò{3G‰}A÷�f\¨È0à2,êÇÒžÈ<J„ç±FÀ‚Ìä¾ ;C�d "Ц¥ýc_°~rí{] ͯs}R žú6@#ÎA"�° ²6z*À €»2I¼5@çÚ ±DøéÓ¯2$*€Cóaâ %§¢3Â]£‰~b¤gš=-©ž�<±üsé¥J@GÝÍ2#`^™�xH 3€l §>@§¾WÝÁª-2ð‹^o.ŒÖ¥à2�@ °ÍD±XŘM̶í#BfyD"àÓ«ÏÃcà1à0} à�Pà0€]¢ ßÍúK옂,5Á¶¦@¦-P÷Híÿ±Ö÷:�‘¾W¼nÕ"´Ü* pA%À#í7ìh @ ÀpO�¼­®ð@‡×O#«B*Ô¨Œ ׿À# �ðîçzùùÃ/2ð#zÆ@)͘šº{óYÀ>KXˆT4I1Wgƒˆë¿¿ßب"Hßó{»ë¢Ü0RUCHPd8À¶±-Ì:ÄÒh–ÐMPDà �À©šèWü�ÀqîÝ|�žp‰Æ0‡ÁÕÁÇÇsÇ\M0D÷…[·…©Snå½¹ÿ…\±àõ�ÁJò ™€¿éT ®ÚëÉ”P3�¨$`_€ÒÖh»EÀ ÕÑ ¾ýÇÕ?Ç@“ý•fМD0�j|}õÀï^·xpà®Rã�6tW@�›¨×…Ö‰Ný Wðü|žÀ/^·6ʪíp]'ÍZ€3� „³¶Ðl€m£ Â� �X\üðÆŽ¶ÝAo__MB4ÑI³ˆÇTÓÓiÀÔÕ·'€¨€; ë‚x çâT ^Hð}ãÙuÁÏQø�âpU<ým¹|ÕYZ‚ÎA$À6×FÌ`ñC­@žk¼{ûz à]‘Ô)€¦‚œø38Néò»B oÀ˜ ÂP€†.¨ŸÑ¤ Šƒªª}/×ÍSt¼boΉD€-@{žpûÂÖРà5·8ûá`Jfðæ A€ŸÇWMu9äŸR¦Nää·™À•4Dg)>¦Ð8`܆` `ê«z.€ÞZoð1@Üý{�ûßíxÝþ| &ÒU!  á[x[³2pm„!„íA´E(¼ýØ`f…UÞLLè+’6ÐTßšü>3¸�/ÿdT zÆõ_2‹d °°p0‚ ‚€9·è”*  Þ•{¾FHtýN·5W3D’f&ÀZ 5Àš+•ÆÀ`vdàCư`,�bÐÌ@2þ@7À’ºÿDèL@»¶ `Ž�\®™=\cp€úþ| ts¹Á‹Ô6µÍ %€¹&ì\‡�@5Ð^ƃTdI€aT¬#B Р öˆ•ÁHLD˜A@„\¦ðê&o”öö(vH*PèH€ÝÚè"@ WcÀbé„¿«C¹œï�Ìmn¯@%€²Ρ ��´ hÔÅÁ ’÷†è!G|ipˆ€7“ðÔ�þ”*Óhf À €»7F-°7\5€5¨`êç“¢€2š\¥SÂÍ( b@½^íº�nž —ë\¯ÎA§AT€Dê $F ¾þŽ‚ “öÀû£àÈ.ÆW0 ˜J ‰n$à·7EP”Ï]? #,v0uA )€) &³LP9�0hhýü>¨ CR©£³€9oøøxãxc3z ñ¢/¨qA ;ƒ·Ìj€$ P©Œ¶8˜�žDÈ€ñøÉßLc@í™)€‘²wŒJ |wp¯¿é8°`q]@ï °4ÂÆÀ}©êÇ×~'ÏÀ÷zaíqü"Š0·qI07ôœ­kƒ� €k‚±Xq€äœ ÄpU œ8¾$ÁüÁoÒ£šüÉà:w®¾Èu-Ì€@NÀr yK&@J€²-]] � Ï :¾×?�Íïa°²bÔØr�x_ضmc ­(8‘Rè'3¶I!o~ÿÃGÿÏü ;Ò€_Cœ‚w€~Ä¥Q‚ IDAT(]~k�sƒþÀ’;0×ÃTÜÊm (›¨2¹À:ðbÔç¯;^ž!@€ÝãcYx �†õhFhã§%€YD&±Q@+À1"mŒo¿…m‹˜ àå°àWÿ· à<œÆ�ܸAXµÀ®8A޹z ²$ lÝ,(PßEÈ+ B̘@¶˜6JÒŠ@:`Í @…×�‚E€Å1 .Ç©¦@z À)€\s" ê*•Ü}�àë%ù1úLI<Ñ”ùÉR ÿø5òâôýõø�ùežÂx½—7y= —ózÏ–’°ìÀ^ k6,Ó�ªL& ’úçÿ~c ¯ÐÚ=V¸Ù�V@dFÅDÄ�Ág\W€¸þOlõ@8¨#ˆ Ðé ZóÁÍW¸y/¼À(3¦ˆm††0k‚ѶP䊎蔼A Í� *`ü@Ý ©Ó¦N›U÷¦¿ž.¥ùL½‚Èç½áÉ^xé÷öìyV˜AóLo0»,K€Z  Ç‡+­�a*@ ÆA@ƒ® m€38ä‘HnÙ–[¦i` aw˜ª õÁm»x7�Ÿ4)ö+Ö�í¤w¯àýÏ·ˆ`˜>€^n]b¬ Ç»…X7@pÊýAÎÏ3ˆ0Ï{PÐj´1�ön»JŸó[øª Àµ×,àç†ÏŒx+äCú<¢þ•À€ß]•@ÝN5¾þÑoÚ`× \[м½+ V«Ñ ÖÑí§Kƒ#ôxäCð x=“LX�‘PA@]ܱ/Ø2Œ¸F†%eÃáYK:Hÿ¶©îÛ�)7 Á©÷—¿gpàÎÕSôŸÅ ¼ü{K X¦ÀûB¸ÖàM”ÁlvU�ÚŸF^˜}H‚‘¨R ð# $žÀuAO,ÅÖ}HˆI�Ñoõóß @[t 3*À À» ˜€æ[ÚÀ)™p`úò»"\âGi€=y¬Á1� A€Y `N#õ€ë\ ê�Tc€-ЊT‡òd2jWXÜ|†KÉl�€m£ Ù.˜µ%µúo�´?h2 à4µ   Sœ s™pžÿ²w~/mïggcg[¯e»¹*»:£WBSZ ²2 ½ÝÌZñbjã9‚ h…ž�?E]ëqdâ_Ð »›A Ì‹&ÐQch �éÅÈYÀƦ7edß_ŸÏçyžÏóùÆúmÏhšOLµ&1¦ôyåýüŽ>{ ²°5À`Bؾýþ?ÒÜ ði ÆÕ@ZI0ê ôR‚²¾�Á¡&a€4KÐT:�›ƒÅˆ1ˆ$Æ8/€dÞ°(`ý=)h5$Ü’mp†óìåU€òžkó®ýc4«À „�1Ásæ–€^ ƒWçL.@ÖrbÎû?ò<6@ Ð�®À¦ weø.ÓèúŒKƒhgK€ÁA°)ÀE@&cšðÞ\€$1Ždk)€¤xUÉmðu[4É^…Á¡òžXâgƒx   ðìMs�‘Mj ‘€H€(€›\�,ïäCG\ ŸÖsln𠀟~v  ²îß�Ðiy\‡ûóÙpy s�ChU©p]h>$t¯ r­Ÿ™ècPÀ~N\ˆ¤R®àÄ5 �¡œpÞý§ØÕá( €¢¸�²àŒì�yy—¿ äH·ÄZ.@´IÎm'Ï€¯þOˆ~·Oy ÖÄãTX ïÿ´0œb&XDœêLMÈï”—<ã'«ÊL`—j`׌š:@k SHr�(�é�öŸÁ™Fý4¤ù«(€ü˜@2i½&Çúí�¤øý>†ý0öýNÑÐio²­_ N ‚XÀ�ŽŒÄŒ@ —‰˜¢ÞÀ^“ÈçJ³‹}<6$d&ÕÉéOƹ¶8+xJ ÖÀ1ÒÜtV°òÖi>@ Q¯l€k îu[ÙÊÅÖQIïÍ_hï•À%€hT³K÷;Ì èökävõ ÷Ûø ïFý9àO4rƒÜªž…>|®ha-)ãB¨0€Œ˜‚œÂËæ‚À¹û0 'pãA,ô•†sPÚZs�>Ë�v !¢+û_㦰4”&§µIÁ>+ƒTI 7 Ki”›ƒª•g©¸­ì¾Mþõb )€m(ä+ €ˆ2!e:ȲÈÁ=Ã#¢¾wB¶}ßÇzy…a”<¶Óq! 4SÔˆq�@óh8 H9h€ÄÚŽÉþíVæ5çý_ïK†õ@Š^E ˜Š’&  ·3@ ›7�ZwÃû„=Px!ÁLO-� i€ÛÛ­¤(ßÜ?΀Û-}®E_ýásH€ƒò¬Ôÿñ%Øà2€RÀ/€ !`€™¤E‹¦4 ÝÈ´ƒð–•èa�@ Ö¨€¡là(7!ÀÐ8ïãÈ –!ÇŽTRéÔåÛA€²}õ•£~Ô*1$Äkm ®ßA¥@¡ÒÖxÿ§>Àˆ‘L*`h€ ÒÈ…î‚�Á’ c0Êæ�$@["Àì¯( §„òî D0æç› †ëÖyG! šÎ€î ÛŸ/~ÖRÀú¦­Îbÿý¿yy î—öŒ µL0Ðܼ Ú|À»¤G&‹;|3�€pqV 8¥`@Ÿ„³�ÌÎ@Ô4c˜ÐEqÓA)2Að7òæèYÈãÖÀϰ ?ý¾ €&èDËA²ùã# €8èXÐ `�kz5€S¨ ½oì }ÁްA0ÀÏt\€pÙ x0€—…<ñ#À ‰Ðrº.`Lo ìò УÅt' Ñ €m!s?Z?Oòç×ÁÐÙòˆF…¯Àí@Å8=^W�¸( Ùl<¶û÷H*6¸: 1¤OV Œ£˜Àú$'À&DcàÊÓ}c`z\_âæ¦š×ð#‚”èÔàÿE A@%TpçqÍ@gËÛÿµÂ�ð´#|–'À’6Dë Ô °¨í £ÉÀû“ÚÂ`Òè¾ÿ»X+e�‰À�£‘>ˆ1ØPÓAž'ž¯òÀY8>>nš8£¹¸.Øwo¨K€.ì0@�õt.þl0�6ÚˆÚËA`:­´_jFüþï\A‡ ±3Ø<%˜  ¬ŠÎ@ëº\ÊfMy€lq¡Ù¿¢�Û� �*ø¯ý¯Ét€]U4MV €ñúˆ}Rà�>óÖ×Qþ �©ÖÒ�ÑòøGÍÀ«—ŸãJ€=C<„ Ц†›z–‰0iN¨0 ç$zK!²ár¼o  %"€½4ü¹6†Ñ¾ q.ÈÏ ££ç›NZ_G½A�jµîœj­²ÙVçÀÏýoöèSÀõ—WàŽpKIó>€¡€úlSWÔ»¡í Uq@17¬®n”Cy“È—÷±ùôª)¡°1�`¦‘`r\9À(�rð-@í c5@£Z;­¤S¹/Òÿ©UR—�û?ó_ΨÄrà6>!t~ó€ö‚@Ÿ €HêP¦óŸÚ‹’ìˆ@‘ ˜+î„M3AÂÇÅ&Àˆ³³Dåz{å”P× ð†>Ý'NÀ.·2̶ÿi-@0¦� Ò B�hFX# aÉþ´uN¬«ýÅû@² D:?�@áœ�ß)oÅã>@À·$À8'ÜØ$〨6ØàÞQ)Ÿ5FËC.ìßÄ�Àá‰çxL(©`G„LÉ0tF9?@àµ-ã«Õê›7”]ƒ¤1 ^K§_¤Á €ßµ¼¸`À?Ûhz xAàAiÏ€f8üw h©€ñrèÀ4(_šU@CK� Ê„Ø_Ùj>�˘æ`-€¦½©Ö-o�ÓÓÓZ½ú9]ƒ,ÜÚïýÿCà#U?~üýü”Ÿ ®¡á–qA—MàB@„¼z� dönhq@w2€®œÎ ÅbhÇ€l¨´e§‹<'@ì �©€‡N€j9*xš]LæÐ!Ò x]¯}[8,¬«õgåômõõp×7¼*ké¶ÿÔåáóþ_¾ÕZ à]ð ì@”¢/é·#‘ˆúôÛÑ{Ó~<ôHy_öú÷"‘H$¢ÿZÞwÐÁ–»öê .n-ñ˜0„'H1@LŽdR�½tUЀj Ö¶…¹"à~1lêʆŽ÷Ö0&dL$m ðp� ÿ'qQànâI€×µÂá—ÝÝÝ›Öéî(v[ € Cœy¿�úÛZí­í(4ÄP€ÆIZøÿRœ¡ƒyüò#À›àA2P8VÁGXV„ž¨üw›´I�à‘êÑ€ Ü‘¤q/àG�»À{ë¤pϵë‡a´ \Þ‹û; |2ÀÃ@ŒÔ¡¡pE0Ä ±:pd²§ŠqB†hq&€Ú(S»Æ…Aš03c* ò4@íÛßÞìðN·u:r›Ý¹îší ¨ �ÕZ%•J¥s9ë-¿R³` šÊ!ë¤B)Þ:¶?~|OàWÖëÑ/É·º®å¢‹2hæñ•~›Á–åCñ}£øö(ûd8œ¿ë¿N”¹³úQ—o¡~Àpé(÷—C>À»ƒÖbZO‰'`Î' `àÞÞ±q$@ø 4<�­G¤@_�ðVöÕÞ`¸.€×SZ>p”é {])Hów`ŸBa³R«W= ÐÕU?MmærÖ‡}Òë¶zÃR¹Ü‰'N‚+€oÉ–þtî] 4Ë5tð†LL×�™ôªAÜÔYÆËvŠ[qÿ(ßâd2€èå2b> 7#XäîÎ–ÂÆR€ÐÎބ㈠%È �ðÊ”øl ";ƒÆi`fŠÖX×ÿZ�ú—…Ž›7ów>ìc¹7 ¹Ê©´Ð¨V6s)ûxfþ*wrZ«7lΉ­Îý9”nY ‰x� €ÖW´ Ð>Ž0k]â³ç�#Ìp½àì�ÝK[yÇgwv—v§½X e.æâ�+Ù«¯„$ì„^1 ë±Þ¨‰¢ UÐó�ãEÄ’qð¢+†ü^í\-äv/ !0‹�*$¹8I(CE°�³-hÂþ^ÎËï5±'; ÆþjãɉMŽ3<Ÿó}žßó⨀õ=aF°hbàêj¬ìÑeã�ŠZyÀD¼˜5‚»[vU€]`I§8ØNï *ƒÈ¹�­ÖÙ ^ggÈ8;† ²|Sd³#¡£k7ã g¥Ž€@à¬Î@°„kxxyyy£R9>-/‡(˜ÈZ2æÐ@ºöÝàGîÞ�¿nôn‰í?‘rý àîu@$p¥ ᆺmü˜IAt€ïÞafð„¬M¸5&ÀŠØQ@ ëM—6ÞËš%P kƒ7Wl/à" hðèb¼‘L�§R©ññx&“7Ï¡ øú«óãJp .€€aˆ€ dÀ0"CBdÍEš¿È 0cŠ{‘À�èÉM €�¯>þ @¸'®¨�¸¬¦€¤¿ ™0/Þ ˆÅd˜à¾0`Fœ¸™«I›‚xŠÅºjnÆ$n é �¢úƒj±ð¬�šÝ+ €Vªo¶[_·Ž�þ³ìcÊä ›™ `ÈÖY ÄNÀÓðW‰u|Úø]ìa:èu@$P¡§ƒxè¨*ú«r`~žÕØH˲�Ð`ÛY>€£ì­@K¬¤kŠ<v4³„ L\&÷`ïàØü6øebëŽ Ñßá­€öE2¹¿°?˜D2`<OURà œ3cá0Aì˜0U@Èö²æV€| àôiÞýp`åÏ �i€¯}©îa4Ðuq"‘Ê$ €’^ÎaÀDt¿ÀK€nUA´€°ð¸.¯\««�1�0½€ÝݘZ(—ëõz¹\U×¶öÈ„ kjàóoáO¿G øw;•LÎÎÎî#`�É4ñãc`þaŽA†CVJ±h! Ÿ¥ãyòö�5€ûÁ@Ê?yÛGßú7?“`èºGïîÐ.@©hTm ªÜNåÈs‚b\Q”�  ò�l €fª5yOˆ—4 |}ógiX©0µV(Q,*^¯fì~9ƒú„b ðvK­Ì»À e ”‰ÀD·d®?ÐÂêLÎ(*r ¤hF! PÌ*ÿŽ&€^ԵњQ®j£ss@ àDgÙí@RØ¡@§:€L 4}'-xD¬èH ûvËÀëV߀_w:½V8l°Ðk•Yb/ #pw ˜¼&€¨ Ú3÷¨½Àz+Ï Ú-Ÿ^.J%½^˜ŸZ+ȉñkTó�ú5cÔ?:j Ê€ðDq‡a!–Cv$ÐÙ ÈR �Y*€@@Þ}-PP`€ÿÀ¸R“Á:Åž$œ¿ÖAm�¯|¯YuS9tM O  œ*%ØìBG…5„°¹XÓ;HÜÕ( @Iyx½~Mæïw@j€"0^@œÛ4ÀJ*#H àùm–'ðY?àcS|Nº8„¯ã^8]+DŽ–¼l.�Q�@XLHF…l‰ZИ¡@L ^X¯v¨Ân€Q˜ÊuQø� ðw$@—½€x¥My*|?�« €›·Ó·¸¯¸;pmxÝe è´°ó•Á,Òéî•Á�¦† f‘q€•5ÃÓQ”à„£r‡|F�ð_‚4€)X8‘@Š\>@žDè/‚Û?TWŸ@Ä8ð�ûü©ä@àúÀ7@ÍÅ«\àcÂî@ûwtdbˆzm‚m°^ÖºwQƒ9@žKÀa€ß\BL[˜•ǘ”QBGy6)1 î O¨û¢ ‚þÀ 0Ë}õôµ@à�©4³y'@ Gp& IDATÖͨ¢€ÇŽØÛ5 y@Þë¥.Ö­x<ïAïå �t`Œ�K´`‚¢!Nq í õP ð£Ä6>½z]Áå¸%ù%Ý7Ø@¹À¸¨ŸýÌ:a�Ï»�ý¶ö êCœO£ÞMxÒ> ¯–»fûçè“àÙaÃÏH€ÿ‘w=/�d[xx0«÷Ô• .zQdÞ*EoFÐk%8B#´v·O³1:6ºq¡’És-ŠY4�MþW�0«¶Á¥d%¨ � ½œþ^ªêÖ½çœ{nU¬JdÊTÒ•˜Õ&x¾:÷|ßùN]/~ L€ Ðè08(Ž æγr È`ƒ w°Ðº:³’Ǽ2­Né*@Ë„$Àĺl€’ku€/_  Ðo‹/´Þbc0¥ÀÚ�ŠUó®¥`Ÿ xuÒvàT;}èAp‡Ž;&:öc¶�—þ›ìÍ*-X­ &(è€ ÔËbZ·° ß×%�sz[Hòd`àÎÅ]£ÞÈta‹» Ð ¤€¹€)¿/@O¾€€”Æâ뀬?dÈ×:€ŸÒ 胶oâ·&mKí­ )ÂÞ•Í&ª¼».—Íp •((A§ >¤£Bô9´-hmÿ:Ó•øç`œG€w €ºU@Š UÀ é ÂuÄ|‹Og½†çEÿÖÿqèyÀ?$Ô˜4'~7ÐëG@‚�ìA˜G•?n š@ª« ¨·`ô@²X‰€-�°w`ö��ãápü˼ ˜B�ºW¨”}%½�_ÇâËVÍ­Ï\K !ˆnêâ7XO�íý�Öh¹R€ªýUC  œBT�`L¯X©À%ÀúÅÀ�2@€}ã¬C �Ç£ÖòåV£nõ P%�G€EX8‰ª(:0TĹ„°€•‚ (�ý3W â>ˆþö5þ<…B¿eZC€×W[f7ƒ5€Á'�¸Àû„sþ@4X èÀÏ·g«û)#0.Y˜ÆÂ@ÂŽ­B‹ñY@ë»vfôL£€†qÜË›£Ø_\½ßÀ¶›Ä4så­˜À°øÒ„r€ [T½ÁÚ¤€ ðæ²ÏÀ±›K2w|€· ç`+æQ_ ‘k�‡þ@›s×÷V½gLE€‡HÌ"€¡Ax:H ~kȉ_Ü9ñÌ`­qÄ—ZÇÍ~€÷.@Õ€Á©¿Jô@|!�›†j:ÇQ  *�û×gW]£r9£&H%¨E€,¼y£˜fd�¸›D„NüòÞH*[€f€ýäï](� }ŽÓ$áî¼]ÿÜH"©M º‚‹0`pèíæ@€£ &°�+­úY=ó”°¾ ‘R ê6#èžò `còÜ" Álð£’üíë§á¡ÔÛ 0H(ym$)tT:Kqʯ7ã9 ÑàG~µjHÄ´@>Ø âF[ƒ‡ ¤ Þ.ß]]=�€s€Sܨ!Àï àÓ`€¦†pºà: 1²vÏ <%ÐH©ÄV;â3¨W7ÙÈÊN´/6 í'Û耟²é#¶?lðx›v„ˆ7Ûeß”e Û\Âö �«»[‘øÀp�Ü"ÀdÍL6Á‡ÚÈP$ VNÁ›n zwVò@v9ô :1º„@E@‘L aŒ‚Ä6»žD@«ãþ½ÑT*�àÆoñ…Ö�AäÖ�.7ü'wï|µ þE½M>"^íàçm�RØê)ÇÑŽÉýjòEêÔþ#[ÄvS€õq¬8s­ÁªUqe%Á {b  ߀È@và/¶/Zg=qíÁad@@Y`±HÜB§6 FAÞ– °¾âbê€Rf!€áƒÆ÷ÊíÒB·Žbþè¿ >#nÁËmðnǸàïÝ[»ÚONÄ-:°ö³�?™€c ä¦"¨’ !€® D«BR\À¼iZ¶ ]“°×5w�EЫ(â:À©üŽ[$8­%’ ð0à4¼5ÄÅ`:…€f5|Ðvª4ÈC.Ù'»ôè°Ž¿snÞåÆqG@;ð À�2+⸀Æ#Œk ‚d,´1€\lÊqíÝáu&Ó=0wa2àÝ;hrzŠ .Èà £ òTAz%@e*ø5A'ÀëZ4üü¬ X¸qb'¯êôxO/í`1‡«®5˜ˆ~ÿ†‘™µš†…ìWBÛ Aª®�ÿxÝEMp”CGjIÀ²@N¤³B8#„�3h0¶û*—ÍGŧ‘Át ÍRÀA÷s•Ä¿à~2ÐZIsÒ° ^òÝŠ}ý=ꑨ£ÿ á�†¿@u®xÀöš�ÂS}�¨ˆAÀ×d àîvZgÝ€ðÙ‰2 •f€e�Pà÷àR€K þ„�`X” §TdV "„5~Cðø’�…9€(ú¡ H¡½§ù"T‡S/ÊÚ9„û°:2þO˜b[`Nå¦3¼ù9ÿ×Ï6©3ÈÙõ…8û‹<ºc­òþ •Š>+ d`ž)ºTÀÞJë¬7 #@Á½¨$@!À)ñ ‡9€! (ÎÒö 6pÖWrê8PÕt@©€Ÿ˜h€Žê«“.ÅgûÅý ŸZ›ÈŠR½ÿ°¿÷ÈÀ¬¬Åãª{ð~ï÷nN<*^jÛ2ìƒ'ùVG° ^íý_Á±Å/䨷ú0fÛäèâýí:—Ô´ÀÀÖ†Þ@f\PÅÐø™xjÃü΀ͭVÝÊôÆ:i‚´a ØU’^ �(›ª'€? Q1šR'ô”@f ¾Ž:÷jùRÆ”cgE„È=¢ ÔF0úÕ1¼ðˆ<’C©ž±%»è×ïÁá�˜-ë…;yÖñ~[r|"g’0�¾0XøªÄ!ðà�A¸¸Ï;‰B`И×ë€Þ–?h5®¬ÌÖá2ôâ@G€#U œ ]ÿ› þ3&` ÍÀ FI ”œ°V/íosÏÿÉÑ_èÈs~—þOö±ö‰�¬Ìýun¸/ Šé ZXøÍ48O D�Áz àQÛåV%�˨ Ô|‚ œ@§0£W�>Ì&0±¬ZM_ÿ  •: è Ø PJFXãÍž#Àßos.ɰp×Õ`!ðC4D;3CCç5{�À(µªíðâ! äÚ—D)ÐT`—EŠSpr@’V`B”‚]@¤P`æÝ*๸wÝ{ÿNò.6û&µaá.@“¸ Q ÜâfH¨pó‚>kT€–x뀹Û6tQ64tè…€Åè€6ÎêYÀŒ_ 8²‘ç**ÎýûîÝág’|Dÿ¹wWH²èC°íˇ×¼ªmü¬0& øˆ| a*l€úI§`„ÛÝ•,Â}‚´¢ËA!@#‘$Q‚Ê6xlìMøVÓƒÂ=+R õàÓzð»—“$ß`_ÀäÍzN—ãôAs¢×¬"PwÁAÛD(F‡o¢BÀ\µeõªÀB@v¡Lª X TÚÀ™™D¾ßa(€Ý@je!B€a„rê’À̪ßô#ØÍãq„ÖÙõ…)Pæ@5P”GÐBAÄ%T‘(þ{Qñ ÂFA¨k‚è2ÀïV+�YŽÕÏ 118d�ü”2<ààh€pìÜÛ$U@ëá²/S✩ßÝ^Tu*€#L°ÒTP!pžq \B©(Ѓ€ùÛûn"@®£e€/ IÀ’–`BË!¨B>—’ÕA> âd0µ, ™0 Ý/I¾Â«¾L²7ÇtP`ëÖ˜ÈBÀAg9ÀVØÀ0‚æY{ZÀ“^ß_uSœË…Ì –Ã2€Œeù@¼ðW -\!0Ž}ÿú ×S : ðW:ä�ã$ßáI?€£É�3÷tPÖ2”<¶PÁ°OG¢`GŸló·wV½‘y:!€ll¶ „¢ ŽD IAÙ#ä §ýíZΉ£)&BxÀ‘Z ¯ÄÍt‚¯0óЗE€7«šAøm5,À°ÒQ0 ¸¡�ûÊ€±#aòû­zWeÁ¹\„SX¡€ AÄ2à%…�³\‹ÐÔt!üBªâÁ=¯ø¯t’!4Àè9¿%*¬7³ýˆ4h0)€ª|è¢�‚ cC£'ùîš„QãMÀŽ3'Š/_%R±â|0Å$@ ðò®ç¥�>�³ì^#tyÅã�Ó°§ =½ �ìµ—°¥úµ¹Ôè¼èA³tJrP*RðÒRÈàÍ—Àæ ah‰$(LrH&”B/•"l*;ßù‘ùþxžIìL\Æ|Õc~L†<Ÿïçù<¿ÈÛ] …¢+µÌú×Í,Û„ Š¡€Â($`€øÌ@!)l.dÑZÀ¶…㪠€¬ Zà1¨@©Á´èh�ÿ<̆úè>�íÒc t5Àx»¡NãÛI Èü¬àFR –*Ÿ€­ðÒ Êþ·„Œ ¶;À¨°@9ÖÕ²ÖÖÕ1"Jï8,à„L‘ð€<!àU8@úŒØÃtœƒa€©ñ¾…:�udÙû-û7É2{—Áß²P;hß"{w¡ÿ/þ†w/º¸·ÿÒ2r ò^Mæj=Å…;-! …ePZà^ö<û_‹ƒà` #Ò}sT]€­ýAÚ X‡HÀ±< xê/^…#+؆8ç À€a€iä ÿH?Ô8ó,…»ÊZ7mæ2eÆÂ㹇ñ� _Ù=>ÖÖeæ dxJáùº»Âõ¨Ù@~$€Œû4ìá@` PTZ(™õhŽ24€B€çˆ~€ x.(â@œƒ?¡žî„:‘Ù+j3g¾ø«²gl@ø7+#T(SäÆÞ¾ Ì]9´ þòþO¿ø”ì[±ï{µœfC�¯²ó %Þp�÷€�dÁ•�ü¸@@qÏT“�{GÏ ¸“ðŒÍ ò0à0œÐ@<€ÏLŸ PDE€_ÃAiÚò!à_ñÌ{`æ+dw`áÿ e¥À+²„ð" �þ¯€ {gÿB�I VÀq�ŒÕna�‚ƒ`žÙ” F Ü<²8€~B\ HåP-Cwü¢» ÐnÛ’²K#K± ©€ˆpú%ԙԻЖ1…Ùge™aÝî½À?Œ{ôÅ?˜1|Y|r† OÈWmx(�E€B av OÀNÁ ò�7€ æ !ÖÚ2’ÉHKƒ0‡‡ù"€ RŽ€�«còfã­âà„ó¦Ö›w`2ÌdœÈ?Áä <¹2ä© BpÝ|>Ç©\(°TAǧ¹°…´ ¤c^4iêŠyCÕõñ!@°¸ ´  À€�°œG  ÊKñDLŒÉÈ^]ó$ì°Üf+Rwèf”›3OËù ‚Ï!ŸørˆŸ@3٥ܠÀdÇÔ*(@m‡åìmx<  AƒÄàMÏ ŵV[•ÿ'‰/ í `îêcò À€?ÅR P§–Æâ�|Àë»ì��ß~~)r 3y‘Ö@)>H«h,°÷þ ÏØÂ€7wEwdß&p^ÐÄŒ@l5 7_1ï !P¸¶Á|DÐw^=[‘ÆæÄ\ R1àôqÈÓy|…hoŒSí3m…÷ôÙmWØ…‘�_ôô¹mÃ…f(!DúþВɰ­�ÈŒ¢ЂU†Ï £`ÑŸL¹ �MÂ0 °+„s[†®G #åRAÖXf[… °»ò‹ÅNOq׃T@Tø&I¡C�Ã}ÐÍÝáOÁèÔÓçT@òÿÎña Ã%úø•Œ’¹ân2€†ê€òÎEp}°[„ YX ÀÒ€òšQOê÷"ÎÁÁU¨o8–èAÀn6äv¥ŠXÂ/±—‚r1 2Hš³)€íêB\]Ú‡0Ñ ïÆD7ž•þA�ÿmÙ?¡ë|]°×Dú„ó`˜€5ÀÆ€À `¤À2CÜ” âšÑ©GŒÁ~@–+XÀ17>d—-´ àðX“ðÇô€`¦Š¬Ã°Ð,ôá1ÅÞøíKû›ÌH N€Æ{àÐðÑ¥ÀÀÊ `%p[H`8€õ«¼ß2;ú½sìü@šðñŠt»nR€6X Ÿ;8} f«§àWõsÈšZ®=| 8–oc€sA²�’B2€¦q^€Ø!pòxËp¶=€;0DNÏ y/då8pÛ¹÷ÃB€q5 Á2¸ÄÀA8à‹ž}è¾äÜ€W¡í§ ÂKˆ[àD€ƪoÃ"À‹ÌO34wwÀE ( Éeƒ\ríÞ³~òSz%�¢ è�Áb>@~Ð$H,Þ&Ði."Àûy—lqàåh�¤tŸBß(ÄS„aâÝýÛþn×Z�-Ã'å�ÖÕÐö/ýJ6=hÍL‰C�⦥%fè«> é—5(é.`2}ÀÀ?ð„P@O>$â8$ À?ÌáýŠ äL&Ó\å8±@T, 2@>ï«�8 -BX!��‹E±MÇÊóZ;)�­G  MCm@àüâ¶ßo}}ÜuÖÓW/BÛú7Ì f‚à©€�0�A_ØT)•jÖ䨗æ!ÊÝžl„×ÊØ6Ÿ±¨@†Ø¿“ ”å>ù’j´'@ƒD€R ÖaA`ˆ@Í‘p +ØÀìÔ÷â¤�N!«¾Àô ~Ù}Üߨ8ûxq{ÛÿþõëWã{ÿ¿ßCÛ¿tXÅÌ`ê!H¨àø0ô…l BjêW`áUÑ,GMÎQB`Çȯ‘±ï—qìl ·iNÐIM€¦‰±€’X< òh›0¸KØí0J ß-¸,R€\îý£­ê’tß@%¼\Þ½ÝØxm­³Ÿn­õéÇm+<Ø  „�ú@œ%€ �|^»×òä-Ë HqÉ$¨1*€kþ×üi)° X?ϼÊÛú±â@:°ÀײÅ�€@.æK¦ª×LJ)\ °1~‘ì,8ëõkëû_? i." X� ~@ 0‹Q€êNhXéN"Ôºiþ“oÏ æ(#âv ãtˆØ“C©œ@¶CHp0À-(¯IÕï²+Ù•N{}e� C^¿ÝéÜØ8Ù¬¦~£úæ†üø¯Ó¥„_ðç˜ ð8À·ðgvew9Àµ8&D²c�ž t'€B¾a8Ø à© ¤s‚ �+n‘ê I¿  À€¶Ö2;–ðÜYX à­q{vrâCÀ­Q�àSúwÌD ¦À—Ð�@ÔøÏjèS›J7¯j‡µæz ŠpJ  ,” wB¯?<6Hhäl `xÀ¦w¥¼¯™U—î#)ÈO P³+æþÍ^Ël?gÚ…Yfÿ£eÿ°üÿ¹ððÝ= Px„¾ý'áÏ­¤ï\Mž ä6’u³ÅS:ˆu #p€üÑÀ#$#HÞïY$`\3Ä‘â5Ûi•//{ ³³ê²Ëø-x¹qvvvrF ÀB€‹–”Žà3ú3€_x0~à–ð>@"±„½ÿ/œ\©Þœ8 EA‚ �t"\up æbm æ€>\³`¶M�7@˜‡�í=CJŽÕ Ðu,ûO·×r¿_Zë¦d1À-l÷{çgÎràkû?‰"iÀÓ$ `º:®‚§0°9‰2€P”4[šÐ#´w .¼] Äú…‹s�|NxÀöb«mV�FjN¯«uêj:mVйA€^ïfÍ:3ý~¿býô>}À_±÷ÿ. °>q:@&#¦5H$@c8@‰�<Ü €r†èôÈqr( ã¶h—%£Ë ` ®¶;ºµ ¨õtZ형;¡G À�žýëòÓÅG.lôZÙHìµÿ™Ä âàÄPð]$@¯Oœ@2‚ùO½Ô6D€+ b‚ #j�{C8À>Ô+˜E>/�ƒ‚ù‚ÑVëú ‘RÍ–Ñnw:Xp`¼¹±�dsówŸÈº¸°¬Ÿ¬s¢²ÿ0Ëxl0Ž€ú³Õ1&Ùq–æÄEk].(©«¶¨±  R Èx@‰ÄŽ˜É¡ ›„pÀs�òAÉìÔë‘;’žj·öö %Íè¨dµ�Êþ�}46Øà`Àl ¸hEóÑ K‰’ „Ë€ÕÝhÎòäéDà|; âJ�`e0ï¸Pà«„ƒ‚T¿à#¿S 81„�0™Á‚3P./¶:�H爓ý_Wf…æâVIkµZZiíàææ†”——< öoÖ¥q€iÀøK\=€``ú²¢¢’:q )Ö“i�¼@«€(ŒÔ/Pð|8:Ò"–s äÊ‹šÙhDØ/ÐÚþ%Ò9=ïê¢}Øû ÖáùÐÛì9pé"€�罈ô?‹¼C?û‰„ïÄ<8ĘúÛ»*öuщÖ'M ¬5ùÞ@I7€É(AC‡ @p»`zf€Ø(�C¦>Ø'`R@y¿b¶ÕF2а–dyü­‚s°TââÁ^µ´Þ–Gê®'K²ä/¹ôÞ¯~ï÷^U¥J ü×V·¦n °N— ë¤H¯'æÓCŽŽ¦Ö•íÂ_½û‚å–Ð3ûg­Qs݉… 9eü£ÖÉžWäeâøze¾"øÂYF€¯½¸œ2ŠdLÀ’@d�1â`ýSlƒ}ËVÏ£;v<ÔsöÅàÁž=ü¢ü Å«?/£ðH|%äNú¥ðk ~kKþwè÷]ÝT�. ¤Þ ,× Pže�@ ¾nôp>4 ¸F¿×ï·åw2mQ TDø6rb›‘gŒç8#�V/}äB+€�`|ü©߀wn»Ýô @W§í&=,¬¥P€†ie`„8;¨›i/Ô•ò•󽚅¯ØØôÉÿwÂ_¶pÌI@WB-ð®þòß/‡ßPüÇhŸê&Àj€°¼ åÈÁ_ŸÇ9æÎ®&)‰ÿ§“ÛzöËÚ�Ì«‚"!àÄt|À_p¤)�gQ$à×+±"@)=i@÷­Ö €8Y( �33I„; :@X €plx£°s`%Ó‚ýò¨ý€¶ §Ýé\#Ð8�Z…ö®ÒžZh½‰Õ�˺�à& @T×$ôVs3P½~︿IK€û�õ9°=Šh@ ¢) \ž¡'è½éä0ýôàW"ØWê4€äå>‚€W ÓÍ…�6 dÍæA@‘BÀÓ€ ÐÆë‡f�g YÀ¦Ôª±üzíö¦› 0¹)éàkZæeA<øfPLོEÀ´6ˆ# ~©p¨Š�Jp¸Öè †Ø$K„xÚÇËýHìwpç9aÐÒ~Úi@‚4 ÜïÇÿ×wæ€\%À)2`$Ç;ô›�ÒM*  QvX˜À€†€ò´TÀŒ|Ç`èÈD%@F`0\wt1ðº�EØ5]Ñ&A/[»9 e@®Ò×Ì_°Œïz%gs#^/ü„gzåJo4ð·d€@p5oF€xu@rKu2Ix±Â |“Ѓƒ™€cÀÑ;°+PD€°%èT€�èJ”â“„;hb×À! {;mº¼ Z»ƒÛ"Ëj @˜­œ¾>>8ñ;à¶NüƒBŒàr@„ AbÖÉPú5$Ø"ïÎÎ úhÈ2€) 81‘µ)84À¼:Pn :<Œ`>ãÞ`½9Ø1D½l�!JNØ9âR†±xÚ ÛñÀó0Þùü* Ê@p6 pÿ;°±ñ6ñjàÓ«›"”#{ÊÖúîåiF€£#µ3n ¤@m…ða$ Ï<-÷Gƒkm· ãį‘ÖÂë�ǯûçEüÞwQW¢>äÉ%Ó(@¦þ˜I‚€ÚÍM7ÑràÓI·´#@‹µ­ x@[ÐÑT8Ž ¦ �°Áþë“þhØtÖå­ƒ¯gC€Ng€Wèò%y­x‡€¸µ?¡P zá“ü*TLË€¼AÜÊ<8€Ón—n®’ܤoÈÎ àB ±!ˆ*Ó´ÀòTØOÓ Q~Ö³úô«½Þ ¹®J3r€v{H*üõ²ÃÎvŽž•â[ö£&bлaô»x@"k€R`¨FQ€»ù¼Šo“LnjpGìHOÀâ‹Ââ àì0‰VïHàê@iiÀ>¸K€HXf€ì´1"¼ÿB²kAÀ»=e{ÓþÛNgNNW�ø¿HÔ`’ÀP $*ÀZ¼tæf~½Ñtå~VÝ}Þºþ¬_Ÿ°›«Û`oLpX˜„ÒNáL|Øê=¯fp¦´ŸšÎ «ÚÚ C&µzx³% ˜:Íá ‡!€‡ÿÑh0œŸ¿9wÊü/ð€Ï*HHàL•À•¬XUUÒݹ½nooºÝ.î˜Ck¢DÙDxnšá»'òOôïÒ9êû˜š¨•À7 `•…è #›U ïzÕ#¶ æ,àܰ6àP/`Ø?ÝC°þ0)�@NЫmô°�:s ÒlÊÖM¦R€œýóOØBÁv»Y«`˜ˆÁ*‡-ðr|Â?©ÀƒÐÐoÐ~±þÛ&røOÔŸdX74*Û„R 2þ {Eu@Û©y€ J­Áz-€^"4ì¨B@ÇóÍŽÔ0À‹„[½ZÑÙÜœ««Uå�—zÝ,H~H ¢@)0¬’^:s·B©Vé^%É&W7ÅMК½~ c@€š5?€íÀ°ª:mZˆG[†ßk;a€�Ž C…úÜÙAo¨þ—…Ù(ÀpØ,Ô*µRÁÙœ·�·ßæ=@ 'S)@ÆU­Î®è¶ê<‚½hK»ϬÍhÕjݰ˲þÏ.vKEçQìúòmúˆ)€f�,€)éB?ðå§’óhV,Õ, ¤Á.vk�ûTpAß&�ÜLÐ�Èà,`%މ4@ä#¾ gM 0ìVl˜$Ï*»8òÛ¡œªèØìƒ_×’OÌ€µ®ä()@ª;ç;Y¡ˆ cAÅÒ‚å�ì+8êQØ?~ÜVÛ–}›Ïnä&¬€¿'$þ¡f ©%Œ cÄÇêÒY+KÈjØv‰U¸]f£nÎ1-XøÐw„¼9ø]BozËÂsÆ’o×eÏ¥�L¡¸РPûäX³¶¬vÇØ~�óKY@¨&šL§9qþ§|ãíZ7²¶¤ö›0÷»š ˜]U–&“DQ²5Ð*«ÜHJ¶KÖ‘¬-¥]J®,d·äNLM` ”W2.� ñûqѺ’µ%´*/þ‡Î~ž_{€’L4 ì  &uWHš‚ÏÇÖ—¬-ŸU¶¥À¹-½ËÊ `’ À @“Q%‘S¦ïX ´fí¡F € þOœ;')€´(©@ ÚÖ@, Ⱥ‘voýÉÚrYiéÑk«i"PuÀ\4üf=ÊÚ2Ù‡ÈøÿœÏÀd�È:àêš0>ž>d—Ö§¬-�£ç7³Š{50±X %yù^žEkKÿžüÜåŒ @B @šÈ“€ •‡‹Ö–Ä c×�šÿ… ù%ÀˆR Ü(Ê”<·žem¬=6§²¸€â_Nt0Á`LV³kó·:€µåœÿ•T6̈�*pŠÈ“"ÈàéI�`ÀÚÒë¢`R *Ú�žä]c-À³Õ@kËÿ¾)‰¥T€€Dˆ¨I=@´ýÖ–ÂÞŒ![ ²DЀPL0È: �„B gQlO µ¶ÚØ,b€t&3&Ù HÚà]Áº™µµÊö”ü¿žQã?% àÌI@vÍG‘÷(yâ ÊG»:ØÚ‚ZuÛ¼¾¸,¤4P(€–°Z`6ïë€\}—^Æ5ëjÖÐ.}Ÿz¨¡£Íõs @ €ž„í@\È>ÉûÒÜÏ'<¶dx·«ÖÙ¬-düç~ìÂkÙ€D€1 eŠ\JñÉ't` Àz¾o¬-˜mÞñÏXýš€[çñÿã?u0e@I@J© `Ók a•;ß œ¹$þŸz`ª �ÄAÔ3bãgÖ ­}7{éñïñ6Z `ñoR–ü È ñô<Üøã‘{îIÃ�ÆúÒ*ÖeúÇ.¸+õVÏ7Ä¿$¤ŠP€e\ àð$ÂÜãCKxü‚Ÿ±J€µïa…çpøs”KÅÖÿ?¤1þ@F€Cð8¦†£ë¹ÊxßW¬;Z{lñìƒF]2 ª‰c ¥ñoHÔb F—LúôÂÁUb$Oxnók�Êþï}“Œ•Ì[`üK€Ä€”À¬�ÍäÅÜêÿíœMnÛF@a»IšJH‚tm½¡ÎàM–Z8ËÀ‡(ì#Þ:‡�ÀÇ´ÔÊßá|óÃ?‘2%½§4E³ôð½ùf¨&»x؈Üfç€5%‹ßË· ´‰u~ëóÿr/×U3@0S_±R¾§!xÐ/7ÑÛ–÷pþ[½U@�Âÿñ¿¾×ö   ðV¾Ø”‡­»\Àqÿ›·²ÍiêñÿÒ/œ�˜k“U‚9¤Doï¿x>aXý·MôOÒPú_ñà"à| ¿P`Zì÷ùèïœ2–/<£0¯{×CçLÀ,LôÇÿ6‡íe ,@ò2 °~S²¬ ;0À€úošúŸ_ÿûý¿ì@ÛÌ6 ÈW‡ÀÜí7Í™WûÿÿÛà6˜7Ó?J¾‚í_y^¡ç³òíÞf¼½M+üç@ûäÍ ÿŠ6{¾ ½ñ{½ÝDÍ·ÿYØÂÿ‹@yè+€ö…€šc@â}Tü§`»æÛ�пîwÍwÿ|ü¯öŸ ÀÆhym’í?¯õê�“<ûï7­ôßLõúÏøþþWŒ\[ˆ�m"©cºù·câÿ€hö6@oÀjÏW„¡ãÉ?Þü£¨Õ7õú¿Úÿ/øß¨â*0¼ �ˆ×oÇQ:Œþ«–›ÿ&z˜jÇüï£ÚË€ŽC@ÊnÉÿ'͹{ßµÞüóÛóú¯ÂPUóu`q„óöˆ×r÷ÎYšLþéÞÿÖþ›ã?þ÷Wñ�€`ÚeH.höÏÜ B/ëí¦ÃÞonÿø?dn; Ù²F»å+�ÏéàßéÑzH·yüO_ÿãŸPo‚puc‘D`¿¼{ä�‡rã^nWéÑ�y¨Æÿäø_^ÿ‰ïÿã§Xß L�Á4êJºÊ‹Õöýþ•  þr¿KˆÕ¢óó4³¶ÿrüÇÿÖøâ+€|Ÿ¢ÃHC°Ûÿ¹}ù‰ ÆÏ—»û?ÛDýÅbqØsë_üÇÿÖ(þž@×1 » è|ÐNÙâ¯Vq–ë×îÎ[ûÇ_¯ëåûv·Êσ?@«lú/oÿ‹ã¿éÿ?øß¡â" <C@0=<ù:&`ƒÕn»ÿ³¼_ß=½<2œ¾ò/OwëûåŸ÷½Ò>fÕÓs3Óô7¶ãúÿ*€gÂiÔ/ñ£±ÐÆÂÅj·Ûn·û¸ qî×ëõóóóëÓÓ¯˜ÇŒß? °n8�5~'?ü—d!žb^ãuyŽ—g}˞سÛIÏW‹~Ÿ•ôð�ÿÃÀ` _Ô!y-´ˆàdØäG»ÍÐ 7›:·mü/¯ÿðÿ Çç0pè¢,¢AW.Ñ_]þUlÿòïÿÃÿ–¨Ž3øõwlÿ×ÿøp´! ;$W$Ž7Zý›Û¿¼ýÇÿà ༠H�|9`N Ѭ˜üSûµÙ_è/¦Æÿ� Ð(b à½t¼ó7ì/7Ksûgüz(Ï"ž1 L`€†s"P^û)ûèomÿø?àP•W¦LÐdç×÷~±ùWèÏöÌ!@ž � Èi¸ÏÆ?Ïv~còwlþ…þÆáŸíÿ¸C€#Îü0@ÀØ÷ów}ÖÖ_Ú/7M×ô�ÿý k´ÈÄ'‚ùl—M¦~v䯵ߣ¿9ý£ÿ C@eŠ“€j@9äPPÓ@Ü�Ù.LüØüBý0$r÷3ù5û�Ù_;û;§ü?ÚàK€£2EÔ4�… .jœ¿÷™øAþ»p_—_Øolþè?’!@O@m¼H†ôQÈ[�Ö Î“Áé?‹W2—¾Øð‹Õ–î ù-û+õ7§üzp$@Œz\PÐ:„å¹ ÛB�$ )óyÚ†$)+óÖ è³þ£N˜'Ÿ”iêyJ8ÕN.jPnúšú¹û¦ü†ýõú³ý�"å`6 �@Q-Z2õƒücÆê¿`´dÂëÖ ñ•ú…û¹üÅÖoÛ_¯?þíàL€³zÌ ˆ$)10n B•†ò73�øÀaþêíç©~¼åå�^1âkKyÈe¶Ô/ÜW[¿a¿ØüÑC€H€lÀgã, #ðM-û_Ê $M0º`GFÅ­%¼1íëê+÷¥ü†ýè" �G1$Ð*Pf`R>Y ü5¨ÿÈéš¼�j·Ïx2q»ŸËï·¿œý¥þøÿÑ ðŒÎ˜Ð;P´`’üÒ§ƒÊ!ÆAnÍveüÄ´^˜o»ŸËï²ýG—€/Τ °Y™«ö!¡Hƒ˜à㘨g½žhäA,øwÍ})i¿6ú£ÿ˜ àL€»EÌ x:P•ƒJ0r`ßÛó-þL¬¥ý.Ì/Ü—òkö[›?ú�.Æ�7@; ¨ØÈ;à-Am€¡ˆÿ6)>“êuûnšo¹o˯Û�þ£O€»VŠ È”)hSø8êW©\Pc¥ÕðÙ�ß¶¿ÜüõÙýÇ•1Ȉh(3`…ÀêA…ìã�_-ÈwîýW[óÏn÷¥üžÍýGœ½2ªzDü1ðñŽ�öÃÏþñênIoˆ¯Ô7ä[¿×~ôG¼ pG ¬€Ì€#›ˆo ­µ¾6Ü7ä×íGÿÓ< P(* eÀ‚šÀèø\o¼%¾R_¹_Èï·ýÇ?” ðE Ì€è@E üàÞñeÎ7–ú¶üö£ÿÈ 5Àˆ€^�2e n Œ‚k'ú‚_9Ü—òûìGÿSi€�²"2æXpsÝ´û§]š‹E3W.ý'Û}%¿n?›ÿ‰$ÀÛ€"ZŒ h-¸º±¢psÓìÉã3Ô§ö§oQ.£c¥?¹ÜwËÏæº H#`W@Ï€»ŽéàJ|àƒ¹ò/HÅzÊ…ÿúÕ%?öŸWŒü¥­ù'“+8C¬e–æçî;äÇþÓm€+ZDì�„³òÝ'~¡¾Ë}M~ì?‹¸* ;P8E¾ºÑÕ·äÇþsi€�"F\)  gc»-¾W}!?öŸCP°;P›8=ÄÒþãU_Ê�ýçg´øS@N\x©½[|Ó}ä?Ëø*`¤ e`œÈ­Zú¿‘ÿ‚"PYO,Ðk\z»h²Ìæ³�ü�¦èØœ/ò7î“�ÃC'†óÀý‹¯1¸<ëqŸ Ôƒ=g¥;æC·´ �©rKxèáh%€±Àäçè¢@7þh÷¯$mCÑvIEND®B`‚siskin-0.22.5/assets/siskin-1000.png000066400000000000000000011174521525470217700170130ustar00rootroot00000000000000‰PNG  IHDRèèÂÁC³5iCCPAdobe RGB (1998)(‘•�¿JÃP‡¿EÅ¡Vâàp'QPlÕÁŒI[Š X«C’­IC•Ò$Ü\ÿô!Ý:¸¸ûNŽ‚ƒâøŠS‡Á©ô›¾óãp8?0*vÝieÄZµ›Žt=_ο2Ç tÂ,µ[­#€8‰#þ#àçð¶m×�Ó±¦Jc`·e!ˆ п֩1Ì Ÿj�€©ÎÚ5Ï@©—û;P rÿJÊõ|߀Ùs=ŒÀ r_LÝh€Z’ÕEï\˪eYÒî&A$O‡™Ž™<ŒÃD¥‰êè¨ äÿ°œ/¶›ŽÜ¨ZÖÁ攽'âz¾Ìí눕—"+/ÕÕŸ coò\Ü­ÂñÌŽ‹lÿî·`é®ÈÖ«PÞ�§Ñ/³Oþ{²¥E pHYs.#.#x¥?v TiTXtXML:com.adobe.xmp Y`Ëø”;IDATxœìýY�G–%ª¾Å÷p8V ‚¸“AÜÉ #‚[Dä••ÓR]UÒÙ5]-2"Õ#Ò_ó5¿32"-ó13?=?)ÒRS�™‘U‘™QÉ`d�Á52‚û†}sÀ݇ïþ6�}vß±{Õ왿÷Üá¸'{fªW¯ª©™�{íê5û'ÿóÿl …B¡P( ÅÖFîf+ P( …B¡P(šC‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑPâ®P( …B¡Pt”¸+ …B¡P(]%î …B¡P( E@‰»B¡P( …BÑ(¤sÎáOkí+Ó1dÔ¼{;ذîØ8ܬQJR�é°™êm‘¡èl»)ã¼q�ÞDlÚIl­¡”Z[á~ÕqnÖéØÐ¶ZCG[ïꇭ0K;Ž-8y:2 ¶ÂÉj_‡î½)µŒBvz„%[{% O/™±Jû*u›I¶:rïnSÃŽô7ãÙI™Š�öì¸}d¼¾:Þß›eê´f0d?õIÅ2¢ã·—îŸ)[–›ò\lÿ\·Önkmm‘ ÓZ»‹uœÜ´P,£Qz³&ðM|‚g)f­Å£�=�Œ÷ÉŽ ÏØÇ å·)Â3^ÖÚ4�{÷b ZH[��Äí#û�rÓ¬¯›ç»G'Û,�7z[»Åp³,Å­�Œ~�­6Zs;*…ÖèQ ~¯ö‘ÂfZ{!Ð)­Ú¬Ò¾µÍЂÀ-þú¢5²ÏÌÎúŸZ³¶;ë,ïøÍ±ã×TFå3Ú0)‡Ò;Ûþ‹ÄöUjmVlèÕ×ÙWé #IHö;|›7akmÇC’²ŒRk×oǸ ÑiSxkï 6“óµ&¼…¹�G³Kö—™7ë�Y›:d—°¡d¦å—á-´›r¨÷ŽŸÔÐñÓÇmÿi×ÚYìì[øôCí£ý �èȼjßúJ:”Î yqÜ mÚˆuí¬›háoÜã3»¡’„ì“¶…;mËl5)0 »¶)íft ¥`Ó‚O:"ífÑßÎêÐñ{WFZ–½Ý¤’ÙÝpY¤I�)µnúûÛì굯RÆy•Ýtï¸�œÔPJIç\ZŒûVCkÓñvCË~z…bCѾ�‘^떜۷F§Z³6o�¾§£KÍæ–ŸÅ·ó¹FtäEqR±Ž{…;‹Žxâ7Ô´k ›Ùֿŏo¨¥’]~Ço”�uÖv7ë†xSÜ67K†Í|e¶i÷¯[r"µï9Ë~h+<23¢#ºmÚ…Ù´iHû�7GÇa[yn§c+t´¤„é÷ß'6ïÿN>ñĺJ¡P(ny(qW(Š­äèF°[Á¢V�X›“fþrÖ4³˜²ppÒNÖDR˜ S`úý÷}açÜÎ'Œ1Wß{�Õõû …â6�w…B¡¸9`4]‚9ËÈ¡äÊè2—aë²V:­7ÉNú¦@'zÓNI}¼þWß{�Éñ¸úÞ{&n 8çv=ùdvõ …¢‹ Ä]¡P(6•ž‘þ+õ�æÁC% []Ƭcù,~÷ì`<þ§É@ßQú›Ëåjµb±õÞ1ï÷(‰W(·”¸+ Å")gK <8iIhkF¥Ó6’ãÖ@LåH �ZLêRsoºø=”å†öhU®sîò;ïì~ê©v:¢P([JÜ …¢Ã&{!´æºFGuËhšd†X2f¤iÍ`®‚•‰&©L}®ŽEÉžÁ°X•Ko¿mŒÙóôÓëÒ_¡P(¶ ”¸+ EД¬'ÅŽËbéL§]ïF„šˆŒ—ÙcÖÕ:ÚIë_¥¿¿©ð””8¾EÚI¦È¥·ßVî®P(ºJÜ …¢¤3uBzl MϵB�"fýì9£†˜õ…w�I¯«Ýv‚ã× 62Øt.—ó®wŠ·Q¯P(ºJÜ …b}ð”=…=3ÿzz†DÚHOÃÈhÝí¨3êl…i’E�õ¾%X—pÖ�÷µ{j^«ÕpĬµTã­ Ëï¼C?•Ä+Š®€w…B¡hŽàW�$wogíi°–§˜-;­“¬ ¹‡eTdV‡WÃD‹AQÕ p÷ß3³D.Q•YnÖËÚ)PÞ‹Âø©$2xŠƒWî®P(¶>”¸+ E)yÖ%ï jr5'c´ÈÅS¼ï²nFO9F¢[g„»ŒŠá™`È; É8V)o'¼Ó©*“}dâV�ì3Ÿ¤q…;½WËû2>~F¼B¡ØšPâ®P( 4¥ìHmö¸í$!ø=ܵZ Ã9Ї�üX2uÙ rè !fT›½@H’&Õ ýé†AI�Jy›!{ô¦»(é»§é(ÜïÌçóÕjU…wÀ“�´÷™gšöB¡P(6JÜ Åm�,L݈@Ž”0•,Ä×Äib�¤¢dÙ…‚°¦Sº�³. lPIïfF«m!æÏ¢PIcŒ·�ø­s.ŸÏÇßöÅ|- ‚W([JÜ ÅmŠk}ÄÈq5DbÇ|R I (ç ùÔeŤ0¹ª2;¤÷=¨üº^ $ÙIžþô“:ÅoÒ5D}Ð:Âgá@RmR[èû÷$þâ¯mŒQ×»B¡¸‰Pâ®P(n;Ì~øa0êÕ~qV2Å ,cNd( oàÎ RXïzY{PíÖ‚|PÅ¢M‚¶SI¾XHª’1䆌+v²ÐLb%Ì1Æøt4Ls´.½ý¶µv÷SO5UF¡P(:%î …â6µ�>2gBÌL.ô4Éîa'# h�³Ê€ì`�LP�`dNSß³‰Sê”®¥”z&Ùÿônitfí?ÔéÑðÒ¬2ñ—¦opH¥æL%æzgã€viî½ïêƒW(›%î …â¶€Œ!Š)}Ã&Ätqys‘»3oº‰SÃ$:Î|Ò¬˜¬díL”‰ó])Šˆ/}U¾`Íáþ$FŽÄÚo0BŸd0í"’ ßNPjvY ©ãìu¾<1ñÁG�ò% ºí)ö�àI|­V»ã¹çŒB¡Pl$rÍ‹( E7cöÃi*Q7üëy!%^¤Š’¶ú _Ò—8MW‚¸2£ì)\Ÿ9§ñ' ç ÝH8mS—ƒ¡Þ´§iG$©´QÆt7oXy#¬ìBJ—IŠPÇ®%½ˆÀî˜ø©¡ÓÇDá:GÁÉ@ªzõÐ ¯P(õ¸+Š[˜1†9z‘{¡ãYn¤�ì O[aú Ó—lj%%v…~P¦R÷0Í¥äõ†šàNü~*)Ï>ª*™z:ÃÛÃÜùT,K_¤Xiö`߯|>OÁ?rð½J”GÒFQ4çõ+¿mŒÙÿüóY´R(ŠìPâ®P(nA¤'yÄ0kFÁ‰„™xÊŤ üËŽ²(Ö )`“ö‡|ŠqÉÅ©Ø.è³l夃‰³Õ /§2d¨ §æI¢P Jf]`ÅÒåàØ2OyPŽ@’i„ðŽs Y)åHÊs͇*ž{ë-£ô]¡Pt*£P(n)``ŒÒ\b]ÌgL?1¨�J"n¢¥™’Jo·� {”l%õz¢XâÓ&Ξe£žzºHˆäÐìʼnJo1©ã¨vÒh‹Éa1Éì<ˆ¦o?¤¶–а DÒh`q a-ÔÙÓw…B¡èÔã®P(ndù”ÒbdcH‘&’'›¥�ANÏÌ™�†€tYRd'¸äÜ òÎ&êâ.pF:%ÉF}ØK€”^$µNHÉ“$Gžy”�‰|Ñ�’Sl© Ûã„£�öP&~)ÜE16XåÜ[o±7ûž}¶©J …B!¡Ä]¡Pt=f?ü0‰‘#�ä9ˆm0ñxúÜ&U$ïµäRJ6Š?Å4‚}RÉ켓t`y§$» Äøz�µ£Ì ªAÓ%»òÖw&߉—I“¶^˜p¹“Í(*™´ü—49ÿ«_i …BÑ”¸+Š.yÙ«3©žfFOG—,Öd& ŒÁˆ óŽËŽ˜8M¤ºÈ�7•ïd[X&X—Åó°ºRm´�’úŽM0ï8Ó‡)Œ�Ù&~š‚ãÀH6S&ÉJ¡&�—K¿4ðuÈt8ÿ«_ùm ‚W(Ù¡Ä]¡Pt+f>ø€±I“º*´)¥fÈRRRÛŒò“˜tPgÚÃ6¤]�2Yò i'8ç|¦Ɇ¥ß:I�`á`E¦y’�´Grw¦;5A•$Ûfó„mP»ÌvJ³Ápƒ‚à•Á+ЦPâ®P(º×û[Š2Oñ�c`ºô@§7‘¥ŒIpµ²CA?ºä”þFÌ#ÆêIL:è–Fe‚Îã$žÍʰ�nìxvþšÔDR/ØOLø,&™½IˆƒbÝ¡C¾$uMšˆÁ ”̆šRÖ°EÏ …B‘JÜ E7aöÃ=éa© Mœ{ fü/…§J¤—aýt!A_5ã….BŠo·%ÿ“úx�8VDvñ“FT˜ù›™ÍÀÚ’�(Iû™•b⼟‘lÚC�Ek$Ib =“X;Ž?ÊLŸX†�5z×�]Æ45F,w6ÆœÿÕ¯œFÎ(ŠT@:È––) Åf‚èK¿ô=›¸£4 ÏΨCSêO|Ž`ÕïµZ J ð¦+e©˜I§¡TñFyõ—;‘é¢Ú$ÛB±ŒÄ£#mYrôXQl:¹O�Ô6XFž2‡°SÌapÑ‹ªå¡é# E âw猾¿ÛàÝ#F˜=]ô$*nE`ê˜ÒŒe2zÖ“€”—‘Z"‚éš (#˜œ¿²K aÝ 2l¹ŸE‰ £¥\�¬wÔf4GùT ¿`…½ð%±:µË|ÌRæ;ˆ'±Qêtv"ذ˷8¤¸”fâÌ>)òG–Ž|жÁ“ÅŒçÜ…ú§Z­¦®w…â&`Ë**³Ñ³ÈäVÓ0 Ö6”÷Ý¢ùÁ–¿�Šé÷ßgAŒûyðzÁ|ÃrS« ]‡$Ö›"'Ån‘îpüK|Ýoí&Þl€qÒh3›ÁSjü¼(å=dz2_xº)…îs|›Á¬f‡ÈT�•dò±°äôìhÊYH鲉Ÿ\ÓlB¢$êÜ[o)wW( ‚¸ã�%#[j?Æ&ãóu3éZkL1¥V Êg×aÓF&»J­Mž¤blû<>eÒv|07³­ŒHR)»>›Õ)Ÿí‘±CÑ o1…�1rÏ|¢Ìû›N²³[ HÑLˆV ¬V0%]ô�AÞŒ"Ëæ‚ü“”§8¡i§dÿ™�~¶)ØK•ÃŒ 6nÒÃÍ!ÇÀô|>ï³ëP—Ùjl(Øñ ³Ÿí—ÙÎso½E?¼ð‚l…�5“Õ¤¼¬•r§M¿ 'a‹;YZ&9mÒ¡ÖÆ¹µÁÌ~¯Îø\hÿñÑ:NÉR��Ølâ*éâT…B±EÑôK¨ŒæJ‡(±UÜÏÈœô§�ï”Õ�&Ùë/-� #\¶ì^mŒ¨–}d 5˜f'HL“¬” áfÍ™8E9¸“� —�»&©;Ò2Á�e£´è¨4QpLpÐÒ»/�”]f#Àrç£Â>ö]}ð ÅmŽ7 RîAI–_ Núì ¥HËnú´`¶æKnÍ Ì¨CJ»7ëÝHG:’th3�m¾H¯•±dÆ)×ñ—)ÒR$§L¿ÖÆkÍ~ôQâÑzí@ìJ�Ì!icÄ«¤»Ø‘&}–ˆ‘TlÝÄ#ÂQNÓTëÔJ�ÌÑN¢þI>õtàÈ`ì;õ"½§l؃{‚j¤K@°ÑC¶MGÑH*/#ûqäñäJë%;Y'˜ME“…à„Ä %9ÇLËñ3[í?eZV©³ívV[k¹À,t(E¥îò·ï³o l`ÛÞ‹hŸ@¶Ï”âó-äq§Ê­=�S�T«ýÙ³A7_xk7û¡6Ñ‘óÞÚ­­M¤Kkavü�rF•:Ò‘К5‚èè-^rGkmµZ z»“hñ3IÝ"•c¼«Á®˜VI;‘¢×Lñ“VVî÷™£}"5i ÉPÙÑô�LóàOé{Æ3•b½È! 6-_zñâÂoÛ"›‡­O¥ÓÄõHà› k|ñ¨4ü‚^ü¤V|üÌ�¦ô½ýgD ž…Ö°¡÷Ìì;Þî¦IhMxû®¨ åô›Fr\¸?ID“ý$6ó‚ÓF–†�£Ë�U¡Šua-2�8&8È8ær¾ÑNf ùý&O7™2V¬–°*Ç-j=½§ÏNF;§“Ø"7¨-¢ÆVÃ|èt×™ê¸ #%4ˆ»3FM6…Bq³�ÄeM3:•ÏBO“ˆZP S )Ur¡HŒ kgÄËÅó¦Óב¨FhH3CZ;I}‘þæ”îØ„€~饯Îú*̵O{\èuDRëT—†%àë¦v�š�¤¹iÜ Âųa²s”2JANÔS®Le£Á*ž}ë-cLó˜…Bq !“E¡P(6Ó|0ýÁ’¯�?•~¦ËqR g÷7[@ö*AV�Š™SDbç³]³ôÁTì‹ÿ°¨…”,x4IÚÆ ³ˆƒÊn²ññ±øØµ$¦ž…µ‡( A“Lv–}s×À¹öÊ#K6bÒúQª‚m!kOR­�»ÕúLí³ú¥U…âvBÃã®îv…B±ù˜þà“�ÍX#‹INJVŒÑ¸ \¶…G!K—`"’í©9¡1lFf–´ ™+ÑË<»èÖE5˜ýÀx¤�»óeI*CNn6>L™ì¶M ’d¦�u'^³àOL ã¢w6žx‡iŽ”:©]±C4VüñÁ*²›Ø¢Ë$e>UêÈà+Šn�æqW(7I¾Uú‰\YúS¥32É=ÉÊ'¹B‘8²¦%aeb]h顋LjcEÏ 1­Á%çâ7 ö1H4ÙÎ ¡ 2ï aÀÚ2¡Ó$åËV‚6Ϻ¤1MØLH20 ¼.H:Fðcf­ÑNiöÈ)!ɺÙQI<M��™Q(n(qW(7Ó|À–F.#­I'1ýŽ’]¡ 6èõ¤mÒAÒYÊ#™d6 |Lé�  ë�eÔÁ€ÔM:�“4‘öOÐÅdÆIÃh˜„¤êŒòʵ¼IÕƒÖ�‰O§t›ýñÁ(wº¸Ë<}ä-dûñû«Õj>ŸgåQmúIÁô²-©çé7ß¼óÅ�B¡¸¥Q'îÁça ¯ß˜œ­ð/»J)¤`+t¤ã¸)ý•�Þc»Ñ�Ú‚—Uû˜ùðC#8ÒP¿§)_'$qGù“±1$ЬiÆI#…Á F¶X™¤N)©ß Ф°Œ­JJšA>ÍŠ¢A¤¥ÄzŠß– †`¿‚L|U+ÖbCjãaHé† N°�)Ã"µ"ªM…YÀ ²pö &t̳oúb‹Ô I>ýæ›ÖÚ/¼`n•'ø-�Ž<>nÖ‰k¡ÝìýÕÙ˜„BÊ ¶0j6^kOŒu6Ä�¢jvi›I¶²ŒLz›|(£À”«Å%kíœfi·5d7?:k¨tüžÒ‘9œ"0 ²O¹ÖÚ�MÚ7]ËLÓ!âFèé$Þ))Z�d§8˜ƒñ0Á=Ì*–A–âÇÅ�I†3xÒÞÈq(’X/ö=è™&úˆ±=6‚/:çòù¼_’+鸤ò$“uœ 3Òœn#U f¯Sp[ô}Ç xm6‚aŠVl4’ìÉ3o¾y°%×{Ê #7‡6%dª¶Ïlm(Ú\Þ,zÚg–S ‡(©Vk:¤´Õ‚„!­q¼ö'�ÕP…B±Éð d‚¬´iÌÙLr(ž„%ìc¬Û•ÞS#¨R’Yôdé$­d^Þ ¶ÁŠø—ª¤û¤q#h!ÐbYôÓbVZŒ›~Né(cíÁØ} 2ÁÖ�ÞŒtšHˆ¤Sì¢5©d±0C‚ºÃÆSžå`£lrmœÔÐ ›Q(nQˆ;ݘO7‹-ÕšAœñq�î’lÁÓßk,#Zè2[Ÿ3ý ¶ÙåìƒÙ‚ç;û©Oªe[šréj¤´•ñP me÷{uÖ]‘ñ�/¡)ÓmJø1MÈÚeÔtVÝ”]%¦CÁÔ7ÁŠÒžäP—Š1Ö+½ÑÇoB£'-l…^bäóy¿‡åfA»é5ëup<™sÝG› qBG³Pó$Èפ| kOhâc%OšŽÙç66�FE ïgçýt6¿{F?_ºÒí?1Û÷[g¼Ã§ÛÐ×Ë-<øZsŠwœç´À7²£³cÞšÀÖ6#ßhÍÓÏjˆ{ o¬6×VktðÖ€ì{FÒÌje,™7å\w¼Ý �9úøì¸m,1-He�ܺÞPò*@$I´ÇDäL é”�?©®Œë v%U%­¤œ$^›QÚHŠÊHê5)))»‰>Rj�/ÇžO–´Pmî|©jðkG¬�(-xF°éà ¦ãÍÁ¡“ PEF¦S”ϲR4ñyŠüö™7ß4ƤÓ÷-ø¤kÍ—‡H¹Ã·ï(̨CËmeDFçNƆ6ÔhiM`k:>Ÿ3š²-hÛr76Tf Þº -øqoy“ÃtsÛwZo&:>Î3|ÀöH÷!#‹lÿR|íIòj3Jšâ­LR/è³7 LÑDƃLN&D°³ä7™-‘Äû�YŸó88²iRûââ^|Æøƒ–“ƒtVªQ«ÕÈ»ÏÒÞ3Vì‹Y'K’lö7©GRÜfï ˜“¢!3�‚ J NKEF´F.;âÑØ8lA•m"ì©§n¶ …âÖÇôûï3,þdKÑkÎH^’cÛ_ ú×SÀè—�€b“¬ B’¯ fl�‘`©*+ÌtÎHU×Kg“Ú5‚¡0BüNö-U F§4—8nÒ9�Ã(›Nñ gï‚N}püÙ!FâiU.Ú'6ú +V1ñ “Ìü“uƒ}1ÆÌ�93vç�ÙR([¹æE …¢=L¿ÿ¾‰ˆl­V#êæ¢ïÏõ!W+²gV†JRy «gÞÍ,À*Œ¡(¯6ZH(™©C�i±<îI2Ys&Da“¥A6šqp¨" �Zav;}Ø"•§£¨¡‰Ÿ'ʸ!¹5 #Á±XµZõÊ'�³©RÆ*ÈÈmüµ‰o ͪu±vyÞåÈ$©ê=ûË_flK¡Plq(qW($g.ä%5#¡ Ö¨*±F°${£=ëõ¸ÁÀÓEÂ”Ò ed„lƒ¶ÑekBLÔñE…%c3q›� 8’ã$ÖË(, 1q³Á�#™`Œ ›I;Ù°øøl¹J� uÒ4Àsçàõ›B¬ïÒ"ZOUØô“£Äæú�|>ÏZ7­‚"×é$¢>8hÄÒp)wW(n h¨ŒB¡Ø@\y÷Ýå‹‘ZaAÚOÔ‰r�—ÓOâ(’Q¥Ãʼn8š N0ìtHïiJ-T>‰@3ÈKD욉¢8ÐÝKå¥ÀØ?îdB†JµÖe2P� ö"´Ðšž#ÌVIjK;-©! ,ŒrLœÓ³¶dM�§€úËQbÂ,عӧ5fF¡èv(qW(…«ï½ÇhwеäøW@kôÒÒ£>�Pš„hY—Q·  l%< !á”îP`me+¿üj€¯KLB4HÐV!ß­'Ž’‰J?7«Nò“í\˜‹Ø„�7!I:Ëe4&r' »Ô–éœÒ¨"4Õš9xjXõ$ÊŽÛX†D]?}z\¹»BÑÍÐ0)Š�…¤qè¦5[Â|™T‘ x¾Ë>)Ϩ*¶EìJr�$ž*‹[bƃl¨)}'5ÈËü£RCÆàY %GÞIƒ|Ú×"Ç|’Î(–(µQþH¯¥ªr X+AMzb1Ÿè_¤HFŠoâ'_ì°/éJ«&evI¤OÆ×™w\vÇÅÍN¦ÃºlE jR(] õ¸+Š �O#C4ÅApcK&D)ˆ²H/cS.h€D) k=é´>©ó× Y)>Wí¤”;Œˆ#X8M�óI�%O vPÒ_æŸfué�´O˜¡"¹lÒxJBÔVî”F�9×eÇ“ôiÙ½ìIå‘ñ½ïLÕò{æÎœÑ<3 E÷B‰»B¡èøù�‹{m%)A’��øhÐ}+‘ÄïÙN¤GŒ:·ÀÕ²8D�ðÇK7sz‹¾Á™²vwJJÊx!.&M0úÈF_KeL—¨ySµI8�AªD  Íƒ¢l´ç³@X¯“Nhßeœx�Ñ&šòlÙ"š¾rP”œo¬ûÊÝŠ.E*C—tçnO …âöÄ•wße{‚ÜÑÄi®±¼É‘e¢ïÖÒÉH?rP)Yrz Î!/2éœÂYƒ ãOŠW –=¥ƒ6L°9¯6 íd¦ÆÌÐÎ #§žñW*•”…³)gu¶ñ/ݲ Ζt‹ˆ³°”ÖÄíF“`_¥4'ÝùÒc¯è(ûd{ `â&�4°\TXš£éÓU¡Pt Bwåî …¢U0Öžî­”þø qA°U˜ÒwK4…}Ô‰Ê$IRÀ¦ü¸)R˜++ä[¨j�®IȼéMµ ’T„d~cD´=í—V±Û¦J¶’L !dÔIjRI2oìjn£¥º&žç‘ÌEf!�zhN°+0U%5‡Vb–±bV î”…5fF¡èFhw…B±�r_:ƒåQç LQYÀAT #â&ÎAƒÍɶZ&—’›²îûäÜþ{@´“”a‡�ÇβŽS‹,¨&8b² �‘oÆbÑOOô]†ñ`sÄkÙ ×à(Éí,ð…)ë9iÅf”�ÓÍ¢ƒœH/ƒg÷ÈÑc#O?Q,2iÊ[o£Ü¦NäŒÇѳÉ/1˜u‘qôμùf³U([êqW(�Á•wß]ºp]à¸dhÁX+Œ?e`«.�Ö’J¦Ø&U"FK:£³ÜÄù~ìé "ïâ@J�ßWbŽùàëÉà%ÃÖ5QÀ À`[A–‰9e'é“Ô‹¤&øÅMœ¼&yÜ¥¯Z6ÇÞ'$éƒìˆ¹ Q9Ô8ap'+tW³òL%f?$µ.{„{$Y—îpúIùdÐ�T˜¤Ñ©g×ZôÛL EW@?À¤P(:ƒtÒæAsºc¬J“t‡ñ°¦¬]Fº#‘%ù’Q¹xà8ÖÍN‘01þ„Ü‹‰%hdÙ­Å¿{Ÿ2ìÄeI:#ÓÊ'µÈ˜±d±$‡|í’v³ÂI=¢~±ô>¬°�'«aÝ¡�dœ$�šà0ñ³œò„’Jxf�˜´Pg‚T h“Îl¨Ù© Öjja*Š­õ¸+Šv!ó?$YdT2�å39Œ©3:ÈZdòea¡5‡t ��áN¶"aâ\“õ{a£hl“À·deï$;fAÁF“º™4€6%/ÕHgŠÙy$õQ~Ø -4šxè´ÎžÎ²)µÍÎ}ÙIDU Lö�à$�~°iyíuº+[JÜ E[¸òî»’øC’µÓN–ç.ÈY‘ã2áì'%ca|‰];L�IF~ ³‘¼™ÑzÚ))»ô(3“ƒ 8[›+Ö¿J‹") ÷0™rðÄÉòx”YY@—·t6#g  AU L¶${)]aFš©»Ù½ìYjuÄÁ“¹ ¹Ûýb”Ý¥~˜ÓÄÝ–Vd×f%ƒ;±Qü´"˜4™Ü�â¡`,¸tä#c–,™ߤ))vVDæ³Gú+å¤H¦�,í  ãß8Ø ã岤m'#ÎëV©Õj.Å2›wJC"e˜nM ³Áa…)/¾…¨¬BÉï3ÒtÖ_’´«�xEÐÃàý9Å;›ªPìggoP)µÒYDkhíAÓ‚„öIT :´Vl3‘�µp¨µþnZT…sùcO>Ù®t…Bqûaáüy|Åï�…DÐdQÈ�¤´$FŒn¢äÖ’»§(–Ô"}B›0@€R:‚{¨Œ!CÌ�jÁ¼ìÁƒ®qÆû¥Â.LfA¹xv¦ PFü‰ƒ)9nð¬‘p餗’UGÉA{£éàK9¤0óèc™Ç¥·’bŒ±¶X藍�•‘ræÎœ;x0Ë(ŠÍ�w…B±n\†5©&î™6o“ßî1!î+Á"ÈMYÂuI¿2t$úèVgL=»ËÓÄ9¥dÉR1JŽ*%gׄu“z„Wk ê4P,àGžRž…ˆ�žFpô¤Î&±Xäýl$QU'Œ$Êëð`²Î¤qNï&ÚÁŠ)’@”ÝE L²rw…bKA‰»B¡X Ö^üÍoÒyÆ� Y̲ˆ“qú ùsñ¯#µC:åW–Lò*O³Î@…$¦•¥®Ü‰lž˜n:k’ÕµMï5é“ÔzP,M Æ•M2QFnÍÂ*ŒÎ�6j%ÛmÚ©`±V–ú°R„R ºàå’îË‘1ÊÝŠ­]œªP(Ò�3¦˜Ïç«ÕÒÒRyyùü·ßšøB7 ä@È¥’@ųæ^d±%{Áؘ$ëÔ)¶Pn4%I²JSU³t$¨ �öù¤jµê—3zׯd�l‚g3ÝçÍN„|Á’Dš™|™|=‰ÍKkÐ ~XÔ„X8Òz2pûKrZãÜ6þšÇ çsÊG X¬5²Îc{RÌ$ÿ÷ì[o9ç¾ðBË�*ŠŽ@‰»B¡àÈÓcm®Z­¬®®---ÎÏ—VV*kk,9ŒÜÎE!Èò°v—�‚Ý$Pö¦Hr0Kó€(‹ÜŸ"<»7�í§ºA å !áK‘éW7š(øÄÀ¹pQN"|HÓ%³”­i±n—¤ëB’|$;¨ -?ebq¾¥�ckY€%Í�”þJU™4L*oŒñ½Î4|{ÐÔˆ’ƒ�4©Ò�¶MPfûÖ‹B¡è,”¸+ cŒÉS°¶ÇÚj©TYYY˜›[^X¨¬­Õ*b!Ä=�LÈeˆŒf!ˆo±’W7&!é(é#%ddÛL‹[HââIï%’ÆD¾^0 Œ6ehÄ�b•$–$‹R §¿llƒÎà ¶hEÈ.xÊHøI&² eŒn2oº‰H9½…`ã ‡¢¦}.K9>¸A‡È¨ð] H0ÊlW—<)8 Ái–"�š Ö••<óË_ªÓ]¡¸¹Pâ®PܾÈ[[ÈårÎåjµÊêêêµ¹¹ÒòrµT’NÇjµÊ¼nN–xH(í7q�f:%E6#[aH9JÔ—~JvâD2>©•D¶Š“”Ï¢ySþ”�œ¥´‚Ÿ)¥sAdÏH’�á„��?‰’’´¦½2È`ÚMTØ…>§j—•s,¨˜mꎟýJlÚBzSÖ 6†èÛN‡lt]”ÝÄOEM/.-&>ûÖ[ƘÏ?Ÿ±Q…BÑY(qW(nGXcй\±RYž�]º~}mi©Z.תÕ`0´÷2Ê%›’Ü»(<³t™b] øæe�9a+Af“N1mr Œ¬ÈtÐ ³a ºŠ‰wÊ”ê’z¶ÆË©›¬:öÇ™Õu¡¤òŒõ’(JÃø4�mäãާd®I§Ïž¾ ó[”¤ËM‡�=Ìåor¹¤_ –nëf¤ï­!…ô']DXr½®}…B±Pâ®PÜFèÉåòÆä*•ÒÒÒ�™™Õ……j¹ìj5$ÇHé9-ygWFw#ýD¶Ä8z%%Q“nà`‹È ™GÍY{mâÌN’€UØ÷/ÙPA›h`¥Lçp¨g09‰”ìm­Œ}a/"ä¹À>Á€ƒDªÍæCPgDзÍ7ÊlJv™žR, Éø~@ê¬(-C:ƒ9Ö[Y/›w¡9àÒ’d?Ùu‡s[cfŠ›%î Åm�¼µ=ÆÔ–—®__ºvmmyÙD,Š‘0�,7ÍX;ÒF¹°Œ q5éÀf )È'hI9Q¯IÆ•¦’&),©›”ï-ü ¦‰Û)]“}¤!E3 )_¤b’«I³4<‚©]¤4fY1ý1`† ©$µÌ`ÀýÌU�„›i‹pN¦Œ€<ïM‰2*‰�aüèrüå0��”Ye­Qv+^ã4u¥£nxv<Ø’…BqÓ¡Ä]¡¸•‘·6om±V+/,ÌLMÕ]삾¤o0_,AòûM)—d‚µH”…±™”ˆ Îû5˜JŒ!¿L"=’KŠ& ±$Ó˜ã�‘Qi~9[-ìH:ùcQ2ZœR6aÐäÀ¥”b%8òLRvš’ÇÓˆ±þâO¶“™R’"74Fús¹œ_ºjãáRrxý‰Ãtìò]Jº]Ƕiƒ^û`‹Y¸»l‘ì:ªÁî ÅMAƒ¸g¼U)ŠnAO>_¬VKóóW._^YXðùaÒɨMÈ…GoI¾“ü²r=Ÿl]•Airƒ5Íì�”Ñr>¬eã+S› LêJ`æ[¿G:5ƒwc©•4]Ã…•ŒAJ ÒV‘cË(oÒ€ø ŒÕA~)'’\c<l±„‰,6þL=ié1¢oâ³NÎ<‰²9©-Í4ŸÌ�t“s¹;&ÅN'ù“9™zS ¶RcÌÙ·ÞRî®Pl&b_NUâ®PÜÈ[[Ìåúœ[�žž={öÆ•+¥ååZµšâÀ ²v!) E:áLˆ=š¸�+]ÜËÔh ¦F’!�ÒÔK-ebj¿`g“¸8í÷ÎZ¤ï.ž·¹]-þÍ×à€�3ñe tf›N Ü#K½Ô²$�§œ-t®´?Ð�C'· pM©¹Üvñ¤@² ì±Q ÎR¶M'…H?¦�Çé�@Q´Ólâc5L:§þÐü¹s£lŽV …B‰»BqK¡hmOµº2==}úôÂôtem­V­¦\Æ0p);ùŒ%­ ²®`£’JšÈ �|¿³©7Q__®šR×Ë—éêM|(ˆº![µq/rpù7I� XpÑÒð” Ü$Pê$žMMcI4<$³|âQ¦R–Sƒåƒ\�ñì  ë2 IégU7q2�çÏ,nHMš>@Ù)c_B5‚ ãϦò±V°ã)±¡`E©íñ½˜;sfìàÁô† EG#îF¹»Bѵ(XÛç\ivöêéÓ 33•R))à[î ²gâ¯èb4@.ƒr‚ò™�$R%E£G�À14“œ¢�‡m!�Æn:«nâ X …]”æœ)&7°Å¦¶Š4\Ü(J¹±cƒ�­&µkâS;Ž�:l4P>;&>’fZR¿Øt rPê»U¤¡z¢CŸ^’s8 w§¡`s5ŸÏ›Ð$gj¥!�fû�àßIåMÂ`dÝ%XV¹\îÆÙ³êwW(6º8U¡èzôår¹ryifffzº´¼Œl)%Û Û–�m–·›v& Láß’�2™Œ3!m ŠB†ê Æ*‚Jpà •¥òŒZyNÙýXyd¥Ì�ŸÂ­ƒ È*Ò–ð`o ð3¿†’(•Çt–ØÁ¤¾3Uéû¬Rj‹>ª…ª¢Ø_´;…²ÁÎ� ¾L=Ì~cÁ”+_�Ð)nÊÚQâÁÞÀq²$2ZXX¶Nj§d�ÄÙEã#ß$Ý= ÅA=î E·ÂÓ›Ï÷ÕjËÓÓ³çÎÍÏÌ”×Ö’h {КÔg­ƒo³x6«$ñZ¨# 3q6†å¥zVxa›*ÏtJ`Ü”�òg•ˆe€AîÈè;óY²VÒ™PÐ2‘¾UÆÔi'Nš£1€] ¾pñ¸pÖ¯$µ©® åšÌþèat<‰Åb¯±€ EÏ“nr qi.›Tò$iŽS"h­%‰’û³ Z° žSÒ7°ã’¬'ÉW§»B± ¨{Ü“îq …b ÂS´¶P«­ÎÌL]¼X^^&·%^ÂÁhfI ™pIï‚ÅLèv�^º$êÉÂÍY+¼zÜ™©ãÑ�Œ>ݤêÌÁ‰maæ;ÌÕhâ®V¿ŠÔ…\ìrˆ$'–ŒihzgY 9“LÉ8nò³éaàl"פ÷~³ 0ùHvYs(�eC§ºA£‹�†ƒD“¬uFOÉÞÀ�ûš(R…&}Îø¢ÂëeíN“,ÉN(�Íô1Ä)$eC'gcP¾ÏîîÄ*v…B±àw£Nw…bk£'—ë3¦6??}úôõË—K++ôÌ6q¤|¢cI yC ,; ²1#8yè_t †„Äo�£ICás)2¢Ã”Ailñ¥ä¦(œ(Ñ5U@ââöfñ*ÁwÖëà9jJÁšÞÆ“H£ì^á”úÃÁS–4U°E&œ#c‰ WºZN3¦!«ŽgYö"I Y¿X[”€H•ûÙì L:ÔtÚ¯»�IÕ©€:ÝŠ�†w…¢›Ð›ËåVV®ž:5{áÂÚò2:‰Ž¤shÉ�pÛ�#P2ÆØäÏ W@Ç*1'¤Gȉé(#@$Vr>lZ®Ç•íN"7Ra4�¤�Ó‹ ¾Ü@õ(Û7{Av‹Ü$…¨;#¬/)½3ð`F`°¤”ì#mÐìÂÄ£ÁsÁDÉ�´¯d²|®IºÉ¤¥ Ÿ2Õ:£¯I� ž>6˜¸!÷3iÔMí,¦BÓS�~ÔW× 3 ņB‰»BÑèÏç‹åòõ³g¯ž>]^^®V*&þ]òE>˜� .Œ™‘(IP°<þ”�"HiTêéâŽj#¨˜ %û *À„§ÓhFF“tC†J˜uDVLQ·™' \"L=%#ͯ45@:™1\#ë„ùÄf¾LÀ¡×³žô‘|ÝFîgêH’#88¨*«‚} jËZ‘j`»Á£&tIÞ8{V¹»B±AèqOVݶf@�l„p†ÖÚbÛW¸ãv)¼VÍÂR¤eW#¥V_>ßëÜÒÕ«3gÏ.]¿^«T0Z€2pK¢f€-,kâÞYw3!6î‰d ÏÄù+#{$—<&mÐ_ÔœÉLâ¦é;“ ÇyvYöWSƒb¬eïRúÈì4!°¤\Ò€%ãüIê égã`!–I2à$^‹?ig0©9@6™ÓÏ;v�ÍsY Ï)†5�9)d:HµÙø kgó<‰š3±¬Œ[;átG!x‚RFÛ�yã !fP7ªîcfnúÝ^¢…‡]ú#£‹�±ïçGûnhå]®³Â³÷”N¦¨µqc±ò[@ösßYU7º¡¨gövoú5–ôˆÊX8¨RJ•¤Q’œFŠ*är}ÖÖ§O�š›šòáìŒÙèËêIšI'éär¹»"ÉÊǤ?ãî¾¼\ë™Ä€ ¸?±�&•I9ò(K‰Ê#£µ›‘$ßÄcÜÉqî÷�+L<*'pÒ¦”A“�å j*„±\ø6¾ˆKâϦ—dp|‚W^ ²»ÙOiù•´¿Ê¤þY.yJÁI¢RðÔM)™ˆ5Íœ Éfò›ÞNƒ—^ L85�þEÕ-Â[k÷¦s�Žc½Ï¦�@G¦Dûµ²?Ü7T¥¤åqoz�–H¿Û& MÓ{tS5²Kh­­¤q·©^Ÿ8_ÆvÓ%¡}®™.<åÊoA=&-IùÖ.u6“ú›r(�fÑA¶ÅŽöärÅrùÚ… ×§¦ :›8«¦Ù¦ŸAž�H©“f{<½è)*Õj¥R5b|˜""Œû²=ò�Ï$Æ@Û’eJb!!Ù$½¾ÀŠ6n!àQÖ"“Ƙ7‹-Jµñ§Ž,“~©3[éâÀ¾°óëâæAJ¯©³>ýFõ˜Ç0Êg³ˆÊÔj5JÿÂ.LdÏx²ðJañì0òMúàX¥ÜÏeC¬ÿ2+–Ä*’0¹¸"G[B¾Î"9x•±õÙ8Q“¦qpÍqðF-ƒÙÒuÎβHkª$JÈ¢’|eìHûHécÆaIylo˜FXÅ­�ކ";¡Êȳ³£!ÙÕccÛ¾zú&…bË¡˜Ëõ8·23såâÅÒÊJµ\f¤Öÿ¤¤„&tß ²v¢¸‡@™øê?­�œ{ŸzâþÁ�¾ÿýo~ùóx�Ñ#l×ÄI°@‡ä§ˆ‚£|jJ.›T]R7&IIÐDÄCé÷wäIIZ5ÝÃsÒ³/Ijжµ¶§§§··w`` §§§¯¯¯¯¯¯X,ær¹|>_­V�s•J¥T*­FX[[+•Jår™$àâ$Ä)a¶Nk©#ÄäŒÄÝq4p¦1BoÄuÁ˜n’zt¿¾”ÌÎ)ªA'�­Ð‰C!t�HÃ@NÚൖÞ"Ó–æ95Gó™½ rq·½ìr Ø$Q(‡ýÃÿéºÙ:l8Z0³ºå‘b£·`”Ë’mª´Obº÷¨I]cй\±\ž>{vñÚµj¹L¯ÑQ2ȤgyEÅ�þs5:ç …üî�Û¾óÈñǹçÐ�{‡‡¼6gÏOý¿ÿ׿þà£Ï™4¢)¬u²²�j"¦ˆrÂ1Éüš¨d�•¦Ëg� +ƒúd1-äõ•¢›Òê===Åbq,¶mÛÆÆÆ†††FFF{zzzzz¼Î•J¥\./---,,,,,ÌÍÍ]¿~}nnîÚµk7nÜXXXðäžµ"vp„“4§á’eè¼P˜E�²8)Ü€ïП#VXÚ,†„8.]†éý¢2lM*ÓK:çòù|P,«NeššL8s° ø $cRx’ýÀààÓ]ž^‚YÏõ%¤e RH�i7»J·ÇHBk,¢}îÑYö’~r[ %ÖÚÛ‚¸+]kí@>_¾qcêÛoK««ÕJ…ù½LùNËè2ãëA™~>Ÿ›Ü1þÔ÷?ùؽûöíd‚�±Ÿ}~êÿûÿù·¿ÿÊÄçÒ®Xk–ÌȪÓ}„r]&�nªmS"h\i:º?‰ùÉøŠÜÈåržbæóùB¡àw …b±è}ꃃƒÛ¶mÛ»wïwÜ199¹mÛ¶ááá¾¾¾þþþÞÞÞB¡@oTªÕj­V[]]]^^^^^^XX˜��½råʹsçΞ={õêÕ¹¹¹•••ÕÕULLp9ke�ôYä‘^C ¶ñÝôÃR(X :j"§>Ò\¿'…OãIÐÙúѤî°A`á1¬Eê)³ØâG£˜n¬�ØYŸŸ²N³”SƒLÂLÆ› 5„™Žˆ»+Šö¡Ä]¡Øè/ ¥Òì… ×§¦j• =ª³¬€ô�$•ñrÆE\¬BI '&FŸ{ê¡ï>÷èá;÷šˆuPUÖô7ßžÿßþÓ/þé7û§5£YY”Gn!{A¼6èê#ÆÀ"1Épñ¤.Ij%£ì$¨ª%GÞBŒÁƃ.PýÌç󃃃£££ÃÃÃcccÞƒÞßßïãaúúúFGG·mÛ¶mÛ¶ÑÑѱ±±���¾¾¾ÞÞÞ|>ŸÏçmäT&nçáOSµZ-—ËžÄ/,,xúþÉ'Ÿ|üñÇ.\˜ŸŸ7!2Êa ¾_kÁÛ�4æ Œ’20SÇÂgˆŒ’’x…3Ø0 &žý!9NÒ·‘è³eCR•R �Fi–ЕeÀÚ!"Žg–…Ó˜%L¢ÐØÿÜsIª*ŠõB‰»Bq“a­í+ò++—¿ývùÆ�J¥bšW¤‰)z°€c­dêÁ†¯\½öÿòÍ¿ý»·Kå q¸Œ:#]`Ü);ÑÖ)dÒ’ò¦˜.˜�$…Œ|')OÛ2“ š¬�m,—¨"ÃóþuïDß±cÇÞ½{wíÚ5>>>>>>66扻w´÷ôô ÷÷÷gùt”Ëå™™™“'O~öÙg_ýõùóç/]º4??¿¶¶V.—½«žx?7¹<ùk XiƒQ6J&N¯q�ãæóù EAüך OR¹56a#ÈžâœO ÂÂAˇ[ÁW78tÎ9ßAúIeèTbh¾¼±¿ì’ÁŸ¾ØÏ>›Ô#…B‘JÜŠ›‰¼µùüêõë—Ož,E_Be�ÿtàC”Ð`ƹáåSvh°ÿØÝž>ñÀÃ.ò&ÎÁê—–ÿÿŸÿþ7§N_lª9ã²)–Û&îâSaJfoÛC Ì6H’,ƒÊpGþ-­ˆ 2øjÉÑ»B¡à‰øöíÛ÷ïßàÀ�ƒ:thbbÂ{Ù{zzòù|±XôÓ<#è,/_^^¾råÊÅ‹¿ùæ›Ó§OÏÎÎ^»vmaaaee¥\.¯¬¬øõ¬¥R‰-8fÜG ÝŸnµâ [ˆÞ¦— ,Æ]¾`¢h?IF,Èþ3¾C@±ÞÀ¶,Dϳ*4¾_”ò•ô‘ÅpÐäå`ŒñÁô¤IµZõÖ ÖÅZ8t²]¶“&?»·Ð¶w…¢#Pâ®PÜXc‹ES*Í]¼8séRµ\–N,“ì Gc9I±Èa²sý½wÙÿê÷ŸŠ5gMLîîé‡}ðè¡C{úûò¹œ‰ScL#ºÝ»Øiw£�³&‘`�»på£þò£ß}õ»�¿^Z^u ¡Yï¨#I%e_RŽYµKXJG%ÏFÊŽ”EšOé§ ù�žÑb±822²oß¾cÇŽÝ{g:xðà®]»7ˆ ¯ •Jeqqq>•+W¦¦¦fffØzVé¢fËIq¸hºJ®ì2;5¬<žù3(ÙBl Ry¦*¶•BîO²¬lü-Í+%}ÿRˆ4TØ!š½A²n…§#ÚQ« ð:Mº<ö=óL’…B‘JÜŠM‚5¦7Ÿï©Õæ§§¯__š›«U«ÕJ¥~TZàFGÇŸ6Êä€Ïï`¦Bç\±X8x`׳O>ôÀ}GvNŽö÷{â_upÎÄH€ô²Óo‹…¬±�w&Фq‘2_~}ö£þòwŸ|ûég'W×J\b†˜ò¦‡¬—‹ê’$0ˆ¸PÊütSÁÄÏ�‰ŸAvNˆõööîÝ»÷ž{îyøá‡yä‘Ç���S°5:ko:¼ ¶¶¶¶¸¸xýúõ .|õÕW_ýõ©S§Îœ9síÚµ Lo–¡…DI*Œ,3HL‚äÒB K°ª‹ìuKІ7!@¶ËpÐ2 vSÓ8çH i…²QBÉlœeëL%¢ï²®ì)6ŠÖ©´ ¨˜rw…¢M(qW(6ykû [©”oLOÏÏÌTÊeþo|âó’=%q¤í”íòg±X¸ûèþ§Ÿ¸ÿ¡ŽNNŒõ÷÷ÅüçuŸº�í w´;Sgí^‚#w½‹—1Æ”JåßòíÛï~ü_ùÁü²¦›:œ‰çlCBé’ÑIo'“Ó%ÝäI'ŽŽ²Z(Êo‹ÅþþþÝ»w?öØcÏ<óÌÑ£G÷ìÙã?œÄònø‘Õjummmeee~~~zzúÓO?}ÿý÷¿øâ‹™™™¥¥%_†�X�&‘Q49²d�"û2)IÓ]|qg³oÊ}I”l% EÁ€Ñ>`´jdw‚½Káß)@s ­bv!Èû� ³(œs0£P´%î ÅFÁÓ_(ä«Õù«W—ææ–ææª•J-Z½'©$Ò>t“KƉOkÆ2™4ÄðPÿý÷~ê‰ûï¾kÿÄö±Þ^¶–‘äQ4L ¦^ÎÔ ÕÙy(|¦¡GÝsïõaV�1‹‹ËñÿáûOÿP*U‚°/dð�6îegÎ?ÑÿF³d`+è,¤Á¬Å?xIg‡õʰµƒ¬C’166vèСçŸþùçŸ?räÈÈÈHooï$ëAøSS«ÕJ¥ÒÌÌÌ—_~ùá‡~ôÑG_~ùåÜÜœÿŠS'f|=xYo/§s�§†Ôcåƒ6)€ 2�¤ü™åm°Œ“rC’uâÍDëÓ³mJKU Ú02“ šLAãÓ�ü}ðJÜŠ6‘?öä“7[…â–‚µ¶/ŸïÍåzªÕùË—/}óÍüôôÊÂB-ú¥äëÄõ Ò;t$3° ½wÎ ô=úàÑñÇ/ýàå'ŽßsçèÈ dŒq±m7ÖXÏÑmÝÑNÎõæ#Rÿk­áÉàmOOáчî~ö©‡~û»¯nÌ/±‘ÁíÚ!)¸‰ -äEÁø"c팬S1 G&`1ö936Hl>Ÿß¶mÛ#�<òÒK/½üòË>øàÈȈÿ²R–Þ ðc›ËåŠÅâèèèÎ�;'''ÇÇÇ{zzÊår©TZ[[3r–§wYú¡ƒÒ¤Ñ+Y;Ú#h.;}l>ÈA�GQ26ê¢ÉR=+"y6^õhW`¶~Ú´‚cˆãÆ®;¶ÁŒ1êZÐ&ñM�ìß/U(¡Ä]¡è$z …~kÝÒÒüåË—OžœŸ™©¬­¹PqFaL™¢‰{Ü‘bzàø·§øàýGþ›Ÿ|ïOÿøåÇööÃQgŒ…@ôDx‚.‰}˜ay{ÿ^×I”‰T0Æ3>6üò‹�}ôÏ_Î^»!ÍäǸӈ¡`Ãkâ#´sè¨O$XŒñÓgDÙ!ä1è§ÄVãÏçóÛ·oøá‡_}õÕ_|qÿþý”ر‹ˆ»‰Çnår¹±±±ýû÷ïØ±£P(¬­­---•J%–S<ÈÚ%=5b(‚Œ<½ PvjpÚÈTè¬L’X&0‰Á3 ȼٴ ‚—ËåóùžžžãÇ�û¯G9ç>ÿüóÕÕU¿Ò7øN_N�É×%™ÆÉ`ã>r§³T^Î%–ÍÆ†¼ÚÁ>ÊòÁyˆm ø˜{Ù(íL1‚L�mÐpÈ8¡!ÓÚH•Ø`˜ÿR ßP-þùä,_¡P$<îŽ%‘P(™�3¦ßÚêüüåo¾™9~mi‰’²{0®‰sÆ DÐÙó2¥°ÿ;11úê÷Nüé÷Ø=wöô°ˆ‹pJÇ"µ�Z±'‹ØDôôž~ò�Ÿÿû+«kÄ�3c,©3m3î"Y86J©x „¿AÑH²I¥w”‹]º$MÈÇ<88xß}÷½öÚk/½ôÒ�wÞÙ××wkÐ |ß¹sg±X\XX¸qãåzGÈÄÇJZ¤ðc )Aq�dzêdÈ< ’µ›Ðôp�fTÊa­àPXˆ�‘>rì#•Ä.›øô–´› ¡FiVã~™Í-^ê2é€ÊSC2à ©1îœ:ÝŠ•¹% ÅæÀZÛW(ô9W¾~ýêéÓ³/®-/ãÚS¿! óÃINOSFÙÙ#}–äWëëëyè�»þõŸ½úô“ìœ/ Ö»À›ÅÃ`ûr‹9ë÷ çoQ´M‹”=Vm` ÿð�{ÿWo7N=¥ÀhuFЃCŠã�cP%?ƒT^Ê—‘A³JÂZ;88xÿý÷ÿà?øÞ÷¾w×]wu©£½)z{{ÇÇÇ·mÛfŒ¹~ýúÊÊÊêê*šdälHƒ ù: º®eNž¦e‚3�š “Ìl�…ƒ=%á”ñmÈ © ‘"Vî‘L™7R™}’Õ5q›J^z~l=Lü~¨Ä]¡h"Æ]¹»BÑ ÖÚ�|¾X./]¹rõÔ©k—.•{vîêÕòꪋ³º‡k¹4À/¥‹�Â*´s` ïÞcwþù¿þÑsO?8¹c<—³ù´÷“7¹ìqt½w‘1°ÖŽîûzͤÚ÷=ðW?{«Z­¡÷Ô‰Æ++ä4†5qš‚tPò¹¤l;Œ’ŽŽŽÞ{ッ½öÚ«¯¾zèСžžžì¢º¾Ë…Baddd`` X,Þ¸qcff†øâP£§™Â¯¥ÿÛÄ/vR䉳qÏ·Iˆ¶2©çË#‡–%Yu$ÙÈt-$–‘M{¸xHºÙf˜nrbÓOL%Éj1ÝHŽoÚSvZ7‚—ŠÂU%r4\ü£°ÖÚ…óç‡ï¸C–T()Pâ®PdB1—ëËåŠÕêÊôôåo¾™»zumyÙÅÝ·é@Ÿ1>Ù!½ßi"9´œÎK(ò‡ïÜûúžúÃ>·ßÎÞÞkÓY{Ý»�)™c� G¬ÝÇÆdZÃ<øTÞ‚ÜÄF‡‡—V?þô[…µH'}ÖÇ #‡:±1üú >Æ3‹ˆ²XIø$eL2�ö÷÷ONNž8qâµ×^ûÞ÷¾wäÈd?·*|}¦È;vÔjµ¹¹¹µµµÕÕÕtâ›Ëå(G>ŠJ¡§IÒØQ›ûÁíé.Æ€ƒMXa3»L Ya‚âhøZ)Ù0™¯=h3àǤ�»S»ø™*ˆw }I²‚¬—õå•»+ë…w…¢ ¬1cŠåòòôô•“'¯_¹RZ]u¡é$$9nýWi�@Ø(½ŒÞwz| -‹ÛGž~â�?xãÙGºgÇäXOOÑÒ—‘â* YÏëÑG™šºð1ÚÅ ,+šØb„ã÷ÜùÿòËåØW™ðËG<²2'�sί:E$ù��& 8±É“$ >xâl”ÈWÞ½{÷£�>úÚk¯½üòË{öì¹UãÚ“P(ÆÇÇûûûËåòÂÂÂÚÚZ¥R1¡e ÒšEËÊ„xp�£LFÍ‘³byI噿!ƒì‚Q.Xu�…‰s£Ÿ[êƒUÐ :汃h=s(e÷^vÆïƒ4�µEì߈u ¬–w…b]Pâ®P$Âã¿£´xéÒÕ3gæ®\)¯­Õ -c:$ÄC¹Neè�t÷Ò“;ŸÏ� ÷ß{Ï�¯¼üį>}àŽ]ƒ}9qñÒrÑ:÷nS¯„+MIf“ª³òVä3e«W]ùƒV�Kø`–ï—¦—Q(Ö%î EÖ˜^k åòâÔÔÔ7ßÌÏÌ”×Öª©”�yÙÓÑ@â#h%–d;ï´Öôôî:´ï�üÂ�^}æÁŽ ö÷årNÞb’N¼Ó‰{, FºÙ")ö¦îÎO ¼Ù=¹ýÿ÷Ó7£z Ú5�.,P)äJ7!:hÀˆÂ£x–™ &Û*‹ÃÃÃ=ôÐo¼ñâ‹/>üðÃccc›ïkO!š›Œb±899¹k×®‘‘km©TZ^^.—Ë2_�‰»Òi™¨¤˜Ft–~2fI;‰gØ!òoªÅh±ì“&O ±gë¾ Íg+23J®�š³Öicu,¼ì2ñ{òþà02É‹.¨ß]¡È%î E ÞË^¨T–®\¹zúô�«WËkkA@>5%Ñd�pIò¤;ÐÀ/ŸËõôÝy`÷ŸüøÅ¿öÌ=GŒ æóù�VÉäÎ'q�|êÖ6ø6VÊt ð›@%Iµ©ê¤ßpÆÇ‡ßÿè‹K—§#™i_ºa.ÃH|؃‹U�ÓH; 9 ’­ªD‡ü´ñ$õ�øáøòË/ïß¿`` h!tÔ…jµZ*•–––|öôëæççVVVx,edˆ5:øN��“bDZwæ6¶”ÂN¥�Öb2VͦñWË7q]&Îô[#9Æas¾ŒŒ O‘€#“4VN, Å’ôæ¯ÒÇåøÉS­Vóù<Ù®ìÕ„jˆu\¿¥ªPd„ørj¦eg Å-kLO.g+••ÙÙÙ V«•ŠÉÆfáÃ�kb„6î�cå¥[ÎÀ£wdxàØÝî¿÷ðCܵsÇx__o¾þ8tÎ8ů§ëh y¸M#pÆîf·Á ÚéŒ7œ±¶á~o„Ä;çÒG/m‘ª3Î|ïÅÇþù÷_I{ÆóF/¬$ßñÖxpE­VóÆZJÈæ Tø“Š¡…F|-½‘‘‘Ç¿ôÒKO>ùäîÝ»{zzR‚�Û�‹VâV«ÕJ¥²ºº:77777çÉúÊÊJ©TªÕj…B¡¿¿ppplll|||dddxx¸··—>wºiô=—Ë ß{ï½½½½###¹\îË/¿\XX(Gß/“YéÔcpÑ*¹x‘ná?F~O{¨€s“Tâ~¦›cLOl�±UY 9.›œLMW,ŒdHØøÛI�™‚dY2 ç6Hú±ïøí[ ”Ç«,éÓ¹ …"‚¸+·%rÆœ+ÏÍÍž?¿47W)—ƒ®©àÃUn²ˆ * 3â¬1ccÃ÷ß{ø±G�9¸gÛöÑ¡Áþ|,ÄÂÓæTÊÞð²×›�vFYey±ËÄÔÑËÞ é ùušn “ô—^xôÿñÿü‹*¼åGû‡�˜¤×ì(¹ éäâ²TÆK �!#N+ÀøéÐßßìØ±üàßýîw}ÚÇõ�FVXkóùüâââ¹sçNŸ>ýí·ßž9sfvvvqqqyy¹T*y{¡Pèéééëë�œœûìâÅ‹D(‰5Ò6f"gìœØ$¾BaÜ�.dv¢ÑĶdˆ‹sƒ™…Ø´ìÖE‚N3W¨câTÃ�Œ‰ÙÞ5NÓ•]S¤€”ì)�*¬ÂÎޤ‰_¶ …¢)¢{t+W…âV€u®hmuaafjjqv¶R*ᣠŸpòáJBR¼|f3Ò)½€¹œíé)îÙ5q×á;ûα»ß±}|¸`TIQ嬇1Î ®ùøN¾º”¢h„þ¢åØP4Wˆ ³ñm‡¿¶o=~Ï�Ÿ~q V)jÂ84;qÄÔ%¿OK,LùK³¥P(>|ø…^xá…Ž9²qœØ9·¶¶6??åÊ•o¾ùæ÷¿ÿý_|ñå—_ž?~ii©R©$u­··wlllÿþý÷Ýwß±cÇŽ=zäÈ‘�;wöõõm—rÎ =z´¿¿¿X, ”Ëåééiâî¬<» =ȧkÄײ(–ƒ’œ˜ø{0ï¹Ç„Eh6È;‹äÁlƒHm�øšø{´}/ˆ¾›8F¿8Öe?}ï¼__ëQl:2i“| 0ù8ìr#9ÒŽ¥E>^yéȸøöÛ{Ÿ~:I…B᱉ΕXí–·­Û×6é”¶®Â]Ö£-Ù‘¼µùjµº¼|mjj~f¦Z©PlL S—Ä‘­ú –A0†Gû½g­··gï8zï=ìßµ}ÛhoOX2“ÛÔ×îkF^öĪ6<3÷YÞ+íâÅ]]lJtM:XE'�œxüÞO>?Ɇ “I 30@GRNJ:¤=À¤!åòû½ù±Ç;qâÄž={‚z¶çœ_Ùyîܹ�?þø“O>ùÝï~wúô饥%ƒ$‰ußk;77·°°ðÍ7ßüâ¿Ø·oßC=ôÈ#�;vìàÁƒãããÅb±P(l(ƒ§‘™œœ|ì±Çœsׯ__ZZ*—Ë3câ.jâŽ&Nß=ü<ñËÊ1[Î_†"…|Oúm<Ë Ónƒ¡YeùeJ1ýôÓ©©©µµµô‘IAµZ]ZZºråÊ·ß~{òäÉóçÏŸ;wnzzÚ“Ïç …Â†&ž·Öú¼™£££µZmzzzqq±T*™ˆP2O6m ‹˰Œ‡FðBü™’$^ÆÙcB”C“DúÔIƆK¸G.Žtœ ì/…ÄPÄò \;x*ÿÆa‘¶ *)CÛ™ÚVXÚx:¨ HëÞ÷Ȉì´$c»¸)z)?I`ûh�$•Ì8˜›éÈËx¦²Ê(¼}õLò\²V§*n#¬-T«KÓÓ³.¬,.š¸ƒ<#eGçcoÞ·$S ’cldxp×ä¶'¿÷¡ûŽìÛ·³¿¿§X(äl�Ûæ.ö˜Z¾Už”1沯ï l1XJ6㌱ {´7›^A/{¨fÌ·ïóÏcœËår�<|Ï/þñýàÃÞÀà#™spr¥´éwQ‚òP2‹+ET.—?vìØO<±{÷nFS:çÜêêêÉ“'ÿóþÏ?ýéO?ùä“¥¥¥Î6155õóŸÿüÍ7ßßø´øºÑüœÒ¡T/>’m‹ã¹^­ÍÅÊ‚ ÷¾‹œù6RÄW»víÆ;ï}"­#ädÈÌ0ˆ6݃R§áÿ#Ók]>ì¾¾¾#GŽ<÷Üs'Nœú\Û„g´ó7ó—ù—_}õÕââbÇ›ð¨V«sss§N�:yòäÜÜÜÐÐÐÄÄDoooÇ;…'±X,Zk+•ʵk×èÒkVWú}Y4¼‰b]LȳŽþé”é�צBNkæá–¬ƒÁ�&þU„$µØ„Cê)íd!ò~4¼‚XÄ Š•FQúÁ{#Þ?ÙÕjâ/(|ëY¿Ç”r!oÚC§ý§*S/»»·³LQi‹#}d”ÐÂÏ ˜ŠR1èk µž´ßÿ�–ÐñwO- E‡Ô무ìµ:Þnkmå�ÉcVVf/^¼13S^]� ‚5éîI��a~w¬Âd:ç ùüÀ@ß±{<öð±ïùä<066¶ÍùÛ¾}ûC=tåÊ•3gÎÌÍÍǧs�¶–�‹ϸw£›ÙDgÜ^£€‚‹JM|"Ƹx,»$ÜLs‹iIÑeÎbÐÙN©°�»ÉÙ!Z�ÊÖÚ]ï_Îkâü%�»�\eâh ]��^yï½��?.;ÃVxètü©Úþ·5l.Ô¶à`n°p •QÜʰÆkµÅéé+§OWÊe'ض|„H·:>8éáÊöešxò“¡Áþc÷|ñÙ‡ï¿÷Èöm#>½#K͘ê gKGãe…? @îÂG�O÷”Ö�D;H¶1Α•a�M5Tê¥îØ·Ó@zÉŽbäÀˆwîI¶J Å‚AöÏf £‰6òONNÞsÏ=‡êxDx­V+•JŸ~úé_ÿõ_ÿÕ_ýÕ—_~¹®WíÀ9wáÂ… .|úé§_|ñÅo¼qâĉ;vôôôdËðÒzzzöìÙóðÃùå—gÏž][[ó3ÒÌfi)£�À¨�²RNt–p†ê²·.Òx°qo½‹' š|¸-S¹û´"‚ÙÝÉÀ·�X¼;k‹®)Šo1¡ËAfawñ(1Ô“u�¥¢3bZZ;®PÜ&P⮸5‘·¶P«­ÎÍ]¼xqñúõZDÈD¼k§G•ÁǶ\숩>·ú޹ã/=qô®;ÆÇ†{{Š…|žk‚¯<ò¦×£FèC§Ž‹ÿN�À›5 Ï19ëã‚¡Â�VêtßTãñß(˜ÄõñqîÆF‡úVVÖ$�À tˆšx¨C¦Åü¯’0黌�ö÷÷ïÞ½ûÀ�Û·o︻}uuuffæÍ7ßü«¿ú«Ó§OokG\ºté/ÿò/¯\¹277÷ì³ÏîÝ»whh¨³Møñìëë;|øð±cÇ~÷»ßMMM-,,˜‹%Ï1s¨#·&70ÌH^+½Ô¸‡�J´Þ ÐÍ|�ˆÝC$$½FGxÐN Ö±˜‹2-ât•>l|%Å,O¼ÐàÁˆ´šHsʱƒö Ú?Øe6˜4†xèò»ïî>q"8t ÅíŒqgOK…¢á󯏵µë—.]Ÿš*—Jèhzìèé"™��r¦CôЧ&«B¢üòÓ{�ÝùèÃwßüðî�Û{zŠžL"a “/¯¡µÆƒ÷Û)Îôðåg£1EëM´Èÿü #¤�…ãé¯iÛ m±w÷ŽoNž÷Ç0¦y‘`6=t不š Ò)g'\õhçðððáÇ÷ïßßßßßqb}íÚµ¿ÿû¿ÿ›¿ù›o¾ù¦R©tVxFT*•ùùù·ß~{yyyvvöG?úѱcÇ:ÞŠµ¶X,nß¾ýî»ï>~üøòò²'îô¹"׎dÔ3xÊjBgsÒI¤/4±«´� 1ÑÅWˆâ_4#‰K…Q²´ôð3LX’"LDyiµ¨ï¯ ãA.ÎýY1F·Gê/BAã?tE6•¾yiŸ`÷¥á¡P(<òÇâ­wE·£ÇÚÊââ¥/¾¸1=])•ØÑ$7º…RH9[õ(…›züknhhàÞcw¾þÊ“/¿øØýÇí˜/óÖ6 !>]i 0ß4ÖÞøaå¶—¼øë€‘pÐxGzƇ.t {8~óÞ§gÎ]ÆÓdâü=‚ÒÿÇÈG£ù„“H>Ë|�“Zà´ñ}}}|á…~øá‘‘*ÙLOOÿæ7¿ù‹¿ø‹·ß~»$&ö&£T*�?Þßt|||llŒ>]ÔX@©T:{öììì,;YT?>Jg™È¢ e-4À#qËÓ‚· ÆËMéÁzMµè¨lȈ(ÆÎQO2?�åÿÆb&�(ËÖYúKËU©°7iä�aÀ.F¸© iëâAüAÅhÿÂùóÃûö…BÐPÅ-kLÁZ·²rýòåkSSÕR#í7>ó˜[wÒÓ‹1<elBlÏDŽ®\.744pÏ]ûŸ:qÿcÛ¾}¤X,غ‚Î%‡4ÄD|ÚˆÈŲ«ç~p"}¸ç»±íõoB­g怓ì=ju½.vÝ“q—¯1&›¥RŽí˲Д9®¬ÝúÝät˜�‡Ö4ÿICP;Éq°ãî{vO3#ò„^U$ ¨rw¢Ý.ÁmO‡\<¨€:‡ˆ5gŒéé陘˜)‹¦sîvçÜÔÔÔ»ï¾ûæ›oúÏ!mT«ÕÓ§Oÿìg?ëïïÿÃ?üãG�v6¬?—Ë NNNîÙ³glllaa� >•d´ýî.’áâ .ƒlÕÆ—A#PÁÐd”É—4]갮ј˜óŒ…³›éæ™·dêX—švQüºz¡»"kM_4¢°³¤¼‹;GÐL’µP²Q(q¨Ç]ÑõÈ“«Tn\º4sþ|­RIOG IóàxÛN%å6¢V« ù}{w½öý�¶64D~M㘠z¼]$©¾‰2:Þ ŸdíÁÎkëëcé·…‘�· 6$j=t“Ä@Ü#�vx^ðñO,Ÿ4Q¤Y.Zêç¢ÏI2"Âòc ½ÀU�¹\®¿¿Û¶m�%î _~ùåÏþó?üp«±v�jµúÉ'Ÿcòù|OOÏîÝ»ûûûmç(½½½{öìÙ¹sç7ß|S*•�‰áwgŽj„‹²¯ñæ�U¤9@™æ�´ôØk’NØQæb`°GøSN-Ö–”`€LS1´l±ïToƒdñ2ÛÆÆß8¡tY¡ÅÂL<ìŒPC[sÎ+7ñP™l·Zy)åWdDk“‡ÕòU¬sç–¦¦f.\X[^Nº¿Ko–Aº)jÕâ ›Ó({.7¹sÛ Ï>üø£Ç÷î™´¹ÔÞ Moðu�ßÜén—tÜh¶Ö3kgü{ ŸI²tÇH#¿š’λö#!wìÙ�±¶FœIqXIú˼òÌ_+aR£~›VF:çz{{GFFúúú:Hܧ¦¦~ýë_öÙg7+�LT*•O?ýôç?ÿùŽ;^|ñÅÉÉÉžžžöÅú�õN÷ñññ¾¾¾¥¥%Ì ƒÅ˜Sœ�\äÊÌróµ�y£¤•ŒÁcR— ›Ù€7ZÎÏ m㢷AilI(#åÌh¡u¥4~' 6ê„�†WÁJ»ÈÆƒÓØ8ã8°ê¬$¾òb1ñ�aÓƒ ]ò!ES¤Œmú°+6[=T¦µÓÙy¦³vã�ñÎ+9`Á·¶6}öì�ééZ¥"yUБƒïjcíÂ#0�µÓófÛøðS'øÞ‹ß9rh_oO‘”oNW£pð@Ÿ¡�$aÄŽì9æ³_onGÇÅb[œ,”ÜA+ЬŸ»;g Ĉ*[c …üþ}“§Ï^N¨WgxrQC�»Æ›ä@È„�èH:E^ÉÞÞÞ¡¡¡þþþN}ziyyù«¯¾úÅ/~qêÔ©­ìzôËgß{ï½���B¡ðä“Oþï�ý»ƒÄ=é̺§df&O�f5ƒ0 ©IOOÏÀÀ@__ßzzžˆZ­vêÔ©wÞyçŸÿùŸ———;"sC1??ÿOÿôO===ù|~hhhbb¢#býÕñññÁÁAÚ)}º´Ð‚yŠyÆbâ‘€R»8Ùp»P(T«UŠ·Ö³O_xcÀ2 ’]Ô*)ÆÝÀÔeyuDøà6Êôdpbä•$ù(�iÎ6°#”Ç…òçàõÅ6 Î$²…ö@íó�öùOJ­ÖxWGèA *eDGF¬5dlkCçUvŽW`:Œ–i¿'ÙihsêÓLB hm–´o™dDûêe?Ú©¬wòXçòµÚòÕ«3çΕVV‚�Cæp2!NæÁÞ›}]XŹڞ]¯¿òÔ Ï><:2èY{ó.Fòâ™cÝT8F^ ;Ð.ÒŸ…ÎFKjCZ’ ’Ô…�|ö€¥ûŒ#¿¾•ƒB‚h\îØ7; 'šøGC!l éš´÷ŒážEIñi'9iooïÀÀ€O)Ó&jµÚêêê'Ÿ|òî»ïÞ¸q£}�›ƒùùù÷Þ{oçÎ�ûöí,‹…B»î!kíàààÐÐPOO^¤äKΉœèl$ãèxÞÙ´!Bé 7¦HfxjîV*é·6ð%Ƨ1$†4Áœ¢ÈÚq�<¼¡aG(ÝòQ4¸ :cÿ(͈Xy©¹�’x¢æì\ o<}Wß2¾Dµ…'Ú¦Q´ õýµÆ»Ò™z› oæˆmõjmÄ6‚¼!·Ô �mŠ®ÀÖœ9cl¥2éÒì¥KÕR S4zHÏ“üÉüäR úk <3z{‹Ï=ýЯ<}ôÈ…B–@ˆ(Ó¹�x8V"ëu¾KÇ­_.åb•š[gòÎÃ)µƒ|ñõ¼0Q¹¤LóÑþàQfxıì§õÍYSìñ’¥ßï¡�ûö4ˆ»ƒørÉÚ�‰Mf›™¸—�ù‘Ö[ðPšx¨úi ·OU�1•JåÊ•+}ôÑG}tÓ?·”•JåêÕ«o¿ýö�wÞ¹wïÞ‰‰‰Ž÷žžƒD‘å2· ƒFäIgnà`ÆOyO°°™„H³�ä Á%§;šdx 3–ÂÑ m"³„qô`žSRÛÆ#ÈIIL‹iŒñwTl”u™ý¥º,¯^l(râ› xmb/°¿Ø¯i ˜QÜö·T—u‰j›Ø æìV�p³„ßĶZƒu.W*Íž;wýÒ¥¤ì1ŒjËpOV=^²€i<–ìÁý{^ÿÁ“'»o||8k7œåÄ«uøÛx··¬‘5ÄÙ†~òº>>Š·BŸI>Òt+ºŠ:‹ö£�zË Â%T%ìÛ3�V#[&þ¤GÆÆè—ß`á.5ø0Ömèã9)Y»^l__Ÿ_CÙ�ûÜÜÜïÿûßþö·óóóíKÛL¬®®~õÕWo¾ùæ®]»ž~úé��ÛÞ3Å÷ÞÞÞÞÞ^F¾)ú€£ÝÂÚMœ ,Õ:ÎrÓßB¡Àî”zˆÚeÆ!I– SÐà Ĉdäp e'rL]ÀÞa6LŽvœØ”U Ç� ¾üž«4‡d*UYžŽ2ýñhR¸òÐoÔ[ÿ‰–}îgÁ|›ÑY éÂ#âNæ°v…";¬19cj««—¿ývéÚ5bíAwãî$Èù°d e7ÆŒ ~ï»ßyåå÷ïÊzudeØIŽíб&"]œOËØ›°‚Ùž‚è³7ѶàÕÈÑ-Dåü?^$h^0þÞ=“äÌ“š™:òÆÃÈ#È8œtXÖj5"ˆ6rÓ2ç¥1fdddrrr||¼}s©TºtéÒ{ï½wæÌ™6EÝø Ÿ‰‰‰½{÷NNNö÷÷·#ÍZ[(|è<�2:$¹ ‰H6±U<_è 6à!ÆÔé¾ �`d¹'Ü!#¹&®peF#Nˆó¥Ùh½,ñx_�í7¨9Z5Ë.,I�øŒ…q°î°».kÚDv[zKrØM8—ËU*vm"kgê]yï½�O<±®)¤PÜJØêYeм1¥¹¹éÓ§—oܨU«&r–³„h˜±›}g$HâÙ‹- ÷Ü}àO~ôÂý÷ÈÆÚ]ƒåF-Ä<éõc¬N¬m¯qÝÞœX»([�þ:g¬Å·h´�9ûLÒ+ƒˆi;£ÞL/ںΠ>`‰}4{öìð¿¥S\þ4ñóÎwд‹5 �¨™8ýBj511±sçÎ���ösA®¬¬\¸páË/¿œ™™iSÔÍÂììì_|ñÍ7ß>|xÏž=팉ðb±X,iðƒÆ›†ºžï¤í6þ²…˜ÒNÆA™‡›š¶ÖV*ç\¡P@ãK’VÌ”½f{ø§©Œ‹»®‰�û["ñ~ÝÙX-¼‹b¼S›„°šhiÈ”ö¨¶¿Q©Tüº^¼Nq„±Sþ¼È`w…âöÁM •Q(šÂ:g«ÕÅé陳gË««µj•=c‚Ü ŸIŽ"“L×|•±Ñ¡gŸzð�Wž>¸w¾��s0i ë'ê1’¬]Êä5$S*yv‚mdZPéc–íÚÄ£ìúÚÉ¿îbƒ±5©¬½þo_oq|løÚõy#NsOw{`Tž(Z-úZƒŒâP­ÁÁÁýû÷ßqǽ½½‰]ÉŒëׯñÅ'Ož\\\l_ÚæÃ9·´´táÂ…Ï>ûìøñãídÚ±Ö …b±H.pdçtޤg—$P€RpŸ6r¶ømòs›Èb¤w/, "¶È¶²ég’=ýH¾I&}½ˆœëX&¸à÷�¤ìd Û¦"6Vxãe¶„�Ü£’4ÎÆpîÎ┬µÔ#yÍ:á—Q(n7¬Çãžt©0¢ŸrEµiHÉgc`[·ƒ%ÃÆvs6µ-ZŠ:}ölµ\¦¯m›ÐëTzr Ï†žµ&þH¢ìþooOñþ{½ú½'~àèÈè ,ìUÂO⨜¬¢ïÝ­ŽTIm«‰%P—n@亷Áž;^M𬀍Ì=ët½î‰±;60^âÕDÝ’1D܃` #‰*Qa¢ Dwˆ!!=20=LÜ �£££‡Þ»woûîvcÌåË—?þøã+W®t)Añj/..~ùå—ß~ûí‘#G(<½x®ÜÓÓC1HVøžMœ�3 HCÙJJVŒÎ,e\¡[ Ý|*• h\ö@MS”<Í.&�v’Â^šgçŒûÚèÅËVIm¡:¬w¾†ñ�âóá˜x€ µ<x‰Ñ_¼ 3+káâT)ÙŠE&lý½òÞ{;ü¶x:ß¶Èx÷K§ [y†´ªjfâÞ�Ï�Î û[ˆ.š1fKŸÓ¼s•ÅÅÙ3gnLO{G» ½Ée”�žp’r1ß•4ñçЮ�Û^xö‘—_øÎ®Ém}ýɮӿq,, ªš¡eNãLC—$ôr6JÖbëÜÝ«fí ÊÆ7äv¤$cßÒ‘nÐÏîð 1Ô^ÜïU² AXmûÄØÉÓ»Œ¡=&Q IÖ 096—p1{j·X,Ž��íÚµktt4I·Œðb/]ºtêÔ©¥¥¥6¥Ý\”Ëå‹/ž;wnnnnbb¢eâîÑÓÓÓÓÓÃ"SDÒì7Ø5.Ï©‰ŸV:§2ï!ú’ÙBO\¥jÀ«�w-Ï�‰¹ÊÖ-„Ñch8‘ò\”Þ‡l!ƒÇ)JŠ¡±ÁÞ àzS,L†^5Œv3ƒ‡%¸$àÙ¡’4†Ô_Y×Pa9ª E»è.¶G*qoí IéFŸ}FR̬öÏJp.«ðŒÉþŽ¢}°Žd<Ô:tXçl¥²4;;söìÚÒ&�‘TŒQ|}Bq}úîó�~ï»�:°§YlŒg“Açu8 $æy6ȇ›»ô3~¬™úxúîê_!5ÙÚîozš³Æc¾ô˜§� Ò÷�B‘ª–ÄpÛabÛH’êȱØbDo`(TÝ¢C¡.ZðGeØ,b¤¤§§gÛ¶mCCCIêeD­V[\\¼xñâ… ÖÖÖÚ”vsáSC^¼xñÚµkI /;úúúð“´xù£df¶Û“ï[�¬#%áì,à©xIª…ŸOÏ?ªŠ­SŒ†¯`X Öuñ€rª‹‹té(Ž•Ÿê,0†®,L(É +¼¬POÉ¿åP£d4Èò©oggv�eoÙuÈH :ÎÚØšO3£„Œç—Í„¤Z­�yºYÔ3™§_f�…€” Ü”NvÜpÉÈqÓˆ-Ñý¤bÌ·ºi—} 6“úwäuU¶Z9çÜÚÚüÔ”�‘.|î&‰dÏ›à6íÉçrããÃ�?zü©'î;rxßèÈP֞دð~β}õúŒÊ2[ˆ=³òò²5ô¼kxÅëÚ&)í¶q-?EÀÆKÕ‡ÖÆª„6™ÎÿÚ$ Șwì W�SjzÌ#7ÂOäš�;6ˆI™Er_¡P˜˜˜k?À½V«MMM�9sfvv¶’�ö´[P­Vççç/^¼855µ¶¶Öf²ÿ)ÖÁÁÁ……I¬Ù²HIŽ Ü4¨¤çµ,¹Š\uŠm‰>¶BäÛ~îÑWT‰Ð“Lš±¸~Ú€%€†%!2Ñ$Ú$ì«OyϺƒI“,¬1uÑ"לÈUφHÞ]Y#.RÚƒ#ɪàO2][l�$kÍ*È(<û¡Šeëo ü²}®ßÚ`fw­nœ5ÂÐþùÍŒ È*Ó‚ç{3_~mèr³.¿ÖÚÚÄyÖ´!뜭Ֆ¦§ç¯\Y„œ�P0p[Gÿ Ýú“^Å2¢f­zê‰ûžyòÁ»ïÌåÓ´ÇYµ –±ìÓ°SizˆÃrïíëŒ1"˜e=ÝaEà§ ò»¨}ÊùÄ·۵bÃÔ§ ¤1ÆÜ¿;R�G2 ‰”ÏV!×/�X�…4à(8—L*Ó‘O/ÕjµK—.]¼x±ÛÝíÆç\©Tš���žž^]]̸b$Œ¡¡¡ÉÉɱ±12ihP†u�x!^È".<�fa$rY'N 4P>æ«ÁPlY—Š¡4�ˆJÇ!Ýg\œŒI眬§¾³/¡Òµ`B‘ñÌAS„þÖâ¹ç©[0Jf ^e(�µNëäàã¸ÑâßâôìøÎwšO�Ž`+<.o7dt’fw­fžmG%cƒcÜ·àÐÜØ‚ÃÒªJÖ9ë\ueåÆåËsSSåµ5Ê5Ö(és£²5©ŒÉ ô=òÐݯ¿òÔÝGö�Œ¤ð‰¤¯ˆÆË4þFÌÓÅ?ndm#ö£É@‘KÝÎñ."ѱò™¤£ªi‡ê¤Ú²²ÄÚ]üîÒÈH’õH_‹i‚öí­¤º²ŠM÷Öµ¥Æ†j»N}ªšÇ]q3a�³åòÒÌÌì… + .„`ày`Bá1ì(KG`â�"r_=òàÝ?zíé8:<Øos©/…Â×N"¥6t bíÙüë(6CQ¸±Æóg—I~Bî¼O+KǬ±hÓdª‹ž7 K&X?a¶o­�Ë"`9êMŠX97P#"L $vÞÍ944ä—N¦ @38çJ¥ÒÔÔÔôô´l´»@û´´tãÆ�ÕÕUÉÀÖ…b±822²cÇŽþþþååeä™"ã�x~%ýÅ9à£JLäÃv"΄y¯¥&¢Å¸¥mf !Æ£Ì7/ç0Qdì,‰b P²Ké•‘«DPm¤ïÌšÅsaÀBfÌ»oâ×/jŽkÀö¶‘÷}=3H¡¸E Ä]q“à\ιµ¹¹ë/.ÌÎÖ*ææd`Y’=áäÏ97<Ôÿ½ÿ£=¿cb,_HqŽ&1a"¹.ø»N5åk»æ^ö¸:¡y¿Ûy»À¥‘ûP ˆ‡ÜD/· £R…™"†ToÙÊØ11iêÈCúÎüèHˆùÒÌ£bõ‰8iä4(Ê'+ôŸÊбDT«ÕÕÕÕk×®-,,´#gK¡T*­¬¬”ËåjµÚN(‘µv```ÇŽ}}}Ä>Y°¸³ÊqD¼‰Ÿe¢¿^ çˆŒ‰ºhá²g®LrbŠ¢Áê¢Mhú§�´p²¥®žÅb£Lê�ÈhqÎyË«PI)SÞ]i<‘Á3i8V¬�x:ä ES„½M½òþû;õcLŠÛ JÜ7¶V3åòÜ¥K×/]*¯­Õ * k—eð±ÁvÒýýž£þð‡Ï=þèñÁÁþ9Ú�HM�Í‹Ã\Þ¶rÖnDø]X‰I£Ì�$�Î8çlVMM¢XÁ«elL  4¯µQzÝN2W±·Æ˜ÞÞâÀ@ßââr]^<´ù4ãFÂd#¥b I†äIÐ-Þ–‹qøìëíÂ÷ååå[#ÀÝoT*•R©T�’º¶Œ\.×××7::Ú××ÇŸ�û¼‘ç`™H¸é�\ê`¢¹�Ř³™ŠIdz‰q‰öÓn21ÿ ÙX—Qgf@’@™ë�™ Ô#qó”°’Ñqª›B¾Ù9’lžñrªŽaî²¢<Å&~Íâ8ýᇛì®PÜl(qWl.œ³Î•æç¯�??õjMò²§n³Å¦ø”Ň4–ñU†‡¾ûü£¯¼üÄÞÝ;û"Žm}(1¨qÜ)à°Î%§uO#+6îkOu±g|ÆWÏí’ôR ]ùØ‘äã. †±‚k;^²± Û)”é-BPm×0&¢“kœ5vtxpiiÅïaAºè–Ãg?s76´².7a n3‹±MnJĽT*µ#gKÁEhS޵¶¯¯ollÌ„ÕS^¹€˜SV2]Œ²@RŽ—2¨…Å Er t4‰àÊEÊàOß„çܲŠÔM–=•‘dðt”v¢Å‚—©ÊÞS‘’ÈÅÙ=sǾ�…zD;ÅlG{@jŒøR'‹´‚TVí(ª$r]ƒÁ‘Mr†#$¿qœí1²îØ¿‚^lÜìIò¯'X(‘S¿ÎÚa�ÏG_�t¶!µ¢Ÿ8U‚O÷ wgT Ë|«T*+++ÒË».x…kµZûQ%[ ½½½í¯Ü5‘ÓÝÊSVA{¥e´ñEœ¾°\¤‹¬ÚÀ´4âS¾˜Ž,{J­0§5›ä8øU2Y0pE ÚX]ÚQ4¼¸¼„‘~/OXpŽœ&2uäQ…â–‡zÜ çLµZZXXœž¾véRemÍÀÃ#ßd ²·€4‹äÛÆ†ÿà‡Ï½ò½ã£ÃõÔ1(£®£]‰=`?$µev•V±Î‡ÖÄz]ìâ=ý´°'NË¡FìX\x\¨çÛ5ÑÛ�Õˆ¦“4ÅqwçšÖ}ÿÑïb¡€�¨5e…7ÝÄ}{lƒø±™ŒÓ�ä—Ë奥¥r¹Ü>qoaþoqôõõù”;íçÊô µM\´@±Ý6þR…±UL­ÈÒ,ú&ð§ ­õÄD=m¹Nµ¬“Æ�T¹)1Q+–g�b²|p|Läõ':6ŠFŽlÛÂ8~K€v³[Ld±øuº-³*8JÒú¢~aÇiXˆß·i0+]%îŠ „«Õj«« SS7¦¦Ö–—é³JÄÚå£ËÄN&þL z¢ø;x±X8tpÏŸþÑË=xddhÀæR–‡šDšj x•£²ÿY/2ÔŠ\؆‚T²{Ùƒ-üõã "I¾ya:Å¥�hiOuê,;ä)wÎF«^1èªZg\ü�F4øQž²z{{Ù Aºæ‘‹p^Î%ª©ÇSdd¡èù[YYA·ekð¬´P(´Ïq·ü�nÛ¶­¿¿¿#w¢kÄM‰G2Ƕdí&ù‚ÆžIõcyüËæ›‹Bh€êñá'´Øý�Q[–˜ÛMŠiAùÌ&Á.à¬FQÌàÁQ2ñt¦›¼NSlT4¼$¿‘Í-£¸} Ä]±!pµZιµ7®�?¿4;[©TXŽvzb1Œ‰½Üˆg*•Äí/ ÷»ó¿ý³W�Ú;0Ðç·Øb%“O«gº ¬˜±Q»ëSÙÖ˜"™Žša½ae ×�ÄF²êqí´uv ÁîIÃAÊ:ëØNú],öÄQÈ KÜ‚ÍÉ㙫ϯ*피Ÿ(ZûËI­µ…B¡··—¢AnXkÇÆÆ(‡cû]”àå¹ÃòÌ,@Ñ;õ‘Å"û´qwµ�uøÂÐÄÙ6ÓŠf{Óˆ3 Sþxl?5Š,Ü T9&TÝÇñ3îξüÊ¿‹¿¯ÀÁDåQ%æ g¦Np½¸�« …‘òT˜®Ó ü“B±•p‹<[ µš[[»1==wñâòü|Ч|‚‚€&Ÿ£g%}á‘á¡';þúž¼çè�B¡�H’Â9Pܲ2¼¤)�$s‘±fèkJ†Ù Ù””�rjìð>Þ¹Æ"Ó˜f–éLÚXk Ô~ˆì»ááä(fŽ‹‡5ã~š6,UE]¹xh»$[(�U¡`ëö=Ê~ýeooï­áq÷/ÆÆÆ¶mÛæW”¶OaËå2…$1ÂͽFÌdðD…Ñ�ŒYÌ‘Vi·G­V+ >®�ÂÍñ®…÷.©¤§Îôꀬ é¹ vŽ}§—ÆŸ&ŸŠ‘Iɨ¶‹œ#’£KÛxQH.ÇÄÆ×ª’d„¡BãL�4LIÆ’†äóÕj•¥ši2‡Š[JÜ�FµZºqãÚùóó33øY¥ è!ÁnýF¼'ÅZøøñ{r9»m|äå{ᙇ÷ß±³§XˆÇsÇác<¢ÖbGpòÈÆÁuAò`PÁûÀ•Kõ]K±dQDû$Ó¦p”o?ˆk8ÑÁ’ˆ¸r¬tdö`zu߸«¾ 3=èÌÒ`6TP]Þíö»Y¢¶M�|bHlŽ1R” ©²¢&ô×´km±Xìïï÷K9ÛµuÐ××·mÛ¶ñññöß!8çÊå²ÿ–í$§,݈©é$²˜‹¾Hjâ'×oPð ÖEﯬEsŒö“wœ±p*�ñ<¨--f509M|×BéÞ \¸–�ÑkYDÝO2Y™&ì¨l‚"þq*™I&n9£5B kGk�2ç�î[‘÷…âÖ†wEçP«ÕÊå¥ééÙ³g×VVjÉ)íÐc*Óî¿tÇgò¹ÜÁ»ÿä^|æÉúû{s¹œ¡hé戹vcqåuFšNzƒQ刡ÆÌ—œ.¥6ôU1hÑÜX‡2&‚n#ÖnM †óxÐ?¹)P¿ì! qgï¢úõvíÎÉñHÇ&²öÔG'"+)˜!�¸}“ƘB¡Ð‘î|>ß××722200Ц¨-‚���mÛ¶�ŽŽ¶ï ­Õj«««óóó¥R �.<Ëìôyª‡¼ÙF«HåM†’½àL` XÑÄ9@e …‚¿§QRâñ”5’Ê{Ÿ1sí³Y*™4… øû'ÚBhü{ò¾›ø|fÁëòÒ0àáFËû.ãP°ýl¬h»©ëI{Q€ç”Ù3.“£‘îŠÛJÜ‚sµÕÕk.\;¾©£Ý€g%KJ/|< ä\Îôß}×þ¾úÌý÷êïïËI1¨(×nÌÓôåD>Êø4k…;˜�󙑲R«Y¸»hÙc"‰±"ä‡ß\^ô Ö†@kLü3RÑHB*C?'Œ‡5ÀÔɬ Öbš{ËÁÂùp*ùÖ}ènäƒf{¢Ó_Ñuîhgˆ1Nt»úŸÅbqhh¨#ñ-ù|~dddpp°}Q7¹\nppp||¼#Ýqέ®®Þ¸qcuu•äÓ �Í„œÈžÎ&ƒ…ÄŽ2„ƒYŒA¢ï™ÜØèg™²|+”à…Ù~HpM‚·Ûƽõ,W jEÒ0- ÚhÖâhඃ÷™8žxE¸(ÆÀª$Òí ´ �Êãø×Ä (pÉã1 õ·ÖêWT·<”¸+Ú…«ÕrµÚêÜÜìùó ³³)Žv¼é7eöôúà~kíààÀS�ß÷'ðâ¾½;z{ÒƒhÍk÷DÚ6p§obíXlJ¨=‘ãS¢f²qw=é�‹Á¯œ¢5ê9�cÁë8 oaGƒÊs±6^ËénÔ'þއ˜Yâ"Û&¸†‘â¬1Çî>Ðßß·´´LÅÙŒb„†í”ÌÌÄù„,OûÝ7Ñäô1Ú¡e …‘‘‘¡¡¡v„lx#„¾uÚ&|êžk×®q— `<}26â‚x$ýFØoÈûÑ®cìÓÀ"ùÂÁ¨¹T˜Ía¦<¶NCa£W"d(^Ü@Ô�ŽyÙ)Ù_6’6¾Ù¼‰"õMh‰¯ÅH`ÒÔ¤Q2ñ PÒí_} EW@‰»¢=8gªÕ…+WfÎ�[[ZªE‹ýƒ`ä)ƒlÇ6HN±X8tçÞ—_øÎã�ß11ZL‹ møkMÌáíù*´t8«QRà Cð‡�|á‰å¹@ç"^]ϺèèX'ÂÖ€ó=¬PÌ�Íñýç¯vAÜ-�"ã»m¼•Päº3Îz:_—î,ö&*Gô>vÌk霳6_(Õ#ýDCŽæO�_+E Ë|Éx‹cæY6òÓ×âCeµÂ¦´49Xfç`h"v�º�²qÀ`$ŒÈ'Mؘ{3†]‰òZ>\hÍÙ_…âÖƒ0ñoŠŠ®C­V[Zºúõ××Ο¯”ËÁ{%ñ$³w{�¨\În~öÉÿüßüè¥ç¿311šOMâAÄ6!'· î…£(‰6Ä‹f,kD5^—w2Ö pc¡„#ÌtãV�§À>x�ÉzXÑ+¿l°EHbþù¨|ƒ%˜èñiÈËŽ/ Àp"¿¼…‰¿ð±�¶�3“c¯ÿàI*€\$è5ð\Gê@nZV9Š$Ø–‹‚};ÂÚ½äþþ~ï¥nSÚMGOOÏöíÛGFFÚY¶ë¹R©\¸páÔ©Sóóó,6š8¢L,hà.D§�î-ù|>—Ëù·˜/ÒÀðIiØ}ŒN4˨ˆ Ñd3ñÈ� &.äfv°ÀÔÂË’†„•ô¤¦1£Kð»£ñ€ƒæÄ÷¤ ÌÅä ÷ A`ãƒWõˆv²‹­ ,†Õ™ 3õÞ{Ù'˜BÑuèúgƒb³áœ©ÕJ7nÌœ9³xíZ5a)ªtœxlË'ùKr9ÛS,¸c×K/~ç;ß³w÷D¡�H’ rv5~0¦ŽœÔ•—¾eQ…R1Æ—w&ÔŠÃR+; ü?ò^Çv8c-KéžéÈÝÄûÄú½ÖÚ¸µðäÝrìWô&ÓEg".Q8 M”<žÂh¢Wtz�©EÜÇ8gþÕŸ½úÓ¿ý5›Vø_1²ù«BÛ¸‡MlyRý·`:âíëëëìíí][[ëR÷¡w íܹsll¬M“¦R©Ü¸qãäÉ“gÏž]^^ÆdÞŒh¢KÛ‚«ÛDgÊÂ’J¿³@9¦YD‹/M|v¡pA#l¶ aõ 1}L$ã�ÒP‚‚Up*"½fî|œ¨Ø.‹<›ÀŒ“lm(³`MÈ€aêF`° e�a#€C�Bl<­dû‰YŠ­Œ:qçOK…" ÕêòµkW¿ývuqÑ%‡§ß|éé ­µãã#ß}ö‘×_yjrÇxOO1B~à7Œ»¼³ó`—œÐ7¶åQ€—©âñ£¨Ö8Ì©u!°³n`ë´‚3n4X—„=ðËý\ì#©$ƒì¢Ø 7Î{¤gÝ£~tT¢>=êDÝYÛh³^œÌ .[Áñ­¿ûà‹Ï?úæ[IªD„€X;r¬š.% K`ŽF +•J¥R¡˜Š6Q,ûúúúúú«©«½·,¬µ½½½£££;vìh?CÎêêê¹sçNŸ>}íÚ5d™LÝAD¸‰›XV|ˆ²ª\…ââ %•tñÜ‘~'š….žRhT›bî‰%3á(A’ff$`ŠF20° ìzA�©$›öAÚ�£A|�^†°vXXEôÇcÚJv~Y]ÌŸ“Ëå*• ;õIÚ*·6Ö0uñÿ¶8\òíK»P­Ö–—gOŸ¾ôÙg« .Ù¿È3òc¢çDpe! éïï}ø�£ÿý¿ùÑþð¹Ý;·÷ÆX»CVΉ¶ÊpHV“€§(ñD9O]Cv£×x]�ÜH”ýÅ5˜¹s1Q º�R1ËÂE±ð±î1ŽŸ{Ží‰Þpó¦Þ!Óè”5 OCkªäߘFd»‹}XŠ.’eLdò9k¬«5½o2ê=ƒI“†>ƘÿðïÿE�ØGã�< i:2v¦ä‰c³4¸�Møi¼²²RIN„šž»ø¥®ù¢ÓMÄÐÐÐÞ½{wîÜÙþǤVVV¾üòË“'OzK†qAb{,ÜE²mÎä}êÈÚ‰°2ï2Ëï÷“KžÙ�ì¦GË%/©¼�ùé·}]ÖAT2É$?é¦$Y;£þÒZÀ! ’iùË©RpÊpU.)IVŠzÍ©þ$mý .Ù瘔Ó+våý÷eßǦñœì uV¥›Õn:ºøÁ ØTT«•¥¥«'OΞ;W^[c�y7—7w# ´ŸÝ£s9[,vîí{Oþ÷ÿö‡O?qßäŽmÅ¢OLAÎÒ–£ÿºhÀžv5¹¾"^nÈÀCÙ@žˆ„Æ©\�d¡µ%âoã¤ñábµ#2]7Aâì‹áoÑpÃOY£1~£ªnÏõ£xCývµų́Õ)y­¾0À…º'ž*ºúkk\­Ñ?¯É‘C{ßxåi#Ø ¦DI’;×U�ßôÊÊÊüü|G"[òù|ÿÈÈÈððp›Yo"œs»víºÿþûwîÜÙÛÛÛŽ¨r¹<55õûßÿþÌ™3kkk¢ƒ@ÄÚ8˜‘4˜X)&ó…×GG2ë¦Áâ­eIä¾Èþý2 ˆùª‘βî°ý^¾ŒŸaô×€µ#Õ3‘Õ�«A°i¼íã~?˜L+Ƴ‰¯|µQ| ©M PZ+ŒýÂ.È$BT~ã"Ý7“¢) ΘBlÚ9D[‡ŒH0¡CLbJ1—|(EÅ$¤ψtÚ ÊÞ÷Œšw¼¿ëP©\^š™™>y²´²R‹¼AÆpn$™ Ûoà=5Ýý¥ãª··çè‘ýôÃçî¿÷ðèÈ`t(zÆD¶¡¬µ1k3ŽNsÖž\‘ÑæP™F< ·$BÒ’Æ‹Ð$è� “xUWD‰þ“ãlôÁ)Ú]÷¬cÿê.íøžx~]ˆ Dјhã;ÿx5Qfzc�«g ÿ£3ÎÔ¬õ<ÌDV‡uÎk¬±5g¬1ÿ§ÿá'?ÿÅ{kk�¤F8÷‚¤Üĉ~�ß»�ož  çÜêêêìììòòrzÜWär¹þþþñññmÛ¶]¾|yii©M�›�|>_,÷ïßÿàƒnß¾½Í÷ׯ_ÿꫯ¾ùæ›ééi–ò<}¯ÔÀ¹°�Þ1éó@&Ó’‹f…3›Ð»Ã)A»‰æ’W¢•8Ç�²³}Æã©ŠI˜À49s¡Ž¢X¼©R1fŸ@�  ŒÞAù´Gîg­›ˆy3b-OžDªeã>{<„W:Ìàf¿ SKÊ¡n��±¤Ti“{¤Ëï¬pþÄYgÓê)hÏ{6g$±M}³.NMѾ5dµ¤Zísúô^ YkCÍ›,û³£ µZmeåú¥K7._.¯®¦|_‰=c˜›Gº[ØQ. ûöN<ñ�{Ÿyò�;öL ö"k'J':†42=úÄ9çU rQR¶;ô3¹ ª£Úépì_3bR‚ª#‰¯sagŒ©‡ãSžGgx\}<‡LôÃÆš�ÅÜ�d!!¶çõ^ÿHw~5-˜5Æ8Wk4 €?]õŸ~å«ÍÕ]òÖØZÍíݳãßÿwø¿ü¿þ7ì²išb… 0) ÷û�µµµéééÅÅÅ$®Ÿž]�ŒŒìرÃ'Rl_æ&Ã0õàÁƒ‡J2Ÿ2bzzú“O>¹|ù²¡á)�gÏŒÕÙȉN·:k(�Íòì²bè\pQNC²d|<ÕB^nÀL<Õ#� Ô<Ê%§ý ÈÅ£,!Lp”è–[©T|^êZP Ô„Ù*tÈ×õö€/ãÕ#elük²M„   Âña¨kAcÌE¯ùÖ…”ò)Ü«#d½á­Õj­#)m­y×z+6­•]íNhv K¦Sß4â~s˜bKÖÉMDÆqßâ÷¢Z­,-Íœ:5?=�”=Æ„žì ] Cþ1S(F†ûºÿèK/|çè‘}ãÛFó¶Aì26¬q.™Ü�zƒÄEiAdüpœµ·4y]º¤Ã°#ÜT˜¯q3‚zZKÍ7¾„­ø$#Â�(~£PrØh<©c@.ïEd04‚ãëîôHLÜD¡jΡ×ßoÔÈ  ^skœsÿÝûÆßþÝ;ßœ<•‰ùƒÈÀ¨&/§&BƒôËi0Ƭ¬¬LMMݸq£\.÷õõ%µ’^àŽ;8ðÕW_]ºt©ýÐùMFooïÁƒï»ï¾C‡ ¦ {S”Ë寿þúÃ?œ™™!ƒ O+:�½Íã9#v^šLÕBð#A’°0ê¼ ™rÑP+èæ—~e¼œ H’µû=Œ†â!Ê4OÅЖH±WñžÌDIãÁÄM i¬ÊŸØ)ÌD‰òQp2ÃüðúSI^óàéÀ¼@¨!>qÚý•„ޓ雅-¨ÒÆáVêìV�qwñÿ6´ÖÍÒ¡³Úv®Vskk‹—/_üôÓW¯&±væwiT�?QlËè�!ª¾z±X<|hï¿û·?þÿ�ôÄcÇ·oÍù§�/fàŸ/nÂÚ)ÒÚ’D®mÎÑh)ù<ÀÁH¿Ÿhvúl]Ò,¤µ «µ.5¦@rGmRÎE”(Ó¹ð˜ÁâÒH ×è—#õã¤,ú~R¬˜Åœ3Æ%™¶õ“e¡btmø~×\�Ô{"_Èÿ_ÿ/NßáB–@ݧC²9öÈg§‘ȇô¸{ø%w+++—/_žššZ\\ ÷j�˜˜˜8zôèääd×…¹‹ÅÉÉÉGyäþûïkGÿjµzåÊ•Ï?ÿüäÉ“2Äh«ç|9HI´Þ„>Édâ,“öÈ™c!·Œ/F­øŸ5ø“ƒdêØÕeq>Ø ×AæmÄ|CiÈPMœ—cëò*ÀÂì­*‰Òð¾m£@šÆ�!~Éà÷ªjÑWT™+O¢ƒˆ—\<óªÊÎW.‚ Ùt:ÌMÅf²—Íd.á¿ÛI}ïø™J/¶Õ‰»â& Z­.-Íž9så›oVæç“Âc˜£]>èÖ,1龟ËÙ�;¶½þƒ'ÿÿÿÉ“�ß76<˜ÏQESÿÛ˜¹DÞåLæ{ˆ…cŒNNÖ3ÃÆj9眱.MJ\çø¯ËmlÐ&)ÚC™dpĉÿÓSÔã_ø‡X½%Oye÷œs¸ú¶îóŽw«Þ|Š’ùà"‚íâôÝÅç‰Å’ufà«gkðn Q&" ~O­Vó»¼ÿÈŸüøElƒÚÎÄÙ^¼SÍ‹™4üéçy©Tš��½páÂìì,+ÐFFF:´gÏžöS²l|øð£�>zðàÁv|íÆ˜J¥rîܹsçέ®®J†J?ñ#…,"…Î ý´dë¾–÷þšøüñU˜p_5Kœ˜¥W÷þcr6SÌ–câsØ Ÿ7Ò_j÷c/Lœ%;ÈÑ.ÕÆqóiÍ(5̶îaöRR†%¦¤†¨0B,ì‡û‚ÝÁk|±+ú%&Å­%îŠ8ªÕ•ÙÙË_~9sæLiu5HAð¦oOò (ía�·|>ß×Ûsäо?û/ÿɼpäоá¡�\.ç�'w£�¢ §þqYá ”+"”Ȩ�†3 á/0õØ3&¢ä‚¡SmM¯s`n¾4ºA†ˆµ�=õóÒxºYøÑhÎ;·Á4B‘º<×8J<š:õ±æ‚Œ±��l#’�WW�±©Órèh-²UjÑë…¨ÎÿðçÔÓSpñ`Ib$Û ¿A)»”C_ò,³}â>88xÇwÜwß}{öì1Æt䳬 ?&ÅbñÎ;ï|á…}ôÑ;v´)sqqñìÙ³/^,•JFAaI:�ŒÌ¡GÜ„,:/òNbF+©_l:QIÏ2™�ßßô(^ t"²|ì#Öeцȉ±0Þu}ÂDÚOV f÷^™l0%ùFÃ�äu êØ<5(¹;;³Ô 3�p4PCY@¡¸Å�¿çÄ ¾ok?!W«Ùjuáòå«'O®ÌÏ»ø3�@waùLjˆ7MöȱÖ ¼ðÜ#ÿîßþèÁû�Œ� S¨ƒ¶¾^ø?.~�&ÖÆ†Š:f- ôÐçïYÒ¦. ã¿Ñ»yÈêI/qƒ ×K§aʹh5.‘wëgæ¨b=T‰JDÙ|L ]€¾0&¨ñ£ Ïðëó§®ãÓ†Ö¤ÂÐÕ{jm´PÕ§ÀrÎ834ÔõêõϾ8͆ŠÈ<æe-¶aš}ޱZ­öõõíÞ½ûàÁƒlñâzáj[k/]ºtþüy÷enAär¹žžž»îºëÕW_}å•Wî¾ûî6ßT*•«W¯¾ýöÛ|ðÁ�7ð�<§¸‡íNjۦŸÆž1_dðÖG6•Ç0VºÝ1cÀÄ3W2‚K}al›…ýØ(=›®¬;lÞÖâ<òM³ô,ÄìQm0�;uG�™:.îògbƒ7]lÈUäâï%¨�ƒ{÷…âÖ‚x)k¿mQ©Ì�?åÛoW—–ª• {~ø"ø8aìÜÅÁö¸çæóù;öNþþÅËúGßݳ{Go±'�6'û¿Y!tE“»WúwbmR+œ�ñoÝAãë®N3�Ã6ù©;ýø4Ú�\Û¨S\¿F.ö^¡a$ÁÈÔ�:®’�ŽûÞZHj”“Ñ9c#ÏwCׯ§�¼7Õ|½ú�Ö\�ñ;Ssµú`DŽ|Òž2K:ʵš£…4µšû×ÿÍ«¸ØÆÀIÿj(�ÕI“ɸEµZ�šš:yòäéÓ§}ºñ6144täÈ‘G}ôî»ïîïïo_àF€b__ßäää /¼ðúë¯ßu×]ÃÃÃmJöÑG—.]šŸŸÇýÒ|¢›Þg<Ð}˲ÍÈÛT­V£x”ŒiLXs.ŠÍ�w?ÊBCÄó:¡ñ\ºŠ�:çè«CÌT`MÓ_ÒŸ$»(=ŽÂís¿øZèh—ï üûvɧ=¨ ¦©±QÔ;•$ùDå-DþÈÕPh!;ž ÿS£e·„Ç]‰ûmˆZ­º²rýܹÙ3g*¥’|x°ç„ ½¶f·KkÑoŽNkËv;.2rfÛÄ,”‘oÛ˜úljšw€„E'É᡺_øìMÌb�«9Û¨ëêÁ4x–�!·wÔ§“§=q-Œ«9›³u×»©·Òpð“uÁæF£#~»^¾¾gtdèô¹Kß|{ž€‰?Îé©ïânH žÑ¨‡Gåå =‚~Ïðð°wº ¥œ¥,°Ö‹Ekí™3gšžü›…ÞÞÞÇ?÷Üs¯½öÚÃ?<<<\(dM4œ„ùùùO?ýô7¿ùÍ©S§(Q #²&ô>O"+ï ê]r>ô�qÞ1É#:Ë}C¸†ï–Á™ƒÓÝù²] e‘7^ îjiãQ%3¹P(0—6rtZVKCGÙg\å8KÍ-¤Ò·¡×ì¬aGX�˜´IH%4xä°c†öí3 Å-„ˆ¸ÇžßÊÝo#¸jµº²2sòäõ Ê¥;*Ÿ”±º׈N:Šr¬µ££CßÿîcúÇ/;z°¿¿×†Ãc²²“l4†˜a�|ÒìŽ(.dj=éˆñzƒ¢›j� ÙÔò^b�õG¡Fô¤Zà>Œín°pY€ëïà5€ dÇtLx$$΂=ˆ’À˜¸©àL#š(²Lh‘Ö§ŸrgÌž]ÿé¯ÉX8£#’0ó]�Á†’Èb¥R©V«ƒƒƒwß}÷Ž;$�X¬µ…BÁçAŸ™™¹~ýz§RÖ´Õ\.W,ûûûï½÷Þïÿûßÿþ÷üñÉÉÉ6#òý¸�?þí·ßþè£�®\¹Â¢/ð¶ÓTU䔸‹±˜Ô„5ŠûmÜÞ#’�­à*Ob™€í"û”’Ô#ñrÊQCM{Ÿº›½à¤ ¥vqQ® ‹Sq\ôÆ€òßKòÍú‚ÍáØ²ë”Ñwì/yå)'–±@ëqÐŒwÅ-�q¿½Q*-ÏÌL}õÕâìlµR‘”G#Òš §ÇŸ9kÇF‡þð‡Ï½úò‰½{&{Š…Éaª”àŽn NJMŒŽ¢·>æ›j°{"r7u�B›qe£|ˆÖ¥w32Fèön¸à±$1Qy+oH«3êÈr ²Þè ÔŒâÚ#Žß´µ`{4„À;k­A²ëœcý²¶NàQkKiìÍŽ‰±ÿôWo.¯4"U,¬ic¤Šmà„D t6À°¶¶f­Ýµk×äädû‘îÆ˜¾¾¾žžž\.·¸¸xíÚµr¹Ü¦ÀNÁ{÷î}à�^yå•W^yå¾ûœDÇmkpέ®®~öÙg¿üå/¿þúë••<;Ì}ŸÛ³{âÏ~ò½W^~|bûx±€l¦‰Õ4ÈmS×6ó#³°‘¤ÂI]ˆª4¡Ï¦ÑV\a×8ðË;‘ǼÁÛjÖé*¤^}€ä.Þ�ŽE4:=ÊÛ3uÇž¯qŽ˜yC‚‹–¨ÆXµ‰Ÿ8%O1‘}{¥ÀŒƒV†mœËÜðÖ~ù͹¯¾9g-Àgâpì‘ÏÈ�,f℉B¥R™œœ<::Ú~„Œù«W¯~ôÑGï¿ÿþ¥K—0åK�Ž3w"�f\Ûe;™ �tK$®lŒ¡¯�2}ÕAU™ó•Á¹Ê|ÿ6z]¬î¹5kÎF�æ(œráÛ(½f¡P`¶FÚx°Dœè,G=ÙDg©|ð”Éý6²Ã1VÞ$œt‚÷ Ä&²Õ.Ãf÷,ȨSk'5é±Äª§<½ÕhAȆv0;2ö1¥J°XµZšŸ¿òõ××/^,¯®š8í0É7S#HyúOcLoOÏ�wÿÁÏ=óäƒÃCù<º‹"Év5þa»3 o³¨ŠXƒÒïl#·.QáÔ¶\²Zþ؜ŧ9ø�±ž¦sW:ëG4„ iàÓ7q*h/–Ç& ªgk�&É©nëÅâ.yG~°:¯9K¬º>žÖ4N.<¶�uњ׆ÀF³õÜ25WCK£¾tÕ5ÞZP�W~ùO¿¥ ÌÜŠ²ÝYá4qÂÔÐ!îõdœ øŽ333Û·o?räÈÐÐPûN÷žžž‘‘‘mÛ¶ …ÕÕÕëׯã׈6…Ba×®]GŽyòÉ'_yå•—_~ù±Ç;pà@§¾wãœûòË/ßzë­O?ýt~~Þ8ÇœABð–E¶S0 mÈd)Œ.åcxŒ…�txS+Ì÷ÌÆh9 L?fÃPÓÔ"’x&‡²Ð` H¬N‡˜Ïž$S‹ìt 䣄¹üƒƒ'”ÕÅê¾!ZLã&‡wéâÅ!Ì-ÓÂcZ>N2>“°¡7;mh�`Èbô_Š„Z’ýPŠˆXYGˆEû㜪R»E—¡Z-¯¬,]½zíÂ…µåeú¸:KØ-5ø”Ý"Q¢§X8zäŽù'/ÝwüÐðP#=RÒ¡t�­ÐO¾ŸÚov½7Ê ‚n}Ýt§&Q;àâÑ2õ:!«ÏRÍ`1l¬>€èÁo<¡cqêàc61ÇuÝ+gÙ(ÂÈXk]­n¢¸FOÈZÍEK[�s®¾zÁ¹šs~@}uÒ«VsÔ„1õˆ´æbÃQ3�ÌžÇS üFÆIšKÖ>pß‘àŒ5qÎ'ßàc�°kÈZƒÁºT`eeåܹsï¼óν÷Þ;44411aÚƒµv``àØ±cù|~pppxxøƒ>˜žž.—Ë›™#r```||ü®»îºï¾ûæn¥Riuuõ«¯¾úì³ÏnܸQ.—éÔPÞô$ !è‚E³ Y/±y#›úZ, ÜÄ'vVæ·ÖV«UÏÅ1¶„%¨A™>nEáf Xa@²¸¯åupQ »cS1Ò0ŸÏW* dÃ8h~?zúÙåÀÔðû}×XnŒÅg§RÒ}’éâ�¾;H“Ÿ~W(º…M®6Õ):R¥ãWlk/ZsŠgT~½}tÎU*kss×/]š¿zµZ.ãC‚Š!œ§ Êné±ÖŒŽ =ýä?|åé={&úz‘ŸÆ…|©Æ$ô@µXíÄ2 77+):Ò„¯'Wd%ãžc©#;çÁv‹2©—¦xÆ$\œî×½ÙQÿëÏ6`ïØV$À¢%ãÛª¹HàÊÐŒõÎqçLÎ:ç\­a¬¸¨{¹†YQ¯M#Ÿ'®ît¯ÕœµÄE,}H‹ ”s®¾r7 ª÷+\ܱstdp~aÙ„lNâ"ô3i"i@’$Ë›èk>_ýõ{ï½wÏ=÷Œ��µ@â›Û·oßóÏ??666::úÞ{ï]¿~ýÆ�«««F|¶¦ãضmÛÝwßýÀœ8qâØ±cãããÛ¶mñyo:ÕŠsniiéòåË_}õÕ™3g–——‰ø"�Fgš¹Þ1Ï  ÖEùr&0Â�Œ¹)rJ¶Ä-º‹Ê».ò`¹ðM—¶„WÀ[ Ôœ&ͺCÂiWƒ0+O+ÌzAƉ¼ôè/ãÖ6J‰µ¼@fêHK†Ì9#>Skº?.B>£³P‚Öü¸jodç­qžeØMZWÉvª´Œøžµù{žxbƒôQl8ç|šö«§Nùu¨Fxq<ÐÝ’$J>íLüv™ÏçÆF‡þøÇ/¾ñÊSöïêë-zlƒËXúºÿaÎŽ Í›h!ýÀã�6óû6QÆñÉ©3ÆKQ!¦Îœ-DºãvÀ0J è :S‹|ج+dÔ'2|f“8êC�F×·E ô®¡aFÔ½øÖ«L„Øg„ÑS‡jõòÖ“{è®uQryçÜG¿ûêÜù+õCà–#ÞÓ”kZ«‚rè/VôK¥R__ßöíÛ÷îÝÛ~jH}áhpppÇŽÃÃÃÅbquuueeÅ;k1Ú¡ƒdzhhè…^øWÿê_ýä'?ùþ÷¿ÿÈ#�ÜqÇÛ·oòñÜi…î9SSSï¼óÎ[o½uæÌŠcÆ{‹šHgíFœ&”ƒ¥Yð1cü “ƒ,Ÿø.y¸©Š‹‚È) SÀêRa¶‡4”V%«B„ÛFa<¾$fj—CÄÀh=Ó�dÒO6P(ƒã™(bê¨3 $� 3#£€‹. é—˜· 4TæÖ‡+—Ë‹‹3çÎÍ_½Z­T\<›oðÆšÂÚ Ü(Ù†ÿÛßß{ß±C?zí™ûŽÌç`µ"Ø’ElãÉMÍ™¥ÀPÉ}6ÖDìcÐ=µ­��i±j'Vš6Ȭ12=L샩QQMçŒÅïªFT˜¥Mt®æ=ñ¦îñ–‹óÆFq !h¡Yÿt÷6ƒ¯VWÀÕÈGî@&(g­�v‰ª7êò^;¿ÕZkœ«‘‹=gmÕUs6YÎ~cŒ�szcjÕš©sw´o¼"ÖZ{ÿ½‡ý›�#Uc<;Ý(…As¬ íÄ2¬V\[[;uêÔÛo¿}ôèÑ�;w¦7—ÖÚ������ÑÑÑ;î¸ãá‡þøã�?ÿüóóçÏOMMÍÌÌ,--5íZFôöönß¾ýСC÷Þ{ïË/¿üôÓOïÞ½»#’ƒðjÏÌÌ|üñÇ>™L RÓ2lBîd�IÎ<×ÈMñ¨Fó%Ó¡jµÊˆ£÷“/œ%KarðÍ rqÌCä›B}‚�eÆ©‡$Kâ0]f„^î7pRH8ýe’Q�t|µ‚Ý¡qc�2±˜ž’5¤PÜ2Pâ~+ÃÕj¦RY¼zuöüù¥¹9¢Ã |&¥<øåM“yAr9;Ðß÷ìÓ½üÂwî9z ¯¯'¬ÝN§›ëµa-ý"°”�×0–2:,“b ýãÊ9S‹âU„ÐÆwZE�¨:W è§ÆjC±È]ðÇÈ}t(àDwT˜èn�{vì– ÃÀZk<µvÆ5ÞBpõ¼UUßvŽÅœ<#Ñã|«ÎÙœoηõï³z*ŸkT®9—³Ö{Ô­­·™sQ$�5Æ™ZÍçܱ«1ÆÍžÜ)lÏE¯õi[’� ƒôׯ_ÿôÓO¿ýöÛx``` ƒbxxøøñã‡~衇¾þúë/¾øâóÏ?ÿòË/§¦¦ÖÖÖVWWK¥’‹>´éà;”èÃf {ÒS(|,ûäääC=ôÌ3ÏÜÿýûöíN .oιÅÅÅÏ?ÿüí·ßþä“OæææŒ°ˆhði›ø%öH•–›/ɸ ;A('ø—z2¦È¼ÅT» i(«…]Ã^8ø«Œ˜gðB0¦Å/Õ .}P[<�Jß·Ôã~+Â9W­.ÏÎΜ9³47çDâgö”j*Œþ2ŽG.gûz{ݹï^æ;�èë�±ö 7L欖•}‚‚ïÉq7¼ zÙeRoåòFßðg×À¿cebI]j±‡Jã)ˆÕaáiCL\ÍÆ8àéòÜ�œÎ‘#ÛÁ¨Å“¦›éW·sj޾_‹ç¹qÒl€X¹u.Ê ãÙ@ÈTœZ­1e‰iØOà&tÑ!e­5u×{ý%€s5ß‹è•úÞêqÑ|öv‹¹cߤ|œ0¾–NhF‡E ‘"áÕP*•æææ¾ýöÛS§N����ŽŽvÖ-’Ï燆†&''«ÕêÊÊŠgç7nÜX^^.•JårÙ̵V«•Ëe???O<+ò¡ó~½éÄÄÄîÝ»'&&ÆÆÆ†‡‡{zz:¨pJ¥Ò•+W~ýë_ÿÓ?ýÓéÓ§ý—ü!d#ܺIæú†± ÞÄh?Ë,d"*�ì�²©…&)ÀÂQ‚�7( y-ÉD%‘à¦2Ç%ërŠÅE’i] .nÑPP$Ç~¸’ÜÿØeꦃàZÑkಢý˜Š‡.|ì]ðaIø•÷ßßùøãI£¡Pt”¸ßjpΙRéÆÔÔôéÓ¥•tVb'>Â…Ä7Ø}“ˆ].gG†žøÎ}?xéñ»�îè‹ b?l”È#-ê4¯ñD gaGï4ÓN–Œm 3>Ý’hâ˜A#¦A©Á—Š:cŒ'�ä ·cn³�7ñŽF�ðW½Þ]ÿa­©/Ê Y8ì%r®«RoÈ¡šŽŠ6‚j¢xϤ-ùÛÁfò[õ':ÜGj!ߘixÚ¼½Q þµÒÆÖ–XÜßæ\ïÎÉmW®^£‹�lE±�ø“é�l‰•§&J¥Ò7ß|óùçŸ>|xpp°X,&qÍ–á' …BooïØØ˜1¦Z­z²îY‹?JåWVV¼ë½T*ùt�===ýýýÞè b±²²rêÔ©>øà¿øÅgŸ}¶¸¸ˆP޹uƒ'‹1c¼^I �{jeCL*‰V–l’ÑP¬â"8zë‘ÖfºùC2€ž*²®á!œð.~2µqTñ­kÛ"òÍ. 2ŠLìÆÃ�|Z €Jb÷å…Œ{üÚ_æ_GÖ®PÜJˆ÷Î>Q›W­–fNŸž›š RvB.þÁ†xÊ-XÀD·Åûw¾úò‰gŸ~hÛøHÁ5쪎mÇ™u]$4‘Ø¿Ø�´†ê¨gÍ9rå`×¹Q-TË5¢X€Ý7XnŒÊ×½òÍ•�·Ø¹XÛÓlƒ<¿a4DëË@ë!ãQ°JdŒ¸(Z¦V‹yÝÐßæ:crÖ’V�÷ èk¯?|¹íg"C¢p¥ZÍårõèy›³®æ‰‚Ë5^ðñ¯ÕÜ¡ƒ{¦®ÌÖGCĹ"3��Š1â‚3ŸG&Ûùóç¿úê«'Ÿ|rrrr#ˆ»Å@K8çúúúz{{å!ÉÒ6ÄöÊåòÅ‹ßyç�¿û»¿ûúë¯kgê™ø8›øÍŠfw-<ÝlA§œ?,# #ß8P~¿qAêùì1¨-UÏårÄ/i 1Úm`~Êæ äž§vYsì¦�’t–åþ Õ� :»"Òg3!ÐrÀ P'rˆŒ¸–Ù+:¡Jß·Ôã~‹ÀÕj®\žŸšš>s¦”š\‚ÝׂãÙXÌ¿+�Ëåz{‹ÇŽüñÏÜwüÐØèP®±œ°ñOLÃÆÿés;©d:.Nø¥CÅN›ÒJl”âÔ."œ’—»xCÌi8ÛÙ{"¯1…êŒñ¸ÆøŸÔ%kèD<…»q ¥ZÇØˆs —£÷u• GÞ‡ÎX‘�GyŠÕr´¯ã²tƸ¯Ý³÷zùÖ¢øšº4k(o]„`MµRËåA$P>ïï<¸ç7ï* è�¸¥`¬‚Í„ É@Bã�^¿~ý³Ï>ûðÃ'&&<¸ Ì8¥‰,¼j@4ôÊ•+ÿø�ÿø×ýן|òÉÚÚZzh{�ŽÓPã™’mÑ 5‘aÃ"ª™G… 8È™L¯‰ŒÛ!ŸˆLz˜´¸‚1`Ù�1|Âÿ²²!úËLFʃjãNö“l vŇ ‡]6ÊzD'Bžz<ÊÂiX÷é¼…â–Ïã~ÓïéŠÖàJ¥Ù³g¯žòçÿú�cG ö'M›­s±_ûäb!.L0—#ÈtâLv‚Jb‹‰m5<ÁIrc›øü`�Ô{ýµ6‰ŽŒ�9 YÉ(>¼a6Ð_Ø4>wä8g�"”z$Æ"¢PÆ‹Ÿ_iD:5ŠRÈ<ˆŠE†�·@®}ÿ°ö­�¤Z­îh¯Û("ÀŃþ#µÝÕéë¿zûw¡nq¢#y†Fh ï–”‹í¨êS*•òùüöíÛ'''ûûûƒZÝn(—˧OŸþå/ù³Ÿýìý÷ß_]]e|Ñ »ˆ�)ÑÒ$6HôMt¦è|1¢)Ïš…Œ%L%$ÙtÔ ¼ú@ÓÑÃê’ì&qqQ4´'îÏHsð§|P`=Ò­°LŠù„g/+iBàˆÆŠÝ‹è�l—:b`žÐÆÒÅ‹šÍ]q  NÜ“¬|EW V.Ïž:5}út­R �.|–ÐN*$°&r½lß6ú£×ŸùÃ7žÝ9¹ >Â"ÜÝž•�·7ÈÚÙÇz(,;yJ¿º� År§ ê)YÚK14b4:v€ÛÎ1¥jôDñ‡]]o.ºU÷�ןU¦žéœ<ñq9Ž Y±¦êþoÎ­'†¤œ�yå«;g(Z�M#å5�”D¿‹ºy@�¡·>•$&IÔGS®TþúoÿÉ$ßÍ‚,Ç$P�î<Ävúo©öõõíÚµkÇŽŒSÞ†pÎ�;wîïÿþïÿöoÿöóÏ?_^^¦C)üÏFþl÷ÓOF×XÄ H$2¶Î”¡»%5A_JÂSÉÔ`Jbë®$ÄŒ:afP-ŸXFN'lšICQØéÏüÖ8æ¬ËH ± c.ëψu’þA“†Ì³Æ½"Nå�a÷±ú¶wÅ-}yÔõpåò�K—fÎ�«U«ábµüÑÍß1í#bŒ)òÛGÿ埼ôÆ+OíÙµ£§XÈE¬Ýs.ü¯Á¹XO”«µš#Ú Ú:¡OµZ v&þ�‹�°ï‚3®æjθZÍÕƒ;WÿÇ9ç\µZ«ÖóxŸ&ê—­Kpu¦î ¾íè[§þÂ�4Λ³óùP™º:äõòʾso>”ŽžîòÀG~MgURùqòGK¥ÒåË—?øàƒÏ?ÿ|qq±’`]ß&¨Õj¥Réw¿ûÝ/~ñ‹“'OÎÏϳš3‚¼Bhz"¢[wÐÏ쫯Ž ·ßð¿Ò!kB]6ÃD ‰hÐØÎs3­×‰­õq#Ñ&ŠruOxìÙQÛØÓ.rÆSÏYgÒþ!W¥ u5bPnuK­­vh"˜(\é¾DT¾^ÈAìAîê±14ß1A8lÃÕåøv-‰õeŠ…Âßÿãûs7ù‰Š€l#¸A#�tKDJÄvtöe*•Êüü¼µvlllÛ¶mCCCIŠÝò¸~ýú?ÿó?ÿô§?ýõ¯=77GK9MÂË '|ÃòŒ°[\Ї[‘¼Ó$,ZE‚e3D•œð7'iëÀ7oⳎD%±U6Øqì…ì£�‹õ Ž-òi‚|R'?ÛÃì�8¢Ú¬³4,xHÞ‰ñæ& XkÕã®è~Ô§¢Á�ô Rl-8W[[›»paæÌ™ |Žsþí7ðˆ…ƒ÷ÁÈæúÿÎñï½øø}Ç öår–Hq€H'PvbZ4ÝLü_øa•�þÆY¥…¶êÞé` ½3ÎÔ‚Ä0ëX{®=�C'¯” ËwŽ‚XèŸ:·ml6ºÚˆ7‘+�IŽeEˆt6.ÊÄB$»VógØçˆôâý©ö-ÓGI£(—†“-5S7#íE£R«×2u—yôÂÅ'~®Ël„͘šqÎD‰küƒ¸V«Ò›ŸzÆH™ËY߯\ÎV«µ|>©í—¥ÚZÍåó9ùÚýžhhhÌñ{ž9w™�@Å„¸xÊÍ«ÐÄ`× /•J³³³ï¼óÎÀÀ@±X,‹ccc·áj¹………¯¾úêg?ûÙ»ï¾;77'gÒý*éDx ì»BŒº¡Ì¢™t4põ±LêlÂ0úl”šc!:Ì Ì;ÉÆ� :’1‰ cçì®%¦kħž¤~Ñ (™GL8£ã)çZ^8’ô³Á”B¨Gò­šæ–QÜЬ2ÝŠêêêµ³g§ÏžeqíŒO$UÇÛ7ÞÔ,¼í5õۮݽs⇯=ýüÓï˜+ë˪×iß!Å;3(‰hɺP Úo#©Á`˜ÆàØìaϪÔ?V7Ò„´%{Bªº°Ç ƒš d¨$ç¶kô‘&F'ÝDTØ8SO$ï]×QÄq °óÆkЍÑz�s¹œw„»ÈÆ€o"ÆK�6ÆTë¼ÜãrѼÂ/Ë8ç³;ÖÙ€�ú©Të¿Z­Yk«Õz•jÕ÷ÂYkªÕ:ã�"h„ \®TkµR©´{×;ÝÄäÉ 2$†Úd{r’LMM}øá‡£££Åbñá‡fÌòÖF¥R¹páÂoûÛ�?þøêÕ«rUeU%ÈSà £›œ¶Y žwJãh ƒ‘`Æe Ü!-|6(˜žIj’ñ µ¢2>€Þg{d„ÞÆ#ÔYš¿M/1‚·2¦ =ÙŠKˆŸ”4=ÉÆ€[SÌ.bÒdÄ”:f baN4¯ð„ÓD*] %î]ˆjµ¼º:súôÜ¥K>B&øø—?‰I°¤’¿™š�þ¾»ïÚÿê÷Ÿ|ô¡»‡‡ …è)Enñ½NDä&g0²íxùx3’§×”î�7Še„2ž�†6ù"�Õ­q9P¥±3h$X[Ï£Âíç÷Ò~üÅ7>BÊø¿oÔ?­�'Ó¦î°7”رá#wÆç©0™u‘ÃÞ’ñ–ÏçŒq ¯¿1ÆZGï"_»©ëc¬‰¹ü‰²cŒ�Õ©5H½µÖD�çHãjµšóæG½Ó¾Ÿ9KoêYÛ£—Æ“Ïå*•j>Ÿûÿ³÷§O–$É} ¨jþ^ÜyWf]} ,3Ä.ùa!#2²²+²ÿÔŠÌ.wv¹¤ ‡Ãåp8C�\�C‚çD$HlDß]wUVå}gdÜï¹›ís×÷sU3‹GVFT¹vv”?w35U5s·Ÿ©«©7¾©›æà`º»{°»··µµ÷ðñ³›;�ž<÷ý›ÑVj¨'Á·‚5I0­ð„‘Ýò#ýn'„pppðÑG-,,TU5�þÌŸù3+++‚iè‹NOŸ>ýã?þãûoÿíG}tpp b\×’!%ÔïµÐ��ÁÑ(‘ÐøèÃ;]ài”Á"x�Œm±iòWZWW±@r°Åc)À-âÐ3"xµ° �¬ÃʆŸkMj*|â] Ì‹]l[”‰á¸Âýjyºˆ#¹õPø¸€‰ååÛ® ô ¸Ÿ3 u}ðâŃ�?Þzø0ô!ÖáÑ«˜Ä£æ¼¡ÀêFåæÅ¤ûUUÕu-‹�yFÑ@� €û¹¡y¿ûìÙƒ>Ø}þÜ~Õz2Òø•ˆúÁ0ꀙÆ£?ýó_ÿ�?ÿ_þê/ÿüÅKë XäAsFàîON ôõ¤ø¤ÛMÀìάj‘t°…#»d£3V¡c„†*ƒ;šß™¨L¥>¦ï5±�LU¨cÜ´10²ìêï,RÅqûMV0—FêÝ»þÐaøøZ „X,N�Б8´BCα÷žbžõÎõN̲^ãYÅvdÆ<Ð;ç\å¦Óº©›iÝxï›ÆïìîíïO÷÷ꦙLëýýƒ½½ƒ½½ƒí�½çÏ·ž>ßzñbg{go{{wo2�Ö“i]7!x\Ï(l1™—õ2£Ï3µ‡Î§(hÆb‚™���wÞyg2™lnnîïïÿê¯þêÅ‹Çãñh4šS€óE“ÉäÁƒï½÷ÞïþîïþÉŸüÉÖÖ�»Wþb×È�ÀnÔ(�†¥]ü–¬ª }±Ø‰Ø­6€DAjÉÅ.0 Œú/ûÆH,¦´V@Y ©Å¬(¿Õ(PáøÊ3mí)„‹Uñ1‚rK ÐK ¼Hb×0Ø–Ý®j åŒ=+ê�F#Hóà�þèú·¿�ä3Ð@ç…à~n(Ôõ‹{÷|ôÑdg'qîs@š•Žj˜QåÜúúÊŸÿ?üïÿ«ÿÓ¯~íí×××VÚoËÏðh?ÓœÛhêÕ™ejÏ f½ò¼.ij¬# Ôˆ†a9Ùœm�òâ¤zGú¥N¢P:å ³O<£T„k®®7gÊJK©·åºI¼ôDÔK¶I6ƒr›þ¥unq§¨Ì>„ö½A˜ÑÊx‰î„évÄFoº÷uÓ4�oÝó�ꦙL¦{ûÓi½·?ÙÞÞÝÚÚÝ;˜ìlïîílníîîîO§õ¤žîîìoïîO&Óºišf2©CuÝÔuíC˜NëP 2k?í‡S=«†ž´U’(Aú©¶œBÓéôÖ­[1Õ̽{÷¾ýíoík_»|ù²mñüR\¤5MóôéÓ˜üñ�þè�>|8™Ld[Ó©“R¬üpÃZí RÄ©®K™XÞFE+8.!ò²l�bˆªQ<êBª¨Ÿ©¡§`\5&P¶R<ÿ-æm“]†ã­ÊðTB�3›eRR1QÚçme,o�`oa âs  �Î# Àý|P3™l?xpÿý÷Õ‡QÕ¼Œ×mIUÅ9÷õ¯½ñû¿üù?÷ëfcc•‰ë¦ö“@ˆ©iüÁÁ4FH»Ê1q]×އѨ�Gãqå½gbv<ªFUÅÓºiꆘƣQU¹É´öMCÌ£ªª*W×uÓD§ˆ�ªÉ¤®ë†ˆF£jaa4�F´ª‘�ªºnäçÂxÔ4a:�†\åÆ#ïý´öÁ{v¼0‡bÎrç¸rU Ð4�Á1;WqŒ¾ð�(T£Ê1×uÓ:€«Ê1ņ˜‚«\UUõ´ö-h}uMÓλUåïƒ÷�•s1´cÖ/ðɧJ Úë º¸¥I><Õúæ²wÍ ´Ì¦®6ùcèÚéE¦J§Sƒ9‰(îûòÞ317¾‰1ç“IÝÏDŽÝhTM뺩}Ý4Þûé´ÙÝÝÛ;˜ìOö&“éîîþîÞ~ô‘onî<{¾µ»·¿¿°w09Ø›ìL¦Óºnb̬]ï½ÚF¬|üÌs·ç0¢j•­O#{#$A†%…HL„.ÜÍhoIibggç“O>yþüùÇ?ýôÓ_ú¥_úå_þå·ß~{aa¡,Ãy!f®ë:&°ÿ�ßù�?üÃ?|òäɤË…Ï ŽÕCÉVÁ3‘ÿY,ÈÅŽƒQ¸yâ™F\ú~ýÜò‘1âKF®â žá£`1Í ÆÊ€gÜ«%�È åû�©¾"+(ŒŒÇ#©†pÝ•TG]²7—´E°F²X �Î5 ÀýPhšÝÇ�ï¾óŽMû¨< ‡³ê?¹à!Hë«¿üK?÷g¿ý ×®\úäæ½ÝýýÍÛ/^ìîííïìîomíníìîîí“�÷uíCðαs39v ãjqiaiq1„@"HUµ01øFUå}LRBãѨišºn¦u‚�è³iBİ•«˜i2�†@ì˜U£j:�Æd+UådVpÎ�Ç£ªrÎñÚêòòòâÊòÒÒÂØ�ªÊ9 Ôøöm©cDM]G'›n³&9ff®ë†˜¢b®â@ì¸}‹àœ‹žd""&Ç.Æ}8ç*çVV–*WUÎ-,ŽÆk«Ë‹‹ ãÑÈU×6È7M¼cv•sÌñÓEñ'µa$žÙ1sû¢ƒˆ`'@çnŸMf âu—*œ´ê¦‰A8•s±`S7M´sÝ4ÓI=™Ö±Ì´®÷ö¦Ózwï`2™ìî¼ØÚ9˜Lö'ûûÛ{ûû“ºn¦Ózgokk÷à`r0™4u˜L§>ßøºñ¾išÙ>ÔYŒirň3´ò¥©A›Cíø[±w‡ETŠJbÏË�"ÈЂQ‹5#®}öìÙ÷¿ÿý»wïþä'?ùì³Ï~ý×ý­·Þºzõê¹NôÞ4M j¿}ûöøÃßù�ßùƒ?øƒ'OžHå"UZyRÂÃ>Uh�L$q'âû¤›<ÖªëZ>x„ë@ô— VÏa•˜[e•Ñ0FTV^yü©V ˆõÕ@%Âç¼^jRÀKÓˆã­b@4�ö’þÅö»´«ºƒÁË®tÝÒ •R¶UÆÄQ1 ö�¾04÷s@û››�>ýÔ~b©ì‘2ÖÓ ~:çÖ×Vn\¿üðѳ¿û¾s°?Ù?8hšÐ´.ÕÚ‡øµËŽU„bÁ311ïEz¾.ÇÜ¡7ýºÐŽvŸb Ò{ÓŠÎifŽÈ2‚Z† b!Ïzf&n�8Cz�ø32é±óÁ»™‰¸ñMå*¢ãî«@(Fd‚¯ª¶ÁQ5�ª••¥+—7._Z_Y^Z\\X�Ç£QUUÕhäF#ž}>Ý-,Œªªbbçxaa¼¸0^X�*ÇÎ�ÇÕâÂÂÂÂ(š­rn4r®rõ´©ë†™¹âqUM¦uðá`:õÞSཽýÉtº0­ëÚ7a2™ìO¦“É´ž¶iX¢ç{ÿàÅöîîÎþîÞ~áà`:™N÷÷'û“èM¯ë:Н,šÆ{ï¹ÝœMØ—î{¨BvÔáÀ³PÛÖBP¢Æ³E v¨[#¹H°7ŽpP@D5DXÁ…ƒ rP‘m]×;;;wîÜÙÜܼ{÷î;ï¼ók¿ök¿þë¿þó?ÿóçwÇj]×ÏŸ?ÿáøð?üáß}÷Ý­­-Õ�v+p]ÙþÂ’ê¤3 ÿICIô¬žQöy•´Ö=,íâX² ³ÞHlW ‹c•ò¼ w4�ºXÈ®Á&p=€ºËOõo5$”¨ŽZ/Y[Ùg šHYx �Î5•€{nr�Ÿ æd~<N.ùY¡|]o=|¸ûü9>U˜f¦j$áƒ,>C+ç¶¶w·wv‰(’L^ª.3µæèžƒ2…•V”Ä>Ö±°‚eÌ-BÀ ˆ:ålS÷dF°òÜœDÒŠ�–ˆ(~B(}ô1;vèûaê Så\´,w_&bæÑh´°P-.,ŒÇ£ö:óxa¼´8DMÝÄFG• Ìñ§sŽ™˜ywï`2™LbQ\}5MhšºÝÊm¶HßøzöÝJ]Xzg�lŸjÊ÷;ezÙž·ó«ê[XW!³n9ÛÝI …um[¶¢ÂÖJª0iòâÕƒƒƒƒƒƒÍÍÍû÷ïðÁ?øÁ~ã7~ã×~í×^ýõ¸cõ\PŒhöìÙÍ›7ò“Ÿ|÷»ßýÑ�~tÿþýÍÍM±UÒbÉNQÖ¦L åŸ�I4,ôÄÅžEÀÊ7ŸlÂS£Ô‚]<©ä”�›J`+$J¢,c-õƒ‚P�ÖŒÊ («Zª3ÇTŒ6C©ÇBòÖÀÛ0t¤tT«,Oö^.Ð\�;C9æÉN9ÍÏaNÉ�!Ã˦‚äÇ“vN£�¼wNEžãuܹ™¾œB8ØÚzþà�|e ŸþsŽHE I‘Aå¨Qey¤âÓ‹Yƒà¦Ì9 ×ll]ÎÛýjX9Øêêjr^·ðBM*Ž9ÇØýùÃoÎ`°‹x÷ÛŸ1› æÍmÖŽ*ÄÀܾÄ�|” [ƒ[Ôì˜<žŸ‚ÁóJ}+ VTÝ”l¶iÛ®ª•”¡Î�!Z ’PªC)5œð¸®ëG�=zôèý÷ßÿôÓOïÝ»÷çþÜŸûÖ·¾µººZXŸŸªëzkkkss3f�ùñ�üýïÿã�?ÞÚÚŠëÆXL–Ùd<Í–§º£UÜHnðXªöJbß±I£F 0mY(FLƒb«á‡²qÐQ0cv÷ªUP)«@°(Ž‚¡IñdôÈÜæåY­„Ïtÿ3sÌI/î•äý(ÂÛÝ)Ê2ÔÝk"€-Œ:R*ƒû9J,£¹x\è—�¾ð4R8€ò°/w¾0€æ[¹Y¸…¶ÔótN´‘œÝ�TÌÎ÷'¼êzëñãúà ÷°Ë�Ñ¡A,<-ü �‡›`B’Ïdà”&>�Ûä±­"ªÉy»ÙËÈdœë£¤¡¤z¹–LB9#"YIr<É ¤øÝP¸;=óQ’¾¨(OÀ /iØÂέdÅ£³ä$ma–.ÉÁ“|,¨©]•Ï�‡\§¨V„ A_+ã(xg›HZUµ«nŸ���þð‡;;;›››¿ñ¿ñs?÷s«««‹‹‹gpªöÞO&“G�ݼyó³Ï>ûÑ�~ôÃþðöíÛ�?ÞßßWÊZø[Ö‹‰ýnâ-OýÅ"E)L­ª� q÷9&¥‘ò‚ÿ¸só+1¨�YƒåJ»È?™žÈ>ä¦@�‘OùµCRŒXQÝJØœÀ¶’“\–¤™Ø¢•S¬jõUeTuÛ¡f;þìç¡Ox+’Ò4IGz0ž°Ö«môÕ’z–ÎSåewâ1Ú²sñ<ÅÔÏSð¸ÛÇÁQeB:öätr»¿<9ûÈ) ðGS׻ϟ7u�«8§ØÁÊãC�WÎdê‘}Ô¦“ÅÀåæ0ê;~Tá²qæ‘ÓÎ4£‰)’¸$7iYæRRÍ© Ô† `•Z¶Š‡'êœC ™”ÂQ4¥ŒiÛJšÏãÉ#=R =«ÌŽ\HšW r?¿d]×øÆ-ž[[[¿ø‹¿xåÊ•ñxÌͯÑË£ýýý[·nýô§?ýÁ~ðÑGݽ{÷áÇϞ=ÛßߟN§†B›à=[æ/†’W ¥áU…óp� êÅ��÷‹òã}DO)u£‘ézñ{ïåK¨cF  T/‰�a#C5þí^XõÓË_e@ŒÒQUÔku{Ê™èhG¥ìo|1`fÁæTÊš(6áàÍh•�çiöRé• pîh~‹�ÛO¬¥m�áé„Ê@Ïi±:;ô2”J!4Óéþö6õá©*VÀgó7„Ç8ýØPG²‚}2‘¨×Ó¹†l£9ÁÔtHf–%Ð\¶ù<ØNA�CËËÕœ:ÇÓ/CC?��𿓏ÖBð¤$jŽO–&IÌ„L¬MÔXR'mÓeSÌI�X–IT&¶ÐøÈ¤™mèÕB*< m•ÂÖÖÖ�~ô£ÍÍÍ{÷îýʯüÊ·¿ýíŸýÙŸ½pᜒ¿TªëúÁƒ?úÑ�¾÷½ï}ï{ß{ï½÷>|¸··Gf‘&Ý!ØÁ·:O_ ÝÆÅŠ ª"ÎÑãœkšÆ2”†’k;zÕ¨F5UoÚ“„¼ö6±�V9¯ÎPþŒÅ"ÄÇKmQ<ûl‘3ªãdÛG“)UO0òË�¥©R4R2³N2,МÅz%ô…ìÄù¥­~î×~­wâlør""&šîî>¿{·©kß4è¡INö‘r}ogØ©¹–ÌÞ¯$³8øä÷UaF)V3 å}§ò! Û$7ÛzRT;ë “™ém»ˆ'’  \7Ùz΀99“€Fñ™l$«”¿…Mr)¹¹ðЦ©o+5¨”0�ʼ|5îõ¼}ûö­[·¼÷kkk1\øºœ„¤O½÷{{{�=úðÃï÷~ïŸþÓúû¿ÿûï½÷Þ“'O꺶wŽÉ\P»2r®[q`«Û0@<†íq{ÿRâ…v%>pÔ¨f€õª™Q‡ÀQ�[XDZ´˜;‰ŒC?"I¥aQ¹\P6\Yy¨{¢‚*ë¢mWŽ“·$õ_Œ(I[1‹mÈÞtÁ„õ+ÛwùfÒb töiîgšêýýÜíó]çË)ÎIɉÍ>ÙEØÉƒ9+Z*Ä©“qÕ \@dp¤¦íiçKœ’ h…´ “¨E1ÄŽP�¢Ð„šËsŠçÆRY�ÙEÂ<¸\ ¼y;}~þˆ ’T¾š”SÝ €RÉYè CåÇŸ{{{÷ïß¿sçγg϶··«ªZXXpÎåàÚéË{÷îý‡ÿð~û·û;ßùÎO~ò“Ò#y¨r}„·jÒ&Ü‘m Ð#¥UÞt2Cíy%€û8*©TCvÿšåG>6D[ì"GÕR­$ËÛG±ôÊiW#JZ¥E0› ¨‰¤nIKâ_-hüÜêŽSÏÿd2x9`æÕ¸tniîg—‘ŸNŸÞ¹·$ ©çTš(¤^ÀmªŠf‡”jnNBö’jEXi—9>8cácýÐeL’Ê DRS‹Ò�û -'*rSów<@˜…Üǂɶʘ†úƒ§\²@–Y©Êrb]{&iJ½vÈ1LŽ�äÒh;HÉ$ö²íª1œÔ±pÏ*&MÓìïï?~üøÞ½{÷îÝ»}ûö“'O677cÎ3Bs*5?M§Ó­­­[·n}ÿûßÿÎw¾ó�ï|ç»ßýî'Ÿ|²»»Ût�&e"uRÎX¤H{R¿s�…�¢Æ¡½Ñ�§@v|~Ê%%!þtý—Rj`p*ä j‡.VÄ®W�ÅÙ:¤­`I9©¿0È5”d’³¿�‚øÖªÉýÁØ–Á÷¤œÂ„úOÎdŒ>*»s÷î€Ý:§4¤ƒ<»ÄÌ“ý}_×j>F”œÄÐrÆÎIXÌž$ƒx ‰Ïs2¨«ªn²«ø @”�2>ìBëVœ*dµZå‘@ÅsóY®Q† ¢Øl²¤%¹¡l`k¡�ŽJV¼$+k“7ü™”\Ž“£1ÉPÙ?.>]?7v2OvRä‰ ï,{Z1ÊB*; æH>ÜÞÞþøã�üãõ«_}ûí·¿ñ�o¼ýöÛ—.]Z]]]YYY\\\XX�Ç£Ñ(ÂD ­©ª*ºç-N²‚EšL&{{{[[[Ož<ùì³ÏÞyç�wß}÷§?ýé�;wp=Ÿ¼åå–!p~s?#š ÇR²; ÒÚ{ M'bŒ{Ü'·%ˆûYAC5ÒÐh¸ÃGÚœɛ 8¥p<ú{LñÉ#–”}ŸÊø¹‡IÈ ZUöÞ�F#ûE3ä¯ny<©ºûBÊ ø.ÜàÔŽ)í°JÜž‹¢éd%€ìóêØO¿�: 4÷3M{››õtŸ:êéC©M¢øÌ•I‚ú{Lh°ç©?#–Ÿq(ÁL©8˜¨'²j'œ!Ô¬�¬jX²¬ŽTWÓ°’Pí‹¥Ôô£M–LN*¨?Ù¨©Wu·5cNåãÍ[ISä¦á9×¶�æ)_`n­-&µhŒúæ¥üÊ*×Ñê*’2WA Áj…*‘öööö÷÷Ÿ>}zóæÍõõõ«W¯¾ñÆ7nܸ~ýú�7®\¹²ººº¼¼¼°°Q騣¥¥¥åå奥¥Ñh­a#mBMÓ4MS×µ÷þÅ‹wïÞ½sçÎÍ›7ß{ï½›7o>~üøéÓ§1Ï#™¾³· >jì7㔦É1�÷‚ZÜ�›Ç†bêFu<0›nËPÊÉ�tænp2whõ¢œrUøÈþfõ|&7ˆðšòÏ,ßÿjÞ vK—!jW±.b�­-%ÕªC˜ã³Âf}Áe ²Å‡­šò”Û^—õ�ȉáRª î÷»7TÄÁ@�€ûÙ¥ÂöÓ§¾sY<êº\cø$ŧ3Ãv"5½!àSÅÔ}úÝ»w?ýôÓû÷ï?~üøùóç»»»“ÉÄ¢%«¬2;÷_p*z¿<,“£¡›Ý…‰ÂÀAf9H*ü©{îazG¶gÕ€A¥Ôy–xUš–FK£*­ VÄÇ£RŠ¡[Σ‰¬åeب×V¨¯ôˆ2¦��WwAî.¦ÎÝ®b�0%¨*qQ„dñ0`÷�Î# Àýì’ŸL&»»Ô@<ú1¯­zâ+ü§à>¼¨›ÃðÝw *Jάª|Ž�¸`¡ÂD^x¥@fPžžÅÈQáÓ¿;Ô¼…:âÜ&|ÈLfŠ[Aòœa­Fª¼š€s„eÔ‹|”ñ‘, É5d§ü¤À9!U‹ÜOˆB Æ&H©Ð¿vt�„²Qò';NÀ 3Güóçϱk"¼�°¼¼¼±±qñâÅ«W¯^»víòåËëëëèG 4�N#pöìÙ“'Ožâ%\äÛêÙ¥,†l�é*k¾LVÊ< P˜œšø •µZ»ð´Q dþ‡6j*m)C) t–iîg—‚÷Á{|¼Z(Ó+ŸBçd<7ÔYôÜ$!BB¤"²TOC„AÔv+X–Ã(ª•nShÕšÂÎŽ9½¤¤¼XP³QArÕÁÜYîA6«,Å¡ ¼*\#§ò¡òÐꑉý¾wt¤gà@�2À=: OÒ@''®*î\;ò²/‡¨?©äfGUL=Ž{­g\¶ªQ{Õ>I)5%$YQ"±r*Q•ÊX—MðLrò(ø¹UÓvZMJž´¿L<ܽÙàîs0È-g“£’µÆñ¸)í %�: *cዲö¡í†~<Ä7R –dXEÊÝk üY$¤v“ÿÊÔ<_°–è‚Í¡>ÿ­ÍHÓéõŠÇèXµ75¶’¼�¬´êÀv¥2/?wC¡¦IKªûÝZ^`ÆÒDDŽ¡ÂHö&RwVÁÈY�ìËM•D†¨8VTÛ¯±¼zÖa·F’ʼnŒîœñr¬\H80"'“7–dfù–ºkBçtÇnE�Ô>`{ËGrË'mr, 4Ð'ã7Æñ™¡jaai}§s¼Š³5Á_ž•REž¹8=û~’G;aÛ¹ Û“vZ"3ý+¶J5=ËyoòQ’™9&fU )õ§ 2ssrR“P®S” ÈýLµ+C�œB#Î9E%õš§Ö‘Ê‹,¾9†´¯,¢ç¸išxýǪG°u¼G¨ßÉ౜.I&TPë*a°Lò'¦j :•ÀV»Hh¢Bü›ì}yz¨' ™�Ì]fïh9P·ž½©Uy¬¨Î'�lCŸŒ<[ÚR—·Ñ>Oð™`¥Mvq¨ª¸YݲÜÄb $F´Š±@0‹¥22·¶ÂVPM±¡¨(HaÕ�rÆFÏsÿ•£½¡D_ÌσMà€LîÂu FÐ%­1Ð@g™/|:;´~õ*Ã[Ú8ÑâSL¡v2s>›|xSxZÙ7òI>éÔLf‹Ù)J1IN j>VJ©éyâ\MœXÌ‚¹ Ã΋øSy=ÉL6¶-%†55ÖRíæ0�=©®Ú^8´ŠúY@œ'!´ÌµñÒ¡LP€ÜdœÓQM!d̈³‚ÛRó‡vRÁ«X YÒ‚2%Kª‰ó¨¤zùØ”ë �Ùƒ«€—­E€p±Š]Ƙ'8»çZQACËȈÍ�œòÏÂI KHöEaØS€)EÊÕçáŒ7 6§"+•YUWd‡¢’Yý�W•:×�\ ý„6£N !Äü÷Á`q5’MÛqbϓ飜 ΢Êv’I¶ˆjeyu¬8KuUYÌÊŒç“Q[Ö†x {ß&«¡þYÎX‹Åå¢ROaûâÖ­õ·Þ¢�:?Ô‹qŸa÷�Î-ml\ýú×§[� ^InšTSÎå)Ôn§U‹Gm+ª0÷óÕ )!¨ °*@MeZB7˜å¦ÄVM}bt¶èûi 8.“�ò8ÑÌ1JõSµ¥ EÁÈ D:%É�ò³àñ(g|fÆ/¤$ëÖu=g+vÛ™ý™E¶+Biå@¡ Â{TCÙ» {­Ð jxày-õ"âI6‘kÔv“…›I™¬®n%¼€NŸÙþ«x"BU�bïh{CY1â�ŒŸ+R!ÔöÆTǨåoO@Bºå’ï§ ‘¾Si^,gꇡçɪ›,ÂÆQZ ÖÔ8Ò”©e.PIrðν(8bíÝG] Kì_é¾ø�As‰¨jUSi t6©ó¸wïŒW$Ì@ //_¸q#„p°»¿¢*—’Çè�TÏbË\á2@\¦ ß§„Å,%ƒì%UÌÖÂó¨¦ð,D$K£JÇ3‡\’ [íÊŠ,4I‚r™ì“&UmY€^…¡�p2CV¶Ì<Üæ¡�Hª‹sJÆ IBªE’¬ÇTøØ>Bô“´aè'm }4PV„`TØê"’Âvا–g(+‹I»v©Ïq ¾q MPÿy‚¶µ+ƒSÿ+T6Å ¶U�-g1¡ˆw ç¤3^JZžˆ\E%˜`É¿jh‰¹Ðê^ �b[Ij b·«*óZc"¼ÆU=‚—BßO�œ“îs/¤ÖØ\rì1 v)€ÁúJŒ`‘÷~ý+_¡�:?4¤ƒ<ëÄÌ£ÅÅ×¾ñ� ×®í½x±»¹9�L(„ƒÝÝý­-õ ¢>Heƒ)5Åâ#Ì>cÄpAÂäÕ$�'½Ù?Š0EN&1�Õ+ UÓÉ{I>r`Ê�xç´ƒ�í.7k+œ‡¬RÂ9yÞš:w‰Œg«Üb®À¡à{9ç/6OG#á VñQÞ>i¤q’1c&‘·2‹‡2ô´CK1!¸eìHSÍùþ·Š¢²gl�¤lX@­”5Bç¾EãX9)c †u�T½¬#@�"sYYlÑvwÎhØw 'õƒäÞéáƒ(w#(aä³²ÔGÿêÁ+÷…jÈ‚l‚.ÆÎU`]Nb—©Mx)ù¼µ¶²7—UGí"°åè|ÑÜÀ½0ݾÔѯÚ=F[Çãpr}O.9ÐÂêêÂêêÚõë~:�g&;;7ÿäO¶Ÿ=Ã9gŽÐÏaÒI‘…¼UȜʩp—#A½$ÔP`ZÍ£ª>gs³ER6œ‰•’*`&‡¤¦j¶ýïlS7U¨I(ô_%“™Q¬ “qA¼9 Ä“’”­\='‰=Ÿ\ �:¡UsBÎ1â~ït‡üE8R@Pî<� ?‡ÕÐzê$–·ÂSßã˜+œÓ]ꆠ«óª0ZU~*XLýÏû.í=Ú'wÏZ-’VJJh!&õ︤A¤:Þ’ê'¾d³O05$p)-’zE1ã‚9÷jH8H óP„ñ6*ö»@žTjX×F€B¥¸}± n”–û.p|hç& ;zñ®,OaRD縞TA,v(^B³(>ØYêÙbîÇs´õª¨5š»;y¬äQC�cûHT !|N›S OÔ/3°™“ÃKµÞ±™œî,97·Ñ ò‡îÓKG�é±¼jøxK®B­9ÛÂK̽K'÷�Ã1jf–å‹¿õgÿìã›7Þ¼y°»K€Òäq�ïÁ)åKIÚ¢F…âób«YÙC6=|²«g=ÎF1€©�Àʵ¤ŒÂ.š¨©úP³Øi#©…²Þ¡Ì%Ù–åœS‹9ÉÎÊ¯Š¬œãÈ1W£ªªZ¤¾±±våÒ…7_¿úÚk—®]¹xáÂÚåK6V—–Ç£ê�¿ÿÞ³g[¨Tè<è*"6ÙËXG{¢ELæ»�ø(ÐpèŠHI¨tO2±wwnÈÉ]¬Ê£x QåÎ�L¼Í±%- Z'°¡•ÜÝ�MäV…Q0”ÍZR=+ì#%Ùõ!¾üU¹_„HIkˆÊÆã¸)S™·xÊ÷SU»¾û0°j—ú#·äZ!“O`¥‘Œ”ADQê&B�m×c[êê¡�,{5Þ§ñšhˆz¥ —rÅæÇ§ KÊÈ!÷üy©/ÊÌO¨þñ˜Ÿ\†“ÃÝÂ)2oCeäA~ÒÄçj˵Îæ8)¦…sŽ—–®}ó›®_v÷î“;wö··}÷@"’Gpr³—i-�TÔÄfïI©ªªÑ¨ Á;vÎqÓx<Qã= D1Ž÷ Q|LLjœc¢8zÇΛõNŸ&P~û˜¶ózò*^Ê¡4[QIbј哛á¥T:u£­\Ó¯ µsçMD‚s®ª*æPUÕòÒâÆúÊõ×.¿ùƵ+—.@¿zåÂÒÒÂââÂh4Z\\UÎûØ)Ôxïú�q �a-¦Tåñ¯ÈºÀôbZð‘fŽç,?g¿ˆÁô,II’€)'g²®2Á퉺ž9Msç…gN~+¼ºUE0+Õ¥�}zóýN9V=(ò`< âòdßÿ¤+õó®`‚õÀQ#V¸a?:çâ2Gµòé” Á½½SðVR¶µåña.:ª`z6qAÒŠº¿Ô€'!b1µ‰m¢ìv  â,`�² §«Èñ,öR­ô¹uÁK…»ÅbÃæÔóMÌçx4ªªÑhyiaiqamuùòå —.¬]º´±¾¾zùÒÆåKë—.¬¯­-/.-®./Fˆˆ¸û_ Àq‰è8¾rÜ"¡ÜvU…Úq�$ˆÀ|~­ÈŒ7¬+/¶rg7%’ B[ÌÊ€úÚ¶ì]o!¦j…R¯æð/õoœ$€CI°˜ÂÙÁ,Šp¨'9 åUÇìX… &Ô‹)Ð�’$Ÿ«êU’c[¸]7L“¹µÕ�¯˜Ç’’DÑ-ЧFª©úѶ¢Ô´FP÷”l„Pw“º­¤JÒ³úëdÖÚxÒnt¡�¾Ìtž@ Ü™Z§{ !•û¹$WUK¯}ýë+/>½sçùýûÍtÚÔµzôÛ9F8ä fòÙíC88˜Ü¹÷èñÓç?}瓯½}ã[ßxëç~æíë×/_¾´qa}uaaì»Éu:�2³cGšø€¹n"�ªºñ»»û{û{{={ñbûÙóíí­�­íÝÍ­�½½ƒýýÉdZïíïï§Óºi|Dÿ{ûÓi]7�o| !ºmây"è�J1‘¼VFÅ[�ÿ¡ Û"@ d$Ï�lN‰Nò#ôc²zÕú|f˜¯ª*&Z\\XY^Z][^\­,/­­­¬®.­®,�GÕhT--...�GU5U ãÕÕåñh´²¼¸¾¶²´´¸²²´0®ºn Õ¨ª\å}ô–9föÁGtßùD]šÆ q°Ù‡Zm�95•éäKBUEUDô“ƒJX± U²E9I©ÛeVœ•xV$<(�üd+Iñ’rsß ‹f&™Ùb(�H(ÏIå‡VØÔDä�´‡þ‹2·6rKʃZDWºˆ�Q.˜E':˜¬äLRS¥ š‡¢…ÈvÀØ7Ê\ÒÝê¾°¨=`.š¸Sˆ +!Õ˜LÞP tÆið¸¡h¼²rieeãúõ­G�úé³{÷š. M¤>ÃIמÏ� !D`ýøÉæ~üÑÆúÊWÞºþ3ß|ë~þ_{ûÆå‹ëËË‹T¹Å…qlœ(¸à"Œªª*ú\«ja<¾xa-zû+7BŽ9~¿žˆ(ðd:iB˜L¦“ÉtZ{"šL&“IÝøf²¿?9˜LêºÙÞÞ;˜L"²ß?˜Ä)Í7žâ½ý¢x`Ç>xßïýtZïî¼ØÚ¹ÿàÉÖÖîþþAˆ°>„îÿD&Q¦h™$ò+Ì óàì9û%yUÍUÝŒ‹3Sà@�Z§õì8to9âqŸ‹Ž‘s,›íÆ£jmmùÚÕKW/_¸tic}}ecme}}åê•‹K‹ ««Ë++‹+ËËÄaa4�ÇÌT× 1�*½ï�÷•«ˆ|DÌ£ª"¦à}|ÛÒÊëƒr&p+9Çä[ø¯ØEKìîìÌE¦§@ %“uqHØ®ÄþµÐVu“mHU´2ؓɈV-Ô¶ ƒšÇ“s–I£¡=É\Ù1™µ|²�¢Ù2*:תlËJ˜ëw%¹(‹– sW @¸Yà)gráìÊ2ø.ÌÅ»�©f”}b-ìY¶æþ^idƆRÊ>©ˆZ· rP‚‰èÂWOf[2F´c_Äã×ûù9èìS?Æ} /U£ÑúµkKëë®_tóæÎ³gRΉs©Çì¤&“éã'›OŸ½øÁ�>ügÿÛ^¿~éç¾õö׿úÆ·¾ùæ[o¼vñÂjU�$t¹«HD2Çu!!Шª¨ª¢£ta1n¡îü¦!sðÛQã=ù]¯òÁ¼¦ûÜÏh4jš¦iü¨rιºiBãQÕ4Þ‡à˜�s»{ûû»{ûOžn=~òìÞ½ÇÏ6·=~þøÉæ“§/öö꺎›¦ß¼Xi4‹ËG9»ÒÁ±ó­Ÿ?0Ç™FŒ€3qûßx.bÕnž]unÃÍÌq‘!ÝÕZŠÙ9U®ªFՈǣñhä–—Æcv<ªÜxq�¼o½ÖqòŽ?åt„ì!¢Qå꺉Ý0^1ñx\­®,---®­®¬¯-_¼´~ùÒÆå‹ëë+«ËK++K£q5�ÖL<U"›s®i|§UÕÌñæ\Ä�¨ê†š�¯­"vñí ±£øV'Ú¹ñžiæ}oMÁä}ûJåÐÔJ€D$¹¨¿¨KÂw…,Ë2äÐ'J¥æg¥ÄcHÕ—ƒ¶…&DC“cê�ù`ת0õ?dÕI¶¢�=2•m¨7CP‡�œ¦L¨žæXF‰$›"ð<*¡¶õ%ç† ‰‰k”Ťõ¨&¦òT–Tjâ* …¶Ò4öErDÙ l+¹yWÙÖÚ»LIß‹Ö tið¸1©�ªµµÅ••õ«WŸß»÷ôÎ�í§OƒyT%'5­ªóø×¨kÏÌ[Û;;»»·n=X[]¾xiýg¿ù•_øù¯í«¯_½|auuyaq¼01s cQÌ| @¹…p­w„% …ÍVš�*çÇ�F­ó‰]EDÁfâQ5U&.Tãg/j™××WÖ×–C ·Þ¸æ=¹Š}v÷ö÷÷v÷¶¶v¶wövvö÷övv÷&u㛺nê¦�‘�GÑ[Ü4¾©›¤®}ã§uS7MS7“i]×MÄÝÓØÈ1ÅhþÊ9B ËvÎÕuB`ÇÚ¤òUåÚ=¾ÌŽ9zœ«*¾&᫪ØnU¹ÅÅ…ååŵ•¥K7._Þ¸réÂÒòâÚêÒòòâÊò’s<�ÖV—ÛY3Ðx|YŒä AdË!f1QN/4µŠ±°Ì$»Ò*‹„Ùà t-«(sË$©—²@R Rå¯òôç–²Þ Ôê#TT3„ß@ŒºÈ 7†:“cî±ÓÅ2V 4Ž= ‚Rëµz±¤†Aò$ùÒ�ÕËJ5Ð@ç…àþE&vni}ýÊââúµkÏïÝ{xóæÁövrnSx§ö2òP—¤¼÷á`2=˜LŸ<{ñÉÍ{ÿú÷ÿóÕ+¾õõ·~õ—ÿÔŸþ¹¯¿þúÕñxTINß¡ 7bVh3ÿÅM‰Á‡@¡‘™2–ä®D‹ã|ÐþŸ@Zï=·êÐît Á9^[[¾°±ê}ˆà•�#¦fÚ„ªQå›èÅ!Wµ8{<yï£Ów4ruí}ð£ª"¢IÝpì\Ó4Óií½�F“éÔª‡�÷^‘S˜NkfUUaZ7Ô�÷M¨F®]0„0WMÝNÉ®bßxvneyqaaÁ÷â⸩f4[Ø´–íí÷�iá/1qU-7Mßt�wm8Ê ‘s5ª(ïÃhTùî=‚¼vh»8®ÚUJÿ%B ¦øæ$ö5MCL­×�8ß Uï…ï„XØQå\ãÛÍÍ÷>ÙÚÞMÚ¼PؽðS,Ãðîžû›çTE�,xÑ^j«Z¨‹ª(<“°[ŠI¸0"BUFÙ ÕQâYyT ŠUGµ+g�Õ¡Ð_!Hd¢L¯ÆA¥“¾CË'%·†RÆáYr¤´"ˆ€=#ÊŒ ÍvDa8»âƒö”.�'Œ8ò©OˆìQêÂW°]UÝŽ»zÁi ¥æšÂ­¡€bKý�AæNL6A tÞhî_|/,Œ–ÖÖ–ÖÖn~ï{ÓƒUŸexÒ”dÅäT‡e¼÷ûûͽ{O?ÞüÑO>º~ýÊ/üü×þwú›oåúÅ k‹‹ ‹ £÷¨õäé¤&¢X,„Ð?PôÉŠr*uí;_¡]„Ê·`¿$PŒèˆ)“CðÌÎ�‰ˆ…ÊU"¥QU±ãèG4jÃ{fkZ–hË;„u·àà ‘?Q`ŽqÞŽÚØ�ºÅy1:ÚãA²®ëˆ°£j1ø;11UÑ{ ñëq¹Ób÷ènìR=Ĩqb⸢hk…Ù‚'Z£[õ×[®ŠÇmC�ÂR&}çØ¹ªišÖïZuB�o\åˆÈU.‚|v.Pp®Š«l4„Àm˜rÅÌLìÉÇh+Ç.úåßÿà35&((˜Ì»‡gíšp��¥à‚¸ s¨ŽV%ÉøÑÃÂI��§2‚b’ôì*}•"œ» (#¡+WY›@á­$Q¢)ÚJ Ãù·"‘Ô‹ÔKRʪ*ŠmÄÊ‚ã±#$•x„évXb/ �-ôˆä«™ËƒqB#ôW‹ÁúØ R»’`�[IT÷ÙÞ”ÑBý¬à¸4¤ …½C©•ZRÌuï»ßÂÜ:_TýÜ·¿Ý;‘y4ªçÄòõÒœ:žqSäÄsUµ°²²°´´ùèQS×6„=÷ÜŸ(²h>„P7ÍþÁäñ“çï¾ÿÙú“wÞ}ïÓ��=f/Œ}㎅Nl�{ñÈ÷Åm”D|Ìß -2¥Ðñ hŽ^÷Î+—ä­J3bL-Êïð~;™‘Àðàcã­_ÜÊÌm‡cçƒ�q��ßE½C®�›‰Ú )ñÿMZU®ÃýíË„È<ƒÇe@ r3TAQ”àC+m7õÊ,Ü2 äbÎ.’‰;N¡ qÕ}¦‘Ú\=n6Ôp\�Ó½ƒ­™ã.aRVg¦@ì8xO]a–Øf&v±­9Ó~FÀEcÅ%wy!™ˆþÅ¿ú�?øñ‡jdâOC9\ˆ…-('çj÷a™! œx¶ ¢Òô±¸{ZñIÆ<`uæÞÒ")¡B“J€N6Df%¹RS�ÁP�î¶j·~ZV *nl@*g°58®g¸[ ÚhÕ5¨/–Ifª±]£†�luE†¡ Á8ud»t²ŸûUBªñ L¡†M�Orå†&U¦Žgßä¨ÎÅ·É¡%‹ÉÏéË©/“Î8,™Ÿ ÀâŒ+uò.˜ŸÃHÖÔ]ÕnV?JÃs¾mš ÏSÅÖ:ó2ÍYñ„º—¹qþR®X¡!7]xýõk/^ÜÿðÃ0�Êæ}ÎÀ‘dP >sÑ%£ŠÙ­Eâóˆ´¹¹ý£Ÿ~üîûŸ®¬,]¾¼ñÖ×¾ööë_ûê�¯¼ñÚ•«–—+WEЊØß·.8Å­7˜ˆx†Ù•ÅZLÌñdÁ·á8À£„’�„˜BØqð!jdàÙýa7ÅÝNÊÎDT7^"­‰Ú0föÁs‡ã™shßÉË!�sÔ4~4ŠN¸˜AÅ·¯ºŒå�!£#î`Šó.Q'fUUÑÅÎ-Ž‹ŠY¦s"jšè>�¡óâJgj£Æ}Ë:"횦cDÔFËtø>öE\œ8fC¾•v&µx±ªëÚu®wnU›u^ìÖо oSË´â´ÑM¨{(xß8ׯýäÝO’"Áñ$Ž^Ãxï 0‡ßñÂ-Y>)Ih* çQîÂ{°€µ•BäÉcÕGék‹qÿ]‡ªh1Ÿ: Þ3¥p*n$žW6PË@IÐ),ò Tº(kÇ”‹£¸¥'v­îes©¬F]€x-´¼üD5­ú‚sÖB1‹l@�…‰ÕË¶Ž¤T7Ú39DêžÌ¡{p`ÓV*cíZEŒŒòô¥�s.V4ϼ_F2a¾KžsÖškåèäÀúئ(09­8Ì)ùœmñ*ó¥"f/-]ûÚ×&{{ÏnßnêZ¦m5åØÉ™P²SêI­ž¤ñ¸iš¦i&Óç›[ŸÝzðŸ¿ÿþúêÒ¥‹ßúÖ[_ûÊ�7߸våÊ… ëk++‹²Ç±cØ9>ljBÜØJLL¾ÝÙAú˜wdõ!¸Yí×G£�¼¶(=4¾m%‚ÆB÷íƒâA!*yç Ù"„�Ë€U™9®ˆZÔ?Fëºm�ÑãBš::ÑqpÌQqq9KÚÄ“£¼¦c?zªÊµùÎñýB¸Ò.“¨� ã~€Z§�m2Ÿø_ÁîŽ�÷� 1K†üø—¹/1”>Öêð‡ëÞœ¦nÉäâ+U•«ëƹÖJÎUñÅBÓ4Q‘»ªëßmcý黟ؑ¬P…ÅLÉ{!7Âs€ u¢CEÉ»Lá¿\ù7„)JZ¥£RS‰AýD.I ®š(Ÿþ9Ä&”ñ-ÏdajB 1W¸ S.* +ŒMÈI ;I>ål¯I L<�d/ãĦ5$“ªR‡ú�kùÿÊê"þÅèvqÇXÃRÿõ ¢s�ï’SR�^eI;´r„ÀÉ¥0©1 Ž¿{˜ÌZÄ1|èøh sAéPî�Й¢S¿½¸ÿïÔâ¿3bLf®F£¥ÕÕƒ½½éþ¾JiŒ%ûRrØ=u‰šÆO&Ó­í½ÇO6ßÿðÖ÷ôáòÑgŸÝßÚÞ Dãñh4ª\ŒÃŽ�`ji<ô>ø6B¥‡â]ûÔn=ë�ú&NÀÝ< BJ’Aï½”à‚G.UX<÷À!¹èP�MûζĒME²äøØq÷Ú ud7Q¼è�'Š!þQßxW9î<Ïà.âñë¦éÛA,— r>vY—SÑQë’§(?…óñˆsÜfY'žuj½ßB‰Þ®HQ|{@W&"rkçØ’¬GQ×¾î X‹#’ð¡/Ž„ÝŽˆ=B�¶¹�>¾ó~ûßÀ¿î(Ĭ€"…tÉ_9>ê®±˜»\kž«V Ô]A|(;ä Žb•Së*†h.%IüiS‚HCX‘:F„Ç&pCªÒÚŒ$¬ÇŠ9«Z`�¢Æ2ÏÆ¬yQ‹Â@†l$$ê¨P ÉrBnnÌÊ™ ÇŠ÷�÷XRMÈA)¨l‚=¥[<–e^²=b-¶vþCe:³ô2 à¼1îg�^p?ã _9çÆ‹‹+/6u}°½­°{g(4�ón²@²n²Œz^‡šÆomïÞ¾ûè‡?þð�þóOð£oß}üôÙ‹¦nªÊ�Ç£îI+úŒ;&ìÑiÄ“¦ûq¤îEp/·T«W›�}¶Á2nBmù‹½Ä�C]p ‘‹/aÛˆ”ž�]•ÜÆ­DÄÉÁîœþ²WUë�îV3Ùº4íqgj\�´¸< ézsä¬�Úu‹ä�éVÔ­ fKXŽ"F|ÎÎ9âˆô\.�ãŸ,SPŠòæÊ«’ÅŽª]1—u(ÜlO…æfûNq³’D’Ó¿X¨‡(Å+¯d¤ ©…€5'3žáþ‡�¬I­ •q¼ö‘“¨‹ÒËÍž](Æìq×O©iU³.pÛõo4#"oêÏMø–ØõsíãŠB™ÙFŠé¼˜yíÍ7m?4ЩÐË€…¸S7+ôÅ%vn´°°²±Q�Ç{[[¾i¨‹Œ$øô4¥Ü$ nE=Áá$v±?å×u³»»ÿðÑÓ?¾ýáÇ·oÞº¿½µ;W ãQ5Žù^ˆºý¢âd�˜=„à½í "|?K O�—ºñ>BaÁä²·Âtþðèn÷‘fnéÐÊ3xîÑ.1èƒ;”ï8ÆöPÜîIÔªÐά,ˆ„™[�{ð³¥BûÆ Ä„‰­lQ Ýö°BûžA‚j:ž-jïÙŸ$!O‹ÝCpÎÅ@ü�Â.úª›M{] ?U33átŽÛ7 DÄ�£½sºG—<¯Ð½š`ævKmä¿ÀÚ½å!üÿÖ?¹÷à‰o µ$/áI�d–{©ŸŠ‰jYalIuk² fKZ…ºç®*es­‹„å{œúVE¼%Ö³º >S8ÕÇZL ^Ò ÉþB3*7³Ô¢ŒۚŽ.î“í¯\yÐù¢¸I‰�-.®ll,¬¬ìmnúº&ƒÎsß–Ãbâ)�}@p ™Gmü;�Ö/^ìܺýð'ï~òîûŸ6�¯â?gþ¡N¦à{Üz’‰I‘¤ïº-Jí^%|ãÙµú¦‹ o:w=·Šê¼æ!PŒÝAöÎ pÚ3sŒÒöRÀjÚük­û›‰ZˆïÛ$ŒQµªrì\Ì»"ªyïeU/æõÐ-3³·QùÚò�˼�¤‰`žã“ ƒÑaæífîâ…f¨=zÙgÐÚ…ÿÓØÔM㺙8沌n÷NæX© ýñÁËÇ_™g¡ùí*nŽqò!¸îÛ±Ì]‡‘s¼½³ÿßþ•¿k÷êÙñV8VXJ9_qð÷^­äר³T[ȼŒÝ“ÌQ²,ƒ`#ê#kÔZ!?!‹§Љq0 (WLaAu^àR<ôì0l#iC„tIƒÌ/§*@}×»è®J 2–óv© ºU©ƒ`ëjÌÛ��Ò¢lªÓÕø‘«I‹YãKáäRR‰$˜bv5M(]’Ì“7ìÜ:_4÷//1s5/­¯¯_¾Ü4Ído¯©ëx)t¸SyßÕÓ° Ùe’.—AyÔ™$ÄiÿôÙ‹ÿä£÷>ºµ¿7YX­,/UÝW<…à%°¢�ŸA-fûãî;`Ëw‘æ�Ÿ~67ˆFmô Q ¶‰û'½Lv1îeÎfø¾u-;W× 3ûbGìKÊV€¼ï%·£s®éÂLðiùøò:t‰5¹5ˆIÌÔêË.Fën-¿îä[H-vb–uB«ô �÷„»vË-â2#FˆT‡ÎfýNßhIW¹àÛw‘?sLÀßâ~fn“Öƒy© È!¢?üO?þÝßûOª-$iw° E n8õx”m|ø“úZq@Î ‚(‘ðü¡’HaÊä_ÇŠˆóÔÕ¤î�¥Ö'–›RYFVÈá¸jÊ’jA¥ªKa ö@I"É÷†”H(0ê•{æ”&غ ÕGÁ„¡=íø‘cÌð¨Ê¨p±�Ú€¦CÆL0/*Pjø‰ð¶£ñ¤*¦ «Añ £H‘ä«R¶;,äãœ[Be:W4÷/;¹ª/-­llŒ––šé44M˜‹sŒzŒÎƒÈseðé© V·�]ydûž={ñáÇw>üøÎæÖî… «++‹®ûÌ�@ö6—{ç'ðšwQ']‹Q*ˆŽY»/Ƨ<{ðÄŠÿõ¾KXÝö±!ï£Â!„˜¼¼©›X¡ËÓ:Ù|YI™KØÊµ.̦Íöàœ ‘wåŽ]Œ³—0Ð6¡;¬˜¸K1Ù·3"cj�òpL/<’O ævEAíò¯U×¹ïu+µ¯BºÙ´Õ®Ó]’úÉ¢B†j¾7gÿæßû�>¾M)hEy4)šØbGOt²&ëØ&…#I>‡6T(p¨´eIñäd›ªõO’éM‚e†`ú+A¿($‡ý˜5‘¯z[´žu·Y÷a«Š$´DæJ_»U”á[QJ*I8ƒÖP/@¤•ø7SòɈFÁ¼xQ°[Z‘/:)#+nòS=ÿEx•ßS™Z­¬ð®Á’J€ë 4ÐÙ¦¸DιñÒÒê… k—.U M]û¦ !@‡Bü¢^™U€¸C‹¹ãÁÄt‡bµ@¼wÀ“{ïÛïÉ›�ÞfÐ6•[LÞ"Š·�˜%òÄq»„i1�tÁ µ dçvW@oZ¥î‚ȇÛìõ½5€êÓøÅÓ¶ü…¿ô›ûû[ñ�Â=Xç%™‘¬À�µ€³±.J…Ð�3¨·@ ô”›V9'®ºšT*wžÀ°›ª¶TÉ^RmÉUÛqªk¤n2�`ÎÂ’ÆQid;E!ZÌS)LlŤv [EQÍ\Þ+Xè»üíG^mБb8{‚ÁŒ`÷,![Äߊ•3_zÂ2 hîåî·“Ø µ¨ jp·tîhîqL¹¶¶qíÚÅ7Æ‹‹MÓøºöí,‰”Kä >ñ™Nf!3QayËkÄŽsÉþÁäÎÝGß¼»¸¸pacmqq!&ïÊ���®;A8”LD²£•dƒ&·|ˆd÷êl}âyßnÃêRLv¨¿Ã ²ó²�óî€�ž01E ìß¡cÄ͹ӾE�ɯ ÖiAñ,Y{•…�A&Ü…—QU¹º‘ ŒJ'f&XêDVð…sn#n\œVgjã}=Ÿq—¼±íÿ6NˆÖóÝZƒÚx§þüí}{E�(�ˆ+'ˆ™òÎÇÿà·ÿ�„x¬æþäªÀÖR‚ñ; É B•¼5°XgáDâÂä™%5RrWÕFSK¥ÂP�œs KK×®]xíµÅÕÕédÒL§¾i¬=@"šäüš›] U%åÉ«!Ðæ‹�wÞûôᣧ‹ ãµõÕñxD€G™K-żCí!¶`ù¸û³›/£gºÃÇ¡�°–ݨñRû¥R–¹„ˆBÓxâ6½cÌO4K A¿÷A*´o<:ùIRLÎè´p¼õLT$zÇÛ劻ñ~–'7%í ç7¾ý°k\ÁxÁß-¶îVçÃqA¡�eç6‡=u>]TKŒêRþ´pçÈow´,g�(0µ[„C|%³Ä>MÓTULåN>x¨r>øøOþÝ�~òQrä¨aYŠÉù^ †Eí8쥢@œ2äE|‰rb-Å¡INìÂݧ„™GýB[ö)H­Êw+ÉR¾)U1g:2 [˜Ri¥¢<”…¹C«–&aßÔÇå9ëQj»'r–2j]�a-dú"iR;ð¤!4²m‡“í#ul”{Ù•øŽRY[l×V±º`ÿª>Úº}{Øœ:Ðù¢pŸÝ rgâWëã]ÊS„µT±Wµ¨˜SÚSá|ê �Ι‰ªÑhecãÒ�«/†¦ !æGÔüCMÓäèä­Î�‡R¬„&“éýO?úøÎþÁdeyq4ªF£*>ƃäs¤@�*"¤o£eÀzo[ô1:FÁsÄÍÄòU 6E:1;jCê£gÝu~ú¶.Ù«©(öT\ÍW¶YƒcnºL)¾5Iºœ4ÂñKIÑ_Þ¥´ŸEüwp\…ÎG4ÜÛöJTÅ­ÌÝò ŠšœCã}tœÅ­±äœ£@•s�÷•s¾U¹S—©ËÉÌ,c)RLÝÃÝ’ ´šFÃ1U1訋‰ï>.KŽÝ_þkÿÙó-e[Ê�Lõ°ÐåDœ�Ã…ö*ŠaÁÞI1’•Fê W GÎ|¼S**–×¶¤pÈ”„x¬ÌÂÐLª™Xí UÚ‘é¬>ìd?²Aºv(ÙTG£s½Ð› ƒ* ŒÆ hdk.Û/‘pO­ C§'÷ã]*Щ3|©tŽFÌQ˜³sÕh´°´´²±qå�7V/]/.ï%ü=“§¹Mº—{¦Û§çæœé"^ Õ~»Á×µa0í·½ã½oÃ߉B›�Ÿ>|öWÿÆ?´à/7®Ä(�”ĈªŠâ# 6©c ‹g°Å)D«QRkÅ©àG!Q‹œ)T™\‹>ÉD°L¡dcaRA r�ÔQÙM@*î(UÇc»CTµùÀ>¶æe³nIîé$C(¿ˆÍý¯œba„òÊD¹~‘’ñ‰„èÙḑšrɱjûñ=¢vYí(Ç?JOª±zä0�:°99½ªEÂç‰Ö>·¶>Oœy¬¶ªŸûÕ_í3Épy}€ÿŽQlÎÅqY†“3Ì ??7¥à1Ä@æÜó5äªÊ�Ç‹++W¯^xíµõË—ÇKK-Z!t Oþrÿýo×T"L_[Ïã¿QÕ“'ãã»®›ûŸ¾÷þ§·î<�F++K£ªò dô=c"H9Š>ò˜Ì±ÐÄLM‹­½äLïÐ<I@Hëqoš6·z ÀìBbÞ!Üv'¬—€›¶.…³©´©a:óR·u¶]s´ÜUn—ÔÂY:Ç6Q;RÄîm^Ç’°2øÀŽ#”âÏBð1Ạí¦U|hšÆw¹q"gßøQUE9Ù¹ÐóÒ±ãÖëß4‰4m1K=;<ƹö¢�E�–‰ãÐ�xÑŸ˜å3¯Ž]áwÿÍÿÇÿô…u!Შ+ &l0õ¬–€0™öF° ¹ƒûX1× 7ް*TÏÕµk˜\õä¥>ŠŠ”Lf¢„/¨ºH‚—ªQ¥)žÉ•T—ÄÂh†�wÅÐ6$16 �:98Õø±Ý‘ìnÕ–z³�Ô¢¶B—ðÑÚ9ô·ÒâjJ [įzYÙÐ6¡ìlûBu¢t:~0•SkB<¯ú[ !¤�{{fÒ9çâóKÊ,ó{!s%�Ãæ�ŠŽñFå¥zý íZþ@:Æ=ù”èKNLäªj4/­®®]¾|ù�7.ݸ±rá‚«*/>x"êÀ¼zã”Cð”W�Z{ê§¢$jï Ìì½ßߟܽ÷ø'ï||÷Þã@aqaaii¡KTB¾i±°ï2à#G>¡Q|Œ†AÜÜÂE¢IC˜�N¢ø@ >ÆÛ„øM¨ö"m²›™;YM«$·¯,*˜ˆ%[åÅRì# –@·6vŸ—¥I»˜áÈÖÚíVÔ˜šFV,윓£™÷.~ê¨[?´o!˜‚ï¶=„Ö…ï›RbÆ›:<7°VŽZÝcò¯˜Gpï*ç/ïÖ«ªò�—•I«q·ˆï8~ëýëOnÞK✰q:WàãxOB’ -g5òmë(³”Iºx“"åöΖï2%•mȾ=ÀŸå…€3È>W]¡O»ÒH>%¸�˜s88¤vLª“ö‘…ñîmU×'_# H¾Q‚SYÉê…ú‹ ÆF¢ã™äŠ™ ¶ÈßQ$� l^xïÁúÙÈ¢”òß+ŒNÝLDR…�ìqh WJpèhŸûñ««oܸòæ›W®Œ#VõçaÜ'Bê¹Oý)¡Ð´š¤«äÐõ>ìïOîÜ}ôñ'wï?x:�V–]ëvžµ?ZÔîš”åµÀ1†¶sîC�ÏÉžÝö³GÁÇTîM‹_‰ˆš&0sL‘q›†™ÚõC·"è uÔ«i|ëËouñDq…ÐótDC* £ñ›ºq•ó�q�Ù5MÃÝ í%H3:�Áë-¸g"j7ƒ"„Š»n"f꾟Ê!PÌÓ^rí7Y›¦‰›x™¹3N˜½`"Šcò®Šˆ$tqñmìS¼ÊÎ9ÇMí�sù¯þƒ�Ý= ­ÔPA¸�¼”�…!*uL ôA‘,|ä>x¤âÐ�¡ a�U'¹*(ŸÌÝ•J5Äš ‡¡Ø¿T£Êh¹Ü‹ö'â9«Žêb”!gJ¡I †AxIÎcL¹„§‹F¸ÌÀIaŠÅŒ1‰¤÷¡š¥Þ'IB-Ãg]îËöý@·narιOoÝÿÍÿßuÞ#°–3þy(Ø‘ê.ླQˆ2‡çðdaÝbÙ&áŽ"YT$�P°°à³¤)’½�”<·ÜB‰QÚ¸±ø ŽâaPCà»f­$!àê¼â_Hшb�0À\[¡­UJyâÅ Ÿ´6¥à¨°æS¨“J\à%{V–Àa�º'§ f–oEIPa ÏÀ} óEpèD§…ñââÒÚÚ…k×.ݸqåÍ7×.]ZXZ Þד‰Ìëò Íñ)œÌ=ps“…C Ý½ƒOoÝÿƒ[�ŸnNëfey±ªs—“¥› Z “˜ëºôé[”Ìâ¶ŽžéÐ9ãcÔ¸|oÈGG|%º±mݘ³'„¦ñŽ]ëSæX1~«uö*£åÖËo"ªFS÷qkŒêažaè8»ÏºÌLÄ’R† ñ=q�3ùGAºtõmÓ1geLCDUâ2ƒ×ÑOOD�Båf¹äÉ[;9:#Íп]Z™¾ˆ(t±øÄäƒÿ—ÿê?þñ÷Þ%ƒSi—9B�ÜâPà‹½š+iÏãÏÂðŽ�ŽñîŠy® ä#QF9Ç­en5MòW&R"%õEÔUè‹Cõ™hVŠ$ãy*H*Çv©¦.Ù*Ô7iè<ÖÊ7Ÿ”YYÉò´ZX#[ ë#ÐãàHËÙÜ}9ƒœ…¾mP6W‹+^ò^P£%t{…m÷5M£VY–-!²€û@ç‹à>ÐéP|V£ÑÂòòê… ëW®l\½º¼¾ÞL§ÓÉÄ7 †Wæ{¹)¿PŸÝ!„ݽýÛw¾ÿá­�?¹Ó4~<U‡I;PK]ìJ8B҂ЈY™gNâŸj’ϰp qÌ”Âm•éR à˜cH %GãÈ×�"�¶JljÊwiãµÄð˜¶ývwF j÷€¶Ÿ>í’Óûàw8"é;‹Ä‰¹KŽÁݧU»9»-‚ý*^ú¸Õ5~)Ö9e‰Ø]Ò½û˜ò’ˆ™cÉX±ê€BDðسιv™ÔÊJÿýÿøÛ>Í!l—„)dðõ'{"œ‡¼Òz—ÛŸ‚xíyÙ ÑßÒ�Uqž�]€”"IËäø+8(r–•Uµ ’ŠEWè‚þÂØqtëòv‡+®y°ƒÈ¼�AITgaë"Cr1&u•ØV€÷f(¿ý0*Ú [çÔú�SïTP õ‡4*9°¼zéA™á¡xª«¸lønïG†g¾ÒZÉ6ĸt¾hî�21³«ª…¥¥å��èƒ_¿ti´¸(xõ(ϰÏúäT-`-@νGùþþäÑ£ç?}÷æÇ7ïzïÆ£¥¥Å®•6Óy<æÞ^ÌN©KGè;|÷¯M y`¢3x–"FœO!„è®÷žÚ ¦6>‡äµ®K½ò‚s.fiŒªÖM#“YDÛÌÎw©èÅá`ÇjÓ41B…� m~7B›o>Ú*FÕSæk:ßÌ:‚™‰bâš(yUÍ:‚fzµŠT®Ì"sœãè¤'¦ø§¸8"˜ÔåQ1N—R†C›/vþò_ûû¡[e”!Ý¡ÄE eõGR…•CÆ­ŽZ¬œÉÇbq˜â†`ÔJ¥8ØK…Š Æ)õ­A,ŸB±YQ`aÕHꪂ àZ0¡Š/¡�LOa®wܸ™ÓÝŽ"¥#ö£Z—Üì”z¿¤ºR™T êCä¤ÖÔï)Õh²‹­ÑD¨,Æ ¶›ì}§nX1¸íAƒÇ} óEpèe3;çÆKK+ë—/o\»¶~ùòÂÒ’÷¾žL¨ø®Ü>Žñ8éªI €%“ð}Z×OŸm}ðá­wßÿôîýÇ»{íFÔÚœî]½ØXˆ�×Eµïò-õÞs®Ý6Ý噉Ñ.òWï}ühd?wË ÇR+†×w1ãÖϦñÄíÛ�Éù6½Ä80JǤ[�Äãv2#"nÓ,¬ï™‰ß={ß áãOAÝM›Ø�B .Â'Îè„iÖu#Œ*tLξ*Å¡û„*ux=:ØÚ/³ö]€®rDô¯ÿ�ÿÃü‘T™ó�V†Ëê¤ú©±\²cO0„üLf4Wa„ƒ[c¡„1 2PÁ•sÈôKðY›X%�ÖjQ„“¶,*½ä5OS%�ê,%yèï-FÙìþWeëù¦î¡jÍn;ÎÚJõ‚D¼ˆ ¡ ïÁ‘º°"µð°ÃuAG¸ ÇêÃRö½�êDÔQ•'C.”Y˜ã%k:"Ú¾sgpºtŽhî½\âο²±±qíÚ•·ÞºööÛ«—.ù¦9ØÝ ý�möÙš;o§4U>YÀά±ðtZ?ßܾùé½ÿôã?¾½³½çœ[Z\¨FUün‘¸ÏCÅB 0‹Eá6 LÜsé|ãcŒGÄü˜Å<´‘ÙÚXðvMÐ}ƒÉsâÒÆkÆ)ÊÏ&$¢vC-Q— Æ±o<¬ Bít5KœB§ÃÌ M_޳lk«îÓKbÉÎdŸÙ/&ۙśÆ0÷Î, 3ÏÂÚgøu6ËS»Üš�¸ýS¬{�¹‡Aã˱ó°Fúÿó?»{ïq˜¢‚È ã%µØaƒ¯Z¯§BxŒ¨=‡Û‹h“U¤0 `ᆈ¨WúÚ…ÒNé¨ÄCæ ¤&9c]�_}‘$”\© R¿+¥.ò!ó´ ý÷ÂG¹œí�“8l�È ¢Ø*ñ¸Õ£ZAc sÄÊ‘äîPŽÚ OÜ͉FÀZ¨2J.�AÔÅ(‹©�ZK!ÿVJi�V’ÂÊt² ‰'à>Ð9¢¸«YêÕÉ3Йâ$4�W/^¼üÆ«/ìíÕûû*1…Œ@;Á«‡»¢ä¬C}ˆ–dɇP7Íæ‹íO?»ÿÎû7oÞºÿâÅNÝ¡A`hd&�ÆbŽyf¨-E¼îÛ,4p»n9СvÇíFV"�ùé»0BüVh#‰ÏCˆññh¨Ðáò6+KÄ �Ö1Ÿ}äÜtÁDàok6fêÒð³ëšîbßg%BUUÑÛÊ\—0žB÷`æ‡ Ôá0k·e+@§H ˆãgÏ®ÂöîÞ_ú«¿¥Ø) Œ¸*‡-¤nr¼¡`l`(â$„;RPq{ö|«ªªåå…ñhÁ¢d«÷>8'‰bZ·|Óx™ç$-z/ž»‹?‰?§uÁwÓ~„ˆ9^ƒhïÅsÎ1g‹÷’ÁR7QëÓ¦B]71Ñ$Í<ôDÜe oB 6÷%·ŸQmWí‚!´aÙŠê‘HÖ­ì&º }¬úØ–]ºX Ht»0÷ðmWÇÉPu¥‚È©Æ3Ê`EUšZ*˜N%�J©drÙ`›SkÚÜITA¾òf&µD6Û6ªféÇÁã>Ð9¢!Tf WIãÅÅÕ��• Fãñt¿©ë¦iȼÖ, Ky"£Ogú$4)sëŽÉ{¿»³wçÞ£wÞûô³Û÷·¶w+çB;]Åù84MûÉÒ(Ã,]L÷7äm!ø ‰¶!7ðº]t }÷—ÀÞxÏ1%|µâ%p¼ûR©èȇÃÜyý»·Þûè¡Í7Bë:¯*×FÑ´kR«'\{DÙq²]¾ËN…(ƒÝüƒÔ}›7†ëºvÎumE2͸‘,}‚ù|¬LÕMþÇÿåŸÝ½÷{áNðÔÇ1I,«a™bP`¨@v„çªpßûà­ˆ‚’¢¸ÒŽÍŠBª ŠCR’d¤>r³ _°âÀ�«ä±B&ERòÛ“ˆ•ÕCŽq™§ºÏ˜¤ eFeU(Ž2Ž[5$­=“B*‚Õº�EZQ<Ž1Að<ôI9s#ÁÚ™LgÙÁ2!1ò¨DûËÛZ6wqÄ[{òàqè\Ñ*3Ð+¦j4ZÙØ¸òæ›ë—/WUUO&ÓÉD€lŽì4éPÌ‘ãF™‘ˆêºÙߟ¹¦ñ/¶vîÞüþûŸÝºýðùæÖtZ7ÞS‹£g3œ|€ ¼ÅDÔ†›7�—ƾ;çb4Œ÷mVInñ½!~Ä»e"f‘œ-‡._$Ç‘0×uÓ9æ=·˜c�HÝU‰sÝ41k µ=D×»‹ù(!ùC„Ö!â6�Lü|R\Äì^¾xJ‰i5Ρòþ!&—ìŒ?Kj#Œä…Ù¬<[1óßú;ÿâ½>CXêb‡ª!„²)¨­†A6:-,Cžd@^�I$›¯Ðª`mŽ%“@Í•ÆÚ3Y² éR›òe–¥Fšh/Žfæ.A$ÕMS9'88t™âC˜IˆSo— &¼©÷™¨ÃÝ3”Lq—ñ&3ǯ½¶p< æÚï†6x�B÷å&ænw¬,Ú. ?Õ·wôÕÅc ^�Ö«ªö•}”5ÊFDÌqjÌ]†Kæ@assû/ü¿~³éïrÆNT}*ó÷‘w´)pŸs×,+%’'9\0Y& xÙŠv<ÛdU6¶È}4ïà«–å*¢»ºC“Ža '“ÖS€5‡éíRR‰U4Ž0Áí• ­&»2ÙJÒ2j�jY©Qá½�_TU}�Á÷Øwê ƒ'^úκEæéµÂ)t‡ªb·•‹,Ð÷©g‚è"7ÝÜ:G4÷�Î1s5¯^¸páêÕ�«WÇ‹‹DTO&¡K#�«¨úlP¾-œd‚3DR<9öÞïLž<{ñÑ'wÞyïæÍÏî?{¾u°?iâf͘ž»x ï~¶)_¨�°áÎ9v„«³O8q¡ñMœêš¦�"é0¨GÉ£‚B á½ZŽ˜w²ÝWööMC<û”lÜ´J]dö� Å6¹û_èBq¨ÍºÀ˜vù¡@|gö>DÔ>ë>»’»²ñX ˆøïüýßýÁ�>  jáÔâMýœŸ¸¿PV ?Qæû8n(gR6.óÈŸ|ŒEEÌdõU*¨ær·ªÅg(ªí)…íæÑ×v˜hÑsRef Zëy�#üEæÔïÊŽÕ#(Ù#I[%÷H$ÅS'sååjrQ'T` ám¦³½Ãfß'vZ‰úï’�âÜØBûàÊnZ�ó¨/.¨Ô0€û@çˆÀ©ü <Ùûó™ÏßîÉ=]†§b–S×ñ„t*JU£Q ž¹üúëk—/ï냃¸u5IIXžÃë–InF±ä}˜Nëíí½û÷Ÿ|øñ��nÞ}ôèùîÞ¾snTU•cfG]^ß9¼[ðÂì$3Å/(µñ0�Yr­t žbüL„®½9 |Niãó aÓ¬BdÙ½‰¦âK3eú&t™ã£mÂǬ”ŒHZ™M��¦Ý¤MdÙ5Ñ9㉭[éô&ã®Óàäk©DDûÓ¿ðÿþ_¦ª¹(Ë`ôH„S>6‡¡À”yÑok©ô,Ɇ’ÍP¸E]È0‡½þVj&›°? 1?È6¯$¾ÏmíÍe–(JÙä†ÖKªƒ‘úàOuv�µdèÞi(d ŠFAÉ\çZ”$È'Àf}l(ZÞªŒ¬8åÕÀ°­[n¨ª_Z!õ,R}ÇðrÀZ#7Nìˆ÷¬îsΪ…b/u^~Ì_žÀÇã|ò.(+‹‘›ýO·�MÕÏþê¯æ®½T_•þ§~_�º"'gøÊÇVn²9�×/_~ý›ß¼òÖ[Õx¼»¹éëÚSÞ2Ïý9%A>óTœAL¢ºnvv÷ï=xüáG·úîÍ›·î={¾µµ½[7 ·©TZ¸,¡#Á·X6bômZÆøí!èíÇ�Ú¬ŽD$�"¢Î“ ¢†¨Ã¸!Ì »â}Œ_w!vÜtYä}û ×VÏX+ÆÉDTW€öo)±LÓx¢vÒ*HÄÇ&ǰœÐ­Nb Nübkg|Ñ1ºä›.bÕûð;ßù£÷~`»FA™yzÿ$¤à‘<óÏ(¶°‚tI܆%-·Ì-ޱMp +'QWY½uÿ³[>½uÿÉÓ;{{“ƒiÌòˆœk£´ÑmNmRsÏÌÁûDî}ð�µP^ÄŠ8> Ç$1-i3aÆIß¡sQMᤸ6êîc,Ñ쓱11¥ÄäÄu„ÁñþGf>xn½ÇO¦†Ê¹ 16qíáºYV*J:ùîL÷‰(1oì—Y"Hç\]7ÿÍ_ü[;»û” ÓHÏ┊\Drˆ™lCI„d¯N s�G–->ÌQñÂJ†3èyžclDDÝþ×Ö �s`�º¶0ä]Š´Ó[Ô=êPŽo<³c ¹éŽ™9.'|ðÁwп‡Œã—˜ºåõ¿ðR×�«\Üðš¶p§z|„6íw§:;øð/þÕü·ÿþ{å.>áÓüÐ2N€UB?yÈ¡|ÊÅä<÷1™Ê®(e¤Ýä Z`«¦"lÎ[Q¬(o:a®’«XIŒ™ØÂnk·Ü}ªŒi ˆFSÆA±9³ë±»•Ц†DlŠ[Z#atM²/”.¢¯,Q„³œIŠ—\g"ôG³¨ÎM®+ +deüäØCû •�+; 0JÅ-žœ?•{N‘S¯u¼†æd˜¼MNÂpþbÇX´œ\†Sgxºº‰J¡2 t6i´°°zñâk_ýêÆ•+Õht°»ÛL§É’…ÙËC†y8#1s]7{{Ïž¿øè“»r÷þƒ'{{ûMôCG÷·sª8‹ºàr­·;P3lˆˆcØM‹Ç;_u”¬Ë5%&¢ƒæ½÷BÌLãCð�|бM>ÓªÖ:£Hí œ’Cç2gæ˜ûR¾Ÿƒ‚ó»wqú1YdÝxÆè�ÐæÊì’È�oàKCܺá+çâk‡ø÷à`úßüÅ¿µ¿?#Ëb#Ä|(|IºR�I²°%?ço±° Ûb…É`Ü£ÎÖIžIs µÊ'@M-äJZðYظ.º…±¢Õ]Ž-$UPRq–*òÁvqÙcµ¦Tx}Ò=¯˜‹šjI©ÞXà®tÇ5§µ Aô‹í%îåUÖH‚o†MØV;�ú 7 l•šÔïè°?u óBpè¼w©ß¯¼õV šôáû‘€õü%’˜ô+W_ÓøÉdºµ½{÷îãw?øìã›w7_lW•�G£ªò ¶÷CÑìó«�¨çP—Ù�fYe/(·2DÑÞs7FäÎDÌ.°À†WŠ ùj«l÷›ÎÂÐg¦Ôîp Ý ˜ÛÐ&Æèù‚‡Vßn Ò±�ð½MzÃQæ@!ž >üÖ?ú×ÿéOÞ±½i]�8åË|oÎë–m”ØFñdRŒ%ËØ“*�vNf†ÐI}Åm+JꂆDNZ„D–mRZÇ‚—¬»Ô¶ˆJð] ;öEY¼¤ú²•ÅØ|JV4²Ƨ¶ë1%a’-2·ï^p¨Ûœ4…ŠòGi“ëIuïän:îÁ‡þË(ÅA©ƒÆ‘z¡¿MBž6xU}7 ËP½ACb™�Î À} óM̼¸¼¼qõêÚåË!„½ímß4x4Ô.7W†,É*d¦RjƒÎÃöÎÞÝ{�ßyïæÞ¾{ïñÖöîîÞAÝ4Þ‡Ê1µmi/ L„ÔmNÖQ¾·aåLDäãG‘$~¦Ãß"‰}‚i²ÜmÊÊÐn� ä•çöSJ3“0sã}ë?—i2f„lt` ó,,žÛ¸ö¶1õl¹Ò-e6_lÿ?þÒoÖu£ìl!©ít…0(…?° ØÇ}Ìg[ç>2KÂ&+JR ,ƒ('é¤DÄ©F¯üLò·’ØÐŽC+²Ç œqÿ›>ÖÊtèEV™R”Ö HI»ÉÅŒ´Ñ?¥úZutéªPÅ'Ùe9“Š`êªZŽx`S=¢¡ ©�„0…‹ú›¨ˆJÿ‚’Ö&ˆTqÐr‡È•¥Ñ\,†ÚÇó‡Ê 4Ы¥¸ôE Ñx¼vñâÕ¯|eecc²·7ÙÛK~ÿ…R8€æƒJ”‰§œ³V®•Ðúàë[;wî=úøæÝOoÝ¿s÷Ñã'Ïwvöw÷ö#ˆwD1‚$NRÌÔ4žº8™HMûU¦ÐxO}Ñáç}ؾKK)æÂ�ŠÉÒ[îÐMèX>:ç|Ç¡U4tQ4]+­‚÷®r»û¦Û8KÄÝ÷”Út:íG^‰¥°Xã¯üÿð£�oçÌn» Y²S, SçsåmÏ*`„ $'°mqž2¹Ñ¨šV­[Üf›¶µ˜GBŤP ’òO‡~³RªÜ¿u,ˆ·:ZƒTUeó”£ hFeµ¦* 0©ˆbZñ5E!®Æ&¢)$iü©à~r4ªŽVúöÖáP ÝÂVN¨Ð1q°ÝÿjW¶b„Áã>Ðy¡p?tRh 3N®ªÖ.^¼pýúÒêêÁînülŽj‹]ŽDóT±¤9«G\×ÍööÞ£ÇÏn~zÿÝ÷?}÷½›Ÿ~vÿñ“ÍÉ´®ëÆ7Ó5Ä)«‹¢‰ÙiÚ(sêæElžú'BòKGg|=lÑÂwí£�3nô²·çåÛé¡ §éiÃóã–¸º®ãÛµ‹ŒoíÐÁµž=úι?ùþ{ëïü Õ; Ú°g’(-d%RçU„IŽs²º-c�s‹C þÔ%+UYȲ„9å¯xªÐ6©î <ÕÀöuAÔ�z›a ….~#Ævs£ZaT¬ >C”R¶ëÅPx«ÊšAšÀê*:ÜÞ&ò�ßI­Bã„9*Îf ‡'¥ŒT—)EÈ3¹0–%Ÿ]Ýa£ÔÝž4„Ê t~¨çqÏ=Žè¼ÇÈ™+W.¼öZ¡>8¨'œb±Â25yÞzwÊ2pʘ›„R͵á+“éôùæö�;ß}ÿ³wßÿìÃ�oߺóàñÓÍýý)�ª*„øe"–høø-Qœ¯Bjþ›ÉÓyâÅyB›->zêÛð˜.@ß9–�§vÖ€©—$%1³ošˆ¿+ç"û¦i˜9Pˆ©*«8»‹÷�Û$˜D³Ô�­]‹Þ‡ƒIýÿ s{g/gáBçâœM€’Ù?N…’Ø%‰±J�›O”ÙŸGfÔ)¶ '%ÝÛ¶bòä¡ò'9`:6j^èûã :" •õ’*€'crÔûÈ$•RUÊ…mvE,Ï©USþA„(9ô#ˆ¸ÿ¡"l%)¶mZ:E6˜ZÕ‚‰·±ÕmÝÜ ‹8žÌ¨°ºˆYðîÆ›N‚ÝåX¡v€û@ç‡à>Ð�œsK««×Þ~ûê›oŽ—–v_¼¨§S:2zN„JÛ©Z‘š)u[Í£ ‚¯ëfoÿàùæöÃGÏïÜ}ôñÍ;·n?|úts{gooÒÅw'÷þÌÒÎt^ø0‹tï4�îí@mf›. ½MeCqòƒˆæ87vX!êEb²x•:M›¦¡Þ\Û6ÑüŒsë†gî²æpB}ýÖ?ü×ßýãŸÌoF€°k¢ÅpØ5žŸ³9KÖ©™d¨ÐR®Œ‚;3©2R,÷ªºl‹¹[&‰M=ŸÓËÖb µÚÁl‰Ö°6Ò3ŸˆæÃ2J +¤EöH*”¶z@­&[Çwªp$‹­U´ §^_¨ql`»‘,ªÆå„•­ð0´‘-ª(”Dü”+Ì€“+ÉH¹þ·â- OŠ�ç �Ä@†ˆ¤QBëñMJ2o¬},ÕDÒàÉÀÅ™û e£”ûÙz¾ƒùH“Fþ&M­Jv´åceV°˜aQ„l’û¬Ãvõˆ?ñŒ”T‹19�Ñ>«#µ·XµÎݪC-ÕPxibçîÝÁé>й ¸ôE&f�Ç+¯_¿píšsnzpÐÔ5:“�r Í–QÕËUŽzgÍéßå.7ü£GÏ>øøÎ}öé­›/¶ww¼÷�È9vÎA„z€ÐwmºI–”&ÚÖ•ˆ¸ýÞS´L …gæ­]åZ¯x”¼ ÜmW&Rd»ÞšZJÀ} sApèKAÕh´záÂ¥×_¿òÆ^{­�|ÓÔ©Ï6z” ®.YÌT(i�½Ói½³»ÿðѳO?»ûÎÃ'O7w÷œsãQUUN¦4ð³wžïÐBãV†Ø4âîî»H-vé > òî$Š;αD‘V•‹³0ì§ÞΑֆÕHô<9v1¶GýÁýøÿ³—3N™„©] ¨™ÞNüGm.ù3 žTá$¶Èi"¢UL0"H5­œ²‡Ša9%×´ÉŠÖæ*XEÁAÕh蛳M'å,x¨šÁ¤˜¤LßåVeX9äŠ)QmY¢$ÜG´ës›S“·€µ<õûK© ¶…éÈDªçÒÑàâG l{–3k?,¦nç¤`ruî� €û@_"ªF£¥µµ�+W.\½ºqõêÊÆFS×M]7M“úsÞ'¼w “œõ’æ¦(êbivv÷>zöé§÷>þäîó[�ä¢áˆÞ$*½Ãï]~Š »Ðbvýù¾'‘ë�˜ÙgS#úçÊs—FææóžÚ8 ¥·@ßuñ9>ø¿ø—~s{»·'µlR5g[¸c=߈crdÑü‘ðý¡%yîƒE3 D L¯ t+ˆ�X-)Œ­˜,¬ìŸ<™D]x#ئsö±­ã&N—Jø-«Mk++À¡òàI¿‘,_@öœ U·¯¸CðØ®•_,†Ñ2Ü_z%«Kù¤hÿ¤õ’£e�Öh²º�“�ƒÀ} sApèKGÌ<^\\½xñòë¯_¼~}íÊ•ñÒR]×M]‡n3>”an®:)ˆ`ÑŒ…2V¯Žy¦u³½³wëöÃ�oÞ}ððÙÎÞ~ż°0®ÚÝŸ3·¥0h™c,QÓÆÌt%Q·Ë•¸Í—L­ð­"3‡¨cîï0‹Œ}—ržzáªdpÌ]«È×^™ù;ÿö�ÿí¿ÿÞ<ÆL¢+<˜)h”­…-JP½CGyx¢lêü‘bµ¤À”Á�Š�ͽˆú&›8˜k=9J9µ$P‚åŒ�¼)T±X7b2ŧ`¢B¦ÎäàA]ä¸,¶ �d— J;&ñŒjûK�p–·}©¼(B-йº[­‚×C?6Iµ‹ÏíÈsî� €û@_^â.wäko¿}ñúõµ‹«ñ¸©k_×¹ï7à†âuëCÂ3jRQíΫ†¦ÓéÓg/>»õàÓÛž>}AÄ‚Çl|RDÄ,Á*Q˜bkK‡žT!NÀ]I¥ì½��H±è¡�!ìãÚ™¨Ót–¯0„§O7ÿ?õ·š¦”Ò’µa² WæfÏ«´~Ä$îcMê#u¾,›Å‰žÏ €”džSY�˜9–šÊ'Š'ÕW­''AZkàOtS?@H yò„ÕÑv“* ÐMd�#r&ýÜ‘Ô{ÅP pUUI!E/‰ BûXal›x h&—¸ÊPØÑBV¸[B�¹;–4Ô 8Œq!ªzPÙGz<¹ú²€û@ç‚à>Ð@ bç–×Ö®¼ùæ›?û³+»»;;ÊCs"þ™™O&ç*[ýB˜L§Ïžo}zëÁÍOï=zôl:©«ª/Œ«ÊQ›Ì#Pã´BèZIž™žH²Ç•$]M—„’(øÀL¾ñ.fšçNšÔ¦4Ä%çïÿî‡ß>†¦Ö€e#ŸÐ°–U’¡Â^V¤\Å\‹ •ª«6ØKb8�bú[s*Ì#a¹®*ƒÉ¥<‚KµlPW“<“b\Ú–”Q…äݪ,)?%xFØ&W,Jf;fìÍb ˆÌÒŠ*Ï�¿Å² ÝÛƒ¸±‘WÈPÙÓše°ÃïP«æºÒÞ>¶€ˆQø\CBe:'4÷�*‘«ªõË—¯}å+Kkk{[[“ƒƒ�? ©¹ä …6›¦ÙÝ;xütó³Ûnß}8™L]åÆã‘cfvi‰(*Í]�‹“ðó¸�5ƒßWÌ�9ÇmΙ¸'µ�V³vª=züü¯ÿOÿ8i;©'ËX`d!š‚,DZfÑ™§.%¶ÌœÂ(Õ’mÙKꪂƒd@•mT�X[2idu)é¾Mªc >7$ Z(V9اtT�( qæòoZ˜^À¦ÜG®ÊtrI…3ay†/‹ÙGë!’¶ Q0ä† ^ &Q 6AfpÚîH6—38cêß_vÿ±D×(×ÃÜ:4÷�:„˜y¼¸¸qåÊÅ×^kêzok+¦R9¹ƒ6ç(¥"ž;uj0™>}¶uó³ûŸÜ¼÷äÙæîî>UÎ�ÇãNÒà‡ÐºÏ™9xBûÕ¤X8Šçû3qœ½ÔiÚE0¹Ê l ³˜œëãôü?ÿÝùé­ûIÉç1ˆÂ@9ƒÓa×rw³Yq)t• +&õb³ê(è˜ÓH\ªÊ�.€LI•ÄR £Ûøéòˆ0w(<Å«ô¬€õ;+¹¯4Ù„Àn–uÝÇMíy4‹”!ü¶¨ÎQUU‚§“é•�ø BÊ«Ì-hõ“2Ë ÕSX]-T•™c—m¢8 IfœÈPT'cuÉBpë¡fïµHwÜ6°[)ç ! Oè\ÐÜh.rÎ-¯­]ûÊWV66ö··÷ww)=9')P¢.}þ7cÓ4;;{÷ï?¹wÿñƒGÏö÷'U寣jTÉT'‚"ôî6”ÆÏ�†Îw>óáuócÝîUæÊ¹BU9ïCÄî15M7ëÇi›ˆèî½'óoÿ³#i‘D?ÔX‡­eÙÎÙ:õñJ®@n=€(ª R² ¹d×f)QÑcŠŠgY/k›”<‚ó¤ ,#èAkC…ÝDÔ(ùs¾pk kIÛDÒtV÷\9™Ì]#ÜdÛ¥µ<–Éås´�ˆ ©T’6tŠ;¨º-ª(žâú;[Ô_e@kùdÞ!5 ë4‘?–‰6iš†á] çÅ>pèìS ÜCÿ…Ñ«“g �Î4¹ªZY__¿zÕ9··½ÝÔµ\:‚ç>š´á<—N—¼÷»{Ožn~róîûÝ~òlsgg¿i<;®œ‹‚„ä>ƒè­³œ™£ ºO>ÅLî¨Fçr#ŠI'”´Øž9„6KMáúÛÿüî½Çs*^(¦€ä„—r`úH­[¤¢J*X“˜SPU›GT�_”ϸ¢àÊ€e¨˜¼cƒqчJ«**IÔ¥dÝøƒ4œE‡zNÛ„B–ÁÄ� Ì ƒMH±ÙÆë~ÏÚ!`ã)6§Œœë\k<°ØZ5�Žs\Z`ëjä¨í­(jr‡+ƒ^ah´ ê"g”…áAÔ«"Ý�«G9�}Apè<�ö¸ÓܨHn4ZY_í«_½píZ=�ììH ‚”góƒx…fìüúJ(ò!ìíÜðäö݇={±µëœ[è6°vðD$saˆXœ` !àöSÙºÊ1ä�ÚãÈŠ™ãˆ¨rîÃ�oÿ½ÿõ;'T$‰ÒOØÉþ-¯ZGŒ…Â�A!ªJ™ÈRç͵˜É6D©õ† VÂ+{b+É&rƱ¨ïŠV±aX‹ú˜+rf��h5Ê¥LrC}6¶ˆZG¿µŒR¯ä@yšåÕBRLPÃ}JvŸí ÄÙ(|Ùë�Š xI5¦Ûžì¬ä�³ë:îá$ `Gs—q¯À} ³OC¨Ì@‡˜yymíê›o^|íµéÁÁdß7 ™;h~ø®˜'�_ y¦OŸ½¸uçá'7ï>¾å¸ ®efâªâø>ºª*bŽqï>øˆÀg3qüËÜ奉þõ‹aôÔÁÿÿþoü£'O7O]#ØA ⼌íÏ$z£>á>ÄTe,Û‚Û®j"‡™’ )†É&”$QC?BI%ŽÒ¤÷]•Tž`ิ¶²Â'ÇFVâ� pgÈPŽ�†Tª+@nвÙù*m½]uȱMD£‚‹rI–âUr£7µ/dá8J+RaÞwUQšSž”Ø‚Ú^ÄòpèìÓÜè˜ÄÌ£ñxõâÅøÕU"ª'“&õÍ&šÏŸDg„BMã÷öîÜ{üáÇ·>z¶?™Žªjau³lT<î뽘ît•™;¦u�›îþó÷ßûßþÕœG¶²Iç©hñÐ)’.IügË(øUh" aù[Xc9+ÿºëÈŠŠ9*]’â%q$bSÅ< j•xŠg�*½âqr™”dˆà—!d¯@Ÿ4xr £z»F@-¾£°no2@ÉŒM+Õ =¢´P�b%|O™7'9mëh.ÛØ÷—LJ02BtNhî t"bæ…¥¥ ×®½ñ­o]~ýõj<>ØÙ©§S5Å¢_P* “$°+c�ÏŸD’ÉdúôÙ‹O?½wûΣç/¶�cf'—™Y¶®ÂŒH£Ê56¼˜‰ˆdWkû7�÷þ¯üÿ`{g¯ Æ‘,“3o¡Ø©PRZtúÊUNb"eÙB?xöI…)SÊ,È*×´�f%í îÅÍ6‘Ðh+†ÀhÅJá<„-%sVÍq°e¨µXœáëEêXxÊ%k+¶®„±eTJH¹ýÐÀ£„D,ZØU¬Ìΰ@Âær¶•î³½L°ò—Â*e�ÈFý)\5 +e^µL¥Áã>Ðy î]hiòA6Ð@•‰™—VW/¿þúÆÕ«D4ÙÝm7hvW ¼ïÔ÷ÁsÇXΟ‹óRœóêºy±µ}çΣ?¹ûäÉsïÃâÂhqi¡j?ÓÈDÔ~„)�«\ˆšvôr@–ˆèßüûïÿáwœk}žóóü´þËœ«õTÈ‚{I�T`hÎV gDñϤCÝr+Ȇg,Ä·Ì•„x>W^Ž-VȘ‹tWþc+ù¡·$ʆWUì;Ãj!þ´¹_P¤�É?cÏ(Ùl­øvK¤*h—K¿Sn�!?ºµžZÎÙ2J0 òIÅ$éÝ—¦%[%ÁÃV±�ÂKwDºñíoÓ@�yê{Üà>Ð@' fvUµzáÂå×_¿øÚkõd2ÝÛ‹IßU1œxBGr•2N¾3B(•÷aÿàñ“çŸÝ~pÿáSßøñ¨ZX;ç¢BÌL1®�{@MÝ®V¦ªªöö'õ¯ÿÃÉ´Î @§÷˜ÊA"t.ž¼-ÕJ¹é\ÝCù'ù Rñ'r°ÓªéG%ƒ²¡R¯âùœÓÝVT…åÀF\Xl(…ež´VWúZ1bTX²°¼÷6º‡±³œIÓž;PÊF’o�ªòÊÂÖÈÖÔÈ!÷¢FtÇÞÁ±)ùÅá�˱ƒíG”ða¢ö  OõJúõÙîö�Î À} �NŸFãñÊ… —_}õâÅÐ4ÓÉÄ7ÍœwVÁ«9õŒP7¹†ýƒÉã'›}rçöÝG[[»�÷®r£Qå\ûÖ>!:3KJê?sBÿê_ÿÑ~üáKUA(î£Àd ÅÉÛ-De Ú8T Na_2¾I䜫‚"ÍÙtòLŽs²VAŒú”V’ /á�”TYS rÚQ!—¥þÚ@.©åFh(¯³j"—9Çî7µ²aÚ2–ÇÇ u m‹s�ås|°@ôgËÛÜ�J&Ž˜:Ùêjò&UŠ7=âxά÷¤|>À4Ð9!“îº�èØÄÌãÅÅÕ .¾öÚÂÒRSדƒJ¡()/Ó’xŒ,x²SÝKÕ¢L¶õºnžonß¾ûðÁçÏ7·C ……ÑÂxÜÆÁwÔbwåÕf¢@;;{íoþv]ë×'U¡"û¶‹�bÌL_b?"®R­ÏÙ˱“HE…FÐaãÊ �ÌZhQ,r@l—³’‚V"Èsk›ª°ÛÒjšÓ.)g²Š(…(ܵ«ìxC�D6å-æþÃâK{ Ü„�ݬl‘®×bæµ£TÙYÚEƒØHìPÛ¨Ÿ‡Ü_9Ø[OJëjœË` ÅòpèìÓÜè%’«ªÅ••K7n\ûÊW–×ÖvwëÉ$¤2”I <õ'ÝWNlñ7Q]7›/¶oß}ôÁG·oßy´0ÙÛŸ;UU ïyRa"ÿGÿä÷?üøöç¯ ÔNÈÜ‚¤ ×]EX4“Cª‰²<ˆØlyåM¢I„¡j­R–OŠËV‰—óF[-”•DÈ$èGÕ¸#Ô¨À9XJý,ïJ Û)Чe(M«‚u©úÖ©µ˜œGØ­J*»)#ØÝ«¨ UD½Ž°­(ß9÷£_.—®D‘Ðñ!­ˆë]Yënß¹3`÷�Î8 À} �^:1óh<^»xqýÊ•Ñh4ÙÛ‹Y#�ÇMá3…->R“ºPa2™>yºùñÍ»wî>zòdsÿ`cßGUÅì(br¡>»ýàoÿ½yL»Wx¥ˆ:y*M$í£š.”ç2·=¨�ºd^G Å ŠÛ•yÁPˆ>�Eì¦O6‹1åªÇe*Åfqb{Äv–*ƒÛ…­â¶w¬‘EÜk_7%G�mŽú�Ó0Dºt¨ú™_ù•Þ è9`aïÌ9KîÏÜÌCó‹w¼K9RJjÍ©~A¤c+×::‘N®ï1t<òÈdv£QÜ·ºqõªošƒ½=oö­[€Â”ù¹QN€¦ñÛÛ»wï?ùè“;ï}ðÙÇϞonÄ7q2&ª*ç}økó·Ÿ=ßúÄKÎèe-ŽÝÐ<‹Äg ¦(è6'“œH9e“.ðØUU,fÊIb-¶•lÅBLÄXIO\•“çxtì‡TŽ £¶ÐôËÀӧ˰L®ªV66–×ÖÖ¯\¹ûÁ÷>úhokëäO‡$88�@µ[¦¦ñ;;{;;{÷î?ùàÃ[Õ¨ZY^\[[¹uûÁK²pI@C¤#©“#…€æ8tª@øB}hU¦$LI¢»è"°Uy ’;‹£„JM„hÔïDWõ¸Ÿ(PpXÊ+XŒÉ L‘TÄŽÛ¥ž`±Åèê¶ TŠRw·jH™TÎ4ʆ©åp?w~ho½ gWm©ý ¡‹ºÁ•ƒpP(?ú‚Æ·VR©clI{ë©ÖeÓ­óЫÖ§>èsÓ±ÜÐ\à ÍÙ#§¢Å,T&ÅÀÉ™4Ð@‡3/®¬\¸zuíòåéÁÁtÿ›VËü)ï,<Å&ðçü+±H�È{?�ÔÏ7�¹t9 )ã �U¸óTÖÿ …ZRP”E~¹ZÔ×"ÇÓÖRg"«óx&˜$!ÉÖ¥"â¼äø,ÿDþ‚·r–I¶e +HLöIä�ÓK¬Á°‰$†D-3ÇO&a£ }Z;‹Tˆ‰eØHª£Ì¢6«îP 1ÉL¼ªÒÈP¿¯Õ0VX_Œ£P¾mZñDˆ�žûä`°k€d߉%¯«] tö¨·9uî ô9S5­¬¯_¸vm4Oö÷§Å”‘s:½ìÜLyT‹r ­Ûœ!r)9C?èÜ ™S„ûÙf’iEM.qˆŠŽê$ÖÍŠŒÁ\È‘Ðß,šb¼¸Ú#«$Ç!‘K¸ W)}ÒX9ÛFe�¡ò¬+ãÈq®7•׿£¤4ÝñeHòMEÙòÖ8¢‘xýцòœDÃÎÔ�Î>Í€» óW'Ì@}‰�[\^¾xýú•7Þ`ç&{{õtzZÌçóÌ‘…Š”™Açaè?ÔŽda–rmZáçAíbÚãCÁŸJ’ÛÍY£ µ r&Yq*#™®GJ.ì뎵.íÜz#§iAB…M­ŽÈ íŸ&ÇœR�%bܽªÏá RQcߨ¿"¹uÒ 7ùk%Tš ÈF;XëaEŒ´áþ*N-Ϭ:¶:¶˜¼=sO‘œû7¸êPu2îLh ³L3à>„Ê 4Ð+$çÜÂòòÆÕ«Ëëëõt:ÙÛ;]8‹pÐ’*\FBö¯=Èq°R}Ψ=I9-Ž´)0W¸§PFºIªÕïŽ}Zí @B¹•I’�ºª aÔGäʆrŒ~qJÅÍ+žjäØó"ò!‰áî­‚Ú'ªv¯Z ŸcrUí¦U=¢l%ÁuÎð¦�Î>é0ÙGÒ@ ôy3�—–Ö/]Ú¸vmuc#„à›ætãIrN\œÚ “4ádW<ãTˆ Ê´• u,»™ L -¢UËДZT”E²½ƒ'm]„GIRÐÖ†1XžØ#ö å?}šô%£Y0"\]²ÕÕI¯Öî1‹`Ó‚;YÊÛû㹕x Ñ#øö@Åð`],IflXñB?%¶˜ì ä€ý«†«0·¦‹ѳN©bEe¾•…Õ0¶¬0ÅMî18÷�Î8uÀ]F0 Ø} �^)1s5/¯¯_¼~ýÒ�ë—/»ªòMNð½UE2ÁÓaTMÛ¹Kœòw˜¿¤Ðö².‡VdÀ»@¡ÅŽ*Ì¡ÖÆlqžÖ“fW '×59æ‚ íÉ$Ût$ I¹Ÿ¦=7xìb#˜!åínK×ÿÜ’’�¾+žÊ[¬šS�éè¾µ¡&㨨˜‚©QAk+i×AzÓø3‘Q¼j~P»Ì+ÿ”æ”Öv]*’H1¬¥-œÊFš”0w `Bp茓ñ¸ÓÜè¬3/,-­_¹rýë_¿öÖ[k—.5uÝL§ÞûS¼Ksž§£’�&s _j·måd².‚-1rê¢æš`ãeÜi¿}“äœÄ²¹ŸR¥À9É!‡�¬ Tì*…@´O޳•!§¦5r�&ÙJyI…gØ@üdÌ:õ±ir ‘[Y±R9YQ 3áXE°°òvçNÂ_(õ�sYyn Yï¸ʦ~§~zødgØ r¢ŽpèŒ|€)„²4ÐÙ$f^½paqeåÊ›oî¾xñìÁƒ§wîl=}:=88!Æwë‡ÆKœ ½$_»Ej>Vå-ô´_¬ÄêÖ,ó¼¯H6—t!ã�’V]-4jÕ´:Ú¸ˆÃ¢Íé¢L—X`“z¿�er 1QT¤¼—k‰´(•ín5�r6QUÔ�C¥’=Fº#¼Ú4 æŸ)XLàÔj;[Q…-Îunn̨�*H:ùTQ"‘YØx�`ogY�ØÖ±/,|çT&øhðæô^i4ÐË£¾Ç½»/_™8 4P†˜¹�––VÖ×7._¾týú¥×__X\dæz29ÅùæHxTU<´Öç�üQMçöª:(”‰”3È‘9Ø®EH¹¦ñ¤„$%)4§˜И]± À $yʱ2 h�µÐG«ÀeYßd†¬¥TF3*gÛRcÉÚÁšW©L¹å` ¬WØ: ¯˜`‡Ê%YÛàîU©Žñ0!@vW«´kÕW«»¤%ÕÈWø[º­Û4�Šw²&•Šø¡V$4—Z ¬÷�û@gœà>Ð@猘¹�WW×/]Ú¸zõâõë+ëëDTO§§…‰ÑïkaSA°r�Ï?eû‘(‰Û’ççgh™'a_¹º‚G–IÒª(|¹Q+Ø<”ëæâ¨Y-8åÆài.™)ùäšÆbd’–$Ÿ¶¢ª’[…~VrµyTµ¢|ðÖJתH¥µ‚V娖G½”ŽJµdUF¡gÛ¨²’Àw%Uâ6¬EJ(¹Í`·Bd8d„èŒÓÜèÓhaaymíòë¯_~ýõõK—BLAÓ4tzøøØxEgµ Os˜oΉÿЦçg‚ Ï䘔Oæàl¹:õmÂ}?®À“I૸)ì(„g $ÀytK‚W‹îÄ Ž$Å_]²ۓ耷këTV.vuÆ #Ý�­`a•rQHmUbËyÌœ˜³C²;° ”ÀVx9¯Ž•âr^˜S×�È39¨âJ@x†n'ɵ_þå¤  tvhtx‘�èÌÓòúúâÊʵ¯|eo{ûùÇ>ùäÅãÇ“ý}:YÖE©›œ2ç§3‚Ú) LóaÙcëŽÕ“`B³NJÊ€EI Ï¿Þ(”´^pê¯è”^ žT‰IH2G°…�N¹–U.)SP-ô³(A$†L°É¨(—¼÷tn-–ì�ÐOÍŽ"©ZØŠ ór úÖ*8G„GnÉ—œÙ�mɱ G±#»Rðt<#KˆÜ͈ï(¨ßïª ¥,&Õ±yª=¬ª#è,ÓÜè‹@Ì\�FÕh4^ZZ½xñê›oîmm=¾sgóÑ£­'O&ûû§ß©èZKÒÙAíB –ÉÏ2,@¥ùÛ¥¢Q°äªéM«EWaÍ€ÇÖ8Ô7TŽ[ia™$µ1ÑÊ–dbA]@xItNù±Ê!­¤’ó�I¸nS¶Bïú_bRÒ È–bBÐ/ö3Fdz ñ±ëÂI™. ¦•.Hxñ4§V¤Öæ–Uü›4¬â†BŠÑädUU±¯›¦±wÜ@�eBeè EÌìªjaiiycãÂÕ«—nÜX¿reay9xßxòï°"˜A¾ZÔ^–PAUuÉ‚E‹c^†T¶¤ÂXÇkHÐ fó(X ǪlálwdâI‹€þ*�ñªòm3êŒu—³ëઃ°ZÅÜö6]º0±]© 8óÍ#Õ ƒ3^­–�ê=ƒå¦Ê[˜®V#I&å'@NYe DÒvÀ`-5êpç€�ÜéÁ*Èܺù�s»÷î­¼þzR©�:#”úrêÜèüÇ=¬++W¯^º~ýÒ�‹ËËDÓÀŸJü¡ðý úÚ#YìuhytÚYs(lë^s„nÎ×$ŸP“«¶î¡‚åÐdRªd+ÊÃ͸ŒÇVf‹ÕrhX¡Ï$è· *h¨ÔT-Zu¡R&$Ýž‘ZÉÖ“M(¤«‹[]¹K##á:*Ù|ŽUÛ®·oW¤Œ]�¨¾PÜð-„]u ´öNTÜ"‡ä•!œ]e>;wïûS:Ë4„Ê 4П–—–—/ݸñÕ½½§÷ïßýàƒg÷ïìí�ÄoýUŠÎ j—ISB*]Å»ÔÇsŠq$™©�f¦±¤ð±Õâ‚!†cfì\+Oh"+AWXJ²ø©°™|T%m|R»BµU� æSK#‰ñ@¿»PæE¬)jR>å¥e‚!õ¨ BÒ¤¯CQ%½£R0ÖSˆ`±ËEìd¶´õñ1J› %ReDfuÊ&ߥÑXX™ZªH[ø‰Yî"gh �Î0 À} �¾D4^ZºúÖ[®^Ý}ñâÉÝ»Ï�_2àû\éKŒ%_¶îph �4ZXXY_¿òÆ×ß~ûÒ�®ªêɤ©kÊ„1ÐYÝ�z�„ žÝüŽ)âG'±ÒúãU‹Üw´«ˆ…k©‹å¤à]%^UUˆVNâàBÿ¢:v‘)¹ ÅDèþWkËY PèÍ%‡„­‚’ä–¦ö“ºXFA%ƒíäŒcLÎ/߸QÐk �Î À} �*Q5-­®^zíµ+o¾¹°´4ÙÛk¦S[윢v|àY�d§ù\Ýs…�°ÖœP[Á {òH˜8Ű@R‘äU‹¥Øàc/×´½ZµÔ_� ©Ëæ¢Td…-lÿZŹ¿ûSab[Ø"H+ bn ¸ öݳo+ Ÿ<‘p»¹ Y©ød% íPŽs‰ÕIZXúWaz•‘SÕµµ¸ÿE[»ÎA€û@gŸà>Ð@BιÑÂÂòÚÚÚÅ‹õd²ýô©Š=§¨=G9”†gŽänG>Çã0':œŸ›j]a£œ 3ÇPåRÇsr˜eóÀäÚ-D1Nªq[2ùr™ ^T.[a+HEµªaCªQuFb„°u;’Çl–Ž*ò$ |U[C•µ/.T<}Rµ¶)/w•Av¯ª=v»‚"îvÖîÝ¿¿2`÷�Î6áëÙ 4Зœ–——×ÖØ ’ó‹Ú“XDe<ЪäèoùSG* c�ÈM~FµÈfM‘\!�Y÷"OQD8 —Ý{�Khe™¤…Îb ¸í#L¼#ð]´Ã*¨¬ä"¦ÙQæ�瓘ÞfÒÄîPK#,ûB8[ÏB²OãÏÇßû 4Цî‘7ç†ß�èKL |Äãs—FIahyª ¥`ú<ðAI’ÿ¡¤~[Áæg¨$±ÂªKáLè»BsÜPZm6÷ 6„ËØ\N$…öè+Èž\ƨðkDÉ Ð«œ9²êPËîËm•˺¨tQæŠ'“c›áÐG›+ì+¥–‚éÊ\jTËcA\ìÊI/œÙ,oÐØ c[—¾V÷¸:Àv9¿ b �Î t �š—Ø97ÌâMÓ¼Z‘N…pj·°RŽÙx#%¡F’¡ V K¾ŸÒGáui¥Ì¯†Œ²¬‘¸RØ®|rä ¶Å‚h| ÅAŒ¥ `®‰Áâ*®Ú ³’A´IÀj×èÅÔJÊö�53ËNVêƒxe"<�4¤âC° I˜ˆHZ´9­U‹È_˜Ä‡ƒü¡ŸH]RK#{Óá"Á:rˆ›˜UjNäi}ùèKK¡ÿïÒÜh y)x?�åçÙôµPc™Y8¢pÕQ…AX€ŽÃ#I..[+¹Ðœ²%]§ªÀ<|$VLV·¶UòÈÏX„—„Œ‘š¦IV´~\Iø4M#˜›ûË-« õñ%j‡ “ûX“û5íî»Ã9µBÃi+êŽ(\ÙÜ‚l쾜¦ª›7\B`?Ú ¬ö§œt©ví�¶ ŸÍg€¹ÿ}\µ HWƒ(Eê™õ ±û¼`*ˆX˜%æTl~¹’åb91Ž×îñ.ÍÉÜ^ÍÑœÌOÞÐü2ÃίŠN¥st<}O÷)pºƒ ùTã1;G)xtFèØR Èá•9a± ”;™Ï/§°Ei-Ïò†¼œ¦Ö+Y¨ŽU ë)_¶a€/+) C…ÀT4¼ð¯ªªiô  nnXWÁPeŠÜ¢–¶ðÛ¨°[ÎSªw°Q…õ "Î-Ê·VÖ–ho%36‡Ü”¦jôÊÀ³»l± ”V¢ÛscÆšÝ2±c5× ¥¨ªªº®mwãÖóá'œÔN}šSž— N žn­SÁ?ª;BæÒübä¨<ÞŽ¹¸dø÷e#þr«?З™˜h4Wãñ‘€æy¡t Ê‚Ñ$PÈ¡ Vðü<æ0–å0'O ɨ‰$*Û2g ð–­[¶Oyƒð”ú‰À±õ$ Ç¦C?e ¢C<™D–*r‰ú¨‘!LE™ÇØk$;¨, V¶JÔªªÔÊD!{ì…h :ÑšÚb}ìA5°©?fPAU]5Mýq¢Æ“ÉF©;ÛíΙgTO]>ê7˜èó¥‘ äÙúõ°:ö™:ÏœSXŽœújlN†ó/¹Ž±®:ÿcÐ1˜Ÿº<§nçl~*ËèÓíÄÏíUÆü2Ìé 9¼!çF‹‹Kkk»»Ñ©9'â±f†±+(µTSC]- °§°ŒIä�}¤$QiglÚ¡Bý!A t¶iî 4Ш�/\½º¼¾繘mí @İh OZ8nY!n%eR­Øê8æäŸ„¡‡V,Àv-ÜÌ•L‚°\+hv†¨ †Ä…haLTª0t€Œæ£-0•^ËÁw‹8ãIÉ#®j©±„áòÜOÐi'r¬Ú¢ÔP”«öë§Öȶî\ãrƒã2 ‚`]¡p‚¡ÅÅô£¡ï•W;wÙÉ(}åg<°f'èèäm{èM=Ð@g‡ªŸùå_ÆßÌLG¸êV< ã¾0�Añ΂HHó‹7§�çdX.†WO×b…v_jO�}æ™þuUu°³óâñãÐ÷]�#šsz\˜ H¶˜*�¾½“ „¤Hª­B[e ó½ P%$²V°y8 (·2#>Vˆ 6˜¨ˆt1Û‚àd�+TšµÀ*˜†%tÉ^°¤Fyþ–•‰EÉV~Å$Êà½,Žqù¡ï‰W’Ø®L®¾¤¼H‹ {esU‹)]l�\EÊݰ¶Œê£H{÷ï/߸AsÒñ¦�³ÿð©”›2 “> 8'{œÜ˜Ç6y+� �{½g¡ÝW%R�ΠH:†¨vÔÎÃä|™å¥ÒçeçÜÆÕ«Ëkkòó¥6÷2hžÅ†`,N¹“­C´é�‰ò•Ox” ¥MÊ–ÓN˜$ —%Tú&ÕWg” U£I\˜CWrUEº'!]0ñ0 Î]î{ å'ž¡~¿«uERÇH*ð‘q̯âì­AP4²üT+@d’Ì� ¨”Þ…~Ç1ƒÈÞŠ­œë²|НAÐ#žx eS@Û*>hj;BDk´ƒê¦½ªgNÄR¨5?Ã�N‹ŽlŠ4o÷Ó¡ãI9O­3¸¦,Ðü>ìãy»çáPhˆù8Ì Uæï�9ÎyiÎ¥mAßc/Žç4{ŽN¾Ê/0<�Wk—/¯]¹²óâE0i=Î!îQø& Ö-¦‘ŸÊ}K€ , ±› .˜òØ„E!‡2´Â(HZæ€Õ«r] 7Qì\]eUåk'âˆ&àÚ¾‹˜>)F²£ãߘiQÎ#–U|ðCN" >ãJýÁƒÍEž’ˆÝ6Ï‹ã\e ànÝÎ~%snXªs·@Ò\6-�}Ñ¡š“~‰b«ä<”x²D±[–ñ6Á¢ö$è~?öø,Àß¾,ÞœóàQ«[¹‰>„y1ÏœÎé99( p<ìqê/[ò—ªŸù•_é—<¯sð@ ô¹Ñh4"¢­§O§ñL8 3Ö±ˆ3žÎ\Iå«Ë=3- XìHXYª#jIb©#‰gÑ[0_ØÉ1Açk¡¡dÓÉKÈ“òfQgöE˜ë]™…·6 ýÏ$‰lÊ­ÝP;D®¹Â…ñ†ç•A¨ó�G1’ÜX7i|ÑU–‚›UõŸ�JJ®$AÙP¤Â‚Šúª*ZÖ�Êtª|N…¥ë×�1Ð@gƒÎß;î�è•“«ª‹×¯¿ñÍoºª¢s¾àWKŽœ¡åQ õÂ>ô«FËè eÊh¡XQµS¼Z!«¤ŽˆºEoªi«‹Upž¥ ¨�<éüŽœUÌŒ:À.Sݧ «í�h7qîRÇ“ÿ­¬¤°²°• µ²$�TB¡Ø„]ÒàIñU㉲¯ØŽPŸ BƒãðSŠ(ÃbI«¬ºËl7a/à0À^P#\ÙPm„Uƒ �Î, À} �:-,/_ÿúׯ¼ñ§pÆù% 5ðXA!Y¸å ô“ÁjÇ@ IDe±ø¡Ê}—ã#u“x‘ú(Í i‘–* €ur�£ÄP¶ò;ç”c>¹æ½Êm¢ÚÍ OýÔ�(IDÆvAHy «ºR– $`ÔV�‘ô‡JKÝgDÑ8ÔY!Ì£eT:v…}-:­í�c­*…ãÂ#.KOÕסÿ$ÀBõ’²®P13I 4Й¢¸4Ð@Ç!çÜòÆÆÛ¿ø‹«.ð9ÜŸj©¦qjW0¨0Ù[/ õ�Äx¾€8­0À�­ä°šÂŽX—ûo…2ª¼ºT®«dVb  *nÛ² -grU°)–CÙ<èÜ…Y'õ•ci"9$d9�="Hš»éÊŒd\ÝÈ�ò€UøX+ÙµÁ(bX…J­$>Fœ|-€B¢êöá|l�çh=ìM¥õG…s¿„%Að±®|4—ûûƒè\Ðaºh �^ 9ç.ݸñæÏþìÒêêy™ùŽ$'‚l‹Ý#å<·±[v‘�ÔKÉ0ÏqŽO¹Û4̱eðàrß›žtŽ¢ÖÂcHÂ&°gè§›T¶!ÈO0ÂJ‘·BЏ{’Áu�í"¤¦>áqU�4õG/òÇ@¥¯ÜòÑ()€›M±!Û#Ü­ˆÞ$L²Ríâm(P;ª4—ØR@ä,Üt t6iî 4ÐñÉ9wã›ß¼ñ�oœ—9¯€-WÀÈ‚x[¹%mbñM²|RΚ/Pr� ÔIâyú´ Á…ONJJ`zô“QÜ&$Ep¬ ð%KyÁ‚J};ÐÝ«°#êe5’“‚Ý×â%k=µ,¡.ê†úeV&²"Ù˜øÐO°ƒbÅCk‹:˜tÒ #—°¢bÈà›ÇŽFÓåÐ?.3âÁh4ÂvÅÚÉ‘sèxh WK0j‡Á:Ð@�––ÞüÙŸ]½páU rd*82mÄ‘I¬iZ´æDáVÎ\£vb/ÉÕd¦óyH„™G’9Å£”o[]Epf]ÈI9©5�M$?êŒ3sPr?ÆdžÈoÙFie‘`kÙ’vi¥ÊÁMN½¦°˜ž:€.ëôLýLÞª9Üj­ŠIMÑÈ(?æˆTr*Îj¥Ãfì=«L̆Ú�:ƒ4xÜh 3/­­]xíµW-È‘)›Ê'“�+‡>sÜ%Qxm+ÐY€ªu)†‡bîœV£#QÒáZ€ò¹�|a Ë”ÅP_êÇ T@©¤+Y®T“ !¥×°E »Ñ ¸Ò£>ØU(<€—Z)¥,À“��:²,IŽy%æ´±�¢0·ÔŠNn4©d²·d‰¥˜`1ÛYÔߢª’Z¢ýcUUá%«Î@�5€û@ tRrέ^¼øª¥8>:aÛY_.)H42ØWÉ�ä3�Ö¶5$µ„ççY¥º„ <´ qrÿ…€­ˆÐV‰-Wñ•Jºlõ*�nV‹�žŽžl\h¡Ì­¹’K/+3KÚG4vœZcæV®k•²FµŽ ÜŒ¡þ*•“óÒDn�¬ºÅÐÚ¶ƒÄÚ±dîUR<ˆ{…QÙ�:û4÷�èhe}ýU‹pL:Ý’ñwæªäm¤ÐYoѧ+e‘PC*\Êi—$ŒÃ.¢¢\t„õhæ0·-�Cö–"nCh˜¹ªÄSZ[$m®vvZlŠ‹F"R*ã´^4Œœ±L÷¼2Žóv4¢Íq)e³Ë‹¹Pµ!!vZ y*ù7üch ³JÙoˆ 4Ð@ÍOk—.�wOUà" ¡”G6ùÍ�QdKhŽ$-J’+04Ï�{‚åžE4™,9�j¡ÿžAl’k—%h@U>¹¨PÎ`î§· –Œ×V€µ*õ¡’«à(RX\ 0©° AI>�Ç+FhŽfÄUûÐí=!EfõZãû­:\®úÂZsÈ ðI!+5~0—e€µ ö‘óù�~D t&)�Ek �èHÄÌ_ý…_xÕRœˆ O?D±I4|’E‹ò¾Œ‡p[w£½ªðß¡­P&C ¥Ì«ÎXÔž¬%…’&Ë ¬LºW…�r�“±‰ýL�ܪ¢4J�Ä�L\‡â €©œT(Y�W£ŸŸõÜr u*â±2C¢¥¾üT/g¬«q¿’SzP€¾\Åììö±¹$0rU…ßHw`GàßÐ-„NrG4ÐK¥!Tf �:úù_ÿõ ×®½j)N�PÃó‚iØøÝ&ËÁBî{UËÒÜÁ$óŸWMX´Z.œC<êü¡«dUXÏ(()'10FÅ™`Ój…Iry†«‘¤Apý€ ›ÁÅ+µ$2G‰Aýa ZWU[†áUÑ7žŠhÕ4Cƒ'?\*÷‚ˆêÜÕX?u(97`d$H"´’œL.Ûb$Í›\ÃPfp4С¸4Ð@§CìÜù_ÿ×ã……W-ÈñIa2DEI€h«««ÊéH%¶S0®Üò<jÀ4™ˆ+9РHåVB?ÔÁ6JÆzVNló "4TŽU{•L{«>Ê <±ïp=€ÊÊ%én ËQÚá A•íØËu™ÅÁªª¡¡6¦·—6—ûÔ”Èé½”œƒõJHAùò-¤ÈA}èTø“ÙD!*ÈOa…âE×»Êæ™¼/æ¼õèd_"¢a°4Ð@' åÕÕoýò/¿j)ŽCv¶Ð�(X´='!ìSœPRþÚ†äj.P¤P7ɪß �§¡‚Àxµ¼Þ°…[ ©U%«Š sã'T­Öª \Ï`ŤRRQ`±u�c‡Ý‚ÉÝ›Ô(V—ó* E�Z”_p° vÑÃÓ•ðÔ¿ÐhUUIêzîí¸À¾@’…†ÁƒŽý"·C\4Mƒ‹4¡rŠy“¥ªËœs~ñm'4ÐY Áã>Ð@�&}íqaiéUKqd²nHêV‹»ÄK£¹¶¤Í‡9,å X,›T­‘C¥ŠIȇãš$ îRSz&�—eúÎo¥šs·E’ú­šVÈXaV�¿"›J ‰vÀb”ÊØ£’Ì�éåž~TßþE]’&BCI¯Eˈʪ7CŸD¯(<âo OGÔŠE¬�f!3ð¨ÃîÌŒj Ò‚�@©ê¹19Ð@g�à>Ð@�&±soüÌϼj)ŽIʨð õÝœREÎ䀯=™Äv "#K² ©€“‚FIÊktâ*y’… $ƒñ¡ÚêRw*i“b£1ú<ôã[’’ Vu­%±×à¸Ó †âã¾§9©¬R-90ìpEû¨D™Ò®ÚôIý�tô8H’–W‹ »�WE§ ëŠl Ê‹�ñXœúq¦ä¤Îý· ÖPÊ\ç|Ÿý@_l€û@ tÊôÆ7¿ùªE8&å ­*€År€ ÇSyíAyÁ�Ûò”óI¼ee³zT(HB�1)I²áe”RÌUAX¬vìw‚B-„ǹrÕJR‹}²sƒlÎnˆnCÜ‚IèíFÅmpõýÙÒhÜZЏÙj”ìÄʪ Ô4@\»¬(ªªJZUE—È'0úËc„þw®¬äüÖOj¹ 4С¸4Ð@§L^{m4¿j)Ž@ÊQ‡—, &ãH”Cù‚~, º…u‚BüÜ÷ÄÏ#jR$+s™•àQ™…¢Z„$)tÏŠ¦#cÍ@�Y€û@ tÊÄÌë—/¿j)JT€8�²X�ƒ…b ú ~Rer’ð Û’ á•å´p™R¸3¹œ°d¡vIÛVùYñìš$¹®P°^Át¹Ä�ל:<­P)¨a`û(©š‚ªøWí¤ !Äïz*°«Œƒq8¨¾Œ„¡‚ÂÑbIÛ&[ÄòÜwü Ùå6dG ¨ rÛc­Ñh$Å|ÿó±X>ùb‡`1†]€}A©›H©§û@g˜F¯Z€Ó¤²ƒÁ–)›³•ãq8^Cå¶æÑýØÌO‘N¥ÝÏ­ æ¤SW*‰ÀNÂ|Nn§ØÐ…×^{öàÁ±«¿l²]–,�,†ˆÄNÿIœc¥"b‹M”´l“�ý—”éÓœÌÉb‡ò±Æ9ª:¹EˆUŠÌ�ƒâ%— ¹ºÉwÔEí#´µ„FŽaØ–'‘$jØXx­ŒƒWíNVê#]î/c”a|q �£r&DíË–&ÄJJxRbZÄ,¡‹áVÑûNf`¯E>ÉÏ“#œ­<’C˜TI\ZØÇéåÐñÈsÖ:Þ´õùL–[�áçÓG¢—Úqô…ñ¸«§ª}è áùSéãóS§9Qû©‹útÂb¯Š‚¡W-Ññé\hqùÆ�W-ÂéSÎà’æé…Î…¹ÐøSp¡z$áoNìÂÌW~*Xn�šÒN•É�as“%Q)[[”¶¬{ØÊ�.©ßk¢^Âäª)&U‚™Œ’ý«J¢ m¹â†>i•G’!ß9Á¢EÂx°06M}?¢pAÒI]0ó vG²‘Yõ»\•õInlãCF®O²ãòCzª�eõ,?x¥ÂÜq¦f–ãÁ³³ ùç@£Þ“ŽˆOUs  ?nêVÏ=Ý  ƒ¦ ÆÉM§ ¹†æ§ùkÍYÒ>Fí±åfŸþ'‘áµ’k¹äÕœäeæ9Tñ2h~J²Š’öý^�AhãêÕyØžR>69‰ÈÀ‘�ò’J %(nV*{,„Y\D’9ŘŸ’·¼ @d}§¬‚ÅXK]µ�ÆÁhŽró£cuFÉ€gT”_aY 4ÇêÊŒ1ß¹ çÐáxïýh4²Ê¢T ËR¼¤Bç;WÑüÜ¥E·#'ÙrÞKîyå¾ Œ–{ÊÞ€v “¸ËU‰€—îÆÁ¦@9vþ”7$Êò1):ìé—{„Î?ƒÏYòxˆåxtŒ¶ ZÏb‘NŽ”^j­ã™b~‘^n¨ÌKšE¾*-ƒN… ãy9‰F� lÏä°ï¡žQ9??¦O.*l…Q_»üPnlÕV²¹äFºIÙÖ¢ö¤�Dƒž±‹±_ ¦(ƒ²†œÇwÑ›2õ�8õ×Ê ð®:ƒºKxw1«­ .«5†2¸�ª]5Â…T"ù`¶5‹ÙQTy 'q˜!Ï`¶—^/ 4ÐY£ah4Ð@/…F�O휒Í +—Á:R [4£ø[œ­àNR°C°<“mø £K ¬�q…Kau>)€B·I�PÃnEÁ,†“«§ªK–l]!HÙhºÐO3¯°©•_m6U2„þê(@Š8•“} ‰»²¡Û’‹gÄoCw„ƒ˜TEÅ løS¤E¡ÿ. ˜\ìá`S]ŒSvPQûÃÇS:›Ôî! ®÷�èTè *£°žDT=Ô.â ìr˜ÕâÅ9ÛÍ�øCÁ½‚ƒVqê;tÕ_±‚ª$:OþD5•Hœù\NÊ'WMö$âNêƒQå ¾‹‚Ê]�œU~q„•ŠªŒVq©ˆZ‹œÁxšE©$ F�Õ'™d Ïc2ËG…»$¿cФ<æ�Áœ9”ZØa�¼/’]ƒC>â �^9 ãr �z9ôE™ör#éä#ƒ:QñØd¡§º¤N*8¢dK6RžãœŠ’)É&(ƒþ Ñ#Jþ”LJ{è2ÆöÂ;ÁÔ÷â+h¨øà÷†�âK‘}ØÌA¿ðD ‹�ûˆ†Q©úÛ7EAAÒ6ã ]4Qrh‰l¹ÞW}ŠÒZ£q?­¤ºqð/ ‰$;$ö¬4*ø›`9�K»Ðÿ†”yêñÙõÑ@�ê‚ϺßÃË¡�èTè|y«’ÈO!uêã{Uj©ƒù y"Ž”ÕOå=´­²ªLN�#©)XS~*ŒŽož¦šGlY©†,¦GüŠÆ”c›R)bûHDÂO�†¾3ØÊ š’õ†¸Þ%Ö KDMÓ(û`Gȧ©ì­à“·ª÷Ä«¾8xü¸™L’¶h WEƒÇ} �z)äΕÇÝBCD{“IIÄè&L¶u(°V°O•G#õ$"§C½ãI1Á$Ë *ŸLÚÁªc[ÅäQꩦ“P[j d´ubë–uÙÛá ÁbØœtê¥Â¯«J\ 6�pYô•ÖÙ$_Wݧ¾¥Š ÝnV‹ep%¼Ê–ú$lExáñ7Âe´ö/ ƒj òÆŸj„ÈG²¨?ÅÔ6ÛO€/ÝÊ™æÅ‹éÓ§vèLÑÜh �„Ná …•)ålÉâHË_1QPIŠö$q6^BW&sÕ%‘Éb|-ó¦O䀢rß�KÝ ŸlWPU¹¥Åà‚G%�ƒûŸDa”Ìu]Û“²“ G¬ÚâI5PåX„Ǔȇú#á»s.Æö T(�âI©Q0ñ—#ÙHkye\-0,u£cEÑ‘ûë5r„â03y¶·›ÍÍP×vœ 4Ð+¡¹�{½_fšÓgÄbgDŒsJç×zçWò³Gvާ>t³0nÈ›k+ ¢µ­çV‡®�á’ÌÉ*É-·†ÉóÿÏÞŸFÛ¶dgaà7cís›—ïåË÷²ï[eª!•-RªBRª!%’À,@ES² .lLc­ÁeÀ€Š1ìþQn~@�*ûOÕ°ËÕ¸\ (A�Q¦È>ó5÷ݾ;gïˆY?fÌoͱö¾ûžsn¿æxã¾}ÖŽ1cF¬½¾9ã‹»|,¹íÃnÅz‹E™M#8«ð, F°³J@¤I 8öéuÎqjF?BvþIÒ|œ‡Q™¨OßÙhŸ¾ 9g&bïÍØ7Õ³?ív¦t”.À¿£³Íð‰»¦ýÙLÍ!µðl•ô¬b�vœ*¦Ï]ü,"šs¾re߸û£ûÃûèjþ¤‰ê#qo&Ö£5·Qµ <ºc½§¯ƒ�½YJi`eƒQ³fÁô1$"žY¢±$éS”ÌvçŽøxÔŽ¹žö0®Q ‰éƯv+Ð+ß\k qèmX_»³9ãWÛ|$~ˆ'ͪ„îÔ¡ˆûY>RkxšiÓ—Xy³A³©0NžØw œ“ÆÇèãñX7€»AÛ…76ŒÉa¬kèÒ4ékâð5îPÜt‹é|hº¹cëpüjv8&Ì9_½º¹x±â~ÊcùkÿH¹‡CV3×hÇ»ùá¾³4ó£ò=òx5Ä»v«´§ǘv{šâÔ-¶£äñú~ŒÒ×|òJö¬áä}ßs^íٖȤØéþ~ÝëÊ™«_÷Ë@òHÈlœ2‚èÌw…}›úeõlJ6ŸcÉ;fá¼£VÇ(°í–Ù.ÌÆSg‘z<ª3BðÙCmˆ1ÌÍjÛhºÇÎca¤6¢çø¢ª}˜Å¬�Ñ9gn!U?´ñCX<’pGs>IDçMïâ•h+ú' /œ­P‡fÔ¤KÈÈ?›ó§0=ÒµîÄGžº™+:6Ñ ¾ï˜ØeÞØÜ5µR6W®äœÏ>ÿüpî\?OîNއ=îÆÝ­Ïµ£’ãµuBÙ¿#{êpŒýîÊ÷4æTV,ªè²@Áì)ª†{Ú©ãɽóN]‡S¹ëx•Ü»�{HzqOÛ} }ÐÒ‡ãÅ,СŸYT:[¡C "6áÀ殈?vÀýÝ¡4Hº×|ÈÞQÛìÅfÏå,j¿«V$„�ߦ�Ç»óöκ$°ž {óOÞÁ7Â(ÇÜál”Œ+¡yÓ£ywô¥1Qƒƒ…›[f«jì¿Í§š½¾÷ ;ª ûË€=Û•àÁ²X)ÛúÒl«­!ÿ7ŽTϼöµéÌÙ眊‡áå~ Ù­ÏévꛓG]O^ó±ºÿHQeYd‘GGΜyÐ*l•=a,!W/ ˜8vsMPS9«?Ï]y·ÒàÔY”¶�Úwl"2LØh,Fœ7‹ûèél/0E�16¼Má¦ïñ\!‹è³r~n2™`:m"Rl8Ô�áð†s‘«]‰AúÆ þŽ��˜8:3�ËÁÈ:õßaíÓù¡±õ‰ÁøfCjÄÓ�Û•Œ�6½ˆ¶j>ÇRÕaš'zv�ª÷PJ¾~ýè•WÊÑÑã´¢¸È£% p_d‘Eî�œ.×îTe”Ù”�¨ÿ0w¼[™Åý;„üÐÄ5�×:¦¨hLo»«×p·¿±£òîJ´y�ÂOfV6-J·1 bî€T§âÄ�n&@“ &ÖÓ·«ž‚�Z ¿©°9¶©Q¸Áî˜sus5*E3ö¹Øc™~²E‹EƒD³pzg£ñ4¨C£MG?6­aõ Ú*†óãÛBÐÌ™å÷æ­•‹äë××—/ër6Ó"Hà¾È"‹ÜyØÖï$»¡vˆë™E½{ÊþðwVçˆcî¶¡x=¯þ«Y%g Ø`¾òÎâéFtÆo@vƒ)c+;¼¶w16eX€­7;8›& ìpú.ˆŸ¥wsZl¸é¸†84ÿ´Å„¸q³7BãÙ‡h4¦NWfcÒì—7ªÎ S¨™®ýTÑà E»‘.ÏCOûQë[oð}ssî„N¨æ«W�.^\°û"Dà¾È"‹Ü9¼uëA«pwrWHwòâ,ê½+éï½cm„8{–ÇΈøÇcFïËo‹ò6ŸßØöml¢9©~ž6\ 7ÕÆP1¤‹½èQ~¼+ªjÍExÚ˜…n@ão0® ló ÄY(ñ:›h)ì5[ŒùÎg-uˆ¾»†@OGGŠ5÷Ñt6±ÃmtkVß ª¿rNc[tîA,ßt¡öBusåÊúêÕ»/rÿ%üØ=@-Yd‘ÇNn߸ñ U¸·ÒÄ/µ‹"›ì@À;¤7ØéZŽÌ‚¼mÊoÄ=äŠ_íï�ì¨'–iÀ}TR;Â7À݆Ú:ˆÎChQBÀmöjG¼(Ó ‘ þC ê4¦Ö�(&j…Ù{.Gt!â¿�¶}â“|7ý¥ L˜Í¹°³{Šˆl6G—.éz=;çYä‰?óË´[d‘ENO´”£G¸o{7ÑÇæ«ž¤õ õ•oµ2ŠÞÖ‘;âïm@v¶Îþⶦ8» |Ë4âÛT²Í/ê4¯4¹Y$„oø(!LûÎvg!fìrcÆx{DÞ Öl¼…¨¦aé¸uµi¨—ˆ}£ÌŽ ¬ÇÜœ�ë¼hk�æÛ¦óð4;€cyÙeާaz,0 ¹ï,ٜDŽéÜ[­V‘.Oõbɨ¹µ[nÞ<º|› Yä~ɪ¤€¿8ÛoÛó�ÔÔpºlœ{ZùÉÛÝ_½“Ûùärrm�7%vÜxòñ}ÈGê^wP·µg±“ôWU×ûœþèK�¤{¼Ò ÂcÔ?ô`½í«Ùj©ó6Þû!ÛÊßmgƒ¬}=;ºGõvtS3607âžL»cë�+•ÑpQl%¢ÃXƒz¶‹d†Äˆ;…%$Q‰ÙTšž6À—'I5·D© 6ÛÁO‘ ûâ6ßæÆÞŒÍ#+ŒßÚuk´1{3X…³’X[?U¢g²Ùlš4ùMµÈQ£&¥l®]Î�[=óÌ^™ÝO Ç{£ísËñ:•vïi[9Ø_švçNN½ûZ(»U?DØ]ì„÷x3æxƒºgÉý±×©sϯö”mêÉq;µOC�ìY¹œv÷”SŸÛMO>ÕwÈGJD6� p�°{ÿ[0Ö¥œµoÓp©÷h#ÆY·I�Ëg�ö»-w×¶­‰ˆ´v@ó>>:[ó6}š‹2 f7ˆ9êÙ KÞÂ#œ€Ö+è+ŸµFŒÚò:OB8¦4âT;"´o(ê0Û5íŽ/�õ4JÒ` ¼‰ óð©h�f>Ìš}¶SM%%I5dÀÛ@¹ªoÚLÚ,4ížcê\ÿæ„Æ=èm;Ö_ÊúêÕôÔSq.áq�=€v¼Ñö”ã½øŽñ&=4:y(jϯŽgÿýÛÝ&ÇkWš¬2êÿê Tדհ…÷Ô¿ÙS‡û\É +¿§:ÜkyPÓàѵع?�Ê�àòñ6ÔÞ£–ïo™%û´rGéáÑ6%©Ã>®ÈÔ¾-öÜ`”Xøn½‚¡Ù¶´c9÷j3€½Û ö¡ 7¼× |Õ™-;l2Ûzƒ;HU2ž ïµ03¯�ÈѸ+±Â&*ÛE Æ9±bM8¹ñø¯)Ùäáh8q Ó)aº•¼qubýqÞö¶’À×�jÓ!iˆ@‘0C§h¶Ýñ›vãÈ6-%ß¼™oÜ8ö.Õ‡üÕ¼C½‡\ó{*2ýï~Ê1#î'—“�ñ©{EÇpsO]N®Þƒ’ãi~ê_Ý·ÊO.»:¡÷-f°í®['x�=„Ò£“æÏgÌÖР¥ã©1 F{i–?^sMÓ±Åm]æ"ñÑ8û¸1}7£û1kÉ.›z»í¢Å­u¯�­Äò„h1×adN7j4ê4´çI�P%„ŠíOÆ•©0Yצ†:‘†àµ‰k–&ïw²R�]`gy{³¥µI¦k &àŽŒSK¶·Ô»q2ph¶g™ÆQ½¤�TŸfËAó€÷]^_¹"gΤ§žµÅý“‡OîÛkú~¾.O¥Ýq?nh‘EY$JÉùå/|áAk±UNd·¡çIîÞü¢ÞmåwìleÜV쎘»Ax±Xûl…@‹Ú£n½’ ¬6GŸ6Fƒõg±` ²Î:fû6š4ö.�H::$ŽHí�nĮ́UÓ¯¾×�4^lú‹v›yÒÛ­q Øq&l1é³»`nVG7&&”ì ÷(ŸÛISJ³'Xxx]G”ŠÎ@“²9�V‚ؽùÖ-=:ºGOý"‹DY`Zd‘ENYŽnß~éóŸÐZl•=_®; oev×ß÷w+ÛÀî>p|iͪ7 ¬·¾ã·Ûà¸Nc·=ü�ÑmíF(Œ­Îv¶&ÝBóØË…Ñ¡ÕYSÄaêÁ±x¤6Ò<˜Y%çÌ0°ˆDj{Ô$Òf¸[T¦‘õhØFÃx>«L·‡Æ¾7CBÖÈx{oDs0-{m€žUqi£­†ãcgG_}×AÃ8Š;be>üuÕoVs“�w±Ýf¿lìÿDÊõëe½îM±È"§+ p_d‘ENSJÎW^zéòK/=hEN*³˜l6z·£Ž ÙÑ…�1vH�¨ŽÜÝÙÙòÍ•÷¿+ÞË2=R�v[›€OC¸š`:â¼häÞC›íN£[¸¬°É¬/>Ë-"Çö'Q5Kòö昡FI +ÑJ=òF€Ôæj䇯Ú%G�ó$ª D_Å-¬!.›ô+Œ)w¬c/(ýôHª?üà-ÀGEÞÚ¹"ÍÜÐÎ j&R‘õÍ›zëÖ±Ÿ²EÙSà¾È"‹œš¨êÍ«W¿òéO—Çë$ð#ÐEþÐ�Î=±õni@îÄ蘽7ªºÔîöCV}±é¢nMÉmõÏâ¹ÛõÁÚmõDtÞàδå" ‡’ö•Ä[”Ù÷´qú¾÷ÀÓ!è5Ÿõ[âç†øA|üÓ‚ý¼˜BžûHæA`õ4:7ZõpŸÝa%F¤a[ýˆGšŠ†•�n„�c;ÅÏ©þà§Q·¾ø8�Â\І¥ "1‘މs€¨®¯^Åc´·g‘‡Sà¾È"‹œŽ¨êá�_þ—ÿòÒ /‹œøgòv×¹§wŒ6pÿŽEnvÈ àN�jº£YzmÀÁ¦ñì¾ÂÔJK7@™­D<Aaߺ‰ñ+ˆn ž„¬/CÇ@{odÃ…©ûŽô Ýø6݉72šNœÊ»z3´Ð ‘¢—âõÎmmt‹¡8‚‘îߘ+þÇ%ö4šÈêüˆêß>¤ª¨‰ ŸùÕ÷Ö&ÄSèÄÊeJ—x®�oÝZ_¿®�WØb‘‡Mà¾È"ÛEuòß"³¢j±¯Íáዟý싟û\ ÔÕÇUdKð;£ˆ~z ½žm´A~}t¹—è{l¬äáN¨º¹ëŽM÷•è–@rßt¯[ßtï'ôv“@AéÑ”Œ GŠHƒêâ‡þ_r<"¦�pÂ\«Ö¶WZš”˜)¥w$¢q¢MšÏ³cÁ £ñãL‹6´¦XÊ«ͦ×p6dÞ#}¨VÚ§éÝ�Få_�Ò/ªþÀs"’»¯Jy§È÷ÏMõ�¼£¸‘ þsòÄ�€ríš>‚™pŸhyÔ^ôÃû>ö±ñ/têŸMöyÍã–cWr¼bûÜr*²C½ã}ur5šÚî©��¡ù©÷ýÔåA âÉåÞk›×ëË/½ôÙ_ýÕ£›7w`ÁÇ@ÇwCä#ú‰ ónÛÝ�°·ÕÜÃýmøõŽ Ä’Mð5ÖÐ_ÙÖÖ¬õf+lì9«s34»õ�õÌD+П7¤�"Ò›´î¦<íFBù,òn.Æ;7È2zÝXŒ­�eíÆÂÄ÷ÙÙÞô=v³ù*:$1Ÿ¦L]…HUê;Ò@sÆlßïmðîlëû+³ ïÖ¹—Ýà~¶ÂX8^i|ÅÞÔñJÓ…åíwpÆ[(¯!M*S ˆ¤¹M!l„û�c:E"EbÄFçÙÏÍ7½³ÃYÙ‹ÙJ¨Ò0 Ía®9çFÉh´&¿dÔ$~fÞª5jºç¨™üö½¥<üeà¿ùœê›EÞ¼x­[_-…í¥”4ðï‘·ŸR½%òO€õ–Ù-ÃA¤šéQnÝ*·o§§ŸF”ý�ÝÉá·á�“¿OýMz pµ[ö¼ë~¾¤N5=°“S1Ù»÷¹å!SïnÁ‡¼SûKry¸U-9_~ñÅ—¿ð…ìÌÎǸÇwvÿ^G€_;PéžáöÝ Ìj2ë$l»Né3UG‰}ì—§x…Ϫ‡h³5G¿(þÙìþö˜M|[<µ©?ÂßYûÄ@8+‰�.F¦o*N$»ÎCR 7½àxiÈ�./dï„”RV«+l¢ïqG)1:}’èŸðvLgWÓ/Á®ÐOè#ë¼%Ò–ØAVNo×_ ¼Ö*¾Ûʳu@í `Ý“Rh{÷%U=£ú5"? \Qý4P¦]ˆ;nãxÑžp/Îì“s–œ×ׯ¯à¾Cîéæ1ÐËà �õKä„2G•Yd‘EÙOTõðæÍÏýê¯^»t Ó—Ù.ß` Cqâ_Ú¦Îæbßt„•�2±L¬§¯y[Óâ²í–=•ßÖnß:?G°ÞÔ°Méܪ€6·ÕÆ+=ÿ»7iSsÔ9¶[áé?„ÈͰƚXç¶FcÉYž=¿j¬Í{#ož¤š¸ÐàìÆnM‹ø3,ÖLÚfˆíú·‹| Z‰²f4%‰—” Ã7IõuÀ«€O· ëw> Þ4µâ“ ¥¬ž~s³z‘EN(Ι{°Z,²È"�¦äÍæ«ŸþôÕ 4¤qx°*�ºïÕÛÄn›0𠕉x¨G]³è|ˆì@º}_bm˜è¦ØŽ™Q]S¾GØü³¹ÒCØ^�m}a”ZBx;&ìjƒØúlGšÑiLµ�îYãÍQMêÌú‘_Þ .t$«ØE#²GÅš�h8?q7Xœ»ciÉœÞ6 Y2"ò‰Ož0>¢ü¸ï–j‹ÈÇ€’R´¾¬ÛÓ�+ œ*SCïv=¥•ÈGE~›È«Â˜r¶4“J]âE«ª–££|ëYäH›òq{å.²È"÷LòfsýÒ¥—¿øÅM8èûñî»èŽ+}  �–2}XW¶„ω*v êÝêEôÜÔÜÀè;v¡Ç²³ÝitÞ§‰Ùª žß‰éVÑ&à ‹Q�XRµ£7K£Òl—×N§L›¨C,O³H�GßœrÚh%Ó=£ôgz³³†XaÓhíh^„1�¨!~ŸüTTÖ;F5RJ+à£@²Â†^¬ZÓÙúHŸ!¥ÆLö¯šÍUxøfÕo9|6m�Šþ¡‘$²¹rEÃã"‹œ–,yÜYd‘cÊæððå/|áæÕ« <ÀýŽqÀí�(ÏâéS�€ìÞ€Œ ì@Ÿ}É6Ù6v¸M…Í¿M§¶) ¾£×ìlŒ¯7ÉLzô¯sR¼%V®a�bÖ'‰£ÖèïµÊcb™8£xø(¶@I¬oh˜5“¥ÍNÅÐ~ÄâÎR�ŠQ¥þ 'ªJ8Þœ6õl]ŠÖ˜eß}Lä î45ƒXÞÜÚÔ#ñ†­áø¾†ÞUß|ø 0tñíùŠ]‹©nnÞÜܺ¥ op‘Ó–¸/²È"Ç‘’óµK—^üìgóãxÚÈÝ�Ý"^Ü.ï){âiéÕ{zS "™-€)˜>††±¶ÄgÑ|ã6Ѭz�†�AXØHä‘ÑûVeÆ>FøÛ˜}@7€[Bnõ†£b’ý,3Âß~£BJi†&÷bLÙ®a%!Ïz5äø¦žÆ— ªÆf‰6܆ï›Êc.Nta~ A÷Fç+ª5vžRŠ‚Â%°Õ-± P7ªš5©DÍ÷? ¼�.⎹G;ŽWä8%`sõêt_äÔeî‹,²Èqäö�/~ö³‡�sOŒø(Ê>PµA– P;a£}%=†&ŠšÄ"$jj‹ào›2±G±žýÝj¡Oˆ›+}_š‹¬pÖæ2�ÖÃ3œD�mŸãù;±�2²ªÞñÐéI¨±X¬YD«í!#B8|›>MµG²]Âe„™C �éÊ9G.¥Gö³Æ‰S±Áýψ!òmÜ»;¢ª_ |ÐʨŠÇÚ“AyFȉ³ÅÚeÍ)Á 6lOÕ÷«þ°È³S²>MíÙäÐÔ�;HUËááÂt_äÔeî‹,²È]K^¯¯¼ôÒ+_ùJ³ü£vìD�& 2‹ÀtV¾#ÞÝñ­„Xiƒxz¤¸O�d³.J_ޙռĻõÙ¡|c^�:-ÈO7�·ñpJ)ÍÆÐÙÖi�Ø\¯X_x¶k�ÂÛz­�•³Á4]ˆwøF›KɳNè8�xö“nñ÷hO^orÌ# [Z¸·Õlr›ØV ç«êOˆ@6¦v‹R2h. {{Ü]U¡š¼Œ…ê…¤¡‘�³"VýŽRÎuL³Fmv°™Ét8Öׯ/l™ENWà¾È"‹ÜµÜº~ý¥/|áèI ·ï)³8¯ÿ—¶Á>ÊŽowTÞ`¬x=‘YGbwïçÇ»kc¨UvFÖ›.:sIwý¬¹4p¬c@t[ù¾¹d÷žmÛ`Ü& kf1Fµ›C‹"ԦݬV«ÞwŠè|ÛàöŽJ¼…9ã齨-³�~>Ï‚{�n·å]�)z#ÇÚšî¼Sä@A)0mÕ÷¤ÚD%sKÙ.¢¥H)ȹä,T€ ›¿VäSú:`˜Îõ�µškôÿTÕÛ·óÂt_äTeî‹,²ÈÝIÉùÒ‹/^yùåþ«'¸oCí„=»Û:�';p|ßPÿa›>„_dMšÚúGüv¶Î¦˜t±óØñz�)g{Dð�)ÊŒ¸|¶‰^ÿ¨ùÙ1üÜÌŠ^«ˆ%ÐÁ IÇœ‰ ¸Ÿ…ÎQ¥¸4vŠÔÿx®SÓVlŽ6iþEHéȾÏN-ú¼Îœ•Û|�Ÿái·ŠO"Ö ¨bŠ’+€Æ¸c)Y’™Zgtü™Õ÷?&ò&Aí&5dï 5Ï”¨½òJ9<|Â9E™lý~€z,²È"�ŠÜ¾q㿸¾}ûA+rÏeOlÝŽ˜£�z³ˆùäºm«­G³·¹¥ 6­ôðw÷»cÖ™Ù§ ³ÎÆlm³Ì–ˆæeš7†bŽ×odÇð5@¶)ë‰'+5j÷»ñýšIÅä‰Í”ÛfIÞ¨S'­<>O#¾·yÓh´j³ ¸7Q\”°$9Qçè|ð�^‹U§”qÙs£‰�¸¤jÜw'ÌÎ@AD€¯Sý๎ Ó¨ŸNÒùu%çÍ�G—/ëf³ ¬ENEü7b™O‹,²È¢¥\üÊW®^¸0ûzÌÞLÛÉîÂMÈ­‡t;¬´§|УáòšØ­LÃɳ7îÜYäÝ`ǾÚÙ‹ ÈŽx �mmæ½5v×Óè‘7®ÍÙ±cÇyâ}¬36Í^º�pÓ»F‡¦w}òʦXMŸU BÏ8|ñ+„D.p—C§¡}6íÜLNjB’Ic½Þñ`C1‹ÈTQ9CÕ²`2”®/×”Èoa Óˆ·Æj~ê\ÁKZ�gE¾øAÕ§¦Ã¨·pS§åúõÍÕ« ÐZäTd¡Ê,²È"ûJ)寕+͉KñÛû¯Òý—;bëYÍø¾Í+h®7MìÀ»x ÛíÁèŒF¥ˆT@<ë4mV ^ÜÇ™™µ¹ýÙœB‹Å¼‡�Úlš²©�òÍ¡B³•ˆ3O¢ûÑ��¦øpÁ ˆyÄgÁ1ËHØl: 4ùA§YÕ73î»ß+ÓŸüŠp¸U4 ÂL`[lH|[B)åUÀŸ9¯ª¶ 5¥õœT¨ÚIL(EJ1ýdÖ‹³bN­QGüªÊ óœ"^ü@Jßœ�¦â‰Ú6Ï`³.1 ƒæ¼¾t)_»Vr\ Xd‘ãH·*·x„w�þ·ÈC+ËH�ºhΗ_|ñúÅ‹³{­öX�¨lÃÓw” xÏ:›Ûû»zhâ,ÓnB†ü“$nSIæ"¬�&³õ7šïFíýíÛp|£+Ÿõ tØÜ‹Íêß|Ûg‚o`œL£Ô}guºÚÐ3¶EãsŒdÉž�âÌøø¡t)¡LrΖ?^:â¨E—¦1]Îù<ðÕÔ™‚uƼŠ›Æ¼TìŒÈ¿¼Ëé.ʳ“¬ÃP9ëÀ”¤ÌÐþ€ªaúbGÿÜ® ¤ÄžWýa‘o‘®×³R¦Î^ýw³9ºx±Ü¼ù¸b÷å…{ßdxïG?ÿn~q(Í0l{áìY¬))Û¿jä/ÏÓ­ÍîŠÿíhkO+C¥{aç“�é ewCÇ›0ÛäÔ{ñ0LÚÜÓDw¬üÖ�_øgÿìÆ•+³þc Ü£ìܳ_5(!,Ú ¡*jÊlûaï!þþ_õ#PŽ÷¹�Ù¦S�õ}é¡áŽÏ±psh‚ áAtlÖ4›zš¾G Ĭ¤IºÒœN*¤G÷ˆñFÖi6lr�SI^4…c» »¦ÏLPF³4Uõ¬È_Mé÷‹|XõÓ"—ºÁŠ5ÇéÔÔÉgSú%à[8I½Ö””@)1GDJAJ•ñR DÔƒ”½õH[†N�}6ãŠÈÓÀ«TÿÀátà¢UûIÞŽc)e³Y�=««BÉã½÷' íWÃñäž¾YölhG[§RìäC°g[û¿ÁwÈB•Yd‘Eö’’óå_¼úÊ+ÛR›=!À}Ý{ãçÙ·û1Ôèïš�æn«<Çæ®;Žã6`º­Ý='FxæEÂ;~ÕT8[“ýc¶-ÖÔl�…£Öô®Mæ]iÆ· ÊFÈ®aK¨†Œ�QV©ö2Ðõ{xÝ8Ô¤)sûD;D�ƒÌÎ.ùc)}àUÿðã2 {×§©‰c;òz‘¿¤ú]"*RLN9&�‡j2ÔÕʃ7„µ—bV»`µŠ€y$µÈjƒà)Õ‰|¯È™©q¢ÌšÂþ­‹ªzûöí Êáa_x‘Eö”á}]ÄÇz‹ÜQö¯T¶ÿ÷á‚“G… Èô3ÿÛQìä¾òŽr¼i ;•^¬­QÌþeÎD"éèHÈí°­#è8?�Y¨MGâØÖ—6¸s‡>=BŠÿ6]ž �ǘ±Ì…�ãWÛhîüÖ ÄèxÓ™ºLÑnñψíbm Hk`ïô&bvo,i5hFäݬ*Ìj8Û¯X’×ψüUàõö'Æ¥N�W?¨ú5"Ÿ.9ÞmœIûp|�È/ªþ€HB Ÿ'Ânk×:üüÔ"’J1D^á»*ãèv1Âtx =Ån†û9�@[©ªêJd%òÕ )å²³`š~ÅÃz»¹};¥4œ?/�#´È"»eõ Xd‘EvÑRn]»vé«_Ýqp÷“Üe Rï¶pÓ{P¸O� "�•óCššv›+¼w›z±Ú†³±­‰Um´�íÔlw¢J}_øç0 vÄëi¼Ž†yÒ¨²� ,ßGĵ#žUÅ[vX¬ßQÊ&J)Dê茿Í8Q±X’�¢çOqh×z:å÷«¾WêqHZбÃm{hí©È·ß"òÿþqJÿ8çÏ{%VçÛ€Oªþ€È3hXñ=¦¶F$�é< )çâ|wXâv¯÷YÂÀˆˆÒb/¿7³¨ªKBõ�À÷‰ü Õ�ˆ„Ì|§êo£UUÓ0ˆÓÍíÊ€š.ªŸ>¡šD®ÿ\u%òz‘7ŠœI@q”Œ@èRLq0rÖ”D¤ØÒ‡�Ž÷ )!gˆ¨iâˆ\뙕T jÂ�àÞØ2îu8üÕwÿ2üîÅqi™¢}hºq4U×—.‰ÈêÙgì¾Èþ²÷EYd—”Rn]½úÊW¾²„Ûï(çõ×›‹ÛêÝ6×4ÍÊÆ¥�MùpïFÌýW�±w؉e‰úôDêzb L›¯¶õ%–lŒÓ@ù˜ÅeÖ!iÎâé­:Ûb£ss±Ö6GùÄq4mßøŽþƒ]iÜ’h^VÕÙc�msÎMYæ]¥ü;)%BRø®PÊa©Ž€�ÿ,ðÍ" È€¨Šj¶ü0ŒÜ»SŒË®Z¸Ü!’ìÏa€*T…¿Q†ƒ½!bxÚ6­’Tcêy\=²>Ñßœÿj¥úz‘�_nˆ4~ óøS@@ß"6›£K—�ÒðÌ3iÁî‹ì' ¹j‘EÙ%›££+/¿|ûúõeàŽn)<^ìA'æ;v‹Mµ ŽoÚã|ásοcXYrÔR½ÞØVgo´;öSóöÖØVOÙgÇ%VÞwpÛõÆwŠUõ©lvøZñ^~ˆÃ”JùÕwL ?1¹“†l-�Îñ«¦~Ö°Û�c=)¥gUYä)-E-Ün… ›>¥ æ`ÝÅHªPTÀô e¾�RÔYïUgÄ9¼ÖaÀ0À51¦;CþU '¸W¼ªÁwkQ Á»E¬¶ä+ v9©~x—ëÐ�”f§“ #ô“]GG›K—Ê­[;"#‹,eî‹,²È.Y^yùå¼Ùl+ðDñdvH�gá¬t±Þº=;ÐvèÑÁÖ^�X!¶ í}ZiLeVz¬ß裘û¸³54¼…æÞx=êlŸ#þ¦¶³Ð¿×ª‡ÅM1ºRèb´¦³]|ð_‰ü‡Àü]à“–~1ä÷Œƒ2ky^�ÎIôÄÃäÍNÐiÍ ÀŸNéM–v\jR£¦duBy1¢¼ÑW\ؽV‰Hò8wÅýf¢mXᔊ»¦·xøÜà>h3{ØlŠf½ˆ–ÁdKëxÑÊy ðq‘@<®NãëqHX‰“dœäGG‡.lnÝÂ"‹ì! p_d‘EvÉíëׯ]¼¸ãÐ¥âÎGZvÃÐ>(_ð˜"¼“˜±©S¶„Š„Ý”Ÿí]ƒbw÷S¤Øè¶£’F±mKÌÍ·Þ=€sEf�™¦†>®ÜŸÜÄo Ñâí½Ÿ·Ÿ6f™Í! G¿¢áÉXd·”ò>àWDÞnµ©~LõO—òWJy6ðÎY•„|2½aãøös†z6º©jÎÙÊÿAÕ�¸á ÂÐuEØÞ\ ÇK @ Ç.�FWþ+")ESBDS2¦�i8X×DF° gtµ²îUp¯*ÓE uR;D˜C¦8F/α©g3™Õ^ |¬”wº¥¢Íg§„NéIÑž6¦åÖ­Í•+e½~’NÙSp_¦Ë"‹,2•’ó�Ë—oÞœývyÇì¶@мÒ|@‡O¢Il.¢±™¡g¼·GƳð·écT` ¿#v�šì°†ŽG¯3[�€¾¯­ñF#`:(Ú…À{û Co±€Ný"i“†OolrÚ°ð»�¿'òZ» ¥ ÃðíÀ¦úþn»-;›hFY;g2Þ¿mèO?й՞ÉÓ“MaÔ”RŠÛÓðVÀ¢ÚÖRýÅŽ@ÐÄþG¡•Õk+VsÎÊY²ìà M��jò0¿EUS*Œý{GßœÒ÷ª¾jê~ˆ³XÿmóDp¦æk×6×®!g,²ÈNY"îÇ{†§Oòã#±wI•öÑê!ìÅ#(%çk¯¼Ræx2=èY¤‘mH·ùöT {ƒÕš:GŒ2ÇîˆßnÓG»xm²m¾Õ.rX3ë„ļÞ?+Ü13gË7&ê �Ë6õðöˆÔ{/"º7Íù¦¯G—Éþ=/ò—EžSÍ€a ©õVàWJù�n[E“úf†¦÷`½é] u¶�ˆü”È¿�éQÖœZÎ-Y‰Ÿv¤ª¨$õ1o£1×­€/SÔ‹^­’’¤d{„Ù«É'‡>;jˆ_55Ÿz»{Ê6õö×áäí¯Âãi¾gå;Š�Üb;êg…ŒGUïÕP¼åØêmëþîI»g±mjìiórGcîQyÉùâW¾òò¿ØGÜ(·²-àÚ`»¯¡â�資àQ«F½Ý8¾¹rGtÒ4}ÇÞEËìîãlÍE5eHÿŒ•3Á":¤.ÓT-M¬'RÃã]�>êÛÒ;ZFö¾Eù¤ÈôLäÖ“HvV‰ˆ¬¬Ë"ùZàÿ.rÔ­cÄ5Š~>DÓIHÖÞ˜÷§Eþ ‡Ÿ‰˜+ L›íì(WÃÁj–±Ï"Y7»X%vΓµ”< ŒÛ^ã Øçbè(@¢ 6úÞ–xs†”h6cµì7{IxwØge=^ò pø¬; Ô�öl¦q?]›_s†êpîú˜ýñ^:;nÙÿmÿ{PHi›J;*ßEìPé^¿Á÷DÂÓ¯îqÄ}y»/²ÈÉå 6GG—_|1¯×�:OôsݾM÷»¥‰×ÎF—xtlÝv P^gaÿ$‚œB²Vf¡Éd?¯@æØØQ €¶;A£mg››EW,,ÓóPô?{œj¼RÂ.L#ÇÈ7ˆµõÄhxúfàßDÕèãt/N51®Èõ·BE¾-¥_Þ>âѤìšÎeͯ€Ød¥V¯þð j+7†† <�EÔŽ/µ=©qéÃö³:‘AµR\T ã[mk©wÖlÔ89–Zg ¢è÷¤�T·Ù)ËßUØæZêˆe·´T¹t`.Çë�ß"òsTRо™™„É"㬋�ù8Iìþõ•+‡—/?,A÷ÝPõž¾ ö„¿'wN]îñ+{xßG?:¶´ý§y‘Ey¢DUo^½úå_ûµõíÛw,yTz„¤ù!Ý�k#š?y£Ÿ5(¼A«± :€Ûƒõ¦¶¾éæCoÞ§žÙjûÂ}m±ÌìÒþ⬆M…Ñ}VÕ˜�ŸhÌ.òCd­ȩ́¹ùÁªûk"ïv|5Vk&Y0Þ°£ˆ”ò<ð"_>VQØ£˜Ä�‰ ¾Ÿ™ŸH鯠n)™!&p9Ødì€aPËà§  æP7Z‹UU7•Zxï¬I[[�èØ E‡Œyš×û`qbMÉà»Ù¢™µÛÚëˈ¬›˜O¨'°&à5ª‡À¯©®陵â.S¿ˆa¶âJ‹])ëõp挬V $[¤—…ã¾È"‹Ìˆ–rãòåÛׯ/¸üÒ‰¸ŒiL®‰ÁÛàM¤SHõ‰ÊÄ»š;®ôBœ×Ä�cý}¸·¯d›¶±SM—›ò³5÷�ð†º=ÛtÔ3R–ÙYß"ò߈ü—"ï`àÖ;K4Öôš Eg ⹦ ¿+¥ßè�Wì¸P‡§IDÍ(Eì0#³³Rzøeàoª~¸c¿Äú©0×âDUÕ§�?*òWT_gts/o±ó¬Zh»ÅÕ3Ä U)ÅŽ5­•ZîÈa°”Žƒ*lû©Cs#´4cY\ኃÝ1 ¨p¨ÒÊ!WÇ*‡àƤ7ÓöÂÌE€iŽ‘ß|‹È·‰¤ ,-iÞZd^ÍNév#Áfstùr9:Â"‹t²DÜYd‘¹}óæW?ó™k/6×{T´ û=¥AðüІWOö#‘}ƒˆàûæb±Ù’�ÎÛºÖT¸í^ž·ÕÓ|nÜ�YܳMçØÓÆ¥‰å·qEúMë?ü5‘7‰¼VõS"ÿ4¥/OïŠp¼éus¦iq7…¿Vä/±ûv]dXŸmß'V+êß©9ˆd ¥ô‘ùzÕ/ˆ¼<]T™í²±í�¶ññ”~ø)}DU‹*‹Ôdê º×NµNU•P‡Ç×9'J˜¦TÎp®z\Žéíòà› f)ƺñ'id8a�5·Ö@Ý�j+tûŒ¥Cî�-< ¼Nä×€Ësì4çgm›cñÛØ•²ÙHJéüy™[AZäI– Üw‡[Yd‘'JTõê+¯¼øÙÏnËàÞ¾*=вDÚçJžb£ý¿}1"F£{øÛxÛ”ÜÖ©¾Lô úÐï¶[úFÑÀ@˜õRúzÄY �¦ë”7}!ûðAàoŠœqt~øà.²„Ýáešý©pÄÖŸÆje^-òŸ¤ôœˆ1­í‹š>%¥ºwÓŽ2AÈ‘biÑ“gOOÀÛSúðÝÀÛ�¼"²yl¢bIõã)ýŒêŸù1àªg;ÉZܶIäܨ³-¿ë�"¯)iJð#Q­0ÃäjØ=@sþ¦h@Õêùd$¥¡ëBÃÿy8PÅ0]ú !îaµÑ $œh—�¹ÒçGyX¿.rsnš±ú~êòb\ªó#g1ÂÌ‚Ý ²zÐ ,²È"Ÿ¨Þ¸téè¡9‚û)àÀ;�ÿ øÀ£â(̺4 ®�(sä½ÛF‰2£Äj{Î[ßdU·õ‹ÅâuÒšow{T&çÜÃ÷ÙûÊwx•wôâÞÁæSyð·T,Âí�úÕÀ üŒêEWžû\m“b4²L©8Ñ7°+À_ÞQŠÑ3,�Ì " ¬DŠ? vg�W[Ô0´qß½Ñ÷ï~ (À¯ÿDõó""ò”ê«S:_Êë‡áÛUŸµ^£n‡%Ƶ¹5xTÛt.VwƒW»9·‡£.¦�8 –ªsp·Ä.£—²s'¨5ç ÙÊ/qÎ;ƒe,·o*E�!SËSŸRâ¨; …ëH^‰Ù",oÿ_©~ølJÿ°”ÈÙéÔLKñeŸ&�h^¯õòåspÿg‘E°÷EY¤—’óÍ«W7ûå“™…‰§%+à·?<ðýÀ ü§÷¨±û(Û^á'—}ÄǪFP݆f5¿ÁµÛÂäÛ€ÛŠYgkn�ÕF…1‡n1Ö³)ØáÉg ñÛHfhôaÓ±GüpVõoϳ¤Tx ð7�ß+r{jÒh�‚�öoÌûo¿QD�ÁÕ]Y‹¬œ_n‡±Šä‘é"²²ÙÓ�¯@v¹>¬úQ0§” 1gêã Ùrª …†Üï¸ O™BUÎ.³Zµ^ζ¸ €XrwÇö5 å!Ðn*µ�¨��|Ž2»IkX§ÄWJ)a/,3ƈø¡Nž#²†ÕƒO…,`…"–øÅp|^#ò›€Ï‹ü3`806 šlú2—³¿÷“ËÍ›ë«WåÌ™Ù-׋<™²L…EYd"ªš7›[ׯϘz?åÝÀ/?œ÷w¹ß|óƒUëÄ".}ô}GxQVΚc”·�ïÍí,ÜÔ<{1v­¹2Û¯}º¹-„?k%¶«~*SüŠ}œuv(3«¶QõkP! ÊNJù ðï{X—Y {ßa ¯}ˆšÿnà',§Šjö4ᆼWv$�j2î �TÅ©í¶oÕ6°ò|"Æ¡ÅZ±ò�&n*GäÆOî–”œ“�ˆd½ˆÑkgÑ£Ç�¼Ü'*Àœ™2û¨Ñ  R“ÉÀÂÞª#†¦ãWJ›^s:IŠø¾RË,iC`5ä ²_\lZ�Io¬Ú¹ŸÌñ­öZŠÀ»Jù­ªoçYNÓçôk\èÆ-œÀwÕ͵kåÖ­‡%;ä"�,À}‘E™ˆ–rtûöí7î]ýŽ’€Ox `)«M{wýëÀSJ³K„˜„ï'4u�_Í"o6Qû6MÐÜ�FâW½'°£¶ý»ÜÀ�Ù:ç§÷L‚ñQ[ÞÞ¼áqú¦­ß|ŸíÎ4,j´Ìå üðG0~‰àÅÖù�KVò»€ÿP€ 0Ø¿†˜U�0ƒ”²ÓE¬æâot‹—RÔð¥]œÚ<Û±¦^^W„�‘‰^<Œ5M2¾ 0ÿ«õ;àV 6{‡­éœsd}¬<¬.¤å„kV³G>âhØØöÒM¹Ñ¤Î_/"Å*îpÕºkÖº·Ç‰ ÿLûP?£WßNà�ߟ>"ò“"o¢Ãã³.nchæ¦ÒÌ]¯7ׯ냣,òðHÈ*c2ÌXd‘Ež)¥\½páÅÏ~¶ä¯oCZ}ö„òzà—€ï`ýþ¯ú‡sÀøç§Øäý’>xÜž� Ÿ¼ÑøoS OàÝàà¨a‹gêÁqSC,|Gå1ÅܳMk8̨i·W[º�©½ªÑ2ñÛoOéφX¬„½�â¡_»øQ‘µê? „œ>�{#Vì#"]ä ˆ¬|7ªÅ¹-”ž"L'¾”zäPr ÍÊѧ0Þ58Ü1ºL³«*ÂA§¤âX/ÔØGöx¦TTí´!®BˆóÅ­éäû;©L='•6äª�¢8.)�3aJkrò*ãß‚÷ÑàFÏš¦]ê¦ÞÉð¥*6^±2Ö(¯„´?+àyÕðàFãŸ0¦ú2�ÙûGL×ëtp�Ξ]àÙ"X"î‹,²H#%çk¯¼ò Vf? üyà}mê(7 ?<ý@ô»âJ㟧Usú¯BγHš±ùÙ£=c…Ñ1`…1Òuè ¾;z±ÍåhôÄ\Z½è´ÄnBõ(¿©“•¼øKÿÖø¯ÃY87ÚÖˆþ0ð³nÿ& <»CûˆHù)‘¿+r>dQÜ8�Å2´ä”’j¶l‰)%ÏÝNí­I"›Ø Õ$’ü¼¤bœoCÏhWÔ„-qqø _øŠN =kq0 ]2Õ1R™E¥˜VRŠ1dÔ†txPß`ºq‰ Ы-&"’U‡f9]U“Ôc4ÝzTÜ»@3훕‡ð˜DBŽÄ�¶¾`žMé»E> ¼ZD¦s²9Z5>¡ÃxB�±9^ºTnß>ÝÉ"�¨,÷EYd"ëÛ·¿ú™Ïܺví>¿$øqà÷„-óbŠÉy2’/²ÿÓû©ßÉdŸßÕ â9¥F›à.?G­šböÕlTø®:Ò´»»¹Uõúo³Ò6%eKØ>FÓcô}¶#çDþ^JowkW¦liV§¨[$¿Uäi‘ÿ/�Ãñ¨MGLžþ¢ÈÏØ&×°å4y"E׫�³¥º " )©—1š‡ß­*q Iµ©„±_Šk‰êypÝzÇlëæjXO%%”bÚÆçÔœ »ÈH¿†šÅÃØô7Dœhr1!©’!SoáÑ”4‰©“Ð’Rbµah…ÞEŒÓËHÊ�幨bŠÙN3/RjÜÊóªoÙŸSÝL§:‡°i*Ίz]9C$�=›– 3O¼L€x€z,²È"ƒ¨êf³¹}ýú}ޏ? üð㦠΅9üiš}?ðšû¦ß‰eÛÊxjO·Qkb6æÍ±˜­ìÇ•údl –7h#â•.o«ªÑ3òc�f‹õÝŒú÷FŽ*õ×íóŸTýÔ˜:®å´4 Ò4b< àwÿø¡R š�~-œ€oþ ‘ïT…j� WZ¹ïƒ„ÈÆ¨2žìEŒ6Ã?îeîEÀ)=æiPIõ††`% ·i ¸Ù.XwP®ª2 ê™Õö•ªVS„е ^­0%Ûñ–þö¾¹mš4Ð…Àgo™ÅÓ±kýõè«ÄbQVÛ±Ô—´'ðû�(2ƪ áyÉ‘dŸ’QÌEĨ#O¥ô½"ß*òeàrJkUÀ'D~øSÀO©>E¼{F°‡¤Ùàµcºâ…a!yÕŠàS²R‡ì–§Òj!ÖÇ1`b‡�Æ ¦ð{ü((‹‚‡¾º xf/ºøw…¹RCì@M7©nLØ™¯�‰dúƒXÙ÷SÆ ûÂYZâž�àÏØ¿"¢)�Üz`äÖ“Äͤô=ÜË£ï>KFã¤$á8/ò6‘óª/¤tý/ή˜œ4^ÄôuüJD×kY­ÒÁÁr$Ó“,Ot÷æ³x,�Šœ|àÔП®æ÷Bí’óík×r—ÁýÞÉÇ€8CøFG=nþ çõì<ãïþðò}Óõ¡ä1n߆•÷¹kD$Û�©:péoA‡ž·¥”ž�Óc®ïâÑýÝ�jtxnz¤|¯)ÆDé=¸oúÕë9«Æ‡Uÿ-mÜòXDlÚŒñWJ®†£öÊAOéC¥üJJRÊçD¾,ò!Õg,ÞlL•R”p:çEêÉJÅ©p€X›õ0¼XÚƒ¶ªPÍ0V; €ŸX4Âk!ÿÛÄ¥] F´(x¦­BæxñØ9«ÿL�¹tïÄû’T1 °,殺̑Áþ ÷Ñ5|qmÇÙåscü­ˆžI UÅrf§$gñ‘5òme÷òàX ýåg`àÁ px£ê÷§ô¬êÿIä_©nÂÓÄ>õg3 ÃÐgUU]¯/^T‘ƒgž9!vï}ìûó|Píî�‡ îPIUXÄý!´ÔàÃà áÐì–“k¸­†{mЇPóõÑÑKŸÿüÕ ö ¢ÇÕÞ»~+ð³NX7˜Nà.! $£ï±€xøŸ�Ñöƒ–Y£õ@3~uŒ&v_¡ñ:¡|s{Ô¹¯g¶-JÈÅbj—m½0|óFàÿ òýÀ?´9°3âŽi�¾õ¦ËM=ñÏ7¥ô÷�gˆ;yKÖ’5�§HÒ0¢³–’†á9Õ·gÙ–éfÇô ÆBælÎè­n€3UìUF»MæK©»Qá§ Y‹)­B—õ"IžÑrÄ»ÞYû4�žn;JúïÅ8«<2 ž„jd•aHŽ’­/ðe õ€ù]™"�ü3M[§“¥Ó.ð_ã·ˆ-V„DœâœŸª•­˜qü‘™Ðoø/gw àÝy x ðnÕë"�£n–ÎÎ=~ÕÀú²^—õzõÔSiuÊ�×õ®Ø0ÆÃ¦:•f€û¶¢ÛdÇ;{Û{bw±·4nÇ>íî�`öWcÙ³ïwUɶÚöïïžjÄ—îî¦÷¬mÛWûës·�î¾K¦rr5ŽaØCsìQÛÖÐþ5ݼùå_ûµÛ7oâ.½Û‰ñ&àßÞÔ@y­6Ò¸ïM¦;ð?Wïªíû(³ƒ‚ísé½3öi4ÎÉX~v6F ÓW¿�@.Bí\bù¾+àx3ðJØ”¼­éþO~ˆ§–ö}Ô�jFDΧôŸ¨¾—Æq$]5÷ª ’ê0 ¾ÔmŽêŸ¯œ¨Î Ws±‡�”5äìÜ’ìÊY¸×Ü©äcDj–F#v×ð¿+Yñ®Ýâ$“1.6AÝ%ÛùG!h�âEËPv�kÓÞk7`FháÉGQ 1±Ao®!4ûŒwÄè~í‹øNÜnšÅ9�ò‰ù "TÖMØ[<>ª4 „Ñv%öNœ‡.Ë9£úZà})�S}AäÖÜÍ�CÓ‘ÉŸ9kÎéìY™æ†¯ž*Ø8v…Û*—N¶54ûËóÐÊ6îA÷ïàðÞ�|„7¡³ïñ*ÝGÅãݵg…Ç«áÑš%{Ê©Á©íÔÑÌ©WxºòÕ»uíÚW>ýé»%¸ËÞ¾€øAàop| !ÜÎ÷¢}Ej;CeÔ잀÷ÿƒç‹|È…†šý¥½Ï�ã�™HùÚ¦ô˜mj÷H÷Ž ÏB�øÕì‡Ø¨}ø}À{zò¯þK`½å–þb“F½¹Õkûü9Õïrìk��œ�ÔŒ ×‰Ê,(Äúÿ®œ@U�ÓÃ&k[„©`jµS¤h½,³¡È "~’‘xø¼zÀ š1¦”iô× †õNÝŽÎ !G;y#:XƒÓ~}ð$ô‰9a¼wɶ9›m9) ¥@&Aôb‘{ó7Â.…±G¶Âàc§ª4£ˆ ”º¿–y�âÊOü)“z@¬y)“É¿9!\¸�æq+Å–A^­úNà­"_®1=·.Ô?‰ñ7Ö¦_ÙlΞµ$¡�\Ùñ;sŸ5¹G²HŸŠìî‹,²È%%ç›×®½ð¯þU¹ËÄûÿn¼ø#À·ùQí5@åH]=S{$Ì lHÍž^†í%àYà Àÿû®4~h¤ñyîõ/0ëox2öï6òz¼=âìˆ?: }CÍŸ³Èžò~‘_vp™DžnÿhÚêÓt¡©¿GöQÏx=¥ô‹Àï„SÀ=îY1¬ÂXƒ£Uñ™,~RÒXÞ ¾gh©«”Ö†ÝÝ»¤&/7ÉÊöSš–†2I5±°±ÔÓ—Lù¢:8î·b�a ˆŒáöRJ¢bf§ƒ#œš¤Fî§=Ý^£WØí\p÷žŠ‡Õ ž6ƒdyP‘u�R0 –F&Nþ2ˆwy‚n�"o#ßF\�ìU9ôˆ:¦9 Âõ‡É,²+Fž‰'³Zýñ¡ð:8ŸÒ;Tß¼ ò2¹òaåªÉ÷ßLæq¼€rt$ùsXä “¸Ã'Ù"‹,ò„IÉùê… ¾øÅ}â7MxwŠú¼ø)àg€çÂ;;Özü¯’ ü[fœ@¨çÀMà3ûtò!�Y˜»í+“ÝDð»j1bÙvï€ ñÞ†!³#¼4‹›1uW¶Ý^ñ+ð7EÞ²›øz࿎æö¼n«°‡ø³ž¯ÿðï8lµBCJu§•ôUdðä†Å!¯-Ôæ¸æ5î›RI ¾½UD2 ªÃ0�J�4ˆ$`0š»EQ×�²±n€"bé#- R’R�’™+«Bä€Ösx=nH ÃJCSÏ!ÃA·4“«À»�ˆæÝbv�:Ð�öÑàh³�ÕVJqv~�*Ã0†ÃØ©ŽÓrtá¤øÅ¿«éeìÜSï D´¤TWÂÀ�ƒèšTfÔt>€P —øS©5Cèk€·W�Í¡²-Å;ýÉ~aSTËf“dµ:É�Ã"�œ8p�ð2Y䉔¼Ù¼ò¥/]~ñÅ} G´·ãµ±>ünàSÀÛ¦òãm„é#¿6ºÄ?‰à1­í7ŸöRý�Ê,´í?ôÁìSy7Ïú ñlþ©3ïá­ú»07UX¬–›ü^‘Båm¯D6@ÎIäÿ±“ÞívG(ßtüÃÀß°ÅyŒ:£FU‰ká,ðX Ù)ɰ>¹1i6hHpo#-¸-Ü–ÊÀ|Jƒj �*ƒÜ>gfCñÔ(Žü†Ï-Àìp_=]þ&O„�áÀ& 1øH—_ÜE!еe ¥«CëWÈd'ñ'?�µ6a„"UøŽU3Wq�Å;Â9™¸ÍbÊzHžT¥’g*È`YzBk_Ä“äD?ÄZ0 ì`Œaˆ#ûº�X‰<¼5¥—T_‚ŸŠåð=ÎØøÐ5³ªJÎ›ÍÆ3 vr$DÜ,À}‘Ež`Yß¾ýÕ_ÿõ[ׯG–ç£ïñ³9¯zx ðð›�_><ëØ+Bmøçø§!íʳÌ0M÷®èWÀ7à×›]tÇ’xðõÀ7ß |ÈÀ‹§Qs6‹×ãç@ŸÖ[Yl—d¸B¬³-ô>Ût/¶µ[aù¾Wø;‡Úß(ò—�3œ ">+¾øÀ��H}Í~ˆú|#ð÷€s!͵UÏi!2ý +V¸\ï7w:)¥z>)YºLq\.N¯id “ÛD'Ъ›|]~eæ 'ªÒ� à ü5“‘磨m9Ö˜ú “ƒ�üX‰¸Óeñþª›š¦‹¾ €ð¬êëE¾¤zQnÆø¼Ì®JU›;Ä×õZTÓ¹s³Uy,å‰Îã¾È"‹PTu³^ß¾qcÏÂ=,SÕðC"¿Iõ &¹_š4ŽÙ±8é쌣'Çå 4o¡bðÙ+OþoVÀÏßü}à_Þe÷Ïï>¼ x'ð6O×ê{�kÀÿüçÀõ»¬<¾ƒû$Ûv÷ž�ÓÈ{€Ÿ>®zø«"ÿÝΈ~?¸ÍgæJß&±ò¦ïÛ0tßßxÊ&’Q<+y9£ú�?Õq ¢ÚèOìÅÈý7þFà?yJUD6ªR�Ø´½•LÙn)bÔˆïNS!�„ÞfñúãbQñÖ�_\WÃÍÞXekÇÁÊ�žªl‚°Œ[2 ð­œ ØØ£—’ø¡�¥”Ñ‹öó›ÔCÎâO®¥¸IÌ“è¨]U+‹Ý9V/F8A)iÖ¥ ~°«XßKIÃPÇÝÇ N’TŠúÛ QSªî�Ǽ¹3Žá³Ñff1#˜Ëê7[&\G`ÀsÁwšZ"üj=w‡”\)wWŠ{v1™©9Ó¦³"Øl0 *rPÊ׋ü4ð+ªŸãTñS™âsÔÌ^L©ðGW¯ªÈÙ×½NúÙ¾Èã'KÄ}‘E©rëÚµ?ûÙ}N_Šp3b£³À·oqH¡Œ>Ú]!‚΋êWvüK&¯ÜPTôìÛg€ï>¼peK™³Àû€o~ ð“À¿|/ð!àmÀó�mùôîßüßîh “É,˜>¶¼øãÀ/ïÎð›EžùG@Þ¾Á4nÚC™O6óm‰6}#¦sËê1…ûßüaÀbØÌ±HtùZà^ØRss,k£!½ÇÉ*"ß ü àUìlÏŽb$U‚P˜™êfJ5<g�§é›ÔŠ ÁÕ1ðURJ²SJ–r¥ZRRÕ i-æ æªJJÉNó!ûß[d¬·8§%•"Îâ`nÚ¡ÑzÈ™÷JLçO‡Dê®Ó�¼ÎÀ <_dxñH6¼ Ö¦Á©!vCí>(Ì2©2}EMR舗¬Fäé˜Ù†²=òþ87Ægܱ™,#8dš��…ê¬clÊY=ð¬ê³"ŸW½”ð,ôþ|ò³uiÔ‘Ft¤¥È™3tŠyŒe‰¸/²È"Õ¼^—œïÈ�éîËŸž `=Ô1ehDÏ÷_ñm<>…ë1.!e$úZàÀoŽ€Ïÿ‹ŸÖôjàUÀsÀÂÁOn_Mƒý= ýðƒÀÿù®ldUÍ…Õø£Ô%;úþ ÀŸÞc¨€¾øãª_™BިجÎvÜÏnúÒ‘Xgƒûã¿g�?î¨t=ÝÕ ÎŒÊÀß~Vä‹^UãïíukôüAÕÿ@䌛hÃ`s˜ãFF§C†S‘â”�zÝ#ëÖDöX{ñ ‘¤Z<~osØ2/‹Ð‹ ªÙHêÃçgUc·¶/VU¨ƒ‡� 1g﯅‡Å}‰Jס®M”Ú¼õèx5š¥`ñxC÷ê B Ü3ÀyêÖ¢Wb “:‚Î5;àÉ]¬RÊXØ»úa i�séÆW¹qBUí R[!‰³Ä­j}Oô»ìÈR[êñu€±~Î(gÞ›ñ­•º²áÁ{çnAJ(åÕ"ßÜþk‘¯Z¡n£*ï‹©Æž–œ×—/CDž~Ù«úØË’-²È"OŠˆ”œ›C/ Bò[@ί áö`qåü*âõJjÈ)þYš×°oµXϳ>¾ø1àG€ï¾ øà-´Ð  oŒ›bÙ�…í-úû¯¯¿{G_Ʊ@ŸëcÉw%?üMà�œS„pÂÎû€WÚ“bz�ì!{ƒ¿›y;�'‡êà_Þ(°öÂÙ‡@T¯ÿ "ÿ[Õgº ë§�nì…? üy‘ç\Kä">úƒƒ0 |ÓGJVÚ·m0’ÓÓáˆÜ&s±Sî�U"R'¶SÀëNSÕHÀjx蘆è¸ÁJ£†gŽªKPеU ÕìÝO>ô*RJ©v ‚wÃþµ:q¯Áu„�£_|ð„Ñz#‹^×T˜)!g«ËÀ·úÆ\!Jvô¬$®˜%UK˜ö?”b'½>î"ˆÃ¯F‰±®ùS`]²R¤ƒù°<›Ü"æá©›’'“Üþõ££Ô8î¾×UħÇN|ÐÕ�ÿj‘ï~Fõ æðK¯àŒˆ¶¤2YõƒªŸ¼“ÎÔ°Á»Ôg¶S�Δ7Åúˆþ»TÞÇkð. a×Óùgà}"xÕ†5� µ[Ix¯Èßù€ÑÊ7À�ߘ|¿ Z‹~ËàÈÒf =Å�;Ÿð6¶[Jq$]ÓË ƒ,˜ Û©&Õ’RvÍM »e …×Í©v£÷j#b88Ü6ƒË˜PEÝàâÀT-¥ºë¥0Dͧº„J¡ƒ'€˜ëpˆØ®ñÛ‰¹Ék‡…«ÍcÁfcý…}Ëší³YÒ¬]Jòõ�âŽ�5ZR²¯*ß0}ÐS¹˜P JQŒ é­­ ßE*ÔF ÑR‰¸b ¶ô‡õ†'ÌŒbúDGBœ,d#Ã{íW´”WŸùðìÔùˆÓ5>>ñyäW%ç|ñâúÊ•»=ˆc‘GKà¾È"‹¶ž¾Ùì ·aµsÀYÇ"ü¢¯Q=ç4Á±†ÏMÐ]»’, ˜ÚuBp†ê1åâÿ&`åA¸ìNBq¤¯«Ç2©ž¿å|¿6fŒ×ãçc¯w¿øÛÀ÷wÈj\[¬X«®µR;~x:h8«ó,j·Ï=&ŽßƄ٘wïûøw =û¬ÈaY¶–BL¦š�oRý?Ÿ2v²!2³CÓq@U_“ÒÿFõ¿Vý&ó <Í ÜD5„lm©Ú| ÇÚx/c(W¤Ønv›Šk‹L³¾ë”"ù/YìÉ÷tÖYWJ)EE†±=T_<N Kç6©Ö}®¥˜ÅjZzÒi,rïé\lHÆ¡ôÙHÖçHU�/$žè¦úá9Ë%bvœm˜UTK)æ±0Ä.1øm�g)`ÜÝA³¹+€·�Êõ[ûÀض»œŸæ{$_¨i­L'›5²."tlBŠT—ÀÒÅ8¾‡‡ÿÈ0hÄúæX¤_ÇÜ8Õ¶ÓÙ®"s�ž¾ øQßÝO`ûׂî½lÅ6GGG¯¼’oÜX°ûc, p_d‘E ”²9<ÜMœ0!Œë‘åù@Lçw2ýMŽÉHŒ‰þyãñuÔë‡Gd7Ók8ON¡‰XŽþ³Cy„ëpàŸíßç€o½£¥¦F›ýL!DnnŒUïåß ü-àÝ<ôkONó€ÿi©Z^/ò �bÄÓñÏÙÖwä–‰k2Mý=ˆ—>îCSý+ƹðéÔª <§ú§Eþ ‘ß8ç4�žUýIà–ò;=jNVÌÊØíNe±@;·®Ø+SÏ@¤¡v![—íŠÝb ôfU�]“T'F‹ƒlpyJ ÜÃýÙ;fw­œÃuv<¼vŒªæRi¶jG�Ù‚Á€&ÃÄl§!Û ¡1ìëáw0fUqWª:B†­ r¦?qíWÂõŒ¹eŒö!2Ý9|| t³ÉGGÃùóËFÕÇRÂboœL‹,²È&%çõÑу4Mì'~%ÀY'c)"üi¿/9ð[p$1%<¶ÊÛ0¨L¯Ž¶(Ñ%Ô`›S7¡EbVÖ¶òp{ óSHo`æøÁð¿xð…Ýö åh. ¯öÆŒ½…ã+yGCù³ªçƒOB»7ÂÚE±`°HQý£"pŠÒă…±ÑØf:ÅJ6kúýgkñ�¨¾Ú¡êÆ»À\�êfª+‘F_Qsx§ÈwÜ>|x¿ê{€‡nâöQ¯!9¼3l |cMˆXj—LF5 ÀW£ØÑH„k�©BÏË’Ó3Œù]¡d©„ÒrŠCXƒl´¹¸%í *{k«‡™- Mu‰ÍIp¨š¸@Aì %£�œ1†�¥`G͇Ã�á�*Qßq[»é„{’XR)–ž8¸R!R‚tàÉסš £Ãª [ë°Ì÷ÂynJ&Ч0ŸkolÞ¦T“äz½¦$9�ûS]ÚA¿uCªÄÇÁ¶�ò‘)¥º¾|1B¬Îk�ìm-å�Ào9+òߩޘ>ƒ5E}÷@5&Ý~á…sozÓpîÜ‚Ý3Y¨2‹,²”œ�nÝÚ³p\½¥¤éPн4¸“OÂE™’Ô5Ü¢DcþŸ:bšñÒô«0ß:Ñ“×3x�è0Ä[BØ^¦Bà;ö´×ÜòŶ�m²ûíûÝÀ/«žwÝR0Å,�ùylÿå‡�ï Ñ;zÍ•ˆÎãW7 G?$ö½‡òß^Ê�œºs#n ¾ÇàóÁ d T‡SB8/b»o? ²r@¹ Fœy!güÆ3Ù©CY"ÕÁøÍ¦‘TþŒÕ–r•ˆXt¹:„ªêæD �¥œY€"²q£žœÄÃÏF…ÃÙ†zÝuK†!o£‰ÛBAvÔÈ=`8Yuðƒ]ë†W'~ßk$lCŸöUeŒ„qäX­È"åÅÃÿ ·«Å§¦a€û9Æ{7ì Ú÷9D§«‚c ½;ó§RìJ±ù“š þXMuðe¯#o´œ•îfÀYõpB¿rˆù8ˆžÍTŠñû�³2®\‰o$ –ZÔ:¢\£(EEΊ¼ øðýÀk<ºß8Õ&$ÉðYi3¥àððöK/åÛ·ÎÌc& p_d‘E ¯×‡7oÞ±AO/ x:t1Í÷žÂ?‹¢ÅbÌ$Cœ-¡¼ò`H[Q- ;MMWGäýƒFX `3ç*Íóó÷Lû{W2 v›?wX;Ê�ÿžkÂßô¦S±/·ê�3"²ê/gBL P“&ßÇùšU…XUëM¿TõµªŽŒó@ÇW÷.ŠÈ*Dß³»Xê9D–н5ñõ+l!üŠóT²_™‘yµQK”ÎÙb¤ç™l< Ë~­x¶¨!H?Tuáᣙ´ÿèó8ƒÜvFÒgPç¸×Ý "ê[oí´¦\ ‰Ý¶±Òˆ(õ°'ÊǰJüØT%�Ýæ‰Ž9^’;u–-19„{¦“°Vh9]mKó¢€ä<9+g+,¥¨mpö!È:ÙúiÓ—sX7 ‰ÈúháðºcX$V¢ÎÒp �¸að`v½×cöut|¿,B5Å}¥Â*„@~q¦�MP{BŸ‹ðð99yðã"?!Žp­ž™ÄÈÖ¿ˆGçuYeŠ�™ì…¡îƒ5_9€cÖ‹Vn—3|�†Ï ÁMâ‰KÈÛAî"ijŸ¾s—]w ÍØcåïŽÍÿ,ðÇ|‘Aƒ‹—/ìœÜn§4€8ˆ¼^õ§·Äõc´¯Ö9#šë±GüÐôÚ$xFU�#ºŸpÔ=j°Yd@å}%¹ÛV<<®(ŸK7ê¬SÛ?*<唞•T ÿ'œ]ÉÙ>§œ+e(Ž µ§Îá,q]Èêq¢|=‰IÃPh@ÒcJ±�æð¨ÙÜŽ”2U}±¨šÈ¾rI]û¶Nï09«?àà ày‘ß"ò)�ëžøö€&Ðnù"ÙåRÊæêÕ£W^);ÞF99|LÁäq_d‘Ej.È’ólpwwÄ×D€À"CÄè…àÃêñ·¯ 1ñ%A…%Õ+‰p9no5Àº P[Âu Õ"„l‹sÖ›†·Ö‚ÕµBøÑ´?ß |ã­C Kö¡è&¸Þ/…GyøóÀ�‡Î6Aw snjÆNNï^ƒÈYàtþ+DÝZ«¸¡Ÿ*1ýÅlÉo~5wÞ b8•msI$â†â;ÿUÕ\Jöˆ;ÄôêM®�xgëާ@*+½ïiQ]…‘� T;¼+6^y^ùä½#‰B´�´qó%�ÜZÙözš)TUuåggÚ ƒõe`¼Ù<«€gµ2 ªµæÔS>‡I–€RJñ]¶ÖYƒÂHæ“¢Žhë¡QÜ< Nt17Ã×4˜}¿:ÔÖyP rV{‹äd#žG‹j«Èí¼$Ø¿–‚�¬zãÏpt[¦š‘ûÁ¦–‘|¬­ îq™=Õ]Ü:>SĬîI —,«£ˉ ÿ¬>Ð4,÷¿Zý xNõ‡�ß–ÒÓჿ†Ñ‹§�´ÏT nÛÍÕ«ëË—Ëz½Ï�ù"¹ ïýð‡ëGõ“îH©´2üowÉ}¤™I;*ßVa_ÃñÚÝñí>r?Ûݳ­=uØQá©ØvÛíûW~ºî0r¼å^«wŒÊwTx‚ \r¾ôâ‹—^xaö®¹¶Iž~#ðœÿ‰é ûA‰­“ƒrþ¾ö¦kñTKBm1{cS™^”P1®8��JÆ’Ch«Ì|—Vþ Àÿu‡iî$Ѱ º…Cäæ–·øú°åw RNaz4šI iËÅk-/ò^‘"ò ⸼W&*I¸Ðt§éWÓGU}#ð‹¼Úú†Õ wÒå³åŸ-a|aÞ_«€òí®|JPDl4‰ÞÆ£ŽP½ÙN;²ø=¤z{0É‹>õ»ø:§Cng6™ÂŒv‘c2j"\…€3X$ècµ�1æèYêÀ0‚0F�H6r¢F÷%†ÛÝ£°¦Ù�ä�å¨Q[q{�¯;¯ÝvÖç‚«ˆñækÍîíW‰Ï5|3ÀàKãóbClYy…½Ä®¸¿—„Ftî‰w&Ýñóª˜FSBÎÆxˆjéRtˆïOR¹4p× aŽÑ!™�t)QùN´öSÀ[�ü+`=}›g*>•“2ªåèH†auæÌø¦8Ý—þŽJŽ r¶¡Á=ߤûƒÕcÈ©XiÏ §_Õ<îñ'õ¤m?lrr8¾È"�»lŽŽ^þüç¯_¼¸£Ì�ûk��OlA0ßX %Ó wƒÝ›& #â ¯o‚¾��Çò‘òžƒ¶É¯Ä…Ȫÿ™€7×€_Ûa�©ì¶dĸÍEû÷cÀ_yƒ÷ÔÔ«[*_;Òt ¸7Ôbç1 "PýwFmãÒ<õ‰�šõñúY�瀿-òT@3ºjROd…÷%«“i™«¨éÌW)©ï|�©fKÖ>¨nˆÉDà»T7î6$ƒ\öÙ!]²†n½“ÂÂÑ ¨åÁ¶xü»ÎC©¹S’G‰�y¹r è`D¼žRRÛk•[JÎöaJC“æ`ø ªŽÛ"{˜Çå �ÃAíÌ,E f[$˜5WÊ�[I�J$¾Vó¦ Á«r¸á£cFˆ;ze:+ê�¬´ g�ûœÖuZ—aúÂg—½!ñ£—HdÆ{µ^)¥ºR‰@¤ 5$õ޸׃°ÊQ矑§EÞ¬D>­ºÆäÖøè5O%ÿÍY±Z¥3gC¤÷$É@•yLIN‹,rвÙln^»Ö_'Á½ß&¯žšæqòRãaB.ûjJ6ï^lØóÖ^-BmÙ­øŸ¬G©^Ï:$-�ßU7£WC€5°~xûnëÄæPììgнz“êψüy‘gXÆ·TfGí)ô�_-ƉJÜWµ-ôþà§·+ßàáõYmc`�ÅÓ£¿;eW^üÕw;ZµïrèÚ®„Ê.Ž„Lá5 ªÖµ�qÇ-MJ˜r–|}ð†,yb¢žªã^ Õì{d¹™R��í E�ïÚᣆÚ�Ü2„�­„ owËÕ(ýÐÉচ÷¥ñOškòSî|ux-LDH¦ŠÈ`륈SqŠGÍKØ¢]¡y)Æá®¨=¥ÁØŒÚRÃÀ˜OŽ,‹¥qäû”°m’ð ‰0!­„í¹5ß¹ÔõŠqvùTòéí®¤Ê)X'ž «*,E£¡ùP†çd1«:¶݊’=ÚmØ=•¢ÃÃç`¸}VË¿nM«;Bæ´—s‡£Y‘½»p¦ažZ ý­Ëo~ø>Õs~{œQæ“4×ÇÌšo¿üòæÆ�%ÏÌ£+#pç¼yPª,²È"FTóz]rž]’j"¦³"N•YM�;‚GTkø*…4„êY &hO¡ž˜ E@óÏ<ݯÉÛÅ›“i…pO÷€¸Lëab¾MPU€w¿s›}îäöD#GlŸŸù7UÿC‘w‰°Û8z+ž«>2û%˜1²zŠëyÿqù"�öýÕ×:ä˜íK³(ßt§ï¸:¦yƒêßS}�ˆ¥µ©Þ‚û!âQO’¶I^Rn”t)~X’AÒÄU°ˆø�d¤ K—nÐÜH#›À«©iFEdÕ÷ŽØëb‰ÿø¿ dó=TÕæ†;ÖAå9 ,Æ,4Ý ®ÌSÉÉÒÈfÍTÀsj WXüØŽd"’fÐZÂT×”J)œ" xg«Ó挭´ˆàéHœ¢É€¾º{(žy½–ôj^yK’SJ�â—R÷'PUÃÍ•>ݽ_C;õI¥X…(Ìà ãG/!¤l¯ö÷¯H.Q÷aÌéŸP;à)qj‰XrÏ ÙKŸÞŽ*£aLÉçáÏËĽqÇLiU‘·‰ü‘ߤz‰3è5G®*�R9<¼}áB><\ðÞ#*KÄ}‘EžtQ o6uùØ®Ìqv˼Únž^W™xÔ@|Ò$fùˆõ‡pW|ÛmŸ#:(€@Ý!¢-ŽYùg”F�/´?7áú§€ï�3Nÿ‚ÜfÕøöµë�ªþ ð}m­t *aI�œRü©¤z4—}äXäàV™çc!Ø7ŠüÙ°†Ð»˜b÷˜=f¶wVàMªx»Ù�T¢6ìÌ#ÒTGg�âÑÙ&‰±VVªâ©]6žÆ;κ�ëoDQÍŽPÅ!2cùÙ#©SßШL�íS=F¯Öp¡uÇlUF@)ñ”%³[‰At—W'R2/eðdá4{r+)ÈxpõÌIËŽòmØì±ü÷¥”$"9‹û9âëŠñœ&ó©è™Ù|(~²•F˜nݧCît#QlŒÂD±|ö•–FÚ ê� ¦B¯NˆeUq¼û~6ÏÄGGÉ3Q5‡P= wÁŽÏ…I2àì2OÒæ¶Û> `ÕZ‚öú•ˆø ¬õäWý-ì¸jßÕ Ä^ød~ð"¿É›:ÉõwcŒ3£õ×J›áŒ“õúèÂ…|ûö‚ÝE©›SM8ìNŸEYäÈõK—.|éKÛˆ�ûü&œ>¼>ÀD"§¸Q2F¿b�@|Dœ%$NÁŽGH-¡~V.það )õý]‘�O­Äù3±°:¢¥Vâ´™oÞ ü àöMæÒ/yxø!à�¿8ç›-Zlà }6¡ãÔŸ]^¹£B¦©=)†áÄ·K¾QäYàÿ^ÿák«ÿ¶ëãŸÀoþšÈë Žx/X8ù¸ R•�þ…v®Fp¼%»¥+ñý…ÓД•ɶ #¥j³¤eú3¨„JY¶¶:ЦOªuË_UWÕa¨,§°Ã·oz’ Çõ©î�!*O*R†¡. „ÉY7ž:™¤°×)‰ääJL�âóap®KrlÁ~L©ùúèH ÈFŸÉRÄ÷¶Ž]ˆœT_¥®Sy›iÊ­Ÿ¸î:¦AW Ð’®-—’wa¡‰ãŽ©ë3]xÐÈ·1Ës¶Œ½SUÔ=©$ÏŒ5K¥¾ð!z Z [?Ol�c4ì@õ³½w×Õ<g)¯y‹ÈK"_5=iºÆ pwQí~‘sIçÎ1‹Ñ"�Š,À}‘Ežt‘k¯¼rñË_fF¿(û„dxøfÏÉhèàà{Ä᫈‡î3Á4BFöˆìGP2 9G¼B†zï0�™Ó¼µâšõeO£Q‚Ëwß\>{GÃY=1ü|ø=À>¼Æ¶g Š¿Ô3pàïÚ:8<9¨×!šN§1è™U“ÈTß+òÏDntÚö‘u^QOÜÁïþðÀ™�ÅB‚ƒÇ5@“Æ àø‚Æw¨šŒ~à9[ [kô GSªTWÞÓ¢'Uî‘Eœ0"az°Ã¼’\rj¶0X´•…úùGsØgW�8¯ØŸNáPÏÇ’Ü% G1XêBvÏŸ¨ -€sÒù˜‚•!Ï,”ܘ•1o?Vžd’ˆ©°S�Ä54pDÆ„àv¤ë0À·ÞÚ�eô4Ì1«Qp·�rî�ߊ$²eŒ<ã¨}<17.\ÐCvžºÐÎÆ›§;ä½¶ÏÊ ÷ªÉº*«tyÔ¦‡’oú»•ª3€ÊÕ?õÖ@÷H ²¹ ¼Fõyàó"¯„ß(™ætO(·‹õX´õZV«töì‚ú-Y€û"‹<颪—^xáò‹/öÀ½£ÎJò\�¯ 1rЀÛì%%ÈŽåy½Ìmk#ŒÂÅÚGhtwÅx³t H¸SþwÓYLÆZÖv|ø&àu€W,(¾%*&"o¾ø à�OïàëÙà)ù»a‹ddÎÐD]¦>Œ²7Txv<Ú0~P`%òàSÀmàáõ¹sR‰¬ØA›²—bˆœ`Qéb9ݨ>È/'H¤”2„9/¥D��ªânI ]™lo7© ½e݉ؽø ¯¸9F/È™±EKiÝT5k¨O¡Š³=Ìo^¥D7Ã:1&ÏU0Hô‡“þU!røú”~Bä_Êeë Ê‘ã.õt„‰w]Öë[.œOi8~áÌ<*²gú²EYä±-¥l6:Ç“Ù_ÎÀ�Ñð:Ä­Ñk¢gq%%c`>JDöŒ§"@¥ÒQhØ•$í;â~‚Ú!$G‡Å&‘|2Lsæ°kƒ³Þ Lø:¿}¹‹ÂÅ7ÎŽØñßÀ×6ßñ^Õr\n‚Ü’ÌócŸ�HÍEùèG™¶‡ªâ9Ýkµª"²Qý‘¿ ü‘ÿø²iÞíf~•È7ß(òAÕ‰:ÚYçý< :¦„ò”ç)TåE“HâÔwÏÓ#05pZÆ.Mâ‡KÀâ…/{ÿ— |Àt÷÷FýKˆ—Saö4¡Â¢bÍ5ÌoçG¢ò4ìeo!7¾á‰×Ý6ÙjFð‚¨RqdChkȆ[x©ÛJäÈNeR…' üðCª/ˆü:ðY‘_W}Aä�ª¿ø ð^‡DÉC¶jÐÐФ\Ëð QÍÂnˆÎ I ÀÊñë¾8^¤—’í[?ÀRÈZAýƒtpõ{-f\º›‡àþ “2J=îÅĘœGœ¼Tcö:žú©ìç6ÍH{ˆŽ¢YIDJ åf U ƒ¥ÊÉ)‰AÌ�“[á)§««­) ¥dNs‡| éVTò¥ŒLçyÃ�%ÿ‡ŽŠ» â�y2ø9X0æ: –x7áݬXÜg ZrwÕËÀÏ Bð¨yLllAJÎrûöÑ¥Kg^ûÚaá»? ²÷EyÒ¥”rtëV�«®w¬A€3ªD�:eT3ÐØì¯B(�@PY…?áè™Ñ¾HÑfU2¥©D¸Œ)ï%Zb®˜ž&N­Ây®l‘ ¸áŽ[[ ~Ç8} ìê•Q>Ü£ &¨ôãöª®ToöÅyÏöyŒ{‘Y¿=²¥_0Lô^ý”Ròµk‡/.ÉÝ~Y€û"‹<Ñ¢ªëÃãÛû§Ÿ—g;8Þ€lF— ¶ø¡ k÷ÛD@œƒ€­”)'Î^Cq\Ëcpq÷ÒýÐitRk¢¶±Ñ>�’ÃBÀH›a ™ˆ®ƒ�âYœR,O]Eò�ÁkS/…PXH£�Tã‹ášlh BvƒDQªEu]ŠG(]‡ó>Å{]E™/·�3a<® 2t\ON:Bâ–Œ–zš,ìÊ凹D<†’ê ƒéª%zPÓácª"Ù¡'T‹µbÇ‚Š¬ü1ü Ç‚ÅkçH¨KŒhN†·•ý¼Ò¢5'Œø”€KT%×+a«îˆžÍÙPî¹>††ÒTÁ'1%ð !_¸¨â±ùâ§9�•/nî‡jæMTÂIñh®Meb[8r€éedTdðà½óx¤ÄSÊÎÝ�n¸îd<_§‚ïݬOPJÖm›oÕO0"�¯€Á¸þî°1  U gñÖ|ˆ”×çh²…U�7nòš‰Èí&þÙl©s;„Þm½¢: ¾„ãùÕ�9|,¥ŸÞLç<¸(ªšR†Aœõ^;îi[ »o®]»}áB¹}û„[ž¹§2I ÷ÌŽ]]ïA»ªGEvø¦ÇèþéÖv*rOUz'Ì‘vVÕ[W¯¾ôùÏÏž¾´çˆ¬€�†|˜›É2O3¾(S˜;„‹5ÀñYê`:¦QäNMˆ'G®Ò%†g )d¼aÞË‹>6Áx FÀ\F�Þk‘Q QL�½’“\+Ÿ|hâ²8¦†Íªçœ<#ÚJpŸ VXÃJœ°Y«ŠÍ±Þþ]F`<(Ç/–MO=|kØb:Nƒx[¶WR=ÿ ѧ�xrú»¡ ޲i=®ˆeH‚×á*xT<ûŠk²ò$�$¯s8Š·ë©^�HJipëUÓÞ| ¢»)ƒæ¨Ö”j†O[ް/°º©-•,®æ«8žNG5e6~öS…³""²ñ©bÄÂAøÎTöT}2DN|á|£Â9\ðu Á˜nœBì¨]È!13{ [4ìRµóž|Xí³a^øÔ=©¥X¶Í:.NC¯<+®s·.¡³MÑš až(‰Q¾ìP'°;µ=cùQVꓜì,ñ±ãS#\�à·ÎY‡ã.n%¯]êN‰ª¤¥²q�7>ûö\¿6%Qý4pè?ûa^�WRH£‰©>X¯7‡‡iµ’Õê>ïUÝ�â·÷ {<œe¸ïsÛ¶b÷³W;Ú:ÞBÏŽY² Q¶Õ°Có¦†ÓUu‹M~öSéT4ÜQÃŽÚöÔêxV:Æ]»Qò޶ö‘“/b6�–œo\¹rá _h€ûþ p|xƒcVF�‰¿‰Vy%èâ •à5…[4@Ïë5P�¢p*†)·;‚ujoN§!ùȤ�]CH^ý3Ý•!ÀýY‡¿bí«ZaI&k÷·½BÙC¨Ž_ `,Ö`‡š4Ã�Ùt“Ɖ¦oÚìÉ @¸Ô7&’aOƒ÷:Ñ‹¯!¤©•Ø}%ʧ’Nw1hÅ”ÔêÉÔá`ze$f© ™ S †€Ê½a%Žc”a�l`KsÅ´ïõ’ÛAX¥dÏÐBÂÆx—w­ZÞRª{ ±©ÿ«þÊpW÷¼&ŒyÐÅa¨¸wT|nØ�zúE!{^LOLVÕUJEuE“ú`Ù8r.�î±û pÌJ� Ùss*O¡Ü_ò><ê¶Öoœ�sº£4 #ܶ擒øù£‰ô!÷èfÑ8ÛÝ’*�ç=yæDÓ_1Œ¸<É9è<`lü=!M5¬ž¼-¡Ï,€p]ø¼‡õ1ëøøKåv=¿‹}9P}^ä&ð¹� Õ‹äL³¯Æ OÜ’s¾}[†«mEÙ ��yúwâ6°¿:]v|»ÿÜϘfSùé»S;ìþXÊ1u‘Eõ�OÇ–œñ·KÓ1ŠLDˆ@&‰˜„–�ÓÜuZ£ø ÛÀ—GJ ·u–à$D ¿.<ë´¦7Ó¶Ô•Œ�=9×Y=ê_¦­kP£Ñ^­�¥m+þ!N&@V]ÛÛb’ç¬40AóŠ+É ;Pž4õy"çDu¤x˜$rÆó±$¯m4¬êÆã¸ä‡pKŸi˜U#õ¨FL­+ª¦p%.›eBPtM}¤&”TÏÿX-&Bð�œ,¡"êG‹Ieax®F›*N– [H1ã«cµqôIäDdÃð³£ÝÚc×D,ß¹z¸¶‰Ó±æÑ´â“óvS[�»�Ë`"F4¶ JÉ¥PÉ:1<° ÷ˆíDd%ߌ;x\Ü¢à6CøCÁƒ¢,έ<+TÕhÔUU¾�#d&-Ó? ˆ%Ë`ƒÊÃÑRPЏ•Ô?Eàü+±ý¦ÜâI��Z›ª�†î´¢J¸§ÜÆàp0—bQŒBôì#nSOk#aŽ�?wn1 ¼û‚p¹Nj¼Ãl,t½‹W²;¡?@Cn‰Í‰ÃP ÿaª ÓݤPUÔ$f×ðJnꔀ’£Úw ¾`H®:$)Œ –úâ÷7: $1ðϦ‡†Æ#5TL˜8†ë€XÊšäîäø)ž©ih~ªacŠàÀ#…D„yÂP ‘b$~™@ñ뢺–Ê-¦g˜uAÛ&KâÔÁƒÊ¤ñ+ó4†”&ñOµ&É�¹žR*~“�ìcí"Õðz­ÛIákªXqýD„Ü›ÁcÌÄqu¡@5ù*Ïêù t’µkŠùFFŽ—xµ#Õ>,}x伿ˆÉ3öf‰‘zrÓˆÝbß{„žps`8Ù[(¯'Kÿâ¸ß¼x¨X,S*=Œüí¶å´±™R,¤›‘‹uƒ¯x°Sâx·ÚЙßðe%²vê­�}.€€O"±­áy¬_ÜCH¾ÍÃ4ž, t¿'\(w“褩ûöÂéðtJ¯¾"ò²—D¬0 ½q ‡ªùÖ-äàÀÆe‘‡Dî+�i‘EyØDDfÙíû‹E|ùB5ad�±U _ØZ¼t_ÅzXC„›­Ÿ€pEý†è™žÀºßoJøÎúS¨|>ë´„°=�~™îLÕPs ¡Î±Dä"²rÚ‰¡= Í$Ûš€…�m)Ⱦ,ÐØÓ´3öê. ­ä{åªÃY‹.ˆ‹çdÜx´5Ó牛YEJ)ƨ|9%Ú$9^? õt›š‰Ò¹…Ww-’£–äÛ:mi¿&‹TUK?_Š:9AC›ì!p"Ñâx¨FÚ�ç�#7`gÓ^„ûM`ã^SëØ~Sä,VWkÔ¸@RÍ01å‹zŒÜº00L[Š©šEŠH†ä.–©� fn*UßÕ*"ߘ;îj5'$ÀÁ:'-‡º�ˆÖÄ&õ› ¥À'€7j5†{8ˆk)<½Õ¹FÆ#·t4v} | gð2–Ë\K‰‘éa†…GÁ‹ŸÖdÓ8sñÁƒúÀØ­ê„c¦KU ê«jòêꀄÎt‡ãëÃMÂÍ!î’)¹a¾$â¡ûz¹øu³|á¢pÄż¦”àt«äL)ïWýÀ»éçwðÝdµZ°M«}™qB®¯\Y¿òJ^¶«>L²÷Ey¢¥”’7›¸z· £ 8Ú&v—ðoä]H·¡³¡ÐèSJˆpó²MT£WŒˆåµQFÖã½=þÎSåÅÓ¼ä¸ÍTÂ-¦ó&�gX q!tê`ÀÃäÅù9uÑÀ_Û ï §œ¡ª"<“và�%âèÑÑ•°VͪLi9†}¾ né“”6ªÙ·ŸZ‹É‘#¦Ù½ †À XÃO´¸®‚Í+Õ>ÆU+ª³qtŽ2œÊRm'•a 'ZÁÚª2(V£ÑZÑ\¹56Lçâ¸yãçh¨¤n�u¾D�Æ@)j¢Cœ™±OCÞª`‚nð0HWJ²ì(€ev×04Žërö”‚Å‘™;À­8ªãë!up-íºãìÁ7wr6ü•@îêŸv=ynÊìFÿ³¡àw¿Hˆ>Âçš�áæ¦äS¬õÀÝqV Ű¾eÁWÏ&BÎö¿â J•p’³DúSJB˸ÙG·«aæõR¢µÇéÇgÐmžÈÑt|@b$^|tFO�¾“yJ"¯†«þ$ðæf} ¸Xô�J±$FÉU Õ͵k·_|qs㆞,ijÈiÉÜYä‰-¥œŒÅ(Ü#d�Ÿ{ZyŒ@os=RPPÿ㕸Ç1¾÷øÙ]g! ÇÇ7b ­ üD–@¦g×+°§±×Å åê@œ-Ò,{Z¬4´k_ÞU<|ˆÛo1ž.ñ�k(ÁQÉ®CôšR0¦†2ØyFsSÖI).þhvçE˜2ŒqÂM‡€¶-Ð+žg0;\¶{'‚÷-rÈ¢O•P`ÚP{VMª›Ù_bqìnÉ(kuCfN:WÕ#‘$b+vÅ�Žmë\kÀØ)õÐ(3�×V��ìÇ÷Iµ¨¬Ðw'_ʽM×¶8ÌJúUÀ¼#�=¥š=á£|«�ÛœÕí&¡<™ñÊøºµÅ¬»”œÂ�¹ùrtèØ˜ãÕ�%7ð­¾ÇԌτ˜ªZй‹Åñº}eÓ#“ýïÜžª§¹g–³Ò]-¥�,î„øÜP÷?…ýrÆJY[¨5*¥†ÎNÌ<�Ãeê¯Þ#qoÄ,Y"„˜ÇG+D¨Ê“³JáíÖ£:”t*ÌÓHI˜r@Ϊš,ˆ>ÚWÕ�>MõAHÉè%©sä$ôQœÓRíC'Ù-fQpËÑY õ-ö_qÌ=áÀŒn-Õçg”ª9 ® ‰¯q£³ÓoF¸-¢Ã À3"ß)òIÕs|*I‘Rµ3˜†�Óm|2ÆÕÊz}xáÂí òÉÞ‹œ\–ˆû"‹<Ñ¢9Þ¼yÂJ,-4%k<ârþgB`Íß .³ötp8¶c͈æ¤Þ†©\m <–¨CrüÄ»túsÙ_‰mE_e˜ö^¿I ÙiFËø[<‡³�hnâä^ÃÁWí hâZÄ&8 ´mv| r²=…è˜QäÈÁt¼ËêßIó¸V¿Ñh$ê›ç6"P�„œúb:gOn®©ré`ùpJ°$ûËC XÛùG=gE8ƒÉFA!ÎÒÀŸ(d›DŸÍC¼æÃTȳ�'JÀmÕ…HIÍ21MÖ¾ý4¥”•�rn]ukÓ›%ÉLx¢š��T³ë@M$lŽ,ZÏN²þèjR[ógŒ®mé/S’)­‚F³Ý´êØtäUˆØ9Mˆ°•d ’‚èÜŠp2›Ù+”·å ÕâVÚ8 Û\õÍÍ£üÛê7–b”ÍÒQ³j@öì€J‹·¥Ì�)†èýZ~}bd_·��cå¾³•‘›"qú©ïC°ÚÄh-ÁæÊµø®€àx‹ÈD~ ¥ï9ª­f/e ´™R SFÆG Þ™s¾zõèÂ…õ� v€²÷Ey¢%o6·®];a%Ogm¯äˆÇ}Ÿ)daGˆeÆ0ˆç¼^Ü8Æ%m�ȸ‰¾G‰qSb÷�7]¼f “µ+0AÌAUBFÒZŠw“(YBÍv#C¹Pxì0øÆÐx@U\µ(‰jš�¾‹srÔ¯¬=ccŠÑ?a@Qkv¼Ú´Ã‘h8Ú`Dò€±…0‘R%ÂάcJ+’Ø»ÎÌè)©S ‚$”�êÆ5,Á20ýMCóèÆ,‡"4&|½¢x»5únx 4 ÛžW†ä+Š CCŸD„ÑÛ)ŽMÕÉ!Æ-YY8<0‹Ä{Ä™`õWʾsfÖ¾9!šK‰š1=Ob�—Æ1ü Û°ë›V+ż°n}®Û‚SJžðq¸qƒÄgtŸ^Pr:ÂzØTÔ$E7*xF|› ÙûU×^€w”òÛU¿%¥ƒ€ÈýÙâ*ˆXè]œEÓ|[ï*¥Ü¸qtáÂÑ•+e³Yàû‘¸/²È“+ªº>::¼uë„õ<¯jáûö_¬\› !ˆN”¹¼˜ÆÑ%üZEÉÿtÚÂ;ž5ÁSÇ͈=)PJàÞ!¯NcüâWV!w;;Þ�aRÐÁìpbØ9,Y4úéú*äÏp[ÞJÇ”| ³ÅêQššÉ@èÆ„$L6Gp g‡W&´EÌÿÙXl[Ä,ÕóÐ/<+‹dVc«†áäžE¼’ìˆM¼¿O¾"’”’#ïä®z3ªêÈ›.˜ƒRuP­Ù*{Û,¹vÙÅ °1,6¨_KÉ?&ò6V�øùD{ˆTm:?A}ï/ûž!Jxjp“)½™ò…k8ª‚ñPX!/(¥šNÇ4WUÕAD<™ �[CHlÍ8ë>ú¶‚1î^u›k8ú4BRqnÌ$š‚§‡SÒ1["į‚qÍ�ÏíÛa•”`<Ä·óRÆÚìA°E€à7‰þàÎÜ)gŽor67 ¶ÖçÆŒx©§Û60„[R¨™XN£O[ t›DùÉîð†¬™�ÆðYòðçÆÓ‚`Ð�óø4ío „«LÁI¶ Cƒ«pŽÚÙŠ…lWÞn1ÊŠê£0ø ó+Ú@± ô–8îá£ÄmeÇÉcç‘(¥;7<Hv—Æ0Îà!IÞž¦Û“gE¤zê´¡'à '+Õ ¡v)¢:ˆ¨cÁ4E{6¥¬EŒ>ž¦”¤”•¥ËDµG¤^q&FvX):r¸“ï N›�)lë„\ƒ/Å$UKž¨¾!X�•ûKÅãvãþõô  'á¸ÍÁŸ£xº“’*ãœ8V¦‡£^lLþh#¼¦ú¹‹‹[qÖ ü™bùºÉ¡”šÕ ôƒO6q`˜�Þ¦®icÉìmb«»µãöhŸõ¡ +eidlë*ÓÏ›n‘Ùâ®]q¨M2ØX~J �3�\öÑÿ§_aåÝw­wxVÊRÊyàkD~ç0|8KWŠ©\¥Äëü¶‰»H¥]¼xxáÂææÍ»ßg™÷©G¸È"‹<Þ¢@™æ‚¬×÷þ)0œzÞCÔaü-ç R Áî9\Ñ€ní]ñ7™pœ¼FˆWEˆO9N‚Éè%| ¦ù$Á˜µZ ʧÐ/„é®ä®i+<øÒ?YøÔ�xÎ�ö5\Ÿ&êV×h�M°F娄pxŽP`m@�[àá@qDnIW$äûO 4:,V K@½lwpÄi¸|P-Ìò©šx>«Ñ„ÌŒFpG=ÒU s=T™|ùÆ, ŒšˆQÔŸë*0qn}'ÌÛjÃ:„HydTÍÕ1Ú ;Fjí!áâñ{óF²S}Œª«`›ƒ3f-3iLp, ¦s(³‡ùŲДRRZù4N~Â+ŸPs·lG¬Ä«9oÂ’ËÐ_ö(/¦64›~‰Øžæ_|e>dª•ìQRè”Êx@•ë‹!W'�eKd¸OãþçÕ(gš%…t�Í�¸6=̹2ž=_æ@2Þ_-†º{µ\æÊ’u‹>�Ïʘ�ÇŽ,õüñ\r"züsJðã¸ñ@ü[uÎ’ÍœsÀרþðmÀ9�…Š1õažL3Ž#gFU€Íõë‡.ä[·ì~?¥ÎŸm¯œEYä1ñWïþH½—œ kŒn¢¿ŠÿÃ¥1*Ù€{D¼8­œ÷6åc±æv6M„°&虵=º쬄{nß0Èð¯0 äë4¨÷†Îç©lÇÁ)`ñ¸ ÏrWîd5.ÍÚÍ>¸Îâ#ÅžVü-N×H=ÂGk¯}®ñ#®e†©u2®<ÝZggú°¿œÙãˆpžq¤ Àáx6®3l*YF"+ŸÆ<è4ù·Ö·Êý RJàW0’€?èæGêVÿÆ�µ n�Q"Id@,Ê;ø�\FȪC)O·muó,@+Bø^3–¸zŽ#øVàd;A-?7Ê$ÏùGÚ½p�AµžSË#r‰ÂÝ;wÓú ×(øÔÕòŧ“¼&ètZÜÇ3}lÙd çæ u4>ÃíÎÿ©(–)Æ�öcƒØlµ$1L}Þr#ǵ=êÌ­ Û3XCt5Íý`÷S)\4Ó=ÙÁ«õR«‰{cŒy:Nî-` Ò,»ŽU$¼Ñ¼&üqþOò£m­ûïù"ß3�»Ot ¾Û�ö!ê#ôPÅáá­^8ºv­,™"ï—´T™¾/²È$q‡Ó±D�Ï{M8;{‰P›áí4ýÍ!¸Gè5LÛô 4à?bq�kîZä€ò¤N€›¦­lüßèch ÖXáUP¾éTôa6Þ;Öoa¸´Y¯0ô�]ÁÈQfJ¸h[Y™�„ O<Œjúóœ©1ç ˆ1Cµx6 –iÂ� �KIS߯ÒlÍ+á‘w'ª ná«êà°>…9CÔ^_7\èñEZucûSÃF%€!x~½„‘[¯v¶¼}«š�YAχž.ý`c>R)û �‚?c\#gqǨ»¨9éÅõ¯iiX»j@?xØ"–'y=ð€½¸‡c®CrÐ]§º�¦•´£ø{8BÕ3"ï~LõûSz•i€»/{pê�ÝoŠñƒªb½>|é¥Ã‹óááIb@‹ì)-p?É+|‘Ey´ÄÞ 'ª€3ÓàqÄ©�Uq¤%S6|”Ác%)ü‹ífûp�3SAÍBòL |‰<]ùöJfÙKFG±ÌƒŽ‹ï&";(p� �eÇÄ\ˆ‡àLÕmÅèl‰,@ÃQYk@ELg޾…™›ÔFFõ�l1¤«éœFjÔ�­Æ/¬³¯˜ýWÞ…âLôx9.î-˜É@§EŽ}-¥®ˆÀFŸl £mˆ¨ÈàT{ÎOq%‹Qe,± Ï:õðm—% ÃÌG¬ aØXug°ÇÑü:ocÔE?X`اAïW@J±T0G—2¤T}$ËêhsÃRU2¶í›¤G?ÐÍ•POe²ÿH­Q†“ÃM#‹×‡—IuLmU¿«µüU|¹ÉÜNqW$†ÛQ'À¨ã~ë…0WF×”4Ü,îÆ�Õ8ž‹æœÈ;RúíªŸyV|[HJÜ1 Ò{¸Ýæ ¿Šú«ªä¼¾ti}ñb¾}{¡ÍÜkÞûáó�:ºÛ}ÁEYäq-åê+¯\üêW�ýS+À«€ÏL,`Õ[•éíñ ïŠÈ˜¤y‚'ÞBÐÌe÷Ú�¨¡Z�ÞQµòLfÀ¯ó.R(‰P€ÊÁA—ò²)¿rH$�›çH°›º‹28ŠMáý)¨ïr8<ÊÆ:p"GñÛ£ªÌ·#ñàÀ®é~Yv û9D¶€ÀÝ«êœf‹%¯ W¹Ç4»�X6¹ñ7…�yeª¸/w?¼ÊúÁ\—5á— œHõUNUM"¢jvˆÔáþÔ`¦»ªšÃ Ázp¯@Ý…ÖŸÙ)ÜjÐ07ÅÚ™SñÎwRðeÆøûôà ›Â+àÕÀÛS:|Nd#²±ÀžÖ=ö}ú120ùE¬_•RŽŽJÎéà@†¡éÚ"§( Uf‘Ež\QÕ’óI~_ÅÒ·G¢abXÕçR²# +8¢Èàø[�baàÛ�óÇcÆØ50UŠñõក¨ÚnNf¿©uˆT’I8‚”ÙÍ™Ì>¥¤Î<±j™¥.ªê�Zн8%®Î€ùcäÇ;òNè->ôc.ȈkS*Æs}l¶×m¬¥(ÏåuÄ/^¿¸bð‡(ÚM0æê÷4J8€6‰r_ì0À�tEJºZÁŽk# e½)ŽŸÍ;¥Sg‰&}âÕ¿› ªš³Ù_bêÌà'¨OHó e^[Ê?¼XUÏeµ‹H<§‰8>…äB6=(7nÜ~ùå²pfÀ}‘Ey¢Äßwǽ}г›¯À³ë½¤6/§€òc X¦ôw •?aZOC—‡c ”X_¦%›Ï�†Ô-¶Õãu.5DÚ:u âÊ䀞Yùo #B®|­ŸÐ¿øA<O¦ð¶Öš�+›`Lue4$Æ©ŽÝîËôìïÈÀ¸Ãò@d­zä7¿q ÁÓ_¨…�ƒ‹³)¸*_éì¡é°±CóLR@B•<qú! [¦qüHÁ² �²bœ£uϨÖêç2Á<Æ#¥Ôw£nTmOíÊ·Ñ¥4Œî\ɪÜP1�¿aΕQáÝ-Ax4¬/kˈRʦ ³j²\æ<–ÕØ/Ö®%E±ã®RÊ@Ùl6ž¹ÒZ7k”R�RñåŽä§‡šm ¾Õï²ø·8ÃΜ2;Š{•Ų(‡‰Z+±Yí 7kÇI[·±S­L!3¡“g °²ênÈ5¹˜`½¨¸68®uò�03 âèyA°Ý ¶½Á µùEÖÛ–Êg*Å}Bjø€ðƒ tfT¶ÿJŒåkÍ æqòCÄÔãô¬ŽjM¤ô:à7‹ünàƒ)Șj† øRÄH�²À|Lñ>ª h)zëÖ­—^ZÒDÞ;Y€û"‹<Ár«™„žÚ]¯�4,[®k¸‹¸ª!¢`ZOŽ%�uà�?s¼¨a­ Qž`‘n>õ¸¶•‰n #쎮£æÔM€ƒ®!þkMY^ÈØGGo%-'R³Qñ¼+Ò<-ù*G ìyÜ4×Î5èo¬‰ÁⲎó²G.K@b¤…”r¸x@•ùÑI+ +à‹C£ª~ümƒ"ƒåÄàr„`ÂÄ#]˜î«xô=ñ$Ãë"òìFúcÕá ¬+�¼çÌà¹ö@>+ÔQ�A´ñvëT)†¿71-fξה†¡xj›Æê)Óp2A-qa2^J)b) =½ºÝ%¥$ŸZÅ1±„¬šœ'd–£”ìƒ[@˾òÝ“aN•lN#¢·ƒ Ï«òþŠSnâÖgøÖ RöÕ· УÀUûWPÃía�mâa±6ô%¥Š×ý1ùߍޝQtê³Ëà¨áó‘€�¯*BV¬ˆÈjU£ï“*²¯ñ¹ À|Œº“ØhWZχJ¤¾¨&‘WWýyàÛUÏ°Ž©VŒ¾KذÛóaêܸyóðå—ì~�¤å¸sÆ>¡Ç¯Oá"éã‚\¥“ËcÙ©E(÷ô!:Þ䙆I®½òÊ¥^8öÏkÎ^3Óä_¢ WÝùI¸Î2$š‹îq¥d "†íë†â޶”±‘šò[…„ŸRÏ�Œ©ëÅ¿­(ÐÏ*2D¨î{¨ã?B4 k#CÀßœf„nF<ÈνnúÆ~шHRJÁ†´ GaÁ«ªq„ÉYâÖñÀ9¨FN�iv[³QÏ�#Ž›K„‰ì¬so1·�ÔdÇÁÙJj· ô"Å3U»KCˆÕlÈËœôðJ,° ýº#’F¬í:MÅ—T‚ãæº#SÄøîcÚ VèRòMÏÞ§ëM¾zC„-_r~øø§ �ºóÀýЬ„º‹ Ý~@ÎXJ(…{XÅ�aÄòã} GÇf -Œ0Ñg-uPçÙO~ýb—ÿlNDV)½ª”·¥tFä ÀíR@F~÷úPwH:Ý+לËáa:8H“ž¡íÿšÞ!'G†{¾¦w@‚=�M¿§w-T™EQÿ‹²øñ'UËDw"ç§LiÓQ§RxóYúÌÝELQ,¼$¦ß#ÔÖ#K&Q¡c�ü+IêâqVþIà%áÕX¦ 蔹[„C+v�žÌàwåðm"Ì5âxÈz žZêïÉñ4%¨!EUDòFÈ%Ïî�ïx—� ‘˜†pvêW ‹“d �+o¤p”Ƹ°ó\50L@€bÀHU˜ûÜM±Hq&OC+êiDô+¬ƒ›RÖÎK±˜÷àCÙgÓ7×ÅØ2Åiê�‹Â5Î%eâsÏ磰lу[uÕ¤îµ{Gã—²¶p¸*€ÏhtüÁíiCok•wîú­õÚ©ROMZ£¨æœÅÈ0�ä vÜáuvÚŒåk#.NªAØm*ÕÕ�:YÆÓêYA|.ˆzòƒ_U՜멢œ¥žFÓ&[ñŒ1‘Sy#–¦Óè> éž$ªO_Ÿ§ts}F½fõ—Xì1’y<Â]cíZÓÃGRÝhMl”��½áÐè0HX³by«AdÌ ÉQ�%Gáf®ñ[3r))¥7«~ø9‘wº›Ú¤†äû·?›iÒÕrxxëÅ××®ž�õØHÄ$' Þ�ªLq_d‘Ek)9_yé¥+/¿|lì.ÀSÀ7:U†ÂÐ2?3ïBÌ2w€,FÙu´æ]1ð\Âuª„Pg[C€w‹î"%M!c™b\vÇ‚|«À–�—�qGv“ü™ŒP¾YLHSt;„îÐ1ØÌxZ­AÇ| è¦pžh™Æ€uêTKzˆT$Ç�ä‹W§È$¶µÑWÖ+I#­¢âKÄjè/,d.R)%�vµêN�`Ø‹›DÕH_pe/ €”²ê`Y9(¦a“ÈÀ ¬Œi á&å6Óì1Z!ævã'&pD͆))å— !Ë”WŒ „ÙßÚ…oëSß¶Nk’KÎ3nÖäz‚3L*5(¥ñù"�õ¤™‰Y,ÝhâõØçÑ�t;P™qߤ5‘’y§äeIJ(¥ÒW|ê™S2RYÌ8|XàósÜeB×u³µÏÃzÅCò£Ïàc= áó‰ð�¼â!påÏ#ôÑ5Ü2‘P$Çø\3ŸŠá)ë”aÐR¹7+»Ç(N çl‰Zpmš„¹}x;ðFàÕ‹)Y&(wú”Ð °{w½AJYߺ%ª–&rk±Eö–%â¾È"O®¨j^¯Oqÿ¯§…ðOFwJ@x<÷Gº$€÷©ƒ¿QÑp3i'ôb˜œïËHËA€û‘ŸÓß®á."ò 8 ›NÃ-¦AâïröÄ”ðW>Â�µûš¨ãƒ�gŠ4YaÎêg{ÙÑBPZ¶AŒÛsÓÑØ§¸Œ97}5&{Ö \ Ì’Ö—R’' R×ÇþËÇ=š"IÄ– ìAH"lT¹š�º1¨ IGÿÙbê6aü3Ÿñ:¦¾×™’|>À§ ¸Ù)C4‚ybꔞñÊÔãZ�ž’ÃîºVü‹»Äâ#^õ ]éÃ;ÛÇ«žœ‹lfyðM"¿WäÛTÏ…˜zÄî•»ï1øaƒ Ä€Íf}ùòáÅ‹åðpÙ®zrY€û"‹<¹¢¥Æe¾c€ø8À�`#'R´Ÿðì·ˆk`qÄ’¬ާ#¸)]Rà‰¶ÎÍHá�¾�Ó$rX‹7õ2Ãç†ïÙÕ•êÊ-– ѺI×vQD˜R•¢­Ž¿³�‘ÙŒc…£S7nv”OëmTØŠ§<<À ËÛcrÏ2n88;°+žBžG>‘K#N/ÉŽþ«of(ÐA¼iàëÀ˜«#b›VWa£0ÙJÙÒ˜8²Œ“¹òF¬¤Ô3;ÅÃÈ9Nþv¾‡:3dƒÊTÉáœN›`@du�ýŠe¡�'—û⦀ªím°»j¢7,ƒëe6,âÎø®ë°rº¿3q'†= øºMÅèRÉñÅ=\7uò•5óiÎ5ˤØÙ©cù*ž^$ÿ¨Â3œÂm8BpÔ ¸uÂï˜áßBœr†SÛ5,’¨ˆ8Ù¦:3Áƒÿ(Y=²\h³•gX7£ƒÔ,¦j [¨ã¯VœäüŠÎÝ¡¹H ´yü™ =µr3®€gDÞ¡z6¥¯¨Þ–‘£ÕŒ”5jˆ�º¡ñªªëu><”ƒƒšjf‘cɸûÔ_d‘E{QÕ£›7_úüç�nÝ:I=o>j Öìl�)¼F„†Sry,)1˜þK��Lg+îÚçgM¦ ÷žm‹#i‚¤.&�C'i—P y=‘VNüÍoyKìZaù€ŠÄ¸7%7„¤TÒz)THûB»U4à\jñ˜èÂ̱&V—O=ôkÁÑ�Ÿd+þ5Æ(øêÎ 0†?¹#"2ã-4^#:à óÀ¼™… ;ÎÓ z|p£ø)N”ÁcÀµ*oÎ’Ö«“¤9Žf‡˜&(9üJ¾aÀr?Wˆ+•Œd,7Ñ`Q®iXý¾Àú¢Ñ7p¼Ô¤þ„éг¹ªªj§é�QÌ+ȹÎ+‡¿âõ†˜w##°0=¢‡– ú12-•¿Þ°M’^»*R2»/l*)Ÿ‹è:2)�é6•Žv X¹®æY¦¿+> A\±ñGÏ!þÄÛq§‹s^Iy÷C�$¬3¨ªD)ü¸Qmþµ?q\áEn (eô»š�Ôä˜&ààm"Ï«¾ z5Ä_ú0¯»ä`™¦L5rÎë7TuX­Êûñd¡Ê,²È“+9ç²Ùœ¤†ä±v¾EL6 H�Ø—Ÿáâñ¨%Ü J§�—4ŒX²çÌÌ’+#h‹Z•€¥RøÓ7%•´ÿV�ì‹ï ¸¶Ñ·ISFP™¾¤WCÈe ç4ÛÇä!Ï€¼ šœe�àN0 #F±+ä‡V%à$šnã>˜�f uŠCÏân^_èw…%l ¶üÉ¿ŽœõìG F}É¡/btmWrp E|–- ï·€ž˜ªØIÓÄùt`„t#ð]`Š]k=y*“©ïÝÏβ  T<lC“xr� J)Ù6Øy@€D’]�¬•.Q†à®ƒKeDÖÎaÉN‰)"ÅO�­ÈØÌkäSË-G~d�£Òß !;é–ºJ©£–”Ô ˆaß8AX±©](îbÔPw.¥CÇC9IJ)¨›",¬¥T�×-!AŸsÞý„äO™anõö_£ÙÉNâOSŽš@1*ž»ÆŽÓª‰Ø ãzýB÷&%ã‚�m¹³š<ÀOh ‘Š€YQDÌ}ÒŒ‡ˆmüºÁ¶¦4+ö:Õß$òû�ù“ÛÀq1ïŒ'ªŠ“j¢>â 6›õÅ‹·_y%/”÷cÉB•Yd‘'UTo߸qáK_Z»Ž¼Sõë-eõœŒAbS´]‰Æ¬6¢y‹(?Âè*G@ZâÁoDX0× VEÂ}òT¯Lµ‚WuÎ!ñ‹ÕÙðŒ¾kP�¦ L$X¤ Û£4ÿì¬úÛWà¤dO¢2'0:òµsiÓ?£Åh{SŒÉÈ‹€Ó x|ð5û"žøÏ` S³Ç¼C i‹H–šïbäÒ0¢Éô8DŠa.—#jX�èÐá`§™²€;ÜWJ»q@GÇÆÕ¦kÁ“ç´¯™%†�AܘøE<âÎÀ¼µn§,UN³Œ¼mv a ¸P•Òš$ž“${žP?VüpMõÓj­¹z«ç“ߊG§¶%RGT%¥ñ!M Ì%On:júšâ–;‰“'�©°Ï×gê¨ù<çåÓs‚‰­Í»0J‹�*ÓU Üw¡…í´WßÄ9š½ù@o„1ow¨Ä—GÌ&ìÅxÍæ¶­�PéÈ]!K>%þJH¨,ÇÝf¦c?ŸÚþ›`+‘7oÙ¤ô"°‹? (WÕaŠç¢áWAk1}Êáa9:’ÕJ†¡Y^Xd· ï1àNFÔ¸k‡»§Jí'�n;Ô>†¶{Ö°C'Wi‡l¦Siè¾óØc„÷TNnçXÃñfËéóö�/ñ‹'îðNàkÃ{ŽÂ˜® ß‚„_«ÈÐácøWeJäèó6†_áá? %#C€eç�µåÀiA¨D}ªwÿ`ÚAVÅ„\C@ílnÕ­6 ÔF%Û¦E&‘BiÆÂlèÒq21"Ñ3¡�z¯“×<ø ;9Í—ŒmÛܹ’J`g¶ ‚:”Y‰h)ø›D6¾tÍ ·£m pî§cJÂLaÑq¤ ·ñj­O†KV“Ï`»ëaRÜy< –³Cd=‘i#28C½r]è‘ç]'JâBbå>W�ˆ"ÜDkÀÔG³Š'Þ ŠŒ“��-©óž')Åtû§à¨7Z‘¹såuÚV%ñ»>Úp¤´á€ÐþD^#òÕsÀËÀuc©Íåq'ˆ��]ȬÇi‰”õ:ß¾­ÀêÌ™Æy8‰œ.pÝó­}?Å�»K´Ü˜2¹eúçƒê䎶NW ÙòùØ ÝS+=„•ßS§åAù÷ô®Ó�Ûñvûúõ _üâf½¾ûjª À»�Ì)c`&Œ¾Ã?¤iy�2[b=8$ÄÚFÊܨÒìÇU(ÜPVø» â4 ð³N¯³ íâîÔ�Äh¢ü˜I03Ƹx»»—€Ž ìã£á_ u²¡c;ymâ‰Jv™²†»Q�š­|åçº+j"m!Æå&Hãl„#6á-BEgIÍ/ ��Þ Iö‰-Ï=û]ô²ÅM9¦¶ÕÕC¼ã…JhmFÇá1ÝâÊêM)•”x¬,g˜Þ€H&ÉØK–è±8­ªÅà¾!$Ôµ” m�ÁB£©Ÿßi€n ‘´áF‹‚»%9ƒÄý¦­Qe’'2O®pÍQc×}U¡¤dÃ÷¤ˆàTe2Ãá!6Ÿ½Q 3Öp¿úé¡:U†jÛX—ðÎ0grk¦o6{@ÉbÔ@ÓG,^iüÜ'à¼2:êˆYÜKLîöŒ1x¢íDøço1Û&×÷@¤èþÀ2Â-ÞkqeÐÞPŸ}ƒê3À;EÞ¤zEä’/»Eið:�Æ<œ ç|x˜sN«<§äIdp}PðàÔexï‡?\GeºY¸Ùþ_ß±m_�\š÷â=mkφš÷=e}vL…ctj‡¶ÇÖp[ýƒÜëþîhk‡ö4N,¶¿Ÿ|ò)G¹uýúË_øB>Í}¾xß—cñCšjNôØ:¦…#–’·æpË´ÞÇF±&=B «®N eÐ)Æ’„€Á&iz/¦#¥Ó†$ÜB`åñø!|›‚m%\aDV8ˆçܨÍ;ÔðÚtZ�ŠC%³³P˜¼… 5ç™æí)Œ‚‡aMÇO öMÙÅUàå«VG'5&ÓÃq�F}l—¡ëßÄ#ôõÏÔò-Ä„¤Êdüveˆ<€þÂ�<€a_ð©Øö•bÓÔŸ�WWPî]wEÓOPm¶ŠÒ�*¬@ؘQ«¢—åžUÊâOœ…ØGÞ?êŽØ èÝu_@P2ëÌ}òJÙ#Óç<ðV‘ø*°ì šÁ›Ì™ü¯QçR°^kÎÙ3X­&NÍÙ«wóê<Æ]'¯äÔqf³ÊÜ•³J̾®NEN½Â“7ú@TÚ!;ô¹×Ãqï|§ÝQදN·¡»*¹Í,û”¹+î¶³ªzãòå—¿øÅco2Ìñ~à]SD®¡ÂÛÓ÷È•)ÓÁ³@ÄÇlW�f]<'£¬�`¥xo™û &î辩�v’),ÖP!¦½HS‹Å wòޤ`‡&Ö®!Mþ0ç0Ôw­îzݧ¼~ Þ¼€zP¹ÆÚ;&­ µObÞRa�y@  Ær@Vs†8i7€JÈ‘@„`ãšCcj¯qFš; ®o—Æ|•A•¼Ž�ùvRbGfôãܶž2C¢Ð °öÖ×¾e¶¸•’cÍBlΖªñl¢4ƶE„I!ÍrÚÒx#ûè±U8'¾”Âÿ识H4¸ºâF&PãÓQñ¥gäL)Ù1Lôú ^0J-ƒëã~ KÑc‡gI]s¨sÏ1_Í~c)Ì=ŽŽñ�£À3f*1}J…¬kÿVP÷ÄM™£Î–�=#õ¹‡|k´¾”Iªu©œ«jÛ m ;"ñ1„kbç°3¸/ÑOKrY äÓj\ßÿ‘=­ñ=—kÈž7šœ61ÿŒD€ç€wŠ<£ú²È ß®‘ºß9ùÒ\‰*éz½9<”Õ*=¬”÷ãž{;Ž;°ÍÝYd‘E'QÕW®¼òå/Ÿd_ÿ|-ð¶ä&f"&ìŽÑâñ}?ÅîMx|u…ocD^ƒ5”üÛñeî×3ÖÉÖó´fF‚{�c=1Ìœë¼]»xò’%|£æ`Â�¦Ç¥‰458¼ {Á½užà8TnŒg9ð¦ãX$Œ™ø¨Ûà!Fõ€«:Ë"+‡2%hž<Ô]aºÇž_çÛG0’˜@# (�´âoÚ„ÑÊ8^dk`šŽì©0D6ÁÔ´fà™n㦯/ì©­4w/ï ¡g®°gâ_�Û}£­†±«�÷"²WwH"E„ã¢a”kØÞ}ž¸xO‘lŒö€}Õ{$7•3¦×-î6ÔÉLÉaà c"È[=%¨L]Ü�!TMC¯¸¿1 ÄÁ¶Ü4RSr4šTfǽÎ*:n=Ä$èâyè ]Æì‡ÉÅø6Дs݉ëÓ2:Ò†˜Ùúè�E—izqâ_ÙGßE])k]ÉÞñÓgA¤îjpÇàÿŒÙ;ˆ�àÐæÃ3ªoy—êàÒÿŸ½}¾mɲà1síß¹U]Õ]]¯~Jý¨®îR«-u‡lY€ìc$[–A4B´á–„^ 0Ÿø; ¾a"ˆ"6padBX $¡–µÔõ¼unÕ½U÷ÞóøíÌɇ™c¬‘kŸsêÜó;÷QuvƉßÙ{íµ2gÎ̵֘3Çœqž„©¬œî%�”CañDd_³eœÏ½°ûÍ�ƒûk9”�¢Ys-×r-\ÉôÇè{-±&Q ƒ›0v µÃö}Úh˜sV­¾ÆJdüv9è-NO•øùX!µ*L«m·­¾–XåLóaƒ?uËlÓL<n÷Áû… J€[ºÀµ™h:?Ž=6ò"˧dJ85¨Ó§x6õJª¹Ý=ß·b°Š)1=ôôØ�˜+Pžã�¹&O­ f‰ÉLQ“gû<†úPn\SO%é3ÍôˆÍ íüõ°ÂŽœs½°ì*]cãµ)è‰éã¬u›$i'NNy‚+É#æÃÉuAþC³&0Æ�ɧé=ÊãNà[�Qôw*¶Ó™Z®ÙJ¶™pfÐpƒ9C«æ3# ‚þÑižÑ*(4?z{O Iý˨c$}§ŠÙoº20Zc M®ùã+ %@QùgzGηêrõtÎ�ˆÌ<—rC3•9ÈÌ^ôî1TIMÎ9¬¶Ïî¸Yò7 ò|fü÷J½œ½AU¿h(ãdU²mISPqÀAH;q°"C* ‹Ì3ÎRïNJ�L\\�@U‡j°´ëê´=ä¼7ÂQñmvû–@»>Ì·BÅ@³ZPžùÔŠø4ðG€¿ü)àÓ¶d´[]F.õºô¿ÈÄ£G�¿õ­ó»ïÞå­ô_žœzõ¸_˵¼%óÝï|ç�¯|eÜÁã~¾üŒ¡½Ã‹\ØÔ–B`þlÖ éèÃ*ÇŠÝaÇÓš� ›Á*•åXò¶rEÕúêç„Ù$XOH3l°ºØuíá%¥Ilw´ë'ñ@¦Ò"’;À;%CÙ9Ì8)f³H)0±%°2Ó/žxå Tô¤¯æSÎÁ�ÞØ'¦%Iâ°`h%¢1ŠV$@Êx7Uï« †€˜ÇìEPÎÍ CIä1YøKÀÞcm®.Ö~±ÂîjhŽ‘�fTµØ3·Ö’®ýÛJÅcnï2#´ê@·nÉÙZë”Y,ünšOŠ�t—‚6´¶ æÌµ"˜ÕìÊñ<‰'MÄ�IצQ×Äo©J*c ¦Õ8¾C=ÀgiP†^;qbâÈR~Ð2iÁÒ]ûó6dvsEBkaM7eá”� €†ÐìÍcY†åCÞ=îÊÑNØÌ/Ù ×䔺¤"ª]ŒÔ‘åéD»…·tÆ:|ÐUt·{gë”rª ö·ˆUû˜ÒM>”¨§æ‚F‹ø¡ˆ/?ñVÄ·h|BsÞ§4Ž;¬ì¾÷óãÇíº»êÓËÜ¥ß+p¿–kyJD¼ûÝï¾ñ•¯Œ~™àyË øà÷T…æÞ=ø¹Sx€QSÒˆ.ß³*ñ¿ò¬ï8‰'û*¶jÆJ, “GXj\V_È>V‡ Û+‡}Në©#àÃO°æ„×õÙ ÙcÄJ‹îåF'wqKÂ8âi"¹Eßßä%C“"óÌö¤+tv°6gÑ^ƒ$þˆ¸µ¶ND9†(æ�¸JVÐ ‡Gá³{¡³ü`h5ÒZæ<‰8§Ö<­äFôvJÜ"POtXå¤4ç\™hÏñ°EÜFDæÖZ%Æ9=ó† ¢:wú,¨$•N{ Û6 îN²Ï,¦µn½�uŠ"oôÞ,ÏÉF !„«4%"’Ôÿ©CâúÀl‰:HÁ—&“j÷(çÒOT8±Û„ø™Fs6’‹ê§­,!NÑ™äÉÖ䤄À �Tx&¨±sÒ† ¾… Àl”S?å箨\¥!‘ h-ƨ‘o�ÙdÎ�±d\Éæ”5’ÊAúJ̽ZK¾)›ªÝ­5װɳ“£4 Æ5 i�ìü ZÂmö½ž ŸŒøùÌ_øÇ™Jw €îî!ŽX:‘f)çs¿½½b÷§•+UæZ®å-sôîõ؇g¸îX�¸U„n±’L\2!õ\’Ÿ['8ˆÃD•8ÔÖ¯—*û0¸h¬Wék¬˜ ÌŽœÍA¾‘[rhw(HÛÇ´™·ÄÐ 8›ÿ¬­R°ˆÌs¡7ò+fßÉ�fãÖt"¸¯ž‚C–L— pT×&µØ]†š`$Àô1n�áSo÷¬…q‹d?Y7ÜJ¦ð´ˆ.5"»9DêÈâF­¾›Ò8»£8 À-p¢üLåÇ$ Èòñ¸OL$R«-#gÒwDøÉCa²™;µ è���b”œƒÉëóMjxÉ­77BRdž3ǘlb 7ÿ†ˆæ ™ÓK]ûÞ­{·ctí+*&¶kÄ”eÕIF³½¾Èò)Œ–J/”CZÁ²i“dº^5O‚‰‰ëü¢BEí¥õŠš½‡F„Ìõ *8Õ2FÚå1FnÛPëT—æö�IV œŽºÅšÐ-öÝ—¦uÍí‡&.¯ƒ²ªƒ²sÈD—õ›•xžìšp«ÃBH“0=9“[JÅzÊò¬Û0Òú L_¸qföç·âÚ-I:Ë÷Í— "~ ø à7#>�ÝÝÎÊZ³�]ëkñ†ÜdÒ×|ðàáýûãÝw¯[«^–+p¿–kyU‹¿2_¸Ó€ö"H�Ä gž¿­¸Ó«•Ç(=à’'‘–p­ í™ x³Ú°"QGóÞ"X‰½g—o+FѾ˜a8&­þ�èPŒ4 "UÄzÐ…Ÿ(³€Q¦ÎßéætŽÖ õ¤`P ü Ûjè  J›µëX0)°0õ@_x/£‚¾á½™½¶[ª“éÌ[ks»ÙÌúƒ›hªÝ‚­'ŽÎ&DKÔ8¨Á/Qb Ï(Њx]Y_8ù¥qýk9bkÂæg‚|h±}ÀŒ�™#óFTÜ(“¦öŸªd5™�ô‰9“EMÉ,$ … ØúR¯i1÷Ü©M¬Ò,„‰ ߣµsæ(Ò9ÆÈëŤ�Ø,o½n½Â�º³†Ói01kq?7^&5E^Õ ¢õI«`šÅ¢ªgu�–† ›Ù\™4ß«_55�ª;œÉ¥üAi=f9ÝÀ¶�Ö’‹‹xŒ¤ „šdö';>ïJšaM^m¢Û$æ.„½CäR5)ïÃÌÎy3Ú™ÓÞ;Œ…RøwÞËßur�Ýâ»ËDw�u6ï.v›Ín ôN4‚Å{°Åàs ø+?ÏÛí—gzeþ´[åzðàÁýûýÝwŸx«\®T™k¹–W´dæ;o¾ù­¯~õŽ÷/? ÀÀ_¬Ÿ�ãó„QeÚÅù¸¾r9ì³oYëqGü²T•ûéÍa5'ä&O‚*"Ø8ìÎ IžxDX<̰‡;¬-wj‚' «Y0±þVHå-&0×ÐÅuv!ǪUgòàbó×I,á&;BoGy47K\-Ж@�­¦ÿ«åûA͋â GœèÇ›³Å-„ Ψ®Œ¸1žÉY=e.—öˆIm%MqrÒ¹:¤4¶¤núšÆ¦ªèÝGD¹rO@·,4AVz2qJ9„þã /¨1èõ/ýf6ÀÁèX7P“ŒdOÇLÓ©Ü�·˜!‰ ìf@m³t.Ë È�#ˆ°¬EÛ{²Sø7x~ã&\ ‰ J¯É>&ÅËu.¥¼³šNráSþÐTÂD¥kŒÐºP€»P©ÿJnc½ ǘ™ÈÛÎuâ5�0‰ÉÚ6æbÔÎ,ç9µ\ .ƒšq^~)´¬Ê$€v\²èCE©—êjŠò†U. ±ƒ’S ™“Bclx¿$èò_:œ">ñ…̯oRz}-¿û寠•½÷Ç�Û½{/eo¦˜rõ¸_˵\Ë‹!!q<ó9HÕ›uðƒN¸äŸ±9t*=ð¼…Aå›ÔÉ}…æÿªNj5ÖQ2r­G.ð�жþnæ¾=_ôkR¦´A(©Nu;9Yó0¤žöþ9¢“…ҙɾ{p¡¶^Ñ/”ìë2Šv¾rDÏ|T{ŽRÌA¤†ø�å¶PŽç ��]$й=Š–P‹)käß BRpÇÆ#ÉL/2~¦ï™\ùFÃãTH‹±Elµ(Dж† ÑI\§µê�£Ó%\ÞzB+iRÉdjÅ`+ÿwQ)Š®ÃKab} M¼Zs¨ˆÌúWÔ‘A^‘‘°‰ëb M�LÕ�>F%[œ›b•Ð]]:ïF²ÐŠJ'ÿ$8Ô^öC�òPîðÍ#+èDßïSÒ�¸ÑZÅ–î8eYõÀ'€_‹øËÿ‘»4pµSÝîrѼE@ ÊxøðÑýûãáÃ+gFå ܯåZ^Ñqt»¼Ç¹bw:¦ÄŠË;ß.ƒ¬Nw¬¨4×sÒÈ*;P3hâŽR/…MÏ+Üw!U´‹ªð½þ¦áZ!•óÅ¢A®™dÂpr/R\n&°0¥NˆUHÁP°¿p…gü’{J@S))“.ü˜’ܘ¦é«µà5œ ~UÂ>;4 RÂÑÛ$·ŒQ [¶Êî'œ FÚ‘‹ß zD}7ëŠÄ‚LhÈÍi½ÆJ†hê/áYªn¹5Ò–ÙdÈ9«›n×sY%a!lr]éÎÝôV 9=³Óü¨p…³XO…�91*ƒþ }uÎ, Jg&ëÔRFfö"ÃhV±Dà3 e�ßéˆ-5Ž1ªþBêÕ\)Pô—Iž´O@d?MŽR©Ó¾©áäÜì½O J'z%sì@+$J¦MéA¡ŸnØ#¢ÔnmdV Ë M¢¤�AƼb�»R¸3èÌndM(íî]® Ëf3>°³ÛiHóßÓ5ž{àGVÐê!'7öðñ’sGÃ5¬%…UË=ÏÜ/³Ÿ…ËI7Ú—êFãÞU I�æ8`—LÈ´°Ûl%§ÖIª_ÉPõl­})â߈øcÀkM’ †8dSĶɰ[>õ%i�Ë;­&HT"ùòšþSö˜³„i=¢²£Dœ€Sm¢Ä¦?¸8îBKÄâ`l!¶ÒÉÄÐ@—ó2¢à Y‰—dº &S\”h?î%%/£‹šÓk›\ ÉÌ®õ‡²dJ¶Üã@'n©±µ6hZT/…ÞÊÏ]m†F„lƒêKòsc hãrÇ4­û�³¢�Q†\Ű6š�6V#˜ªvÊ»óg2³÷>Þ}÷Ñoô‡q-WŽûµ\Ë+[2óÝ7ß¼c÷ ø"ðÀÉ0q½3ôt÷p[äÏif¸Sÿp$צ…ƒU³°þB˜¶7ym ¶Xó¢S’Ù 5�µ5ëßX•PnW¿[2i7*&CZXj½}Ë (�]P/37FRîê*FŠmÿ™tùß^ŒÝiµ…š¼nÀÆ”‚»©q曹YUå>];¢G´Ì™*¾6l"J>ÓKº{¯•jÝpsÒ 2’ûªêäåq’Ú å<^­Ýꔆ�O_ø»¹__´`Ìœô(à%�ˆá¦Z„2¡=­äµ �iáDD™LL0’ŒN:ŧís»S¢œ¾»{{’Jí K¥�ƒ,‹sÕ\÷±]šs&¶ %‹L3AŸ®ßz;Ï[nfâøjsÕù:R=Õiò=Ú¨õu�å ¥$¨É©í²Ê>ä86@ªPûA¥h×­m4`D„ZÈ5É Ê±M¯*V÷ùGËÚñÓHöm5i`TûÙk¾8‹r°ÀåÜwE�Mˆ÷œ9€Çæ�.ˆ_ž`U;2o0nf€, ÃÜè””o›à#�ȼ¥º›Àùå–ñà37†t¹xu•8%°á›N¤5èÄÝØYy%yå­ï™gÍ·Üs=¥èàÜ1t’æµ›�ð+àŽó‚Ò{ÂJ×íPþéZLhüµ@!ÉB±sŒ8¥$´ +&tlj­D‹+‰VÓý‹–3M£ˆ^ºŠ…Š-ñÆö‚F.KZ@¥,™žþ €ˆÞõ¼Ú‰7t¢× Lκ²ô’$¥)UÍØ1ZíÒ:Fк©òÐoÛ¬­ÖÊMÎ=M·Zš ½DóóNï]Ɔ:(t_€ MZ´ ¦ˆQ$.û?ÿg/�3 =x‹)^¹œèsÓ‚Vé ß瀣pEPqñÙˆÿRÄŸ~KXìœik|ê!n¶|ó•Kr¼ûîã×_¿}ë­ÚÔö•-$?ñ{>íÄk¹–kù+†îRÆŠ†aY? ݰ ªp6ˆ ±Q�ÂÓXýî0vøù¢N¬üOø˜«œj÷l!ŒJB¢¢Ê�Ä, £E"éZE²ª!w× ©¤¨iÂK0[e*J  êc9kíý*6ÿ(/èodÖ0l8ˆ?0£]sO×#²Ò¿X¿v”IüQNúNænŠ£ú§•‰�êä<È��cG¼(ûBuZèw©Z1õ#zæ òX¼”:-sË™±³/�T–9 Åf.˜^ÔˆÌ"`T ðÙŒœ’§�àTú¤;yª—|U;y Eš)ä•`1âvŒ�†ÁÄÞuònÁR{ƒD£y&*'_6¶½�ÂÕ�roOaȱY€·5­„'£÷àq0ä­�¸P£U‹� d†Šß)` 2©2‹ø1Œ®]Ôd-˜lýµ.!²G-AèÔ öCDí�ŠÉG‘k-u�YQ5%zo4h'£]¼rÃËHàÔ:¸ÃAŒ so„�¸Âó[Ì-ŸRÜ'*vTÚM=¹öR„û$[=È¥ÙM¶(±Å\,ªá“á!Ù’'|øã¿ñ Ä |}‚û¸ŽkþKfæíí£û÷¾ñF…)ï‹Ê|ÙâZ®åZ~°KDÔz±Jf¾×‡@VÎA£0ß •æêh‡_çD'ï>¼5íI®­8~uhë¶„ƒiýª"!›É£2 Ž»½�õs´ÖÁnu¦ì ý•ŸÛë¬Þmí ~Iþ! �˜ÈkŒí;›ïij¬,e¡Ý«ÞA�),aÎ${Dœ, aAÌ.-mnÈ<×Qcè$lÀ-›è„e�Nò�£†r:¡ÅÙ5–ÂĬÄÓJ$ŸÄ¬àw©1×áK™"EÛ¥[:é³,ÿºjt± í•TòUoŒ|ÕÔ=¬lBŠtú–S¼k=�@¿ä‘ÁV)_¦»——Gæmï9= ÕªËà�ÏqRç§}R1 \ ÛýÛ¥ÌbœS“U¹£ö9‚Dʲ$@ DwœfÃ>7JW­}øW€?M¾»¿kùd@#J'$ ‘çsë­Ç÷ï÷Wu{¦+UæZ®åU-ëî/R"­06°à”€µãx<‰¢ód§ùã›a‹*˜ÛìH3­°é°.ÛXe;„ŒÛà ¬�z7“r¦éGt­ »›"ǼšH:øÝû.�òXkVJ–©7™ƒîçB¢›µ{;M�SaY­u€8²¦¤‘—æÜâj{¥Ï3X³¥�K�^ümÌPÒf�J°t,E7mç&GÛ¦|‡Š£íkV–fÌŸ‚_B“‰Øz“R©é3Çùm�]1C0Y+ )>‚×pßÚÔ�ˆÚ ªs¹cИj/‡4×%†™4¡:Íw¾[žÄ I( ¾d7áýµRîvDÄM>rÊ?Äïj”ÍO8–d7*m3L˜šÕÁ±¨9Pd§³¸ÎÕnmVEÞ|À¹¢œ[ �£ö{#Æ8�Q9æA¶èæºÒ–Ù“;ˆc½/Jç¾³_³BYÂÅA²aJ~NáÝ´Ðψ=¨´níQºÞ)ƒ¬•Qü³ê÷»UD#!câu­¨ó¾ƒÒ<¹>Úbì4´(•ÈbÔ((¼ µ2 µŽ(ó)â³ÀŸ~øä“83þ2 Úiú FDDŽÑß~ûá믟¿ûݲU_•²§Š�t—ùµ\˵|¿”ˆxøöÛ÷¿üåÑû÷>û)e~ø%{€žËÙ € Œ Œ‹¿:޵×?¬�õƒpÿå%X+‡µ«¯A@œka¼ÙÍ„kC‡âbçÅ‘f0¢­Í…õHÇ%I[u¨É7n…=âVõ3™º üDì®PÝCýiÿ„ÉÐ3O^Öä&_› 2Ñ•4p¢: È«.Sa¬'3{š`u]ÅDN?·È�ÃÓˆ�ÍgHt¦uÙëI‹Ç-îr¬qœsì"ä}lBW\¾¨YqŠˆ ®­ŒòÌg¢k+Ïf—²iºÂÓ2!æ%dDfb�$Q$¸KQHdcƒ(|wßJYsn‡kÀ‰%µ5étQÓìÙ2 U—n[D21b6Ì|/UÛÑÚ0ð7û^°ØppÍpÇ+s²q 뻀á+Yyc¨@�þR¬û &Å‹.|èiC¥%§wpSR‘Â4aö¸Â¦¨Ù Žˆ#βïZ h{÷&òÞ×ÍìFÛ£Q ¸'û¥µ�ªÕ‡Ò^ÉÀU�~㞬u¡[ãur#4/�P;,¤fÚÇ"~ÿxÈù¶\RÛ�¡áÕç$mfÚ¢cܾûîè=Zk¯ÒMÛ~õWȺúà€»[H‡ÆÓ Èó óëî½{†xÏ)ùówðåv䥋w÷¶ž}Õó”È{õÅæØ{ü)3¼ýöýßýÝ»÷üXÄɆ¯¹_øÈwïÔŠ«Èû C�±Öƒã¸€¿‡KTg_ºDºm½Ê›ˆµ­a Ù!,â¥uл?�‹±m½¶ˆ—�$§»§Þ�…M &VZ’òjßòdUKŸu•ws¬ä™¸øJR8Éí™Â�8ôšðBxh«›Ù*#MkȲ²O»§_UëlUÏ'2¸ñO€Gœ<\óX^Ui°’IàÎò"Àýî}~ö%/W‰/}HžQás¶uw‘^n Ï_Ûûqæ{-ñ{ìý./6ýˆ�¾ýö_ùÊ�ûç�/eÞ#ŽÁu9öw­ýä0úpþ0Ôæ×ÉîçVµÄ…á`˜øÜ0½:¢D+*¹å´æÜDi$`8 GàR4a¦°i5 ²ë§me¡l«Ûª�&ºË 8“7Ú�až÷Pب4yËŽçÅÞR*y" QÞè ´j ˆœžcmºTn{ý[ey7é[Íšu!"nدàùgûZÎþ11”“Óçš´jÀ¿�¼#™FuÕ@ßD<¦0Éz@Ov!Ñͧfá爌¸¥N –6*¢1À4é£BT&¹F9©öiüh.•$ÆJLò¨7~�àÄæ^urùàÀœ©¹o·f˜©zël›æ’ ò¼e]PíV&–ÌÜsw93Ë~¨™3"K¼1”„1•'G[œŠ¨¼�4&A†Ocle-õlº3'›\&“`ck!>O I !"@?ñT ÷.ÐXWTèäTÇ¡9j© �ÃÆ+”9§6r¢³<8—ïô Ñfæ©›TG¬'{Ƥ05&í_…P`‰üA>©Xß#}ù$ð³Àg�ßÞ­0b¢ó}™ÂzÙ<¶`¢Ÿ�™çóùÝwsŒ¶mítz.Tð¾ºwßçrÜ×g±ýðB=9\õ4M=?øx�êWý{ÎÑz_-0—ç9;x—¶žøùÙ—£#wŸ<ï+ï÷¤Ÿ2³¨2ýöö µ=_)àþËÆ–vîµ#~…#ë‰'ÄϘÇß"ÐW+¯eþTħ€ßŠx¸}ýuÏy·3¤pßûxôhÜÞÆ¶µÓ)¤a/¢Çsâœ÷Ç¿(ùâexܯå¬|Xàúy~`ʳROúi÷;äÄ àsÀﯬÛjõŽt, ‹Ë¬½#Z¬èÜ›x"ÀuŸv9Vhë­Çzš¾HùÝüÖóC¥]w$çª8±ËºÐ-“nU9PV¿$ªp|³&\9þuÃL&“z+k"³)“@"N3å„�‡5¤Å‡Kû6d¢šÔK}ÏÐb³™•’,ˆB¢@ÅÇèG˶Jà‚AúžŒˆ¯›³­›�é´It‚ìÒa¥ðªÍ’­|Ø|EP“^¦â8«ûIX¾U»¹'7JXô›bYd±ê3å,–¢1„1Qc 97˜ŽfX&û€¹ŸKr�é™ P±suÊC\ó­H tZO�K£«z´­�4´?+Ýä)Û@k>uyqQPóçÄ`Üh­¦‡/p•û<¸‚±ßÚœ{Zv˜nu˨ísì˜ØÐÍRß p Æ¡"x8²)ºKI[Á²BäÌoèãØ*³$O¨$3³CÜcnñ–ǺÌ!aÖ˜‰Sƒo×-C9�ö'FM3†%\bwMÙó®'Ÿ{Ò‰êy˜ i>âðÓŸ~x‡Ï‰Ùtuüâȶm¾…GŒãÞûùÝwgγÐì÷3¢¸÷k¹–W´DÄ£wß½ÿå/�;÷|øg2µ'¥eÿ¬#‚­—Ñœ îWÅzB7×XÛêÁX*Çc¬y]Üí†b\"øq¾açøPn3äÚ윃Ò\ ÜÖ:]ÞÅ37­g!,Ôb;½§´ÌGÜy4)X£‡&Äœ‘-‘Å1;A}ÙÌÙ9�cæÆ@ÀSaSf¯öJ®3%o‚Â6:“÷Z\™½µ=‘ÂôA|[X¸p6z%o"pc¨7Šoh~˜;ekxÚÍò©Ê5.J¡çÇØ3v«Î†ö®7Î=ØnßU³£ù Çæüiß»Ja„ÑòÜpn´›+ɽ�Â<Ç3Ñ�&¤Â¹’DíáÉg¶­°˜ý¦®UDÁX�úsÔŠ½�¹Êü˜  �QÓ£¼æú+« Ýbû‡L´¦d5C¾êØW 8?,°5¦[=¨ö¹A‚ZÓÞRšÙIíÖi}ÅòóÃ#§S�×;=ñEŒ±ÑŸ¬ã¾ª G{yî™k´(ö6Î�Ýzᔎ ²Obî�Í">}Mæ2rž´¶¼OON˜¼üXħ"~;â!˜L‰¬Îü�¬�{×.nx¸z3³÷|ü8ooãtÚ]ï?XÅ&èûºˆ-×r-½2}w¾÷Ã�«H&¸€ì07ö%êuˆœ+4nôØ%/IŠëåÉËÓjöÄðÍŠuk$¸/Ù®Š5á÷f—'+Q†Ç±ñä?ùk…òe?I6m%•=²g…º\•-mÛóAòIy®jQ~ÈïKÔ%:ǰæÒ¨Di½8ŒûY«Ø² 8µ&‚1J½H �#:±W—«8¢†ø¬õ�œ%V%œ3OÜy´Xt Ý1zæ°ðÕ»éÅ�P"Å:•Éñ¦š 'þÄœ-àf«gHãÌ 3¸÷S6*ä72cŒb̤ÚÙ4""ú“Õ]$æœ;�™Ðše瘉’Ä=åb×¶©� rÌî€T’ò:9"µ+­Œ.n­U†ÓÏê©!²~ژꖜø,³WkÏ ¢½}²1ÆQP´l 1a¢úY ®~(…KÆ`Fö$E[CVœòSù¶í~™—Œ‘LÕ’‚¤Œ!®Ó@ù«xëY2_"Z²ª¾\Ü÷ä²¶mîmL»w+‹%3ƨdòɹT«ÉÑ×ô¨(‚Ù¯òŽ›åFÕ\¦N ÃlÛÞ…ú_5W~•˜ÔŽ hõuÏÅ©•–ˆ#·mT%R…0LqlÜt‰•È4¥pÎRMŒRTùÈ•ý°ª5“f'äÄžfZ;c`ÛöRa\¿+‹˜Ä;YR ±-kJÃ!ªÉj ,¯Ä5T× Z¥Ý~xdÍJ,\!€àg#~ð&ð yÜ×éƒÃ†©—¨5èz�÷Ç�³µv:Å“¶hý>-Wà~-×òª–Ìo¿ýÆW¿zªÌüð%np(ĉ:�(øÕÝ þ|w̽­§…�y Áúà>ÖÓ°>MZ¡gÕœÌ;›kÓê” yµåyõŽt›g¬X&‡\þõ«.·U6'÷‡…u.?Œ‹éÑöMν;°ž&›+r2Û©Q„™s}~’‘P­W%„žS…u:—f�ÄPÂuji!ÒDd‘^r&DŸí›§³¤=DK 0UA¢|cêq¨¹˜>Åè/lQ#EÓ%-m¢óŒÓŽôˆÏ ú¡÷ô ¢ :thúidÅþOy(9Ê»Wž.a¨6Ášœ; «ï\ÌQ_D‚RVdÎý˜é)Õ†Ji^çMIEž6pòîsDš:R¨�ÂU6•�Z£çF­ü2³ÊTYœ»<¢m=ÁÿœÐÃÜÉX8:3 Â&àå~îƒIpè‚7á2¡¶Àw31¼G²Ü_®ž†Ùê¬ïÊü;¬~׉Äv\X»núÖ;`z”•CFT ‡°JŸç£¹­c÷D„Ñ©áIv‚Š˜`÷ ×[¼26:8Ð%uþ‰²¹mVغ<ôÉæò0¸‚†t¡ðGV!ûrჱ³òGT¶™&zÐå‡&n.è6HE¨”,ݼÈ�Њ©¥³¶i‚Åž·ë+k2F`s`·EM'C†MLNÎ&²‡´ÎÆ,Oç¶!scÆ0±‰÷3襖­U¦¦`ß$¸ŒQ2äåYƒu"BÍֶ̲ö-4 ‚(PŸ‹Ó¿1bÚ®¢Qlf´”m&hÙñzry¡SKj&í6qĬ”—IšJã¬,Z vÂÏ`:—†i¼9‰ Üåtr{Ä�á¸{Ö”àD•¨A›°€íîJà:_ÓCó_nk¶ š…ª'‹ÏYêÉÕn0ÌMíÉnlÀk?|¸ñ ³Cs[ÓÄ÷—¶dCï·ï¼“™Û½{0Õ}?–+p¿–kyEKD<|÷Ý;¦ƒlÀg™Uf‡e7‡AÒLw � Ô &�Ñ®C~y³3�ðxx÷8–UC‹¹pª7”+VvØêQ¡Ýê�Þ�ì�ÎÚmÌÚV™õuëkÀ…1sЬ I:¶Ó^qõ&Ö;‚eÖº·öíVÊ9-nFù/úÔß(†/M†4Ð B“;!»kDÒƒ)/Áƒ79yþ¶Î�F|s´ $U·EôˆžyCHáî!r¶„—¶i„T¬máB-DU§:w�f4*ûÕ‰eåLÇQ€‰Úö΂BnVX97„Ýwܶz(Õ—�=Õ´ànAµž°¤‚YM6Qˆ¨3…æ@p™µMktÞ{¤q)Á2OÛ–&jy7ÒñQL‘…Ê®Ø6XüI�ÈmÛ4÷*7åˆh­Éú‚¹�ePÉu=h°A·ó>š xM™4uć°u™:b‡g ¶¹ 7c1¹È3=÷J O?Üšóx5ÞØ©Ù¯°í®jz0fcÞÅrÉKf‰´NÅ}y/ †—b<Œø*p6PL5ãõè뻕·¬ÞÔîWcœ”!¸¬ùC¹e?RÓ ‚SïèqoÀç�ߟy� Åê®vÔ.Ú ö9Ê¢¨¹f'TÍÂе'€[}ÃÂÊ.˜·µ«áµ}›ÒÍ‚SÃPˆºƒµi™Íšð^w;c樧ƒà>.:ûDiÝ—|#ÊÂq´D'z�%Áe3blduÄm§0iÁ<åC;€F„R@‘Ù-½£¨&zÇ÷")ñœÙÙÖ"â†XvòvØÐT8ÕÍfÚ™¨Bx]¼ùÆå}©_“?•÷wDœ2O¯A‘¹ér*ƒØzBÁ÷ÖPá­€¬šd=³*‚é®Gƒ›Õ÷3ð8â1p+Oô<Á¢Å d¹œWÔ¾ûG N%{±/E€K(�3*íøD#úßwúl­enfêw[l]}Ü-4s Ïv9[ZkPþxMî½Z@P7Eiaçµt®W+3J�K "Æ„ K ”¥žóVÛoÁÌ6‰­tïÁIòµî§fb]Ç`Þ•ÖÞÁúL²¹ŸxGZÂâÆ¨³ãêH\®”N– Ãúà2‘ æäCc7!n†$’Vã6ܪ¿”°? |1óµˆß޳JÁî3ù˜á°^¤šÆímü¸�Níææ{b÷g¼²ŸD½Ài—gzY=îº�ŸYÅ3ª‹õß‹!¹»_uã+w¹þéiÿžGž.¤nŸ³<¿HÏsæókìîª~1eÞÉXÊ|ðöÛß¼[÷>|É8î `º¤ƒ�ž*i@ÐQ`ðZâ÷«°:àÃ0±ÄÄWýdÓ„qð}ùÈnv‰÷Nõ;¸÷Þ¹¹rЉC§þ7«ö ña-DUÇw*ˆU¾‚ˆE]/æÓ:RÅ~ÉÕ‘÷Ô‡¦Í©¢?;Ø3�PÄ\HÉa`�¨©ÁM¡üAj�hÄ»6ªÚÕã^òhÃ#XTkDtn%+ËÍ]W¯æNŒžÜýåÄp)ô/Äé€tÔ`�»à{qi7c:Ë—IR;döˆ‘ùø6ðåˆ�ù[¿üNÄ×3ß*czËóÙC¤ö¢S©tcˆá ÈhlŸéÓ{Ö”‰×ËOÜ8†Á«àå‹ñ�™­M¦�ÁÐ!4 $mž°ÍRˆzä6FʬŒ¨ˆ¨}Êd—ûíV¾üˆ¨Ì3œN™¹­Žü}JòæÕýv I)Ñk9ª«)éF4qN3±PfÖN’�ô¢€ d®Ùå}Ú ³Ò–Ê1ê᤼5–‚Ï�êNÉ3〉‘%øˆ ,„®yÙ-�>µüi¦¶Œ´³EüHÄ/¿§µ¯g¾)…`šÁåz¯$3œ;›I—�+íÝÞž>Ðnn’M?Oy1$ü´ðôÓžÑ.¸#Þ÷./óݽò÷U¤+wé5|ûû,ϯ¥—«Ï—>:€x eVÎlP(Ùpu$샪Ãâ �ódr¦¹K/Q¯·ëççʉ‡ æ‘©ñ3@5«9Çâcø†}Ô ÚHR¹×Æ'qUˆ¿!ûD®}O /¦ïÓÉ¿gCØ’_×:ž> [º•AÎä(+$·¯›I�¬/ð˜}ñU”R½˜6@Ü\:œ¹q � ,ø¾Q«[D/D¥ÜLëq�ÙÖ»ð�+Çpêü© ¬Èå˜LÁî¹¹ î:ÔÅMÄ™•(< ²›—o˜#m í;ϧ۲ð¨2è'·TQ;ù1ðõˆ¿—ùÛÀï_Ï| ŒˆÈ¼üPÄ�gþs™ÿ<ðùÌ[—„;©ÅB–sÊÕ†µu&é.�_{fcn3ïEôÖ6檟<ò1°me¨ø�| "Ñž™ÌR?hñ ³1Keso•#²tÎxMÙWˆ-³øNæúôdû=R¶D¯Ë§~Z«Ý»Èm›ñ¬LU9Æ(€žc”ETã•L[„Íî†_1af°„ ê¶Î.[h8ŒÑÊôâRI`&PŸ®÷1 h['Œ‘ضì].pø3�U'oÆíjßIçª9éxϬ\þ©¹Jð=ÙM1#€çhbšûTuÄ�ØŸÆ”$å˜÷üžÀ�ÿBæOFü;ÀßÈ|Pä¥1»«§Çìu^PäàñãG÷ï�óùÞ§?½Ý»÷œï¿ †y»ñü÷k¹–kùA+™Þyç�—Áqÿ}¤ÊÀ ; ð +çæ†A%�¹³#øWîmùzÓ~J»äò'¯êPí=(‚¼’g³Ë½õÂ÷`ÂÊ]�uÜ›8|…‰�ôaÃÍÛZ­Ž8ÎUQnØÀÛÁҨנŸ€U±Â‚Îhw‚$X½) 56K‡2ë/wiĽb¡Xm»z-êqbn„\M�ÓI_— šjED‘�i %¸§v�†ô%ZREXÃâäê¿S™4¢âÔ9C\y [NŒ0²�à{5”ÀÈÿGÄÿøßø-à�ˆ‡gê¹göˆÇÀÃÌ7�ߎøm "~¸g}‘—]¸vB11:8ÇD†iëºÁî`Ž™`§æáL°È9–Ì!£Ä‹qÊÌÖ*\UœŸˆ™€¥t1ñ·ô•Ù[Û)%ån¯]BåH®¡á(€J…¯ÑóGld¶1jç©C]É-²b¯¿âY«†Òƒ¥×܃ ‰ØÅÒiðz¢ö1&c¾ªÒ–F@#õœ9Ó‹\3‡:™ÈM7/Çk¬†Ë‡%'ÞSÄBdŽÚfµ¦·ê—‘ÆN%§ý®zS>b¦U•Zfñ[k¸sõkcœ{E›ùð£߈x[JfêOãè¼µv™…f6³?|˜�£µ8�pážÿÈ–¸'C¼¯ÀýZ®å)�ÞyçîT™Ï¿?ó5C“ ,S¤¦Ófº� ¨ª"Tç~h‡ª»Ëívçú·‘`íõ¤Õ¦‡ý°õÇ*j®@iÏ«0‡Õ·C¼§aú‘T äÛ“~=Ô,…‹µž¦d8°¦õuˆ(ªŒ’Η À·ÙÄö”†–1â[3í´�¦,ç‰"A¶ÃF×ã\ˆ(ç+_½ƒN;o+•±Q0tЧÚ�½–ˆ«ýäû[, ç…×›Î1#)žFÌM”¼ 6=ˆh¥UDl­�183¡u‚ F€‘Ù3ÿð¿ˆøß¿<`mB!G&@Ä-ð(âÛÀ?NŸ>Nù× gãLCˆ¹/÷[�cTƒ(šJJNK~Î –­µYÓY’gBŒ#“mOñ^Á»­)Ëœ�ÆÛq¼Ø˜ÞGwÍîò78HS)u5…c–•çÛ¤eÛm^8Æ(‹exÖÿ sÝÀq hmv�3G¨En²ŽÏÙ3À9/Xì)3hM÷Út—›±ÂÎ<îdÁüµ¾Q‰wÀäž(|X¾m¡@ "av™ê=›i‘«üÍÔ{€˜;òà…ÂôïÑ‹FVôĈ’¤8î+0³6óëï3*âÌÌ’.!.н{ðl°6bÍÜ0Èìck·™acñvúª‰µ|Mäš7Çaለø�ÿyÄ?ˆ¸%=�ÏóÜÕ=â�̯¯E|!¦ÓÝû깆¦P²Ü¢EÚäºnm˜g´Î“ù‹À§#^oíÓg¬>ø°&ÂÎ)‹ËÍLŒÑ>c´{÷âû!Sä¸Ã_Ï)ý�ûbW=­†«üÅÊs¶õŒÓž³S/VÞ×Ê_zyi_ÊDz�Éóüí~�³ñ�!óáÛoówwôþ½O~J æq—Ç}!9¬g‚ÈO�š±žö¡]\˜^…Ô.Ëk("„€Ý¥št9V8ój°ïÁ0еXp•Fá€2ÖËî„5„õ´4„”kC‚JcÕjP†zwŠS>!AX�³ Ë“«/‰_a* Roób�.±«ã'Rxƒ/é“u¡$„ØöÆ9%˜W�„,�dÏÞ(Õiý!"¥ê,#Ï9³£1ëfµ¹!;«‰š<ÿLe6^{�Àm�¸©§€B§0wï¹0SÚfOÿnæÿ ¸Ïˆ@ê ÀŠŠÄ9Y°éð­ˆ�øL%¯$!g‘ P¼©FT]<©é9O Õž8µ Q*Òƒ¬®9eᬚžÈžŽ|§ˆ€ÞâP^NJmÿí³ÈƒX’¨=é_/*y¼S`Ãô%G?B» ÚQQHÔÕæ–íâ�ˆÈ1Š£sçOz £B÷U ¸š„ È1ªû÷W˜DzÚ3Á{'1-%U¸?K#dŒ¥F¡µÝ}®W÷XY+¹ï]µü$¸HÒTpÇ«] ì‹W Á#½i.�bé¸5jà`¶à&âÓÀ—"¾¼q?âÜ{m¤êL˜ŠX=pc4ú‡ÔZçsô(=Šm‹ÖÂï¯çDÏ(/*d^w³NÞ‚ñrwŸQà •ž³­—{Ú‹Á²� pFy±N­1./RùKWæû§öçŸw°F2óÝ·ß~ãË_¾#pWVØ»Ó3d¥ ª RØ9Å ¢Uå°—œWÍOë ªóiG°†ð$§>.„�õZõh¬2çú¹=©¶X…«‹½ô¹Y[1]È©´ˆ`"‹‰™2è'sa&“¯OÄ–¤4ú.ì{2�Žß¸S?¢ ‰ZÓ˜’O¼3˜ëE‹¹{` û27CœÀqÈq. §È²Ã�sL�S޹ݶtjù†“z8Ð>VER¯nú”cUCLÈP¬ðyà Àã̯Eœ×{!9Ý¿wMK"‡F3³÷ñè€vïÞ†]½ÏÖ½¼l¨°}áþAðŽUžÜØ‹Iü<…üß*O;íîòܽ’gH{øéDz±~¹#õüµ=ç™ÏÖØÓj{±r¨ðicñœí>ÿO/fʾ÷Ôó”Ìßýî_ùJ9'^¬´5dU$ös•0(ãÈ+hÞåZa½·"ÅËK<ÏzXz85­âݦɹ>�ûõ´zõ.eÓOªª]Hry¡.÷àÝ:ÁCQåSs½œ»çõän½p�«›òŽ«ï"Ï@ñ”L|1]ÑDÏI� ¦x×hƪ½¸XØ"*7Ë�’—3UnW©eR�1QÚžé/æ¦KláI˜@¨ˆý’óÌJ|&äJaŸx^ Òë'õ…àà”è|ÂTbœ0�tjµ†f0D<-®ª•™êøoÿ3à[BŠO˜ãàG¼ðF=¬¬ ZMv¨©ÅÊýáÃì=¶­�NAHܾ÷)×r-×òƒX""Ú]Ÿ¹` ú9BÉà«èlÎéXÝð~ÉÁ“=ì§n'ï�Z+9€Ô¸8Íe–�² " ªfonØRƒNîv$Mx‰ÔMÝÚøS�‡ÕŒªÊ/ÑXt;y¬ÖË`[iB¼\ "ŒÉQ®h¶Ns‰W’ŸÙ"*I¼õ¨�k½JoÉö6²®¥!˜[§E”·xdÞò×Ê�¬hq6¾¡«†912·ˆ�ï2¦„M·”³²ÐTòøj÷q¦fi™92P§WµÓˆªhB²_´æÐ ­Â’â•–Ëë6è£ícL�d¾“ùïÿoÛæ†<ÄÜÕAØi‡áK~?g~xËø-ÐÐ�Q–�ô@£‰¥Ú â4ýêé gZÞÊSk•òTW)3D2ªÇ(ÄT‰,5{¡ð"{o•å½:KÕ%†‡Ž1Òl¡h-éBNœVl䕟ÖWk�!C•—ä¶ÇÅTZïEîW;üÅí®ÑéIÅ�1ÆXó™ ýͺ»Ç3/Í`É‘™½C«Ìa4z vÝ÷‹òŒ1¥4 ?GÖ�luvŸc´©jÔJK¬Sb¤xí·qš…K¾ÆÖd¥l ­±¬öÆî§7l�j¨L‘ø‹ÿrÄ'¶ÍÍ?ÍNþ°Ê¸_˵¼ªåÂõbåÀ\ë|6ÅÓ„•5²Û%¨ÊaXPæV2ÆÁÅŽ( ¼ ­êk³¯ºp¬G„ Ô\˜ÙPålgö.븞¶nr~kë‡V¼³2Ä$IÓI3öìä�(døZ¼Á‚M]z°Å÷‚Î'öHK0ëèÀAÒø–ÀçLÔ_åY¯�Nmþ€òLw ½w[Î=zö™Sqsa¢ˆ4Öô™~e‰z¦v5² %TiÚjŠ9dbM÷Þ­#aÚ€`_)§#×)×mè VV¾·€¿ üuà1¦#Ðil‡%~Át!×ßúÐ3¿<ˆ®ß¶äêP�€QÞçßÃ;%f$€ðÖ Ìu æÂ/ùE${B!i_¬°ü3~!ó¿™ù'€ÏÔÄãª%OÍÞÆÚƒéë÷ih�Àxøðá7¾ñð�7ú£GO–êC*Wà~-×òŠ–ÌL:„îR„Val½w±zø”�“�uó †KCEŽæ�#+»TÍ*lv\MH°0ñ`:Dvøî-Ž i›0Ðúëá�tÀë @ÍlÕ£³Õ, q!Û°ÝO�wÔm°’÷À,¥Ž0ý¦µoQf0ÿãàÀùþ¸’ç ^å =Ñÿ]ÇÏô:ßÓ†ð€|_Ö`Ò%mžÎ5áB7eÂ¥|¥tŠ'ó9îüZ gÖ‚ÀY§Ñ�šô2¦6�$ÔY%j¼e¢ž[ÌýbËM—@šO=måAè­�ñ[ÀßÊüß�ñmé�ÐY_A;ÇÝð�B5x;âbG�=�±1ÊË;MÃÖç̬©Æ~­ cM!H?Õh!<' ÆïVg“Hk£µ>Fi58qd²/bu—Û~u!¢¶/U¢¤°!òÊ—üÆ^Pyô‰§SäÐ()JŽÈú€o³ªÞ{íè©‘r‹«æUeªiRÅ �ÖÄž·mAsÿÔ*­äGOÛ7ªbOÕ¨"Jco�ÕAžu Õ% fýÁ`ÓÒ[%Ù”ÙPâIu+vß­Ö�Zü±·OˆšOŸBúO2À.N({é^ÄÏFüià7Zû™"h.d‡–�ÖDL:­ŽoÛV?5àöÛß~ôÆ·ä‚Á^n¹÷k¹–Wµð•Ç" îøUP vPøuaÚ\�:+ÖßylËÁ´[mý ,¸VÿÜí‚9ñÝó �§œƒÅmíBˆ—´ò=k£Ónð]¦BšNÜy/Iö@FSc¬W©ïƒ«"fT‹…Ï6¾ÍêH½Äߦƒ; �®Ð\ÉKÀbmìfšB¤ÃžY\” øÚX¡ `¹ñ Æ9õ|wÓæ²Q¥pya5Iµ¬Ÿ'¡pÞ zSCþu1” ð1f®ý·A“ó#³�‘•6‘8¸0}uü¦V0x¼kq‰’²*p üVæÿ)óÏŽN8 û ƒò¹"Ð[¬:§þ>£r¿ìpÔÊÏ §’×’ i׿Aƒ�{BÌ‚†E,ò‚M|Œ-¢›ÍƒL0qxËÄ�ˆ¿Än,"Ê:Ò†8c”+]IfæµEÝΙ"fpJ4:�Åç™–yDR×&DsÆ– ÁŽ”·{>CÆ@ïÓNd´ Î.7oµ»0Ðä}gvšCØÓذñr@YÓxÆzfÖ ¸NWÔ-<†È-IshèœJ#؉æY õ0aÛ;†“oÎÛm‹±Çgk¹m{�h‡ÌV»5�çßm«ü<)J“šÛÚŒÌÞªõÃ)3�ŸþUà¯Eüs™3†ŽîzÈ~k”QýZ_n¿ó�‡_ûÚã·Þê··ø”+p¿–k¹–/aÞV8è*"rè¡aÿêÈ5. ˜¸w×»p¹·ˆµZÉœæûÉXáé°§¤‹7xšo �ÔµkašVÃF`í]v9Ö¿¨Ä ¦‡a2à"iL$�ʱwç(†1¡ÒDL‘^å!@c}qñ ©+×��Â0Ãã2^¶$éŽ!êÚ N]{âlDDfyý³ 8Ñ ˆÕ˜ëf6']e8‘@_Ný\'@’P™OæN²{{æà¸È³Ú3çÖTäÔe'³%êxÍ„¯ÿ!ð÷�4zŒ#ïv_PO²ÖËuÚˆoÔý}°É�åÂ^…/Ð AüÌMؽ­­U+#â\Œs§ÜáU'�­ -œ«º1Êžict¢äfZº&ÜNé|]úP€ò|nÔ¼b l#ÀÕœÏ:“ë]åd©ÞuÛ¼¶(÷~f&C€Ý.㽇T”©�€æ°î5'!*´?ùHAU—k¿±Ñ]ü;Ÿ¢ŒjÝnõ¹ŒŠ:%öTQÞƒ IêMLkÓîˆ�¿ü›ÀoDüŸ‡»Æ?'YïúÉÝói”bÀýC—åZ®åZ>Ȳ¾þ_¬¤ÞîëA¡±*îH–{d•œWÇ­ªJpv³z [#è=rU �ïþN4«¢úH`…xb•6Íó1K0¸ÜW=è*aúÍj“–äºv ]“U‰Ѩ!qÍÕ\7mH9Ó–0[!¶}‰�¸­†°¦àΊÝëëÙô&¡öN† *�½ï¾\ãFZ”‡µ\õåðÆÌÜRH¢`M§l2*4܃Àb#IýdÚÐ.&Ö¯7­Ü«ÉÍ`D^Àe?8 ÂêyXj»]^èæ„ÿ”X`¨t¿»ÃÊC®g¢×#UÙH6sH«Î¾ é¿�þ– ñÚjHˆ"ÍÈE-…7³4\?‡5W9ܹBüNÐO ø!âÑRÝÄ|ÄòI—uTàr]¶[LŒ�0Q蹪&ç­D¦u¬ø� ~cœÇè•þÅæL�°ò»N¶²“Ђ†ën}j6Ì$(íÉÈYTT £'ƒJ¹ÐƒÊÖZÜ€xcÈo+fŸ�+s=Ì×�2(4“�`âË ½+œ3‘ùCåz�øõˆÏ+5ç´ÎdYìG„éUù 2V~ÏÌìýñ›o>¾ÿà W½÷k¹–k¹S)œ$',Q ì‰/G‘;€½Äú!xUòÕ>ìW]®G˜¸‡iÛ¥V7-\ø4­ºã)S¼]ðWõ7Œo£ÊýÁzðô‹@…9¤+ 09ƒpˆœñ½GÁæœ;~2“¦ªÐ?[ >X£Ø#·|�†IÒ™ÚÏÙ>'Ó¹F§Ûj€,ŠÛÂ%†þoYá㙑97Dc"-z”Sëµý$UëšÆnôˆnF€ÇÀÈ|¬íK�bÔÜÊ«ÈÝœùªOÀ­ 6ƒ s|3Ë�úˆ '"n™lQÚk”_ŒÿüGÀï˜ÛX}!Ž»Ò‡%q,r@ÿuüµ£ß¤Fý–¶ ßWLê�¡UÎÝ1»\pmF—ZÚ™£rïT&Ljê{jS‘ÅsŒàFW2Ʀ/9™sÎÈ ²š-Z>ûÁJ âætŠÓyÞôd7�`ª�?…¡O„悘[_.LÉ"ªF¹��ZËA³_Õt©ÜÖ€Æa£¶Õ\]5HkÑ覼æ2IÇH³FæªB-•Ò*£ vv“›‰ÕŠxDû täw(yòR!¦Nw ¥L­ˆ-S¿Òü+î“lf “”?§Dìi(½hÈИmæÏ9â"¢½»û_ç»;jׯ<|ó͇÷ïß¾óòÐþT®ÀýZ®å-™9zÏ;?zP¦mÁ5ùM•~d\?ìþ9¾³‡}Mƒzî!V%ž_ÅÝÞiç»÷úð“^¥ë]{¶ó²;”W÷…•ýÌ䙂øƒ¯X§÷ÀNSmi5¸sÝM¯¡™`ZêöÁm§³ÈëH(gI»¡<«Qm«Y ¯ÎæÌ\mØÌŽš2DÈÆs:v�p/â\2T¸!&V #&—½�UTbŸ1Í:ÒK x ¡vGeŠ“]„�$p‡Léb&R², ¶Ò„±ØÓagF¦zôŽ˜[Zþ]à?Þ©«VÞ-Û™? pøO:xÀë‡>9Æk™ç‹u¼sˆ…)eEþ;Ó&„­üâ…ƒæìbPfÁGÝ)Û=32+òAx½ÜÛ­�mƒ»“gîÉ=Ä¢:ÒÉ0€sYå.­s"ΜÌò(7ò©’_7bëypU`%µ,4S5¦–ÆhdMìë6™Z…5S°¯ƒ©“ôÌ̃IeÎ$NܨK÷½ƒ dØa�3·£Œ nDE¬V?/©!»¢ËðÀÎ% ›œû29'Óº#Z+6 bÍmäêÁý¡˜ß=Rh>\T}<ĕЩóü0ðG�ÿNĉ¸q1jÔV/;˜RF³‚žý=˜õ´mýí·¾þúãï|§òëÀå ܯåZ^Õò’¼ +Ñ�`øIh[ÞkÄÂ:rÞ³#oð„ «ÁO¼Pè¼~õHD¬¦ÅAì õkU�hFèü€×Eº•Xîö´“½uñLÔz³¿iÈÞ…�ý�õÂÊ-Âñ©+Kë±=fÚôõj,{Ã-µ1-«˜Ä€Vî¶Ï«l�3iî›I$»c­¡D„/ÁRu$• è•às¡¿›¢vc‰æÇ©ÈÖ@‚Fßg’³Q'C9|Êt‰÷œ*$´Ñà©9ÓM±g¦Ó^àõp ŒÌ¯ÿ~æ×"–zp^‚rvež£Ï—ؽŽüxk¯i—ŸB“•Ð|ð…“ÊM>ýÍŒï N•I7ï]®úrmÖĘžãò s 5fp£í*©á‘ÙÎçÑZy²ÏÌ-êí„ú;ÿe¦Ía™…Ã;tùû rF¯¯E›#ZK†. Í«Ì Ÿ€Þ»T3%bÙ“`ªþtÓ®î J@Ä»L)óS£¡NR¶öô54w'»ŒØ]�8­Ë€äZŽPÚœý�ÏqŠÈ4ô[Ê�Å›ü0«cþÔæ¼‚¼þÛ¦Þ)þ¬µ’-bâl§öÝ6hÖÙ  ûß§8bO*÷¿" "¢E| øµÌ¿ü)à3LT/km1*ôTa©#­µmÛÒS±=~üèþýÛï|çƒß¡é ܯåZ^á’{öƒ+BÌ* BÒŽ×A8Õìø”…'=§}ЙuÎfW�ד—þ]|�φªˆ%€Àt¬'øAïK·Ïu‚ÜϹ. ˆ]kÔ Ù-Ð)Ϋº‚¨1LK‹†3“laÓƒò'‹€¯|¯§^«ƒÛ$…¡=qcÔ) S¥æ:q¥0úm¦€Ý-!²÷f‚MÄL$Té¥[‚g@™¶Ýœ›g™Øs µ¤ð�l¦I&W½¡®Aþ±´}`©O3O9…IcMdæàÿ–ùÿŒ8d˜àc�÷èAÔgïŽÑý*Uø“c܃Û�žËí-·ÍçYÚ¤ &ÈÐÐT-!øn nÒ®›–@aÜœ¡¥S†ÊÐTzþ*MÊPº›1Îc`ŒskIWwr£(AÆÞׯªÌ¯uò+ ;Ì�(¨WÒFzíÄUѹTàxî·U¨Z ì¾pÈ ÏY .qì�±¾Ö­G ÔÌ©:ÔeÐnND󵿶(LºŸôÌM{›+¨\–¼­æ5ä#íý­ªªV�¸ËUFhû§¦Öqø”i3¥Oj(Žì ŠÔìRXÇ£tœª(ñ>ñsÀoø½�YÛÁ©qQ¨˜ ÙËŸ™çóùüðáƒ×_ô­o�ÛÛ2\õ ܯåZ^ÕÂçÝ]J¡@ñMÓÞš7û*È倯/©¿ÛY^9_›�]O#8¬rý¼v åwô阆ªcmBE‹rFªUâìÿÃ:À°¿‡ç²·Ø×¼:²ˆ»Ú ² ÒÐÿÁõ>q9!ug’–dµA(\Wi¤§榧òŽ‘÷yí¸ã§àÎD`Ç ”‹h49€�#>5�™å¾­×*kÀI™¤iÑÁsÑ1œtÉß[Ä ô rÄð™¹ö#ÎFÀ-¿å¾d¸¶s2 n $)íf¬ÒóßÉü¿oYçî'Ý•ŽËaÏ]}ü!”ÿ±ˆ/¶vÏÐôàL‡¬’gÒ¦ V˜{²¥'¯{BAÒJˆ™–¬½1ha˼‰ˆ1P?ÅÌó=“$–éèhm’ Ž@DlÂÁÔ(ð�“»*CËqšÊÉ3˜øµ@AÛMÑ¢%-ûû¶M¹r?hW©àüŸ�)ÚÆS*„CØ©�J¢/¼Î_ƒ,—à"OÖ™ê•_� fÎis䃪®°WÙf»Þ,A·0t¯±ÔˆÞD|>âO9â¯Q!ªÐ?„µµmÛ¶mõ¡*÷){¯š>ÈïWà~-×òŠ–°Gá]Š ¸?7±º�þr�Î4ú{¬—¨° a8I'×Û÷ÖÀ±œßX¥ÚL¶°¶ºw؆¶}+(—cIöC7ãkZÿšvðjãB±}r3ï¾ú{²ª¤¥AúŠ¢•µLF>;^þB¢v0Ô¯�ЮՈ[K^92[[ƒQ¼gñu2F¼Í,Úñ° gÓ†LÝy–´ tUã[¼Y—7£sìs&bãBµÛ4J Sîµ X©»F'˜/¥^þ3OfFÜ`Ò�*—åìù$oÿà+Ên8£ ¡ã?Ááˆ�´ÕµRÞ�eþTq¾iZ”o[[„jIA7Ýì5«ôD–•¾•¸e+2OÄ”'¹œ¹X¡é:2·ÒCkg.>$Ÿé}»ƒ«µŸka«Ö4ùkøæa¾ÆÜˆµcTÝ4Vªr?Ë›êéeh(žySôZW„¥{V·ü¼ƨ¸‹Áé‘À)&Ùl%8c+Ç¥<ÇÁ!'ÉvI²MÜA{Iw%„¤+Æ£Òõ$7ŠÒ}q¹8#F ½é¡…‹°íN'§8œŠXóœI¿Éœžx̽ rÛ„ŽÁ»XO•}6— Q·;]1¬Š~ΘÜúäòמ‚�UíŒ޲;ì?ÕÚ?ñW"þuà3ë-3í:ËÌ#È^̻ٔ-9Æí[o=zýõó;ï|0~÷¸Û3âZ®åZ~ðË˸åc…¡U;T��kE«úà™}á[È,¬~•Þ¬ÙÍX'/Êw�U9¬6 ¯ãnå¸ÃÛ©;:ûÓÍD“Þ;5¬9·°^ÔÒ¸XІBÄ𪤴¦ŒPHî„°ÄÃ`GÕsËÏÚÿµ²òyT€Ra&;5Ì©úë´[c $›¨ó‡á¤ú¹^Æåð3xÐ�$ºÀFVÆ ˆZÜN ›Ó"ʹ{k'R‡ëÌ4Ò2O™…Û4Q7KAÚ úõAæßÎüû¼Ë–ò"Y`2/¨Ëpyã™^•4 à—2Dö'añ$¦Ëé¨$$f¦æú|˜Š*.x!2…Ã!jª”Æ:Á7€RQbÆÚµòÝö2‡èŸîÕúZyRÙå©6Æ´ ËaŸ™Ü6‰ƒ%º>ÔÛÓÏŬPfÒ³YtÜàØä1FçE™ 1FÁñ°Z_hbGZžJH?F­¤”¿™áŸë3�:ins2Ë Qض$odŽ�~Y¬SeŸ0uƒ”“»ªªT¡ž ýI5ì!¤L~Ÿs'×mW«Òòä°Kó òÒÔ`OOˆ_–ƒæ|>˜›ß{¤‡íôGD¸üðÀ_~%âSǾ+×»n½`clÛ&Ô®.œß~ûÁë¯ß~ ØÝ ¦k¹–ky•JŽ!&ë‹WR¯íóµp¶0«SSô“p|_S»ìm­@ÖV[«›m¬¯u‚ð×ÝüJ.ÖÊÖòñ§íã#áÃŒ˜6:¯øîÆfñQ‘&}q†Ã$÷§¹“¹OOZ[˜ÁbŒ¨!º ÏdÈ(dóœyʼGt®|D�"¥¨ï*R‘çV³Ð*ïä0» >è"³ÖΚLõ�Eß/ß3Em p”™Ts¦\°bi+® 0G¹“Ã; �|Ê@Ä0È .0t&ÐÙí ž6�½°5E¿üÀ;û%·��0ýÊëÃ¥^€ã5à—€�s€7ïLÎ�Iã) ¸ûÙäiÒCffžK¦Ci$‡¥,§QÝîgý»�¦IRÆCÖâÁG$p[NЈ½×(€aÊ…¤Š«í[ÑE4ˆ …²ñ ÔÖ¶£á >fÕÈ sã')|š ò°ÖÌQ¦£¶mƒtp ™a!•a<ò$k·¬|b´¶‰ÁÂNšW[fbuŽlµ¢§ÄŽ×K¼`2NéVØZ¨R³ïm- ™M|˜‚é¥Waôœ àƒáûʈ9胫¼œî©'@k !˜·°Ïþߘdw=½ƒ\8ÐÎـϴµ¿ñÇ"~äb¦‚éèåŒd/ø®3kÈòÑ£‡÷ï÷æÐK/WªÌµ\Ë«[ô†~á"êï{¹Ò }vtü�¬ „¿‚õz» dë `ñÙ ¡ÎÑ‹|Øù‡âT½éÛ yõáiºrXŸkôç°ãi̵6Ï—"Ì¡.~¢<ê²[,úêëN)©÷ngØb�Iܧƒ3bãëη¤+×ý‡Iµ™ÐÖÝ P›9óјhRZ#—¦Þý…ŠŠ3�÷¨Ç tr‡K'¥ð޵©PØH5bdv”z�wÌ´3ɼ~1Má %ÇëL h9ƒ†Dø{¢<Ù;^ŸÅ–‘gñ€Î½£?ñ×O?æTxv<¹^q˜š3¡8è'.`TXvT)¹Ú%v€¸#Ò¶ô*evÂÁÆ1Ú€Ú<µ4ÙŠ8Îh >fjæ¢5oÀÖû™X°4¢cµG \µ^Ð­ÓØ(Û -5JÝ' ÁÙÄß5ßÀÑÌÌFï~p üÊÒóFOs )ÎFAÅn PN½9Ê·lú¬}¶$ƒŒ�O_–íîCÖ%wîkYnì�Þt¡dŸÀj¸Ôä¡w@uæéBû…+õŠ� ]LžñFiwŠˆÒl;0–ˆëª[—“�=1 £�ñF§~Qt‘±«T�ZÓi£$õnîÅØ!øÎ|09OôíÕ¿²°™¯ ÇHÇ:ñ6æ&MH‹äSîa �ñ¿¾l’<ÑÕw8ò„‘ZüŒñ´Ÿ¾üðiB�¤®¼‚ú°\ΙIs1‰wdÆŒæ54Úo(ÍýYŸ§·xM¤ Ç·V]U Ì,¥I 'Úf…›(ÅÊÖÍ›Fo±rÅÌ[ÏœÙå5Ÿ/âz%vVDÈlçœ9CQ“A¤¬2döÚ›“wV¯J€RÍ`w†tMQP‡sg¨1 kgk™m54óWç¼€rØü™61kÍ€ãçÜ“ iê�ò¯ûC†ÓcIøU¥Ôá> …à}ã E›=ÕÅ�dqöØ»Ùßuöï�/×0hØpecÎ4)*³?ñ³™¿qø& ûÃÝ$¸Ñ„à!NTïýáÃvsÓnn.ßÝ/9l?ÿÿàáÊ0ób9nå}5&Mß½­§©ãùáÑû½ðñ<åÅÔòböÌÝçÖKÄ;–gËóœÖæ³ëWyÆi/¦ØçÔù{•<�ÇÜÿò—Ƕ�àcÀï~ø‚³½9RÂK«ÁAž{ˆýƒÎô#Ψ†àÔzš`¢ã`AçCU¾VÕ²ænGš-%©­‚yu‚’HôUlù�ÚEµ— ÄSš>ô(¬Z ¬6 øš a)VÒÔÜõKçw®4ñr·o Ö4.WAÞV8Þ‚ö“6(pLï1©ôÅŠ9­v…–ÖCjSÕ�XÜ)RÁÚ|ˆ[UN“`â¬Îuâ`u<�7"þ�Àß�cžž×uXâðĈà.Ï|â[û¿||r°5”Áu’åŽSª6´EœË"a �;Ò²|Û$!e!Ê­ÉÞƒ�Ëàfæ©X(5Äê]áríýÄÖçlQA@üìavE Û wsŸZ"Pè­�h˜Nä“N®Àtκ‰õ‹S!Þ‹ð1hD`Û�w‰ª>¦™�eäTúHj¾¤ Ä“¹‘ƒ™�~Û&t¶¿³GÂÄÓmDæšIyµKæÌef¬“oWTqôyí#k@<Öû:Á“fÛ~6‡U¶“Q÷ÃdÉW‡›jWcL?Åç"~øð•Öè îëvªîw×ÂWö~~ð µÖîÝ c^]–§!‡g£µ'÷çFýß/å9{ôƒ×q¼ 8øR®úÐ˳ž{§Þ×Þ'�GÄùñã7¾úÕóòXp|©\z˜ÎiáußK¸)0t‰ õ¹­'ì!ª´òá©!Gê— Û¥’ü‡ÂþaíÎŽ9.Àº·•ÖÙ ­ÂaÓ¡›.ƒ4“+Šm«ƒ_ µU�‡Ÿö×óú9í…úñçùÒM0!‰½Ëõ&ŽU'—5 °¾lt”îïìuu¥r«‰ª-³^¤Ãüg �¤ñ(C…»BÄ ¯Ÿä�6U(õ8Øå¥�¯å‹«¼+µù«^í¬ómàoFü»À»«R]Ç P~àÌ~õŸüëMæøy¦¼ ­i¯«àG�›7°4èSîç$™XžøB·¥ÚÌ5Þ4LJ!„ì5g&Q§Xìý éZf1Âç犒¬*þ’»ùL[’cgŸW�­3|9ì9“B½6Ö¥ØÁ^x÷ܤ“8[ƒFÅ V˜ Óz5@;¤E`ŒBÕÁÅ� yiQ—’�IÒx~µX$±bÈèH¢Ì2F-abqAðÉn²¼ûî–¶ìû ñi_P²i·£qUÎulÔ¦øÙ³ßÿNü-2ˆŒy}Òæ¯ë9a¢‚vxþnŠÞÐ"¶ÌÏE|)ó§€ßÞ¼¸Ýx-@Ü ï¥Ccœß}qs³h`-/ðr�ˆ'÷÷Z˵\˵|Ÿ–óíí·¿öµÇ¾p lÀ/Ÿ``Ëáx¬ç>ÀNŽ‹ØÄ.¯rÖb�šv˜îxú’yïü“`§phXèdØWM¥[ð<Í—Þ}qŠcEê),k¤Kø.™ës7j»ÔØx\28Q'èɆ+3æú2ì…VÎ(—MC¦™fã«ÀÜ‘÷Y>xÃRÊ\™ÄôÀLoW¯ð�¸ÂX…„è'å#Ew¡ÞN•T¾.œ`”¯ü�Œˆë<5{ š1z¥ƒgNÝ’'Ó#þ!ð×�ß1ž1 ú`Å—Ðüòëm‚þ~ø—">_CÉðÙ½C�|†f`´PIÍ„¹/,¡ç>ßè”ÕÊIéæÎ×Ö]›:ÙZ)¼|ºƒA5LeÕ¦±<í-ìÇ“åpÂ\£wn.ð+Ÿ.­šE!ì^1”nÝUâ¿Z©(·æä¼*xÔZ)yÈ lw4'j€4 YWG¸¦Ð&(fÔÆ>ŽÊ_I‹®N;gNFP1Î9�7æ°/ZË®«:¡vŒÀ©‚JNb6a]²E´Ì­H,ft•ý6Ÿcdkž\¿ö�B瘤‘:ÞZ#žgPo5ZŸ²VUr"´Þ÷˜Kpƒ…œÉE}L&­/‹KvI¬XÏÒÒŒÇÍĺ¯Dí è]ÛHi*Bwn‚ë;3 ¯‡lÚZûi«Ç=\àÞSákÑšºªL•&ÆüÔƒYÃ9ýœ‡ZjþðW€ÿ*ðqÞ\¢ÇTñˆU³ºí'¼ÿøÍ7Ý¿?=z‰ûÈ®»–k¹–W¤d=qÈŒ|á2Ì1)”y@Éú ;®3§OËþêÈ ­]ÆÛŽõZ!'碄ÕÜì´n@S5;h>0Uš�©ÖƒõèÂà9îÕvýÈZ�aÐ×jÇz‰Û*I@ë%UDšÏõ× ,“N& ÝõZM®�k›Uß³©Ü±É]6§ž™F:¬;ú÷øÂ;Á4 RWï¥bUËOÕÍØóc4VÒ�åá«Ôé™�¹M ’t²2’˜fîa®xS‚hÁdz 7Sip• 2 ·5¥/‚î|ÿ?àÿ5ÆwëÚ‹W¸Ð’»ñ?=¬;R÷33óc™ ó“Êà4ÆÎ ð¥ñS5‚0QÆAd/³ªGÔJ3ß Í¤³µ–ë#x|0$thɶè‚èd‡K·˜;€–fûcŒ­µ‰¾&Dk=3Çh5X1óuÞ2Ó4æœÁs©ÑÑ>í{‰d<ËGlQÅ&S‡È©r†Ü 3ªª,ÒN�ò‚·V;ÞãB3µ\01&¡Ì¥�¤Q+ ^Îþ’óÌ7}�¶,w5pæ¶   �ŠÌÔ`�±ø�3ÿaÄ?®m8Í�~€ÚC0ëÂ�>@üƒÛoŒq¹ç2†AÒå‘­õ�ºD[P �8µ´7ÊqÚþS‚�ÑEªv{Âï}zCÀUϽv³*ÀZ5gbŒM6I)Ù(f/Æ/¢ø0gîk»EôÞ“¾Ø=æ²ân1—bDŒq(2–ø<œ¡Úò‰v¬x/Yxʯ§Y0‚sDR†@ƒyDäe‡t†DŸM™(´ „œÓL?�Ö…Ú&V÷/83›çå¤lº[Á;«\ûÊ“4Äm ÔÆRâ!ÃFm²¯39-ã0{i-ë„}µ‡ÍÕÔ¤š¶JÝÑœ¡bF„ƒöR�ø ÁµB¨ \^ÏϾBCðVÂzI-ŸˆøÃÀøW€×Jí�N'›õ‹uÄ÷µÍêróžÏïß¿ýÎwî’‚—Àý¥¼Å¯åZ®åû¢L÷Èw‚ÈŽœ.êlΠ0ž‚†ýL�ø0ð­Ktä÷å˜wP¨%ûaDUîÂä÷Ÿºñ¼•Å©8Ƀ‰@_¢m1¶%¹_V§_Þ/NöjeK;2ìLñd`G¤�jT9«*p÷™òÌ5Êpâ[j˜áÔè€ß ·©/Âè�gÊ¢¸Q7é¼/w{·iÙ�Ñ´�Kî©l&ö2ï£Þ¾>”>©/‹bQÌ¢sTIå‹=ß Gº�–-‚�â¸Lˆ3Fm¶ú6ð72ß4À {Óïãh@\',;ÙTcè¯W¨sø4ðåô,~9(ü®g"”à8–J¢™¡2ü1¹UPí¨*v`!’5½ÇPº˜nõ*ŒtZ€­uâΙ(s¿¤nšÉ”1j £µ $E|i$5cç$4EG‘72AÄŽiŠ‚±µÖ¸ lA½Úûv˜Âƒ³np$tÛ Wuìù˃À÷Ft²Út–é,g8l™v…†k3NAÒÖ:çgfúžGå›×³wÔ æº‡80ànÇó¢mCk2Ÿü6)ÿw0å¢èpûÝL8#Û¦æÉåJ‘Ô_æÂ¨œÁ¸ÕRîd¾•T„ÚIë%µ-+è„òƸdº» ÷ ÃÛV�‘ùô(þ½ß�<ÿ#~ø à‡ì&¯½±¨ïªDUqNô‡÷ï?úæ7Ï�áEËÕã~-×òŠ–Ü�*#¹¿¹ù÷¾ë!x@ðt뿪P°þv± Ïwž‰Nhv•K›æŠîæ >4á­¤s6Öj!~°aÙý5i ¿Š#QáÈ[;_²í^=;2 ©oöùÀùqÛ1 ¹16"óÁPÊ—òEÙŸà;¢|äò¢“éìyfTçågÓ@nùS |f4guÿl\ŽnÆF·µdÓ!0J�ê?çd±2ÌÞÈÕç—ìrÑÁ'‘ƒiÎ�ÎÔåIÿñÔa8ÞV2ÿà?ÉéÒVa³ûp è5¶â½ŠŸƒµl™?ñ9虥 gÄY~eö7]Ÿ$yïV´f€�ZPJ+83Ú¯qß\È6ë] ¿e¦s¯¥ŠÌ‰OD3VUœÐHë•O’ »§X e}Õµ%çåβ¾ c“ã!ëNOƒ2lzïÓB¨ƒEâN¡4ár"ì2*@Þ®<�}óT`ϰ<å‚§¾i?žSÃc®�ÌM¾²^M¨â>Å;ï=…ì«¶"–Œ†Së�6{¤Ý[u e€Œ�êØU�b‹uKN ˜. ¤¶1ÂŽûƒ¡ ŸPö À]c9ô>Ï•fgš4¼×Z­;s�Ìœå£Tþn ‘ãK“¾ÃóáF|ø/Güð£t¨s~-;ªªÔ1jö¼4c<úö·ó›ýÁƒË›÷yʸ_˵¼ÚeñK¼HÉ‹É\¿^žvšêä´°‡”<. : Sëòa»ãÙQ~ÚɱŠÚ/øè‚Œi­ªÅ…õrÈÓiE” ‚°n„øÎ� “ÄŠ¯’»x`þøa�ê«l0 »¶y/H�¦wYFÂì`DmrÔ3£6=µªÜºÐ †-R¯!"ÏÌ,�ÀÈ<ÑçÓlËÔ¶8y´À “,wÈ—ƒ|eùÏ �ÉÇŸö.&Ò¹'~YÅ� ULe¾4à<†ðuϬl6ø ðÞf+xJq\žæt?àrzo÷¯‡ýú)à瀩.ÔnP+XœÏ'sQÕÆØß êDŸiª!¬âÊÛ½��â Ìøfp¼d(zðÆgáuq6dû56§5¢`$†píà䬴*ÅjÚv4¨$gpoà`‚Ȱüž»G@.^ªÂ�G�à�·L#‚ %«wz†ÌðƒÕÍ ‚ÚÁÊ«i»×úCAyî 5 (“Ú>Í~¹¨É)´Z1£"â+}~ÕP~hÙ�2Û&Ï„# Ay[.ÐüÌ$Ó]Þ}ý­Ì1ªYº·%s(bÇÅ2}Ë*¨U‘ZN ‚ïÙŠ7_ñµ¢³S³ÑrÀ×%Ò¶­’Eæ�Fü©ˆ?|>«O;@×í~I«jò�!5¶ˆþÎ;ï~ýë·/®º÷Ãþ×r-×òýXôÂ{é5/Ðâ)J }vf\`n÷^O®ÞnÇâª?ׇÕÓìï¡,ï9^ëõ¨uG«Xåt1uÂÎÖÁaÎøË¾µù$¶L·æd9øj@Õs^Å®#•g#Íó”„k Â.ùw‡439]“ª7“ðàn~äd_tk¢Pø ¤ñœÔJ:ƒh;åëý™â͵ˆETƒ\Ž2™nô&¦üs>G@¡�@y¦;ï#¹œçF´ˆï+óïÕUžào6»Ä˜îÄiumk9z¬ÿIàç3OŪ'ä­ß3ÒŸ-Qf7礦t§Ÿ>‰ü4µA<”�s Ð]x±âLÀÚ@§@v±}Üôâ¤$ºáÉhTEgWkÇÖ>F%]Y6¹!öÝäå8éò8iñÜpZ¡sUX~ÜÂþ[æ&ëE›¤ÖP¶e·Ì%ÄV.y!×�8.Sœó¤ð÷8@CslÏo\4x‚<ïÁ@Õ ²Ë`cÎr—¹ø*xz²W û.½ÇexL†™v@{f�$uD¹5A”L�½WR÷žjÙgu¥‡ž \Q™)kJ^�©™jZ=¨™) !Ä\ç“õ ضÈüQà_ŠøKÀÏ@/•Þ§fe¤<ô»Ì™ùèÑ£×_¿ýîwß+v¿zܯåZ^ÕR‹Ëí%<Îa@vwf¬’xH@ÁË¥ÿàý儎.ËÍ,@�þÊ9- ƒðW)±zý½kuÂ!סN�´® Õ�õ’4ðÚV•Êí}kU‡K çAŸƒ¨W‚u«M>ò3 DЉ[œiX¤&0y2ÅÆ9ÁFãr¢–ô*6@ 8E”V•¿E/ïI«Ëæ‰Ü23âD~Ë <}�QQ>]n´óFŸ ac‘yÖ¶Aæc.îòf{µ¦¥ בšù·"Þ|Šmœ†läkw¿�®ôîû¯ƒåÀ/?Î ‰…ç:fÆñ™ó” -}0Fs}b>p(‡f0=âÚÃ!h5 §v Œ‡F-MsŽ©sŒ­Ü̽h­ �©ñ“ø¸Ñ1Óï• ƒ†�,Ø�æÐYÔüØ“ˆ{>A˜eœI¦M°,òÚÆµ ‹·¶/yßµã)ÇrÞ Á�Œ8r]Þts×'ƒbvs‚Ù ’ùŹ\Ó–OsêÒ‹Ï+öѬ¥icñ=—Êv79P PÈœÔMuÖBØf ­Üý­!F õ:Ÿ¥¼ûAûűáÉÅ,ÊðH#Á×.\‡AîÊ´b¡Œ&g¸¬ê&|ħ2ÿhÄ_~©öäºx‡j’ÖgAvßýñ··¾þõ‡o¼Qt&<_¹÷k¹–W·Ä¶mÛ¦§Å xßC~5CÒ¸€ì*:îÌ–Ý¥aWð1ˆó„s½Záì0ê…0úÁNH£¾œ­Å îô·¥>7C·ARïùÂP‰• ŸÖ_(y¹µ8ìòn`7W“Cç ú·õ* é#rKì¥F¥�}J ,@_ ìd¸_n{T:y¿¼[ ã’¤öÕ»¯­fUPí‡é1×”&33Ï™¡tò˜~0{F2pv®Ô³ÉVipªêµ¹Ù6£uAåÿÀÔ:¨W,�og7ƒÙ3’àÀ-ð÷€¯­Xüiïf‡ì~äikñòäéüyfæOeþJæU ÁbŒ1Fç '‘wóù_VŠMÚBlÉD4÷™’õ¢'@?gž%Xfo ¶17¢#92GmqZyÐ{:ƒ¥÷­ÈK™�ñµ †¾¥Ï~´¶GÍʸª¸XàÄ90áEËÉI§Þ£l©äºÅæÍ[¢(Ôš^UØ*?&3ÕÔfC¢¦Ôx— $¾M£Åô‚+me¬V´ö›€U]þçÔÔj�#™0¨;�—kkprNÑ8=*Ï,Öyz�-¯eáreŸŠbÖp.†L�œ;:馀#~¥}|—ö¸P�|Ík[KÞbêÃþ`)N§y�kE¢ìÛj×ö[ ¢]J0ãÁO3ÃT¯Eü³™1â��[Å–¡ÉÐ T «îëRÝí·¾õàõ×ûƒÏéz¿÷k¹–W¸dÞqçÔzÂÞ®ÙÍsåC{‰‹ÏIûz‰[jKìa-¿à „��ŒõäÍ^É2R=Áat\8€U•«"VsBM žÌTÐñm­ÜŸ×¹Êp©d7ö�‡l}Ô¹¸4·v­`Ÿê×N«S {íufƒÑ«½Ë£F:ig%i‰hÜÖj@· ŒR‰Þ#N¤7η[’ѽ/‹�“ŽÏi'ØÛwߎÞTzpìë éd÷Zˆ· ÉÄóÁM©¼ üCà-›Òièðð׋ƒx}~ÆÉ~æ ð+À�™ÇAï;È6JµdQÀë'ãþr ¦‡uÃL»^Ñ}kUâæÂa[áìr¥ËÖ-g0ÝØû`Ь#Áü0µ¾0c-2³øô¾­µyCÐs!!4cÇHßMQ2kÅœ9à`áZ0\8{/÷éä|Sà�ÖÕ¼vŒý/£�'Lcö�£‘“Ö:dWÀLÒ VRWé’2ï*&5…ÑIb)K wqJöº±¹"–LtK Ü2‹mÒˆÅ!º6§Ç¾2(ÛÔj ±™¾šµó´Rœ8åõ­¤U"EÆìî:±`PˆpÕ{…ÛŠ&´§u7_>dâÚ›%ÖãS ö7cÙ%jZ;÷Zû™ø¯Ñ�.\žâÛhåùèý;ßyøÍoÞ¾óÎó`÷— Üy³íÿ>jåRÂ�‚œIð‘Ä�‚ pyÿ&çÓ+Œ»w`%¡$VšõÓŠ@ÏX!¯Cp–:œìÿÔ¨‡“ +ÔwH)\r!i�à°3Çš"Fîsî:t«†eÓŒ–°ªÊ•`ÞÓeÂL—ƒØIj3×û°|ê}uuK�ÍÜö—JP»å D�³N×¾ 3H±]³Ç´u ¦�AX#Ã)™FP]>doÔUsÇ9}«Õ¨E�™Ï±[åÙÆbï]¥Ê!HÚhSm„D(7°¾‚ä0N¾ ü R¾9àöÀÓjNÎu“å’Ë7½ƒûÝW üðÅÌ{$4w9zKªÑ¯ì™e™0CyR?žêvaÁßêì$#qyŒO-úKi©üܵOSc�•ŸÕÊFkƒ(°B*+N@+O}5G?ÿFœ©Û�Ó…ühƒÍù$ æ"¬Ü‚ñ¥0±7ÀÙž<ž¼—7v0I¨ +bÄ"˜å\åH·ÊjÁ��¬ý)WƒÿÀ9V¹q'IQŒm'ë©ÏTøÄÍÕßÑ»°l Dˆ?£J”hÅ*¶8ƒJ‹¹m“Æt(QþÌ�«ƒØ·g†,–J’ãó_z%¨1ëzöΪ¶*`wG˜$»9¡�¶›*äƒ(!-7|­ò7­ý,ð›ÀŸ~È+ÇžLÆ­ŸQ^¦È>üÆ7¿ù渽½4ѽ´÷½÷•÷÷Pž†r^¬/.<}þ3? {9j¯€þPʇ¤[Oeõ¥®<¯no�Ý0P®’ëgpqqΰ¯— JbMá³úÐ nJIè_Ã�°€H°ª\)éF ÷0È©ç*‰|ÌzåKBýZ'{úKOsÄÐfo€žlU«"a¼/Òp[Ï«M"[Bä�©dN›š@‚;kØd>E4àÄbeì¸u[ص�Y®µ³‘ª»õ½*ìÁ <"TýV+ÜбÙånõ)'÷äycßz³Â^»Òç�‘tÆÏÚè„þ»À}3 Žh‰T&.|¦§-YôÙ1�Fêç2?gX�ìYž?áõÌ2990Zê©_ƒjÙ¡:¯ÓÂÿD<¨J¢9¬­"™4 {×¢M – €‚3;””SÞô1ÊgŸëüW"þBħmÚ4æ/R¯#¢ò¾ËÜÒ™û+ø|~|ÿþ£7Þ>ÕõžyÚQÚ³qÃá×»#òç„)‡†žqÕÓDz)’?­Ý»‹÷RŠ·ûl‘žSKϸäÅî—?§fîŽkŸÑÐûš_L{‡òÒoó@ܸç…ã9/þ>ñª°s.ýâþÞ ûµÙÃZkýÇÊ<�q`ëK1íª°¢=ØÎù–ßו8ìÉ)SA?ÉÌWá0¸[w:»ì¤ö°†y ±ž€Õ,ÁÊWQ‹azÐiÓ ÆÝˆß�'¾ù*›ÛÑŸH/ÿt[»s¢$qh…ðn#I ÕSÆN€bÁCû·g¢’?²æÚáåŒgª™no«&a‚ÁÑ ‡@þ× ¸%õüˆ )þ.ð·�wUaá¹gï£Ì·ûÓŽ;L?œ¬ƒ-âðsÀ'È„Ìé)*ù¼×jyÄœˆå�Þ€ÛÌ›ˆ>F-Ä àvŒòŽ7;žE¶¦×¹z5ʯ?ÆÖÚ™„ó$lÐÇbØfI=¢Ø/Y¡5sZÓ-\˜ôɬ¨:E4Å„ªIÌmtAƒA3Ì/®HLÒK¦?vJÈi Æ$äl™·L3ÚbÏ£R÷H´Ö‚9 ¢Éƒ[³…É¿G&¶­¬Í¡ÙU×*ì’cfå_FŸ 9Õr�‚+`¡:øqÙÓ©nä¤<ú¥#!ì#jOÙÞˆ2K84…ãçÚ&Á´†eÞ\²Z¹ö5˧ PVßìaêªýùœYÓ¬¢ÉG!fšpûÝÄv糫¼æô�—6åõ�Z@¨ ›óÛ-ÁýÆ„E?:Æ>ño_‹RÒØ6¥eÚ«�ˆÆ%¿£“Y#‘yþÎwÆÃ‡¯}ö³íão§.Ê˦Ê\˵\Ë÷Q‰¸#ǽŠoq Žõbx¢û<ˆkF_aß*ZPnvy¡gO·â(VŸ]0÷i^`òå éú ÃlïÅ¥“Dîö°ÓöÜv¤±kRWÚÎJ°z†Ù ¾¾!bŒª¥Rße¨¸baªÓêÖÓ`p-3Ï ìtªS �¶�Ä­“l‰ŠÐ_.Ž;>“£NåüXæï>Æ­@eÌP ÞcÊüôI†ÌÔFÄ ì FÀ>™*ǧ– ËÇ3ÂC5¦Ÿ`Œ¤œgš‚ÌðÙ1zZ+ürgž9»´RŒ�®ØDkÚ“Þ’³kª”—7í{¥u.¤p'sÆg…JgµyºB7!uÕ r�‚–†F3"�r‰]á³2ﵫQÝJÍ´ Õdù~†læ&ƒ¥s¼æ“ábæíV=Í­Á:wwûé”™³iÒÇw÷|îQã(KIªÎÌZ!‰I’Ñm[= ÍgG¨Ï�†Y5SƘ6ªH 83&›»‚p ÷¦ÔÎÜ2{[*Ü‚*ÂŒ þ$ÍÕ…?ñŸþJÄÏó¦ÞÅ,ödÄj� @UZÍ1úÇï~ík�îß??ztùdØ~þüðNÀêü¸–k¹–ìï¼ùæ·¿þu­Ê]>#¾giÀ§�ß—yc 0Ö0Äyð‚è™#hØìœ¶;7`Õ¦‘ItÆE;(dý^ì̈÷^øÙ5è”Ww†hÐ’ÃDr)ã¡]�&üeµÒ-X¡Û i™.·õd9þ]-—ªqœnx!ºÁœPŽó³éd3‘ÏOÓ|£½Ë¨½™ r.q…7‚N½ª£Rãåž®¤ÄK¦Šß}ð…u˜ÄFõœ"iB:Ä[øðoÿæú­«Ö·¿^Þ0hë%ºððáð@‹øOÿLÄ'ÅPªè.ÕnÄ1¾ µ³c,fÑiÖ–þ&êÁ¿7+ õšŽÿÓ�4zß§³<¢Vc@d¶·(_~kƒÔ”´ûKÊ—VggpEN:B]õ*¡û|ÎTkÔèèMÎ�ŠÈ<¤ÎÔòËÍR/�–Íï#ñ:làçåÚ3H?qZN#\zNQ°Bø³QÓÅÖdô ­Uè­Ê´0•ŸHl�iÓZšEês.�Ø6ŒÌ­ ݤDäàüÑ4­áói‚’èòyD(õdÑ¥À crÛó3™þ²�Ɔ°2՚ƠOIBË—/)NéÒ�ÎtÍpüð3ß^/Æ¢Ze\®¿ùsÞÜãÇçwßmmÛж¸7îb?OÎrZÂÍIÂ}‹’„{èù\[ŸöŽmƒ1 !H!ª�5fÀî>eKÛ•¦Æ'@sB…ñÃijB ŽøÅ�ñ«ÑgQ‰ÒyD>l‡¹ž}2íi8¬Â4W±–ºU½GÃR(°þX•à²y � 7ãbK&·¼ƒölyAç j@ ø¼Ô¬ t » u„I‹ºp6Òd¦‹ ÆbJ÷“±Pž»“Y¡JÓ#Ô"é ©¼„6·ƒ�H/ÝìÄ©2äEc¦v]®•©‘y›¹i™øvæñëÝçgõKü­#þwŨ†!.J~øà3—Î>IÊ«ÒÊ3S[J…i©`G³¥ÿ®,õÜ…j§¦(ŸP‰Rò+Ì@†Pu¬ÓÁ¼{� AÖçÖ¤™ ˜®@Às„r‰jzØÙ×2‹l#'hõWü�ŠjÝ9ë­Mû¶µ™•Ÿ™(wUçÌÏÓ€™ÏdŒ.º¹²âÄÌÿ=Æ(†ÒÆ»f‡lÄpA¯­nði<{"”Òg�¨ {@Ïi@RoƒýÕ¾¤½˜è/�o¢ra�10†ö¨"s>ÃS²ÈQUIïUa2�4.ŒÒ�äcÈ6‹vOvg2™åÖ#íGÏŠ½†ÚcM3Gw˜s]Esrw´ƒ¶ï;=Àç’¬ØJ…?ê†?E|ø7€?•ùÚ(Ë¢(2 ¯§M³0÷|¬,Œ‘o¿ýðßèï¼3˜_õZ®åZ^ÝÒl©ô…Ë-=î^Òp|®8¬ñÒ\›EZ¨TO¹Ò½½1ìÜ©,šo[ýî< Tm‚¹n'\¢v]Õ�ר®³PnW V[¬�f·¼ïÛ…Òô“¶¼qj‡Û6ÍN†‡¾¸%³G/ïèse|ÈWT_ëÕÏ×ó�ªD:·Ê5…¶ QEÚ8]»ù›5[™7ô�‘:và´è:"¬JºÁ”ƾ4ÂÜ$+ ©�<þ)ð÷ܦºðšƒ*’<‡Ï—]/xn[”þSfÞŒñ«À'�ȼ�I X÷‰*Q:�»êÑ–=@ýÚ8…šBH‘×¢Af2±LæÌ^�†¡aª³j9…:×öUµ ‹R-O*lÝ£ÙiŒbŠÒQjJŸ�ì½€ø`ŒÎ¼æ%LÔnYe`T cœ1Ó¹Ô õ`i&'€¬Í\ydT—ÉÚrÀ7k1³CFDÇtKë9 |”ÉÔp¦uÕCo½P^dŠá­¡÷L…²7v'qáEØF°½�JDoýœ$š™ÅTÑ~®d³€3p˜Ü9 †i–dj]†¸×²¦.VŸQ ƒ>{Îϲµ “D4ÉEÔØî#o �ùÇ{i‡ÝT`¨aÎÕf&eÊA ”ï¨]]àÓÒ{f?ü7€¿ÐÚçª ²ÚE5Brí�½>k‹gi&"zïýÝw|ã�ÞxcÜÞ^�ûµ\Ë«[h›/ϾHI¢öÃÓd> Íÿ�Ý*v� �»PµW¥3Ó̃ƿŽh«<�©2ì3VóCþuµ"dßVXöW­të©[, ìN*MN}¯Ó�¿Ö»ãö†Np�b[wèFX/XüP{ëHx7ºÜÊ î©®‘J[R¯Ïþê,®Ñ-©Gʃv”«QRí°ŒLúr¯Ú:î«Î·t'Ÿ0éÑ»Zè)LÛTU¾äàfUû|ÐF6ÌŸ¸�ɘ×X—ûð�oÚ«‰ôWõùòtMX ›¹÷òc?ÉÓJ˜d›aÍœí¶OAÆAa¹OdFïáƒ=¢Kþ„ªƒye@�§casŒaxW­ËÒÃ…_JÔV—Ì[šaºÑ‚¾óÖZ¶Ö«‰ˆãDMuN邼[azÚu �Q ÝËf›¶SíäªË13ºòÊrÞW=™3·UD¶6¤œÒ6‰1Jb3ä,ç ¬µ�`4dutCiµÖÐ{J挴Ýáû¤2[±:5Ó¹æL:­Ç4¹&4t5 »5ILRw¹É'�¹‡—l0\¼7€æÌr›—Ë9üÉÛ6ñtÕ/,N�;0;~Òäņ¹vP¡È¨�f&Í'y[{£��!'à3øË­ý‚œú´½½§²Õ´Ö¶mSª·ú¬N£÷ó[o=úæ7¯ÀýZ®åÕ-ÑÚéÞ½íΉe�.°¸ò‹Õ)®g·<ß0�q@¥i‡êrß¼#æ #Ù\\Àå°Úd$8=FNßnuΡSn¸(\íÖ•ÇÚ®T*¿0L¬§^ªé³5׬Å$„µR|�3pÃþj§ÕänDõ b²Ôû’¯m9”¶ˆSN‰›^AI6›!;.䯾8°Ñ÷yæÛ7ìüN§þ¬*â,BHAϲ:‘F0ço¨×å+•ÎIŒÀ‰ ¶.¼¥-ñmàËÀ-Ža©Ë  ‹cÅñ°·»9íÈôù§€OP¥…0Î](*Svu¹·¥ÐÄ[ƒ¸¿NîDrnæ "x¹ ëªFW%€ãœ9}‰dr íôÔZ#vŸ€´“J!:ñṅåÀn¶ñ­ü¸InFõeç Ô¥äëóÞaÎõbŒ­(øÉ̓2×%¦¤˜ž`1Ô•5¨U²üÇžPvüÖ²üâ$£Ïá+|LÍį¬¾Ï¦ qvη–LhC“©›íä{åVÿÁÕ°Òm)YFBhé ¦:;8çŒñ[BÖ£î&âݲµÜ6l[púî�5œÌA}¢�èn� Ásßt�„Öj¹Cl–:¡,½=ØšF`É<:× C·’¤jm_v�Ì>íuÃòé1(ôÀ�h? ü‘Ì¿ñk™'qÝÚ‚ìåw‰y¨ôµF³¿óθ_˵¼Òåts³ÝÜܱ’G$d;¶>VBo°¿ÂÙ:_¯ •C [0À‡•@¯§ª<îNòÆŠÃêÐqîM€±¯�¤*a×úâ€ÖUn�8�=hOÜ’ƒÂ¥O—G¦‹_Ök÷ôo¾WŽ�ß9Ћù«!5Úøv¦»:VëBf‰¼þ‡3ålKb—-¢à»FÛjit½h ®%í‡ùžcÐ'·ÙjˆÔqάPÚ�^ä$´‚šˆ„¾|•€8/ °c ºPtîPž$”ô_qQ"bËü©Ì�1´ ÊÆ`S1†+ýe¹Æ‡Aÿ0ð7}¨å“ ‚¡Z¥Â¬H_Ù–â´Ðc]ã^; .û4Bá.$Ý{©®”¬�´�É�ôAÜ&H”¹ZlÍkëÊ­"_#jydçÓ—¯=³÷Þœ:¸pÔ8dòM�Ù½úhE¯ f­©RvBYÅ“ï$ÓM šL©ÉÌ�Ø;˜ÌX/�æÿœ:Î 4»Y`·µÎOqþÎöî(6fŽòµƒ†zF/òU ïò*ÈO_†\àO\SªƒÊ SÜÎ .a2S„OƒÅþ<œRá(Gdpƒl¬·¤ß¨I["yp2"ìA¤vñ‰ˆ_þjkÿjÄkëâ g¨×¾×WÑÜO§“~J±§®åZ®åU,™ÑÚéÎÀý <²G³ ›sKœ—CÀal=jååuäêÑŠO´ô=_T¨ ÃÎÔUîà?ˆÚVE¬€^x½Û%’YMøsÖOsÛë´\ÛÞ´$tí]¢¹æ®­Œ5¤ r7µ¤§¹0ŠdQtÓFe€AÛF’‰Ô¥"Õ5Ú{�r&V¢ðõá¦Ü± IlôŠu«|ÎÃÜDBê‹¿ëmÙ€sf·uÊtQ×*}d2§^ÕV ¯ß0@¬—ñâ<²^Þ‡ 'ƒà“ÀO¯ÉQ ÅÖÅ0ŒeBÞºS’‰\ÐZ'RfóÀqs™´fIô^è|/J™êE§ÒnIɈ16i8B<«0ßv”i�´ �M¡pú†‡—0:×)4ÞÅï2++j“�ˆ ¬HÐ=CQDã 8ú£ÒˈñB¥M*�*‘ß–yâ ˹2@ô?%cn4F%”Š’ÞåZ¨V*$tV3gN²r’{ ³�E“³W=Úži6D /B¼n‡Æ¾W4eaè�mK¡sÚ'©e÷[Ïy9×ddBÐŽªñ�ñš¤1É!(\ˬɀIènœ&™°»¦„� òí€ñ£S•Ç*Ô À=à‹ÀŸþ[Ÿá§v\¢­"-µu âð4K“-×r-¯\É"ÕÝÜ /PÏcóÃ^–ÂLÄuÚ�¿Ç^®X¹(—jK°rñmØ%Äì¬FŠcâN(éä�K8îv¬�¸øUmy„h'rNÒ´$ùsÓ2lò7å´6ÓÂ{ "uß0¾~ v6¼æ0aÒF¡^/@Ä«V÷q$“�ÊÐ’ÆÑoJ bŸ3ÉÜ2 ù‰®°­T™­(‡ñÚ_Ù˦9h[æÙ¸¥xaÒ]¡‚äåËïÀw#þ!ð¶«Â0ú‚Eøõ‰ˆ\ Ï,Iù/ðcÀ=JXé_‰4ˆúzÞ/ƉÆíÙˆÕ@d,Æý<¹ÒwrrÓ ÄOŽÎ 4„H‚z9/j¶\šÜ) �²VÕê×ÁÝ‘ŠéQòžËóM`—Ì1Zf@2‹ÈÞÊàD-›í”ybÍ›GsþÌùYl¢šê…³Ÿ]ÚKöZ³W¶c#È.°\ïq–wÖ<ëQx±øJçU*º¹(a’/1¹-"Z‹mkL“_½}Æ'Ì0Íž)³!=Lv�ÊS6f¤QlhE Ô†MÉ‘R/3ÙKº•h=õFææe<Ò¸2 ÒüèÔ/]ÕB�¶Â5Û`¿  Ëy?†ÎÌý¾©‹f@Z«äBOÖ¦û€>ü�¿ñ¥JuåyÙé}OÂú¹'+!~2ÉÌÒM¬]˵\Ë+Ré _¬ðV/Tz |›‹0÷6ì´X¯òó’Öå'“G•”$çàžª ‚ZÅTQ–Œ‚¿L÷žòÙc:k;ÕN$åT™eCntU_šL(„™ü1È�iÌ>�BmVê’άás0Ï9¢—­¢°ÑÒg×¹ã”Qѹî%oq�WY8–~ІƒåÒYõå㯠[™�ñÓ*(iÉejæZFõQ91TÆÌ1jÌÝŽŠ´>:À·ƒ8îš²5’è\V¢>O+¢úÅÕÍgfî3ßg;‰ãºª‘*nL+¨�dËdm%‹¹|4è_£º¯4O@h<¹|nÛòÎb�Lƒwt5Óx;Ÿ"> ü Àÿ0â�g~ ˆˆmMqÉ€¿<ˆõ-óJ®ÿžöÓó×ðŒ ¯å½–ï/e~Iûìò<ùPú@«ÈÔõ¹ðžJÚ ß.N7ç!õÃ}y~\Ør‚®5Ä…åXÊ•¡¡†’’ìêB½ÒÔÍf½hvmZuØÖîkx·"\]ºÐeƒAR‰¶4¡7®¿VQL×’pŒ$k—ˆ}îÃ1�—Å5úågú® LœµËÒ*Õ¥-�‹qo¶ßªô0"N@£?ò–ð=LÎ9µ8Pül.…GÄ̳ÑZ¯M…œw¶Ë¨�O’˜æLû¤¶æ)îø›'ó›uÕêhþ¾Äñ—Ÿ“¨ëi•|øbæ=MßÒWÕ›°ÕëS@W:&ÃnrsÚ Ü’È^’…µèÒ–¬³ûuŽ9�Ï¥vY'5ÆØ*�:°XþK¶»U'B*©˜Þ1Ý™]K™…°3ãÊ$Sõ®(UÑ22¢Ü®g]¥´|cô:‹KÁLð�ÞîrWÔC »OGLô2?ÉÕ©1‚Âi Ú¦3vòãËÅž¹ÕmEt˜Ä”2o œz°$CeÔafÑå3™ FK?T,H˜©1=¾,hÖ–Ø`â—Ë%bºÆëL›«Ç¦ˆÝ*³ÅŸúÞZ›„ûÚÀšO�mÛwø*eÒîRU³U"Hš—ö’©fF%ñ”öx7 2ý\¡HuçÃ6iêmÀ=à€øsÀçK“,ìû ÖsžFD´vÌûþ•gà’g£†�8’{NìõrO{áòWæF9¨÷=ƒâ»µû½Ç7¢m[»sV¬pPGôŠJsQëàXñY•VÑ#2ír\;𪬬~ü �K׸pöX1¥ê”ðmµ”ÆÄ±~Ñ'n×kaÝÇŠŸsc¬Bnk ;ÖÓD:‚‰'Àµ—„æBÛÝ~‚Q†æ…$„dך» È1˜®»ˆr$@‡“wÊG°™±ä€Ò=ß}U;€bYhW¦SD5(Lís@-“ô°Å„¢|ô1:Ss46W§m|ý+a#ó’ÇŒÆ$øòÂÑl5öË.ªÎ—³ ³v<�A±½ƒ6X™ Ðó6œŸA«À½A£bhtøw”BÍÌé±nz Tî›v~ß>ñ'�ÿ~æaF;q8‚—bšíMvº|H<ñ5ÿ Àq8ÿg> »?Í<í×çGÿO;ó§=g Ï.wl7ÖŸ^ºxÏYÃûª¥ç¯üÊÝgÈ3Äxö´Z…Ï©¢÷{f›SÀÍŠvüqôüD9V±›ùwýÌKtç~FBc~�è•s^Ýá°RøµŠÛ ‚¹©aÍée_unV›§[qÜÙ.úè•oÖ"¬‰´,„Ó“æƒp†wÐ=ÙxR[ê¬ÖvQ"áˆ|R5o<>3·dnÀ-7ì¤LsazdVähÑè+!Æþ¶³ ÙÞñ0±­¯Æîß\dÅñt—›ÊÂÜÐ Û@´a²xÕAÐ9G4æÕ¹)«¬€)!—X([k•˜ïñ;À?RfÃÕãÎî>”Ï#º\uN‡cæOD¼FÓhPQ#³`ôÌžY°5BDð[¢âÇÛvC�Qét=‹{’PZknÉÜjògvÒµçT±ƹl‘$ÛÜㄹÕHõ±µÑ{9D�™g SØ´¶Ê„’µSMrÞoÅH©ÐɈ³ŒaDû´mµ‹Sù9·â¾7ZÊL"o”œ9ײ–,x;dA Ü™6 »•Uþ좉+ ƒ(SnõJÕâ.üéÑ·™1 ‘‹( ‡äà«­Ù²©Qåê)ðªH\g†p£¥äTQÆw`•·$Ô%›€è4˜Œ©°¾\Þ{‹zž3S$È^ƒÃi)P¹ª´lȆ4�§[kc “Õ—ˆ¹€�{žx­Ý�ˆ<8ç:ƒ=eu$-´Oÿ|k_þ½Ì¿žùíÖÂ"ViMïâFì¹Uïêq6îÏõß 7ñÄÏÉÝO{¹åí¾�½Üò¾Jûü•¿À4x±vŸ}æ?4ïÇ ÙkàÓAo”+ƒÁ©; 0‚G®À]à2ùUï˸€øNê8 [‡¤ñ”Kœ¼�õ4�X•Ì—.óÏB–êé°ãj´™êC_a¥$OkkÆ•°:aý+f˜0±s=‚uæh"ÉÁ,d²=eÇÖâ'bâ‚t³­œÄ‰ÈÜ2çÖNtL 8Ö‚é>LBÞrùSÈew\>”2Ì&+¦²¯ÈÈ)/2q�¦eóL‘”_–À Ð"¾ü}à ì+Ú`…în?|~š'þiÀ]kèõ53?ü¸èÎf_eæ™j*]¦®Õt=Ó;ïÄ ú£S>Åœ2´Ì>Fg˜`¨'›Së1F%CT´†°­²àgÞ–uA§~(/G…ý ãª;˜±¤ºÙ ã4N KÎ<*•¬}Ó¨^%Ï™Sðž¼üª¶½ Tå7Œ¨$ô ûÙ§èûJP#Ú YæõÔ�^aƒhûsƒÓ&ig*‚¶¦œl3Ð>§Vf²þŽ1Ó›fÎÈ×»JÌÂHÍÚZ«™W»‚V5ÄI['ïú¤HšÛ“Ñ^'çÜñT#È©V’AÆIµ2ñn€`¤„Ú]øDÏÄ—ä­ekµ›"f€DíGV—Ð�(ûd*³†¬µÈ¬à]©}“-ÙIÈÙ‡o¹±I°Ñ‚Æœ01Ã0^~ø¯Eüµˆ?¼fl‡ï Å¥¿Ï Üß|yÚ¯O»ðÂDÏ(5yå#¨±«_]#×…ˆA%Ì8Âd2M`ß ëMn,Ú0·þÉ•S^š¤+Ömn$&ãyÂ8¢º lµµ*Õ›@Œ¡Œãuá&De€^c75(¯6�à0ë´qVHRÏK�µ±+hç4L�ïôÅ–£Ô aÒŠÕdŒQÄ÷äþS¸áK4L®¢Èð)ø ÷dråׯTâaÙxDÿHÌàÈÁD7(º-ê …&Â}UQ»ÏÎ=ª0—5ªÎY-m˜Í_ú¬]¥ÀP�eS¼Ò•º,¿xF4î«%C7ì` ¡�Q«~9¹E_1Wô~¤²³åê.÷5$†F°°-�“y¶AîJJV¹ƒuÙA=ÌFšÊ±…-Œ€·ê=àg"þlÄøY[rñMšh@͹z-×r-¯j‰h­m§Óó{Ù½8¶x;âV+¡Dx^©cnáì' µú­×&kˆÝ^~ðÚ:?øãÒ‘ºg,Ñ…‹Å|ä¹ÖïàrØ ‹ÝNð˱ŽZ«Z$­~U jh3°{~’„OkÚÛjöUQªª_«cí¯`b£X¸[ÓaO'Ù‚HNRiDÒ"qO6Ò‚ü¹ñ@/¬R‹œÈgMãÿˆˆMDŽÚ‡5eód6»=;§[€žÈZ*ú:ð]VkÏ�Ýõ9 =øç'žàðSÀç„V¥íj=³•Û{Œ.h[H% ¦,_9{f�è Ã-s(ËsOÀ6|•%½\Ô¢•ÏùÃífI&� �ÄŒNÿ÷d_Yǘ¾ÿsÌÝéw7°º àQúÂçL˹¿°à„V¹G@Ö8N0=F€&1´Œ“� ÊÜ2£Œ5YÚ›ù°SÚ—šsµ:;ìö)¶˜|©¶Í*F3”ɱ&!99Iû§�¡Už Û¨¯Á48ÉɼïÐDª tƒXKŒi9D„'¾4>$¤Ý#{hòšª_À:ˆFg‹€r£,4Õ'¸çð¥U•F›sÂ�¾nBKý^:™¦…QMù<Á·‘JضMÊ2Iã ­e¶-[ÛÓƒš]!ƒ!a~ :Ô§1†™¨úþyà¿ü[ÀÍ|-bÛ6Çî^®ÀýZ®å•.ÑÚÍÇ>ÏÍš{Zy x`LùÝvxºÊ�Bƒ'�#/P5_V¾¿NìëÁùêçÙ×ùÝZ‘—Wä™ÝKdÈ2Lª¶ö®|WG&Uà‚jï ÙÖKÒê‡iFÂ;¾›Æz•@°÷·­Z…QkòBŸÂßBù]ðh@H<½Ì¦ê ¸qúœ‘å ¿¾(ïí¢w$êÆFågĪ®ƒñ“Ä)輈Ý3ZoÙF`ä¡$$Ùìuàm_Ç:X÷r‰ìåQÓß'^RåÀÏ'êÚ€³¶ódOC¡“Åu)þº”ÏUþζc]d(™BT2%jÏ© s& ÓÈ;›œűébŒXPr um'úœ'ÄçW©·ö�D»gÌ+èçZA³.×É[e”ç†SQÎx쑸 l½ƒÆIÅ –Aâ�©ºÌ›ÆPÔ¤]4�¬'Ê­+O-‰Lh¨»€Â7-”¼Ûç™CfŒA|%´©JF„¶4.°LÜ ²¬¹NÄb”ƒ£#oqçX¤t++…Ô&™ngײ4î󜘹_¤ëhyǪ‡ÚJù²j¶mŽHí…ÄÕˆŽßZmãZœ{¨Ódu„j«æ¶ SP<±çw5ÊÙ¯ÌEâØ”æ«Ë™¢ÍÌþF4àcÀï‹øMà×mi+Çz_¼§Ç͵\˵ü •×>þñ»g†}xgå èIw@"¹ºÞ‡ýÍõ´´ŸtÄѤ#ÑCI{8ê´4tèÍ û,˜¨K1��ÝV4¬î<ñïX[ô0Ða;f¢\j£­2(s¥‹wæ*ùvÁö>óªö¤Å Q–‡¼€9Ó¥Ìè°’¦»Í žn#™�Fæ�/€ÌÄ>™œˆÝ›�T³ ÌvR»£vÌÞÂ(2'ž¶ˆôðÛÀ#{{:"�Áxñ@ ´úm�ïeÿüà÷ˆ8—{Ø m�ZÞt¥Ë¤Ëƒ¨w�n¡ŒæÝZl„òI µk£rŠcºT‘堸۪ŮßÉD’‹r:éÍmŸ”Í­_•A,(šr¢U—‰Y¹kD¶æå…ò'™!33·1añŒÓ(¬Æ8Î’jZ &±o ƒ¨qY qÚïÜ!Åt²Îù$©ü’™s¡FŸÄ÷(ikK¦Ö‚é5糨µ�ÀW{U2ÇJï“Ú§3g¼A]šÃôÌG‘gFEvV7Ç( ›Ü­vެÌKÎðaS´16ZML,Kc`§NqžÌp^2ŸdZDøÔŸz#®U’ÇR~¹Ì�ågÓÈĶ�ý³rF“O�»¶B¿ªkbØÛ«S° cUÎÝÂ|¥Î—N¥Ùal€É3ku+€×€/Dü×�ÿq&N§’M‹ 3å;®åZ®åÕ.7¯½ÖN§ï}Þ3Ë-ðŽALG“ia /Ö¯Îlv xÀ÷—uæú“› ‚wN’r�•*£&ÜÅ΋Ó/Q¡îϤ>ȉ¾™W[ÂTw„Œ‹iUÉù­Ÿ†]"MŽ ó)MTU~Z •±~® OìÈyUÅ ÈÐOÙ'ôÒy.—0yÔý3kÛ,æX·ˆÚQ íÃ*½àmfçÞŸƒ]6î#bËìtL–—t|dD…ÂåŠC†Œ x�0§]•~mcκÃSôŒÌÈ<tFi‰Ç–a!° à–nr0½LÐ*Mƒ'³€¬¶ï©8Ô‘©¬äD‡iIK z.ú,üGßsͱHZ¶DDÇÌ]#¦~m} ÝË%ÌEæé$4Ï™L6ˆœ’ô†`†–{Þ†e”Z¾v˜ †Ì`hDÉßJie·Ð;$ ’¬D«1ž Ç(çñÐ`yÜ«ã½O£ÎζÁêðÛ3÷ÈQm7†äÖ4f×ò‚ðk2Ì\@È®«dû Ç—ßX)_´ÔBX�î�ñº%hvq¶„NQöI„b[çä/šPÍv¦P š%p±‰vëŽ+0³»�ŠS·eÈæ!úñEYO߃DÐ&,Qg*.õ b‹øà_ÌüŸôþÇMuz>\�ûµ\Ë«^N÷î�nnöë{/õâ|´†?�"žô·ÊÁí-Tí?9W�Ã>×ñ~q•ÞÄ–‹ ¿­Ñ«÷‡3%˜ÛƒÏlE¿âlAt‘�s¢A�$g*tY‰ó–ܶ¡°�Üã>ý‘]¯¼µÒy�ºÖ3<]Lê9À#ÒÄÌ&T÷!£NK1ôñµÎ Á!Œù#»Ežxº�>ñËÀŸ~PúËmÛ°.¢UðòKæ“ÿ=û´÷ZÛ÷¬ÿyjø–÷U»WþÒÅ{±A¼{åÏ9+ÞWñ^¬’=m;�N÷î= 7<¯ŒÀÛô¿€¸�™—Xz¯M€#V†‰#ïÍ|Ì wV R~noú€ž]\<(ƒõ뎠¶«>»¨}­6ÙëahURRj:J–= Á¤7­*4Ú›qôÃÞ¸®ÀfO³=ÇÃ.×plš»a÷mÕäà?…«Î×vµR\dš5 *nºt«¶Yޛͺ Ãa ûŽ­2·ÂF|ê6s£÷1"æ64äIë9ÑÙïÛ²Vº’73ÿFqxôz~Êk4õª–2W䡞ˆÔý`? |zúèRv0 'Ö!ÖˆŸ“¤s¦À™æSýk”a°ûÇÿ§.éŠ4S°rÖ©'–ŒlîÉ œ+› #È Cùã#δýf§ LWC?0¬ü0€^ÎcÅpóòÙ5ê Y 2cŒ[tʬ*¨7�ë]ðŽäÝìI3`ê''»Z:¸¤S€{æÏÔ“ºÆHæºq—Át“sÄÇåol:ëÎÒÓšNÄÖÚPBwLÌ®[LG22Ë(J΀ä2Hõ…é1³ÓÌpÚ„üÊ4œf�ò¬×„\q?¨ÛÝñ/K‰÷uúÐhŽÕ¬ )X¢f't®æèM˜?>'û|¬#U£S¾ÿiÏXwvÁ4¬6áå‰×ÀíyèÍ I…¹ìpñãÿZæÿ€^ù,¶ .ËKÄ@‡"½'ˆpw,ø4ñî†T¾GCï+Î~~Þ× ?”~ÀåÅ&í/�øÐfÅÓKD´m»yí5Áˆ÷„àýäoGOÚŸYû™ë…¢y86ÕU¹^ëµ � šËú¦ò¯‡!x½ur%¦rµÓäÙ¡ÌJJ�½>ÕÖ-¥|Lj—äBW›µ¸V–6ââCÚ¿aJ¬¼±i§€ëƒk@Îø±6$íé w˜¡¢¶ÒšV…zqŠ/ÊÓ�Q¢ÖŠðÛ:2ÆÜNkfœ¨û¥ÀÛjŽ êl#›HiNŠHDd&+?k¥O9G\èÈñO‰õý^xغiú{(|&óò1ð5cík¦e&)@€C’»˜ÌæÌ<KØbõÊ&¬ŽÕòÔVvŽÔHdzb†Ñ9 ëÂ|Ò�µC(ÜRŒÏsȦØ»dç@#–à2®|ŽÇÐ!}_4à 3Tú|®ÈÑŒ8‘tÅ5�ˆÞKÈ�1Kumwü‹ù=�‰(°œ˜ [&æœñ‡hl@Ö•=3bÊÃÝgEÑÓmGØÈl½ƒwâF¸\”Ï^Ã'UúSbÄ̸:°•¹¥áOlm ¹ €j7¶mÖ6FÈé.;-I´6÷|½Àuh† ›EWYÏ÷ ìŸrüï&%1tp¦MÉÔϬ‰çfÛ¾"QÀ3çæŽûÙt[_‹ÁyÛÊ«ÒTèï â-óÇ#þe }úÓyï^�ÈéYèÁ:¼ËŸó*/Ï@"‚q©\Œëû3Ê3*|±ÊŸóÌ»KûA¶ëå¥O˜›ê/Pƒ—çÁÏÙ©»ß‰e;�î}ìck#q|h>Gù6ðØ÷Ú :MY¸ÙÃòn¦yXa•¤8!H¬•„aÖ“¯*º\§õ5û¡CØ04¬¾¨œVðzX>õ¶v§Ûg‡×°ó]NïW³3Ï+HY%CØ_uGz\tJãâ_Ï–G5»0ÃŒý­#£wnLÊÑÈ7nË�Ú;L9š?ž&²°xƒjXÅÛ™šÉ¼ñØÜŸ=óÄW/ôR7…ψœIïv娭·3ÿqă•s¢G&±Øúz0•/!H�¦€ãç#ndŽˆ­,š dxƒ<�ÚœHêªIØ#Næ/ì„&r:È1²µÚP¶Œ±IÉ,ùä>½m£ ?ÕÓD9³O­ÄßÊH`âð(Ú pqS2Wˆ$±{’Ð,#\JncTV>!ª$ª Ö'A^«8¦è¢è(²óiPžõÊ“X6ÌsnT6ÉÖR:“©jrGc‰””Å#/ª}²µä¶¦Ó©ü•œ3£`hk�xT33hÿÀýÿ³÷gM—%Ùu ¶¶ŸûEdfeM˜Q «Pš€Ô-Y·d2Éô$Ó›^ôô›d&½µIf’5�MkµÄ&Í(q ²Õ˜H(¦ªBÍCfå‘ß=¾õ°}­³üœûE~‘Q×-ì‹{Ïõaûv?笽}ùöbøTë:gCÞwŸrcfêÀW›„eÉœ Kc˜pÉC‚ªéÆj“ƒ¾™I‚¡Úˈ�©CŽÌ÷ïa‡ºZ=úa0Á[U8¾húÑ-.~µÞ±íy0½w{Û•dpn·a�WïƒIÏ»,yGi3UCY2C?Z%¨-õÍŽM-‰–siáSÿäí·¿œù|íµxöìÞ;Ò^‡ý(Ôðr•|ìvÅ�†«õG=}ìèüÏ­†û×ö#3¾ñÆ«×üxªZçŸv`]Wisg¥>q¾s0 \ÆŒ_}=1ˆ$TPnc• ¶»3¸Ã~r.{Ÿ‘å.9öU)IØ-æ5룺¬lçY™¾™ê\)DÐß9ë2“úL³iÆuYfui˜¼Ú3¿Ž¿…Î#2s­�vûX#ŠiÓ¹:¬Á‚5ä£Sµ°“|½a µ[?Õç[Í· ðǘÝbAö=~pP¦w„nú|Ìænx¹ |Xª‹Ÿ~"óp.ϱŽ�á¾~ZéŠÎÂdI3;ð¬NÕú#��¡Ë&ûº®Ä£)¥”/Ü´Ô8úÕ©ôG�öÌÌèý\qB )®ëBOùÀ¯b¥µ Y’„Œ:»*æ=åev (vAöFÁÊ„‡3ªâeHoëºu“® ö~Ê•½Z÷ZïUU㸈y22—ºHsöcm*3ʹޚ4Êüà-¶uŒ^ßûB“ÒýÙAzɨvײ$YÁxˆ»E®mþ�˜G5ŒõpŠ �Ãm n�Ö»¹!~5$@ï‹h[K©[’ûYe&UgõðÜj¦iÔÉ@öc>y=9õš®éš±œNmY0‹Jõ*-ªŒ,Ìä�Ñ´ B„ÂÖJîR=²hˆ˜!¯;°Ó2‡5c´{•õÒ:Àôx5±A'®7{ýWRœÊ4ô“§›G¼ÛÅÉÑ[p™q³p­Šç¬d7Ô‹]r5¦õWpЬît;.*©�Icz•òõ~2‘ X'áà‡ï–õ4*Sª([·�‘j½xõƼ�UªÏ¬ôyaÐöÆ%ø8’/Ô²">´çI V_÷ª6¯ä®`nÆ$:ÿ9àD«‚Y�|](«ªRÅ%ñRÝÂç·ˆ3v'Hjüê¸6d:¼$vGæÉ�pBØ‚/Ûª¯›(õžý&3O½7kºóDÕ-Ô`Õ/ú8i*ã^«ÛU¶K²Àü5ßïƒh1¬¸Ú͹®Ig6–Ef°l…rÉï·:ë›SMVV¸€Tx·“íÝ”íQë¡1º¿,!pOŽGg¿ õÆB±½/½7†Á)Ûƒ±ÄÇ@4ã7#ë£÷ЂCŒÐ®…J+:{Eä”V%yŠÂi©…™ Ac#äk§_Dízb„é0ÌÇ¿»­:÷ÂN¿.KYo=:¿»&3Û 0>¬Œ4j–B죪¼¼ór÷7Ùèn—d•'lF�7ZÍää"ÕV ®éš®éÇ/EÄéæf¹¹yyØÎgècãa/ %Gðúºj×;Æ·‡ è‹5Ñç²aŽ^èrÐî ¸S/`Çvº¿ÙC†»äêšÌ ]wŒ.;d¥þìN»&ÒÉälÖ Xñ*²šxªªêÇŒø«Â;+Qû,›RX_|¼væÓJ  Ž�›%›ðµ hý÷äU™—4üŠ�¬!è ˆ9Ûhzµ¸Od·wC¨ÃfSDHcÏCÞwÍÆˆrLžYöðR0ùg÷»“Y°¿y‰9ü¯*úl¦;0+¼E]ÁfΙ§ÿ„ DÌÚQ ‚ªf«;Õ›q»W"õµ!ªÖ ÜT4ñâVež…ù觯°‰•óœÙç[åÛlÜѪQBí•ðT¸ ´Æ,ÊLÒÄ»Nbô¡üM8’žÚ%S(´jK¢5<åEžÎæÊp&ÚÛ¬ún¶p¥RËp²öžëêf3„})}�ÚB™zì4Y/ì¯î¸Æ²å<ÖJT—Œç£Ÿ´P@ܹ H¹NãÇûºGß.4N¶ áÔ{ǺŽ.sÚûöКÓ·sOëÌQb…N{„›¯z˜ŽÁ³#FÕÓÊCUF›!>)•¸[›«ÞŽßR½“¾n«FÉ`ùeÕdkXyÆ}ª-+'»6^ 4çÂ伦kº¦ë´Éüf¦¸aioz%دŽÈõA`ý˜Øèàño"Þ(9­¶†-ÜŠ[ba@|ζ¼Pb�@­R¹oW3œ$O'8ƒppfãÎÎNVÌh—'1õÌ[ë‚ÚÉuL¸!àÅj™ÏdèæpºŸ&‰¤Óœîþ((5v…k´á¨æ‚tíÈq4é8,V„õâ4“å<ü(¹”щíþލX4åµ-õê4¨sïK-8PÉ]2×ÁŸ<ùhh¾P¯X$âLôZY’·d ¥gÀz…®ÏÁÃ.‰·ûe]SûŒm>ƒ=�¦tzw€Ð<�ë"ÛÛór¨opÒŸ@ƒy0|xÆ“n€"£Ë�í‡[�…—*n;’Uv�Þ8n­g¢h¢¹gœgk±,eB”Z“jß”ÏÔZ‹Ö:"’Û‘5š›Íl†Š4KÃf«;KFBùø¯Àýš®éš*µÖnæˆ�/‘:ðØPæ{r`áxË1ÇŽ_ƒ‰Â‚iy„AÓ>¸:ç_éÊÁ¯ü¾3ì§4ÜÁtaeëŠÜ´¾ÝY.$½º#J·ov%­¹Å"„4ÓÞzii³ÁkZzp¤.ëâlË \³WÚÁZ¼¶—SyÃ#6ПÔèøÔ:{)ðÖd^Ùn3™›qú;?odbÒÓýî7òŠQ9Úä° µ–Â�ä@W»O"¾lü“i­.«ÏÓ�<í^äž^Ú$‚åÓ¦dˆïª.˜^’5[èЄ)È^ˆ­ó€¬’µ÷®}§2Éï;fˆ6õ Gs xUê²p»AHZ¨ÝÌÈldÕkOd9/›Qöé¿Qà¤zWâãrä·Þ{l‘L’üþiµ°zÑÚˆƒ¨S6IߘKVf;Uˆ›¥µ®-¿Y¥°rúcäœ4½P//ªNyß%Xø“6ó̹5=EËOŸ¹T@úºãªªÖ[0QÓR�UWþÄØÞšÄÍ2*tÕZ Àˆnp§n [~‰uí‚¡�"öźåÉ…÷¬—’ƒ¬j¢Wð"#RÎ(ãd]‡Å¨µõšõŒ.¯ãy°m0µI(óË’­mg0µAªOn0ØžÉÄîC�¤Å_�û5]Ó5!Z»yÙÃS�=ãÉ Û ¦òðâî§dA'o7¨*'½(9âlV¡àcX ’0炘}ÿb|.sÕÁ¢(®V6™¡Í­ï|Ï¢ýt¶Òg!Ûì'ö²a-¸�ѪŠt»â1kÉkîó×f'’º·[ži˜1#µÈ„è&X½ðVúh‡Û>bÕ Ï^TI¼ÁJr:Èì_5vaë9Ýô9bžp›&xBÓzI9>7¼«•™Ì[ ß¾b2LþHÕ hèèwàÞËh¡=c©~z¼nsL>r±z:a«/L­¬A8Ò¥ílu5¸Ó��£…€‘‘·ùèffÒë `åÁ¨Õ�¸%¿¥,Ÿ[ # ¤k‡˜îG:È…Øz-Ô¯òݪ#9§+L$> ¼ËYì Ú“EÅ i^ñ¼M3…­:F¤ö›ÚA­5µëFˆÆ±ÌÅ´)¯|ÏìÜÖÙéDoŠÙ‚�zÃ%Éíð¾MÚ'€2€<¡x2�GÜê„f‚rÊ‚Ó!~Ú\zSß2ˆdyÉz�[±aÆpRÁî)p>Èðà0%UM¼:]IŽóa©΂j‘Pã¶,ÓHDaGG¨ÍÑ &yÐÚˆ%¯N²a`oÀ\–[Œ�R\/‡=Gg³Þ«þh)oGˆg½�®�äUpß?r®éš®éÇ&µÖ–ÓI —Cð |�ùtÆÐŽœ»²CϰëiÔŽÊׯ˜A¼c_‡yéÉ&¬é(Vx½[Awb%qž¶T.óZæ¶Ö¹!'ëq|6Ô»ÓI̯¢$žVnfXé*Š™zkJQz ¹žåF–@µrkBîX7&vÎ6LÚE˜´Âd�P¦Ùz§Š¼ÚäÛwgP)ƒú»Ì†ÓXˆXy–M7°ãɸ%³’]-Î+€%â1ðUàm¿½é Ò¿î þ]·›ƒ¿ çò!�{ã‘X´LçSEQƒØLØ�iì„™êxan Ž úÚ 4+ÌM2Їú"3©c›z.Ogóœ�·å¶¯s—4^¬jeHøò^�ÊI¬OálýÂ� €Y¨ÙNÆù;H} 6·ñ eõ^Ê)(¿PÉkæÛq°eÕ1¨Z ÛN¤ðÌ…¸¹ä\�ôQCÙæ,TŽî”Î'ÉJ‚LHþ¤ê¼>îqùzÍ+?̤Þ×Ö²À¨.¸ß·ÔÛ;Ø‘i*ŽCšªõˆX×Òvä‚]‡ÁhÙ¡îÛ@€ˆ™±®)?´&˜ž5°rïuKêI2 0*Ä'gšæ·.Ø•ú„ÖzïX–à €ni²çE-Lf†ž´² ß'i6þ§haaSÏ.H�… úì¯÷kº¦kBD4î/�ò³x Nzü &`È 3¢’SÙ�”iÿ0ãEéÅñ¢#<÷šÁz~ªü‹]ls¿`½Ûuï>4�éöî™ I2åuVýk �ÈÓ\(p[e!„­""Ï+×<©ž”3[û•£ºÉ@ìI~¹Ûýf]Ek.P»Ð¸eÇJlíIí@¹Q…Û2Ç1™°8}ƒ7ÂeU’‹s/,çB†Ü½Ü Û�Õ]Ò®ÊÇ1­ÏIÔ»‘^þäÕHÙ0z_ˆˆ�Q«ƒ÷Κã4Sð¦Òöp®ô¬�§­�SÌxï E±ÔØÍBX\ãè1[BAúÕ»šØ\¯He{d¨(7ÓオÖêÇx‚õáÈûXÊ\÷5 ¶κÓÒþfíÛ�0 .‹=³@/©ÊéÞZÒ%¿ÙEºéëÇûˆºº÷kº¦kB´öàµ×<”ûýA¼û0žF| ¼þöaökîòÝÕBÏúUÈÛ«Õy#„Ý›EkQ mvE;÷@�°Ï›+eFÉa°~%Lš<».+>Ì:WŽÙtQ�;}zΘ3ˆ¢šw»NÛÜõb™;î‹ m÷oI·6JZêõu€à‹¼ Rê*Ö/ÓF�bºµÒMÛikŽ2alx×[çÎוnH2a¦¨�…+°Tžˆgâ1½ïf~‡!5æQÚê;oŸÓfvÞnÌ7Ñ]©@ϧ€7ŒŒ”$èoaMíi ÜxIJLá:™Ž Ö/q'’·@æ¢q" ˜VÙŠ•Þ{_y´ê ÅcDžw\ï+QÈ0ð¸ÀrEP„¹í'Õô™ ñS¤V=ZÜ0«Iœ“4X_XMCû˜t|6 Qø¢jlÃD⇃æãŽ  Eãñ ¸>@f6î……P­Œ½°€<ÓIv!ÝF% B‹ÃGÞ<‘›&CŽù´™d¸ÐN\gãȺ«¸ŠeÇö^Ç|ŽÎÖé§dÉëCÒGò1WUBÀÔ£èXcõƒ|îmý,$ÉY×Ò?8j£fñsLíÉŸZk 4ž"¬GÙð£×ŠAiÌ ƒ¤�‘õƒ»�e"2Ï~¶”ãžul–D�“3::¿G‹š6N•¹¦kº¦ç´î/”‚/¡[à>b\QÉñŠƒc>‹ùWJÝ~R´»Õ°rŸA £ÃjÛ}¢uöŽ“SÙñºc}‡ûŽ ÃJÐ0$-Ô%½‰/÷üjTO7º÷Èm7äÆÖ¿Ê&O¹¬wë6V ‡DrÜìtü-X!¡³ÀVò¥» ®y•ÄyÕ˜bžQÁ~­ÖÇuÖ³Dò‹À8tFÒJ [t¼ˆž=óD?e–ÌG™ïÚöòê‰ �Íã’Uü|;YÕ.Ÿ>A所u�Õã¶î/:wåv@òª�×™âVí�@_³üå^ínˆ'{¿¥§Ys»Q€µB³³ì93ý îë0¬ !R͉�_2ûÞ{WXÉrç+Ê~Mªu] –•¿?Õ5ŸxÅÏ\Ë™ÚÚ°:2{ï·Û‰¬ËvÎÁ}wœíÔö܈ �’ýÒ|«³Æø9hFV3�ÒxÕõ¡ Å Ú7&ŒÆ·q‹«vXF ?qï±®ë1娱Íðè½Ól(íVfD±J»‚`5š„¹ÊSwAô^†ÇÔC³jØWåæ§|d� ÇÏè*’Š¢CRÍn¹I÷RÝ¡A$=.¨ÏÂåã.&³%Ê>‰�&[E®œÏH®N ˜®Å ­ÒpRU�ª­¬œ9¢U‹º—Cô›«Çýš®éš óæáÃåææUêàð�!6�-ØD°GgLì­׺U¥GÛÎN¨¿ËÜb°îÖ¢€oðߎ�-Ø-žóu˜!±ó¬ÃÀnZÓ0ã¤Ï”éM‘˽Îʹ˜xò¿Â�nÚ•�¨Þ–Ãâ6;ûÝ ²—äêµÐ¿´}:¨=è¹ßT!?–2[ø‘4WºŸÞê´3?ÎÖSÙEÒÆÙàQõô–`±Q^* +–b¡�ªçQ„½ä`�®Ø Óoëàü¼CêG­§(gjïÑû›À™Å¢®Z6k37?w+gåTýî9V¢œÂèš6à®ÖíF«Ø2‰¼Nº‹QS˜£‡ œ•'°®¹Ünjú’ÁâY¾gÂÁ¦‰qŽh<ì©VTªà™» ʤ‘‰¨àîu`Põ\#Xá�îRY·¡¥ë�(ä~Dï ÷h~³PZ81LSY­¹Q¨å#Ûd{¯p%z&¤qräßÍ*�iºE–ŒqhÈ•NÖG¥Á ñ9Lx:λå ÑY¹{ß¹EÑy‰šD±Ë÷�±(!â�¶l›D¹˜³Ù v#Ùƒv´F$(\S¥U¶™éR•°J‚cQe�õ™¾Q-jí…ò4lîÿ¦'oeƒÏÊZ©‡ah�Ä×ÍDÔ‘„דS¯éš® @˃§››ãÒÿ UÒ²’v$z~rì.$*håi{uÙß°÷+gÎÌr!u�!T§eïºóWÕï›GÝ0Ø &›cë>ûÅå9^}?›fÒº#€%*…ì%7l„e1 ƒ¹6̆–EǨ;Ês6Ūw> RS§%…kÉc>ÛÉö’¼Û°&kЂ@gð·Í’&_7<‡Ò7œÈ‘6¶@„æè-/2èÜ}xwGêд+ŽÚU÷Nr žH(J†îÖˆo§òÈZ|§ã0[ Ÿ"6ŒßF„� £éĆ�z‰ZÆ0Ù!¦I"Jͱ[þ$�{£“u#†/,µ'½•g²í—Ì¥tg{d83fm«M‚Èá®uŠ -(qE*߸ÞZÈø¾´V2dku=÷#iè>š¬Ó²‚Âiªë<–H¦`�¤$QW+[VèèMs±^ϪªÖ 0Ì�ÄI2‰¸ìa©Ê:‚,º®Q+l“2J‡û¼µ(Ò—d°Eƒ%bñM±æAC[–ßÝ6ÝBOàÖ‚q�ªÎd;%تËÒ­Û0A¿wEtaÑ­f˜M¨3l�&ʺ¨uÞ b®OÞR/gÝö0©êfÑüÞt[×Ü0 Ùã&1îñ½¦kº¦‹´,ËÍÇ;Gà‹¦>˜·Q¶a;™û˜°Ï;ÿ1 é†Í>ƒH¯¶Ï\vå‡ÕÜ)•— û«9ËSŸWsTÃÐ*ÌJñÚ¯K9B¢ÁX.˜ks}îÌ 73bV‘ì!×°ˆ¿·ø6@­áÔ÷ سÍÛijåÆGnæ'^Ff±Ïk›£=yBó­�·ÒèŒ%ßyÐAMòÑ_\—=”Ù§ý視 è$ÕF¦~ãœ.†h’ëú�YËØ©ÜfƒÈâZîàÖÒ¤l­ì®œø`Á é`�ƕ«o‘srcÔÈ­>Öb gVÎóÎB°ÅeÆÕëJïlmùJbš¢ptÄúÐM X×ÔÙ¤&+ܾBžo^ç"¯-u{Ž9À  ù- Wª;ø0£ìuÁSO�~¾{‚ø¸âd½² å.væÔ™˜©[o�Ò8%4^,R~îgôÙƒSqƒ•åîe¨–sEá)WY[$ åS>]¡lÆË/çñ‰‹Â¯�0(€Ú“ ð\`é½€¬ "4C<‡§#? ô¹Ö�¦œHaªn­ÕâÀº,AÒÿP/I¸](mÀSïI/¢L¤ …b´³™ô(«–„MÃüÊÛÆÓ$±D eþ pNý•uT‡F•ÈsI ö4Hq�Æ ¸WïDy×_õ:¸ýwÖ_:�ù•6jkk2>7öy„‡ƒôU‹êoØÐËûŽ:-•)ôh%ÁFë O{PQAdožõ°ΙªÆ…œM  › ÓÏÀý~ÏŽkºOš ­«bÿÒ�ó¼Dß#âáo¼X‡=R¸Æ#6ûªÇæŸôÜl3¡Åß@JIXÙ 1ƒŸA$çù×ºÕ ,(8è VÂëbRLvDpªÏ¶��e·RJBÆ+÷w 77ScÚFLÕ¦=¦Ž®<ÄŠRØuQ}ÍsÖF|—efÈY,Ú£ûé�µbnd®^c{eЮA’j$¡¿5²u|ì3 ¹@q£õÀ˜ÊùŠê6èÀ8^§Bâ¬"øx6¯òë.»ˆÂïBóÏùõâ�{P:Ó§ÐU#½dcz¸&° …Wnéüœó+ý‚ÉåÈ^4q 20™tËlŒ­9`=d?gæO&*â;ã<>³3˜K|å§ Û•"ÚF q&¸z QAáË ®Ó‡J;hª�#·´Ó±wÝàÍDª±Z�‘½Ïô†Ì[xéx›¼Tw"°V•Ò¿ÀœBu‰”Ÿ™<Ž y ’œåÛ‚˜|d`ÄŽU{oDä pÊP±}Ʋ@­Bì¦:Q»î‚nñÑÝà`¤�òú§©nì!YWùÅk‚Uø ^¾íˆä %XY§�¡]5ÖE\7è c:P8A¬·Û0#¢ZT—� ´+¢Å–šä!?½ÝJI¥�úå#ât#ý�Ÿ¼;¼¿äû×[òQ¹x}—^úMÿŠé9päù�Èû”Úe{¹ ïYäã­üž£öüR¯(ÃýŸ»wå|N¶ê4¸ÿ ÞS†�÷v{¹ipóÚk @öÒéðƒ…r&ns˜+Œè04øÞUN™Ž®`EšÕ£·—®8w#a—­Ï‘Ýqh.fpŸVÜééªÄûØ ãz÷2Æ!�dv[HjTÍôÖë�>%¿”�¦™ãu»²—;#¥±éÜ.V§ÜóSmš”i'×D¤�ŸZ€ GœèöR‘+}µ¡ÜÍ]� _\�â5$Ð)UÄ×ôqÄ»d¥íf»+]üU`]5ì/¡üñÐÐXÿ•Ø«Ø#æ­ìuÛ†) Ô mG”ön0ÀwÐ$ëYÌÉ'T7FãZ`°uñ_£¥ü&¸ŸY! ׈†QZ_µuå¹W�}¯ni­ÕbH•=eV).KžuÍeMš­NùM‰Åʨú7NBÄ9bq Ï˜0EÍ¢sê6—ɱQP»Æ(bí½ŽþiEíZkÙ{´&k¢²ÔçÖ ­üZ¡+ªº­€zÝTlu{ŒÔåì½EÔ±G:$xÀJhÂSDôÞ6†Ú‹S®À>ÑÚZÔs¿Ud!T 5@²[Z îG|t¤B²Î•Ôb�ް•G?4.É€ŒÅøªRb?sÄw�¡j#U(<#ÆÁ®š]rØëªL,Ëf�péC·úvoV~ÓðvŸ—£�ÆL£I£p“z‚]Ó5]Ó5átsóŠ!¬À‡| ÷8rÉù+äð›r”™—œë‰ h3" ³Bozó|K¡yý«VÎ3d×®Ä ìm‰  ¾tgaÎîÞ]G`>o‡Ýmþ«·œñ.•ÄNC«É¦ó çź£J¼³’YÉN+I)~=4ÚeŒSR ÿ©ÈÆ.�{ù,9ŽšZý ¡Ì†Æ)ÑLlÏÙ"Ι·™'àYæ­@{`¼éK6®€xø¾¹3ý¥+ßí1í ¾A‹ éâõ‚#ÛùÆ9v‘šéM¸Špm,Îpé`[üáF=€'ÕWpt¶%ˆ,KIs [5‘ÄT�¬�йv4¦{sµ%º|ðåjÍŒ" õžgr²«§A’ÏZtv²MšZÉÌÖΔd“¶vÜÖ¬h­|´´¹0 ³�î5ˆãìØÌq$mqÇÇo�5ÆÇlåY¾^‘ª o§F Ãdc�9œÇ<çµüýAfEG9¤† m�~fRx�Á‡¡ik=¡ \m�À±>Ú�•¹Uú…”ÉT¨]Á|4O657�–2+Î}ôŽe)…kE§VÃ"{ˆ¢HÉhlmp¥h¨bä÷CÆš�ŒˆÝ9ƒôå‡aè þª¥@g¥kÔÆbãQ†jc£ b³YP|ø­4ªª=© '�Ñ(C¼£ÌTÜ‘îïó{9§ì/½œy1 së XpçŠ�íshó4‡·×Ðy}ó0È$°²ÁT­ísåŽÑ%íª-•3¸Ï¹;þF³IirQ ­ú”ÚõÎy)`ïÚAóuåtÐóQ{ݪJ«$æV¼¸>øHùÔÆU&ŠK@ô¼ðm}¢oU^(ð ZþøãøU›YoÍp¿–}$[׺!¡ˆX‹·`ãÞi–4î#ìïï�.·µû»ßSWí^ô.kôÝ&ÑyU1î‹ÂL²ú„±9ƒ€¦z*÷sÉW§ �¡ë;�ÐRÔ¶j‘ƒ žš3ôRW�“ÖˆF x“éÒZd ™S�¾÷FW}¢÷qö±²¥µ[FžAÖ5–%(óX·©õò9 “©F?À’Y‹‹ Æjþé =f~§œÓer”>¨`¥�nס3=7zßÞ¥Òò»ê5?Ô‰›5i“·Fô¾^±�9hƒ‹-ÉA Ê3«= ÖuUO£µnGhuI:©ù?ڲݫ½÷fÛ=�YN’èíÆð»^�Žêuu§÷(U·Š :ö«lњϹ,Mu˜ã±h|·›±5mBÝeš-xPn´Ÿµ÷ÍU¯J0ÌžÊõ®‡ÍÆ-ÅÓsÀÌød[u ø†×^­ÐL)CùO�<¤�,rM×Ti7aîr8ýG�~¨wÇ®Â�Q�´Óé¥C¹»`ï’v¼¹j Õ©9Ça0ð*d¶ƒ¶ qG<XU°’<ññU­P©^Æ^¶ZݼSǎϸ|!d\­¬'áiým³16Ö9ó®×;MªÂ´Ÿšy[×YáJ»E ÷ýÃôàÝ‘´ƒ¹ÒžLޏ‘ó› ª–ÔÔÑ9g2"BoebY_šcu_Éy{‰Ÿs¶pMÀ»0¼ÈÆ[x@lá«�Î`™Cï�)Æ<¶Ï{�î0½Pû±†‹Ï ¡ÆÓ5i›vë²�ÅwBQõN‘Ô;éæéyØbU¾‚D�Š“™½Ÿë`Ôš'E;®M ¬íl‘΄ìŸñ¶\æÀÚ{!Ú3‹¯4Bªògõ¡÷Ûm¥-ÄÙ¥ÂÙÚ^\Þì\WW¬–¶zy© 0‰Ù2ia#6$ýër98=�…@išè!4G€òpªî° ´©ÊZƒ’#hLp£e.5°%zã!b]ǤáŽá�ŒU‹ f«oˆÙ?íGs€3¤Ëf`£ŠC_|›2ÛêWMY‰iºuÎø e @[Š{f0PL­,IuYò˜…¥äô¥®Z ááàch»¶ÞŠb…ò�Zr�¢ÜªÆÌðÙ—ÑUö�ÑÖÇ L�ø®ú¥�;Œ $zÎãJ•¹¦¿�tµú^%ý° ƒˆÓéôàõ×çk/ âø~�Ç^5ÌØÝ´ÿM‚T±¥7Ì€Òê‚ËI¸¤Ò9>öl1�bY#N.[C")†]vW_V«ÓÕ*jµ?ŽsÉuµš&…PS£ŠKi�»UâÉuîËnD ¾7ËvËî‹K#±Ï¦sY‚Ëg³Îò�2*�¯\X­Ë/Åwöº#ذ*�øN0p¨§ˆbo×ký™–õ|Œ‰%õï}àÉ%¢Ë]îv¿èþõ°Wøñv¾h¢ß:%‚Ož`Ú¦³Ìè¸x>9wœé*Þ�íÕ‰ûû<Ç6Øå•Û£ƒ<–ÛÞƒÇg�™¥Û 3�mK6´åtßü÷™Å`YHíº)ì~fìÂmÎ0FM§1ÐÅ((-QÛIõ6gÁÚôˆ�«¸g®½k<Æ-Y<ìÞ×Ü‚¬'·VÃ]£ÍZ÷(ÏtÊ�MQS:Ä“6 §5š` AHëÚìÀ¦\–² c¼Ô�ÚB!kÔZkÃäÆJÈÏc¶Öò  ;Q�ü Owu žj†spK�‘æ5Ë!³$ªÄ+¨R–tó¦Û_&A™(µLQÊ/¶€ÌŠE“寸4z¼Ø=Žø6”—e'”ö2"¬F»D*ã�æ\DDkʬ©¨YTùÒ éÒ@Ãp®—̈ç‡+p¿¦kº¦‘bY¾ñ^Ùxd!q€ì˜�;¼(?7¥„Åwpöš„ž‰q„>Ý%¼ëdÌUùÞP'±lïõ¤êÊr)Cz–0j×÷nê‰ÜfJÏjǬ@YZ×NS…;ò¥OM/Ö}µèœø~èŽ §´æÂš[ I7ë¬z§)¬&!àF爀¢aFD{å×tM×ô—&Å«E„TºžNr7¹ð"ìC%áõMž™KíÙüa*<-‡î®A„˜ëѯ`©àõÕ|ùî8wä—v}gñïÄ€ü”³äªwçq?À⤄R£Ë *ÑÎquíÚmV¼®ß´¦º]¼)¤ÝQ¿[>i ¹¡"_rXµy±óݟʼn?˜^�‘È5 bL¹³*ìŠÏÌ`%ƒ\Aþ胊ç@[¢Óæ à°ò´Ë»¸.¸#m4ÖÃßcNÃ@œ3o© yûÆÌé=�%âq"üÒí“t¥ë,°è Y²‹¶5"ÂJžVhö—EËñóÛ+�y²š*r¢¸%†>k ¢ÎF%s&1Î~£¬ëš\!YíF¨*ÎÜÆšc[b�]Z¨Áív6SDÓ8$í(ÈËKÐ9ÎoªŸ8jCù/QØE[Uû²lçÑ^=q* á�GgÆ0TØñÚQ�­5ù¹“Ü3ºb¨zó#kBKCi§™Kkµ_¶ì†fÚ.ÂÉ€Èb´kÎ×î[@æb² ÖšVŸ´¡ á¤‰ºuD!ÉMj6@ÓMj ™í%Rö>"ÉÈ vSĺö"5ÊvqtyFó±,°5¥-Ñtï#émX¤°ñcˆqM×tM׈ÖN¼tDH=o�§†•5bF–1õ$`Šùˆº„0$îMzUîí¾ˆì1Wù¨øaýº3jSº]á·Kx:Wú¥Jb&j+' •zßO³–Ȭ¦Çú8ìýñ4Ló› 3°;’üdÒÊIˬØQÛËùŽ´[3lt¨PÌÈãdö¨pý„Ù Sßkgªxf˜v�ª`5BÍ6,ŽþÞák÷”öj÷"iˆd—™Æ eðœ'§l¿[’Uà#"Goi€f�ñ}‚ÇXš}ʼn¾ë1Qøž`]ÿª¶.t¡c ÝÊ̓œ˜²ÑY>M¹šôCGgxñ‰+MQØe•mjÊÌÞëÄÙNo}Óvü²<,‰3ç¢mp¬¿kê_‡•BŽ^›±UO'¼î½/@m!më …¢¯P-Öƒjd½OmqZÄ�)öѺ÷×"Ì"ÞÔ²T%�˨³]g¯bø³ë_rKC¯€•¶…TC&÷6…Ìu ˜3”PeÖUEˆêSýâPŽë~#dö*è‘ôµEˆÄá°½òÊI_{OiæÉÚÁ!¥ ­!vø.§{æY¨3¡Žwú˜6¢Ka³1$IPÈ+p¿¦kº¦‘"âtsÓ–…?ž“ê]û„{ õzóge�˜ý¾ñõœÝm¹¨õ¥|‡�Îß] ¿.Ê +;æ÷ΨX­`òW‡€Íú›³ð°“;wêhv}¥³aÜ ^ÚÈù/ö ìƒ:(Ýæ¡N¿îÛXw¶‡R'§ëuÎÛ¬¶S]éƒ\D<“9Qo»ˆÈ<Ø=â�0…D<1«7Ìs³&˜UZ}Æ_…M—ˆ0™—B*³5U'æ0ß–ŽÈû9i—Ó¼2¸Ó}TN×&,s'€+j~ZÈsmå "°òIk‰FTæM0³|Td%ë#)kIÙ3oùÈ£œëÛ‰¹Üs¼ZsèO­�{ï°h'NiÉS~ú$]¤í‹@Â3nE e#`[)@QôoEaŠÍR(¹6¹nÆLŽàÙ¤Ò¢!8(uÑX‘uŽ €Îµ‘÷±®IÇóÚ{…Wª>É¡*¯Ù Eõ·„1ÝsÄkÏL´Ödï 0_†Tð ¨ Ì�yBVÐFŠd‚L¬«bY&× @wx­$€Àºñk'ã¾wƒÓ&ô*Åð-¸â±×Þ†ø�@<€ 2ÝÁó:[¬ä[~;³Iz(èvÎ<1<¥2hX_p[6ÿ¼‹†D�X?m Ç'p™:[Ü›�È,u¥`ç@«Sƒ)$¼€1X¶¹¡Ø5 ÛŠá\ε™2Ó•_½êD`m�FÇ:¤)#VžlÚvKîÊP¦Ô€ò¦¥¢F¬‡™ ¸­ÃV9v +HÝ{Ã8�u³¨¡@,¼ž™v"R9w»u³ª†qñ;†^;‚qŠÐ ÿ�™[@Ãs©¨ðÒ¤¼°1èìãvk­ë–ÉÖzkI¬¹-ôj7Ûf �5.« ¢so@hY&"€Åîк=“4q…Ho¼ÁƒýºëöéÇä \¾¼Uw�Ni�n.Œ£¦´Éa`n ƒ¤eÖ‰³ºu'ô/|u­f�1=š$¹v¯jn·m&–e`÷çæB«¾`WûV[÷Wý*Ù@³„2®Àýš®éšBg ¥�‡‰2$a$™rBÓ½Ø X§v‚bx+W›�à¸löU!æÞÏë*hS[ä\Âèúõ†t@yàÌøô#:9÷É%Åoé™'ÆIãŸ(Ê!hl$—nª;«¬\Úi°VaeS“u¤¦½/B­5bÜ��×ué=ã¯tãT&E ðè+`ÐÐ3“À´ñ %Ÿ%TÓ4 s´f‹,jx`w¡ùê‚HhëZekïdu­F°¢¡þ–»}µ%ˆª°[Ó…>ke&ˆ¡ý0Zw3oýÑ­!+"b‹½(â��¥5¦" '"ú×ë™bõlVJéÄ]õظLz ¥1÷ÔPX–ä3jŒÈÛ ôÍãŽ�^5Ýþü+L߸uµT´y1hBÔ÷+p¿¦kº¦-µÖn>|éÀ2•xñžQºyû¬˜�/ z!¾ƒà †NBF• cP¬‡Ú”!-Ãé*ƒà¬ ž;¹1ÿäºÏeïJ©Sͤ¯H�ÞMÌŠm³#7³®µ§Ü>q«C [JØif¥;HmW=N7MØkìL�oçr|1R6ÖQ‚V´…+"V ®`%§Ì„½Ë’¶š.*ÅMñ§™MNÍ…Á°¸ÞÅ2Ž®q¥çü´K¡«÷®²�lŽ»ƒ�Å×d’.g(sæÙò$A­ú»*éJ‚¼rò)Æh)¥ü²ôFwzÖÝ­Þeá`vseäÄFÌZµÝV,šqšCÎò=ÛîØ’1’ûhÁÁZ efůÔ˜åù@^m�Û|‡l%ŒXk]®w`ðdˆájãìjÙ@`ºµ¥…‘rr«r²&VbÇñ ª¶Ê[¼ši=`�Jžµ5pçnT¼Îe°rÉ%0"ß)€Zyi¼› îŸ9‡:=ĉÁJ¯û®÷ÞÄÀ6«¹7†œï‘Å6€¢\õºýu/É,oô:�ù¼®CQ¼[:ã´T{ãÙG™9V!Š\.F ^ ž¨•´?›¶_ Ž$4Ù¨nÑठ+"ûSÏ…M#%•}­•� ÀC3¤Ó„Œ{ €cw¥Ê\Ó5]Ó”"b¹¹yéôÔz¼Å m0–ÓàÔÎÙ(¤îØÔrÀÚwèÄÊîòƒ?Á~Í9[;Ôæ 9 ËÂ,7K–¹QÇ÷Ï™6»àë.ꎤ.Ÿ„YBÕr·ËbÑ&Q×ÛNÏþ²uÀš&žtï¸ÔX5Ÿçë·´&|97”„>"¢Üèý·[µÐ{}Ñd£—} –¹äÓ”¬UˆfV„Lˆ3pÃäÊr¿•åp"ç ¼ÍW©œ…Avšô>þ®JÜBHà‘+�”’r!’¨[#ˆDa}_L!1Ï� E¡º@öðIè¬ü'à^CyK)kòœ Iä*¯¹N¼JvêL<´ìΨ/ ;#� «¯Vx23â¶œñ4<›D#©MŽ 4‡B‚°é!R&jµ'·³<[­9nêàÛä¡Â ô×¼ë½ÙJGû°!]e,é#¼ñÈ¡PÎ é¹Ö=ê)m!,;™'­~ÂØÙY·m1Ñ“¨}z¼ØRR#@�ÞƒãÂëö1‘Æì”“›Þâ&ùû$ºû;<Íü‚Ý£²bþ uGXÞwj#ȳŽÃ™µÂÐèéM¦²ÖFªEòš@«c˜µšE1XïÉE pªÈxØð5ËÀ&-(§œëÛÝÎ µCç¢Íè9ƒ}º÷kº¦kÚRDréÿ®ô-îOuøër‡SvZ¨K`Z®V—{;çzn‚yü³j޹”Ãt!Eg�8•/ÜÑRòEèew¨TD®m”HL]Jheºm _²äìw«H¨ú">Þ‘;l,p°L¼¹4�ˆÙ_ �.)°Ûˆt«s(¯·iÄÊ·©�ËvQëû� \Xÿ™zv6g”qÌ*JzÜs‹Ý̨‡ä¨ý9ôc)r^b"¢Ìj¿+Pç^ÀÂŒ§¥º³ÎÞñêé"þeÖ\é×Äì•ï‚øåqï=Ëœ+ÈNÌüª-Å A@_WÝ $i¼µaWü:çØY{‚“L‰Ud딜x+• tا9ÅQ7‰þ¡£…‹DÄ/óCÀÎ!`°ÝêÅR œîöâÊËPB.Kc©dÊ� FÃ@}R+ûJÔ2!èrVæ¬0ˆœ[ÕbèÌ ¡F"ÔíFë}0”ÈWÑ£æëBò›ŸP¦;þ–Ë<ÇÖ^в‚?”8Ó ¢ÙDkcî|+iÎ Çvùú�d(F0bÝôg²N7] MȦ¢œ­”€¨GàväÝûÒ§£ïÚi`fÆv�·–²LpÆ,[p¼&àš®éš~œSÄÍk¯=|ã�ééó"Ø]Oêï�.ô”Ç'¯÷ùÊw:DËù­à–9ۮ݋à>LTa!ããõ“eÃýÓ;ñ$ÆŽ…ïbì`Y\²ô ÌÃVK*)ª[Î>÷ÅÑ6Lí º—¢º­!8;¥®Ÿ-[Ì-j|»‚¼¹°*üÊ7ma q2ðz4`*ÿyÞ´p¦l NÎ [鯉\’›¨™ø�hõèeó$X°Ëð‘Þý‘‚ïòmß2 #8=6í)3» §xa(KF´lr£¦ì=ÛuºÙ'„bàŽÒ`ñâ.wÿ4&Fïe ¬W…¾¯W@?¹9U}l¤Ú÷Ì•NßêòÚûÊ£Ž„¡{ï'"ÚîÄ "Ý5sD«8¹Vu4tš,ºÐM�ƒ!ÓŠ†Qž{mô¤aÙ ¾W_ÄJpˆèÀÚ»¢†Ññ—܈ÝçrÄj¤Ê=Oí¥Œ º¿EÈ©�” (|J¯”Œk^D—anpé >ÖcœPf 7Œ3¡ÊŽªRIci¥ÇZh´µÚJhkòƒK»ò@Oïªw̼Ìä·c쓱‘kT`zl�Î … +jW�JMrhzcÈ­¿¾xµ‰W53ƒÜóþ®ñ%å©ÂƒC_>l4ÃÌ€jh�‹hG]=î×tM×4¥ÓÍÍëŸüä+V’Àãˆ'õŽ€Ò¯˜ ÛíÐùæšÒõŽØ=‚T‡øaWÂð¢×Ÿ3tVN¡CÌÆIÌe…wîdaÖÚÄ—s].Òuî”x úÜçúWË,�L6uVáhVb¯3e³Ô؇0j{›××\W}V²k�ZLëí�ÎÓ—@pfÞAžÄp[Í`L½ºr6*,D�fÅÉóaòw¾P�áóÞì„lÛòXö¯ù‹@ßKymú»óÖ{”ô6¯G%c�¤,ÃÜÂBW]åguJX˜µYÉ’QQW;�µ›Ù e…Âè+ ­X'üGNö*Eí™-ó¶\­ìšXLÁÐ+u´gíUMÁ\ Ó­Þ¡‚Õzï%§b_nABœ•‘ŒcCu5Æl BfùI]Åy4—0õ7sëJÓ©F•zO0ºìm�¨86Q.s·ÖXjð¶ë,Õj¢ªÄ/+…±núºŽgEm!jÜÈ$9ölöÒMš�})Ã`HÖ{ùæ·Rd�ÕªÖ6óf޽3tædzŠ�ÞcYb];M­'4�IN¶®™Pd¤2èi§ekÈAY *_ñþE­Ñ+&iºDfj±ÂooMZl.ü0Dš 1óEñg:U7 \Ó5]Ó5Y!_–!S© Ò³D«J?[ÿŽÈU�,¼6ÙiÏSXqX¡±$Ö<– ûଘ>‚ 1_%yÙ�1æÓú~ÔÕN×òñï<ñ:R`]ÝtR�ì)ÙQìŠ{ÍÓxóÞ°û«}ÆmßZ†´ñÒß0}ÂÃàDÀó÷gŽœ|ï†{ø�yÀä-ñW{ Bo;Á…ýª�¯¢æ§Ð�ÌKDQGΙ;Ð-<}aïÒ.³ÒÇ_„ò!vНþÛ:†ö4Y‰ÞÀ#3ëçj~¥¬2YãÒÔJ§¶à”˜0jç­S|Éi)¾Ü™ð®ÔˆÙ©¯@�ƒÊ±½MZ"°! G|å!>#T%ÙáÍN8êD9)ƒ‡îኄ޵_BÈ9!âà>‡á í}­ó_�  “ôñ‡9Ñkt»°2¡-¸† lç̵B––ÊáJòw³Óm“Cà{µ5W† ŒâÒ‰øý7ÁìCÉ –¢à~ïÈ<“cb¢ÏºÛ·NzÒ"Eò7ò¶{ïÑšgxã ú×B6ò|óH£&û'Sì—a/ñ«�Ë�ŠÅž£Ghñ$Âbá¯ÓCºâK�ïÏÕ{è“áü$÷�y+< FÝx‚y¨¢vÝMuiì¬å�nYΫÇýš®éšv)–åá'>ñêûS;ðX!f”,/, ëW‡æŽ/ïì>ï`¨Š …c®YØI„w�`WIðd‡þ}ç¥þ¶ù¢üˆîÖÝ•u^ˆ8Ó˜3m®J¼÷ ÂþJ†Õt²sµª9 G^�y¹c’Ò›Ø)pe%ɺù¶`Ú¢ e±T«ÂD,…HªxÍ«ˆÎöj”Í _»›X°)áä™u(k­°‚^“+}®åõ| —_Í®ÃÞÐw”¦ö,Ûì¼Ë§yu%MÛ�ƒÑZ„¿piâÌ•‡Âåa³Î�^ÁÖn_ PÊ] !°òq\®6.·Ú8H8"¸Œ—RÐ\-¿¥<Ž]`·ÂtÒ}¾ÚÜ+T}îý\\ŽˆÚ»JrÅ-¡ÙÖ8©°ÓyER/3y#)pÖ»4¼EDÕéj•¡ÎR-õ’é^�´,‡•†ßÚ{QÈ _®‡© 8¨“>·¹gZMNŒ�£)X#X50XaŒO_îüè½vʶ`( *r¾ƒgèË?›r`ÊtzúN�þŠ^æÕ’Š9…/Ôž¶ˆ˜éì…6*@‡Þî��ÿŽ Ûëvµž6S£›õëJRÐ~;¯ÂYHn€Ï쬸�º;œQ³Ëï×=ÃåÝx'ë‘`ÙnâùÜ+HºŠž1Ï"]›õô×ÅÛ Ð{?Ûñ¥›Ó·b‡%W`QHwÔ_g-õÞ#ÖŠ-ƒáÞVŒðNp˜<å³×¶Z!Ô‚õÀó¡ÒœåÉ@1ÅßPÔs‰'¥¥ÌBX GGÄÙeør‡¨üýò¹–lçB¢dø”üç:µ÷…ÓÁ1ÍÞíU° =(Ò ðŽÝ–2R`ÂlïÎÃêÇjÉ!TE›Vmêˆ> ™}¸Z :Ìh›B„†!��¹øî=#ÎŒ$Gq°ÚÌñ^üfɱÅs³Ã ÓÒ{qåšîíâÆh2H¹Î½¯ØãË¥¤þ~'4-õUS˶'}®u «‚Zžýºv½·Þw�êGûb‰d¶ÖFüG·dEGIÆSßÜí½w`å"Ã6Û(mbãödf*t‰æd&"–:n‰‡ ¥øBÇ1ŒòQT™:‡8"NÚGËe©®jn~4’ÝG=ÆAD9¡µ�¸´\lñk!2‡V¥áéÖŠUäø…Ë i~z´Öz¯Î£þ�@�¼M†%PŠ€T;R0]·Ÿ`°"Û«¡µ´X@2�ÖˆGÛ“ó¥ÞÊ×tM×ô—2-§Ók¯¼?ÀûŒ€áÏÜ#°s¤~ñW²Nظ˜D0Â|uñ<ãlÌk!Ô°‚˜‹ôÃÅ$í†DÓê×ëódû®»�BOOè�ÿkÈ+q(Ÿ³<0í�^ç~h}5P¾tr3ÓfVSÈZ¹ ¢¬8›Ü´É‘ “Aè³–‡� Ùòm”kÜ·|³"ólE΄æmAY)·fótW…Dµþ‰‹= Q9:·×=Ž9?"E<ž9�õmÜÝ+D¾Î>Z̖Ɇ¶Õ#J ûiÌ7úÅ‹½ÐUÄ(«…,(éz[�"%Wˆ˜ ‡uTKh%0=Œ ëªÜÎ8Ð-c§Œ�"ÌÔ,RÊn49Ð&é™­" ³¡šEµ‡UÐMt‹ˆÖÂŽaªæþTÕ![ðMFeÉŠ¾Ol­¥–Šr#;d[,Ôkóaí½÷>Ž‚b£Ûúdá`®Zˆp¢‹èàÍ=<3â¯ÈǬœÎó‰‚ÖQ/žO�#÷ŸHÛ¹­0”;nÃ'™0ÛÂS‰Äš· lˆBÓ¬ë4oikÉù�‰A„Àí !¬ßû8i•÷^•Ó€¬v“ #ÂÓ~w›š¨f«'ix;¯ÇP²ry&⽈ßÉü?9U×tM×tM´?õÕRO€§ áÁ ¯Ðíŧ�C@]$½ëÁ'¬¹Z Þn¥òÂŽð€›sþnÝfH˰Cµ¹�Ù�|9+&¡œ¦» ¨²íédUN’Z–yƒì®# a«uÁ03s0»¨5^RHF³2ˆy¯JÖÍ�¼¡™%g È®7âP‹9±ô&”s{#[×ÊÂ&OãçÕLØ”€&ýdK¹»r¸ãðÆ<ôQ±ÔÐïòà�Ž ?��{\š“ch›6 ^ЇȲ™t׊6 —VEؘ�´sáfž\Û ø4IF­�äÆ2(½÷âJÝî�>ÐC,·ý9³€µ¢°C“ÊÙ¤¹ƒNèd=ÀˆS¥Ä娶*ÆeN}^{G�ÆØ×ØˆûKÛ#XxDÕ0îzÂô í³›<,ÎL­ „‡aÑ&:ïd�“¥Þ*�P»zQ0W4lÂâÛt¬ ä‰�µj‰ƒä™dÀœò¦wœiœ6+MG5:¢©f’L:Ʃ]–¤¶ «• †‹Ù þ24yj,[œæJÆ&)mçs®ë‰¹.V�6. i&k bYBBÖ‡úQP>(¶?dŒü»ç�ýïÿ"óÿñë?"›SsNÑâü¸§¿¨á¸Nƒ�7:˜Ý÷J <‹xfú"yÃ=踲�ÕÞõkŸñè‘Ρ֛Å=Üm0•²\°í]j:à²isgÃXÈ«ýê˜RÀzN/O?M®hëõN˜J;¯pZÙõPÄÕ.zOÚb‚1äo[L{›cÌjV ™O2?Ô‘Õq< ®$ cúQq 3“\½@ù€['+eŸhžÈ ¿’s/ÄŒÝ¨à›¸ZzBnë¤^¡¢s‡aåÜ=â.ÞY)4-âžk–œx¾;ó¸˜ã5软I#²d�×ÌÈ#‰MAm—*Jì•qÓo h`UU‘�ïN¬Ÿ<µvŽ–0à6M�ïÞXPkJµåt‘tîv™mµÏ²šã¡N…5ÏE’.øXf@¡aºr‹ß ãV yÝ­��Z‹Ð¢ù? P?zëd;—D†½µ:Ôió¦Gdæ¢�—5:i‡CÕNÖZ À¶Av(Ê¿ó�´ÀÕ¹(Ñ8›ø0dé¤ÓË^â�´´If‘&– Ü6|™‰-еë3{Ò²/9?O2¦¨ómgêØQY(i‹o£‹UªN8*㿵²úܨnÆyÔ.óUóMw_¡ù®…>îc.S¡âóÔñgÚ‹¼1Ý)›"Õ@5;ÍHàÀ?þ«Ö¾›‰ˆÓ=Òs²½èëü…Ò®Ý�·­{ö}×è«‹ôüî’ê9 ÝS¤{âÅÆG¦�E™? écŸr/qï¼Ü€¾ÜDº bYN77Á�[/�ž†ÂžwÂz ønÂ̈Ð’ÄBušcþ,|ÓnlÕ¼ñ(§À÷.ó±’6ûŒuQ@ÿdý­¿N§vý 1/æ«vÄ|;¢Ôg§¾Tá`Ú�–œÛU/r®Ö#Ƭ„¶›hŒmâãˆÃx=˜×ûVg?ÀMWo'â¯&741&n�!½Þ ®5Áo" �È–I#M•ޏÎÐ W­,%!{æû•ŽOËí­oÌ]ÏÜ%ˆç¦»ò<žšæe�¸-7hý™ãK[ÍOÚ?>Ê…´ ´mw¯¨¡Îhî5a哈pånÎ4ÕÕ05nQCú€bמβÄݱUP[$¥”ÎHQ±Þ þ®ëq*‘hN„ug Àˆ…ŒŽ úG¥:Y¶µ:èØÑ!¤&| CÕ5`xÊ3[…_,s¢Ü̽/Œ:‚šuã$¬Þ—ˆ-v»d«] ªSó†Ð­ˆOUy§S|ì¾5Š—ðtõBnï&ÈØ{o-3ÇòÖ‚£¦6—ZPÅÊVÜžÞÑZ-„jYé´4:é. ÛIF]Ç�ò–I {R5qKzïËR°x3ÄñCu5ˆ4?’·Rk­g¢(û9¶�6®]Œ1åŽa­l·¶õeÌvòm&|Ï-eÂÉ€)ͨu…¸‡GÏкÓTð8óŸ·ößf>‘½+ñvcè&y90÷Pìþ`îÕqÞ®S÷ièùÙ—¬Ç¥ŸûÔpÿ¾¿"ìÞùV_Nçw�éýañ�¦ÿ¡Šññý«góŸ–Ú²¬»EÃLg཈s�Ý=ãZ­" ùaþ¾&wˆßçM›¯¸ p,ë@@–…Û\¬ÑfÃP`›%¯_WþÔ-�°¯ ùz€­JaÅaÎi5çøV9Ø7]¼;^$Ø}×§j�ã¿Ñ½¼¾½ã1ëÓ›V°y½ ›Y>Z‘è,ÒìdS¬™ !B˜žËÕ‡䤰þ™¸ðÌøî²vº5�d:5SN½¡Ë³U8¯žÚÏ€÷\™‡»ÃŸu†µö|­ìr>çm›ÀãÌ[Çp•"*ÆËb‹ Î<’ÉÍ¿$yº°ˆÚ<7Æ0e.DÀc”sœý¹Ý#™+ÙDIšÄ©� í!³’}-B¹¹„KçgŽKé¿6ÖYžò^/tÜ–I¹Dœmi‘/|÷RÃ0óV~–¢5“Ç\­¥‰Ì…;áVD ‹-Iq°r7ˆh¹‡‘YQMNf¶ˆÞ{_–‘Q V–ð±é+íÕB�Ãf¨‰DÙ‚K+M.g’—­ÿø‡bÚáÄ�ùÌsDp[jÐ1œ KÚZ}^Šjbìš’ ´1€.ç�ן㎋?(Æ|ò®iSV†ÇäšF[ײ"²µ:•I$þêà¤Îè.Ak­tÙŸ½µè½ÅÃ`�º—}¡Àê5ç¾/¶OMžòúÓHhÄèz …ôÞ[ .k€ö†Ø8ê52Ÿñ2?І—Õ|M×tM‰SD–hd‚®ë0?ÌL„-G K†<þj¨w[(«¾%…¡b=UÄ!f .hôÖº|ðtüo@œ¶kqxd€ð}TnÖc�€_ÞÂTÙÁãné.£ÿå²ýPkøa·õW_1},¢þ¹Mžkú!¥ÓÍÍÃ7ÞxüÞ{~ñþ+o•xx¼nXÐñ¥;ËÓüß°_EáMÃ[‚˜ŽƒvH±[EÌ yÙÕ<ÁŽnå�º�;,�źVîÜŸ·Î?íd“0®“¸„†•a§Ÿ£}¢‚Âý�®t‡ï;›¡Íµ¹^Zr׸VSr¥]<Ÿ…ˆßÉÙ«éG A 8Ú%¬¬×ÿ`7ð±”,Ìã(�ørG’öZçÙ ÔL«·¬âÇmóê’7¼Y.ºÛw/ætìîûð!uîkV‹©1�!fg@ ¨g³«°æÎHCFóDWD8qç}ךFfÒ­Ί›òÙûBFuñæLfH�n“tÀ÷u öeeô•Ì (ºáX ¤j¡\™yË‡ŠšBÝ¥ô@·ñÐ!`'F„úkÜzñŸ0]–œ[ã¦;_H·Ì©âE‚§ühø€•~ÙmþØHuòàӨܽū9G”r†EÔ»O$ˆ?£žF�}› ôô÷Ì›ˆµ¾­ :µÓvjVðÊ¥5¾œD'÷ðAòÛ28—6fÍCR§@6QU¼ð¤ÒAw©q$FO;_i<4j8…F~ |<$ŠQãÏ´¨éÄ™0¢gZ8yšGYŸk€d˜¢c½ée3dÄfÏPòä�4>K¼ïÿ.så ds]Ó5]Ó5íÓr:=|ã ø“ýÅSO,"¤�7ˆ¨*ÉÅëp¡’ —à¾�´ÆáWËÌÙlpœºÃÙ0ª‰h!ýàuV�«uÊåT¶[ûµÍ¼6÷[KrÇ Ç(„0H-¸‡e��½t²ŸÜVI²çC×’R ŸÁ†ÒÇε}‘Ì£Ïa3Á­ˆ:©Þˆ’D2´b½ Žò=`´8çû™…“óÁ´Í4£±V©IT¾•+hàÈó\oú]ÒŠûÅ`òl»jo�÷MÕýÕ:(¸)šGU´Í‡Þ“œÍ®B'›ÃÛø LV~ +ØÄ aì”ÆÁ ï)uØ¡O1^j,ÎF/Ä–½:�¥´9’‹Ã@ß¼ö¿*ª·\¹åhO*åÅwt^¿®ü ó"‹oМ×K‡�Ü ¹r]Ç�UˆcY Æu-Fxf9}³5Ù0U¤¼ËK€h7z‹8÷Þ¤ç¢hkB¡öÜxü9Ãôql9é©ö±Û•ÓN÷Qß–µ\¾ärÕ30¬k™AJLðÅ@«¥öZõp–'ÇkeäÍí”þ WA¸<ÎR­ˆ¢C³,™Þ“K#Ð~kà¯ã6±M¨}<”¸ºËRmé4¥Ðòy>5ÐZø&TŒÛ&Ð µëî.¶iEcŽEøøræ;ócWà~M×tMS[–¯½öôO <‰xB&O†>¯ ( 7Ã_¢3ôÇžª æ²j†kïJ‚2‹álI¸³`‘Iºæ²ùV¼nþQ˜T°ÇqÌì åYLi»âŽ2ÝrQUÖßÇ^CšKQxÚ!ïNWí’Úq0x`Êtãg1lÝØ}y‘@q"«¿©µx«6‰ÃŠ>˜ß¦œ]ge”ZK zvðÑ*fT}щîWvŸwùI½ø¬|xv°¥OÄ>À ¥ |‘1\�Ô˜+°�nÚ­×éV¯ë2äPø¸÷aŒEœ{?ÏHH(ÙT°¤é\NYŠ‘OnP![rßÖõ~Vàdg©z`~�9BÆsíìT�àt03JcµT7uãI¹{¤tzðe-˜ª;uêø§…;#£��ØëH¦N°Þéj=” úWÈNQhÎt‹?:l˜  3'ác�{Ê#R72‰ðü5✹ÐÞiw ®šŽ­ºÎ{R  ¢¬Œ�ÈX}xЋ©Om7Šáƒ"Ë$©0êYAŽ~¯“qi¤®ÄMÀãáCRSp ¯î”!@PßAHDðz ”–ÊO�mK`%Ý@9vš[Ó=âYæ×ù¼òHÛ*½¦kº¦kbŠÖn^{m· Æ‘Ä=ÓàýÃEù³Á—k}v )À3:¯ï uyÀ¿vkNU9öUÓŽ,Ó¨;³A]Àœ÷Ó­ Å ŒÂÑ’Iâ"‰‹²ÎÕªN· Â\òU�:­u‰êñg|PÔúÙÖv­¯³Iëå8ˆÍŒŠ0c µ�-újI˜ð=âÌŸnÙqÈÝeã¢N!bnˆ]V@öC7'±>ƈ(-�%óø,�ËÎ v¼5<ƒ@ù1¿¡©�°JìïïYOeí€h„Ú¸äœÛ =…òv'�¯\õ[)«mË@Ÿ%‚Ýó Ý¢ˆ@�ÅX¸M·çºž+Ô:­‚Â�beÈäH¶8Ðj P!]qZ’1ÎmÿßPca}ö¨€¯/£•EâX›Nô0�¢Ú÷.`k4� ÿ$ËÑÞšV´©4"²v4RŒ…ç Áè¶UDÕ¥Y˜IjM2²a‘dR†„=Ä;·Ã WÙ¨C�0 ð1-NQF,Eì¯É猨cøï[ÍáÞËÊ$+=s×<4NZAùˆ(âM-2dFk�’»ÙY ²r0[Ê+Q´x°Î0+:È&þòÖ Ç8G6Á¸=Bð5a8£Ûr2[yßÙŠbeé7²‹J`Èx¼»óÔDÄv“îÆkº¦kº& Z{ðÚkíô¼m0÷I+ðVÄÙ@¡ð³îP×]˜ÒËæœAsýÁŸÂ°, «ù³/,sU%³Tr÷èìs ^êl Ö÷´²�(¼Q‡Ë ˆ½�o×ÓœJ+âzNÛ� ƒþþ¶pÂŒ4Ö쫚[òš\L«}–¼›rƒÑ²7@ë•ìÁ4Õ¯z×6[¼]z lDÿ`^B.ü+[eP>øV.SáðÓÀÍÁ¡ŽL÷Ÿvo÷ïÐÿ®Â‹_xø¾FÛæI(uù ¢ëIý帚»e“¡C‚×Â"] 2H×c­ŸÚ  ¶ÿÒÑŒ¥PÉ�õ$É<°¾t*·¼¼�—ú·$œ(ǫ̀0âÌxí�4¿ ÐAÞ(¨·*RÖcÁPpšuµ ê’C:#r]éшl‰(.þ ^Lj8 ¬\�¦3;mƒd-”ÁÐZØšÆèuž²a¸¬³¹ÀÙßÐðÕ�ѨKÛ Q• —ÓÞÀÁ½`ÝæžÊÚZZ+sBû¤;}Õc[‹´Á·ÊV€—ºÒª§œÌEîDz¤ÅåÁ ½cYzf­éx5)3ZKF¨¬¶Jæ1E—eœ£¤iS\ví¬è¢ëÈ}Nkyxâµ5·ðÿƒ"_+4n/ñë®T™kº¦kº�"âÁë¯ßI7cC]n™KŽ%¹*’Ìpu×�ÀåGÛŠÞ“:MÖ æE’êòR¡Üpf6À]ek�¦­f4*dTºj~Á»-seÖ�&fȆO9ˆ±ô“Ã�úܘ[?•ÆÎ?�Ž$Ðzo\LŒ ªÄ¶ênê"k¶jQ“&–Ed2º‚, žÛª™´74\FÅ|Û¼›¦‘j¶p)榵O×ʉìöª×tM×tM—ÒéÁƒ‡o¼1=V¾Ã�L ¼k‡´cö°îÈ$ú'X4ƒù��¬·¾*×wëJ7d¬ë›�Ð ¾£íœ]Ë~]õ‡‘ÈÕ©v ¦«Q)!¬ƒª3íJ9™ÒÜq…4#Ø-–s™…wmËxðÀ>®ç6ë\Èû4×àTš$tíiPò XØgQí›i2ž´ ?Þ‹ÜõØ0|‰ˆ…ß#™ª=›?ÖSAvŽæÏFü¤wó+Õt·m‰,†Øe m¾<‘VÏÀ[óù©˜7EèŸn¢6_ÉYò tÛ|Ò1QÒ4“Þ |û6‰$:ìeœR¿›3g›ÚÙbÒÃ]î–ñ;w‹+]~ú³uA½¨á«È�ãW²�…_$†½†q¦ioý0–€Ë„ø{¯c\GåŠ�HE M–CÝî¸^±Ã#VCc![®ìÕbwd®<Á4�Õµò 0N6­0‘`ðu�iµ�ÁRªò±xB³ @/6Y"ƒ„Q¨½™JUψ]Cæ÷ÊÙ<ö¼Ú. „>¡3¢·*_ÏŠ¦s¶F¼ ü4p²=m÷qºß•äÆõ‹ëLòszÄûÀSÓF˜e‚y¶ �´«ÊêÔZÿŽÒBá4{f€{ÃR_ÎfpøÍÛþ yÞ€Û ¤Öé?îŽïͫꓬŒR‘Ô$Åh½OQk¨1l°*“ÎþÞûÂùÓ€…ö†â·$7¡VáÛÞõS‘²'[´°`-–e”_–Þšìœ(=�ž^šœœJ�ìrç—Ìå‡&Ó#�è}¡]$ót@VÔùͰ©ä�È™­µÎ¡/I66T¹´3 ýëÈ¡qE$ÃòR×[š‚`Gª¡Bö¨-¹Å&2"Z[K°Šþ TG°6cD‘à{C˳“g?Õ–Ó²²†C�qu›�§kªGõ™ðº4©Ð4Q1à3Ãì®Aã‹®zÛ6è°C”ëƒÚ“Ùã Sr؃£)¦Ð瀿,¤HÕß+p¿¦kº¦Ëéb`Üá |N:oEÜš—Tt¡yGíúà ô ÊÓ,G©�%Ìïè?avcv£¦É£‹a’H*U"X¼‹ê(ˆéHºòË[ì0w±j»¡ä<8¿ý³Ûa�>Û9_]Ã;ʸ÷.McAmw¾Î}Ùa¥ðòÓ¯w ⎿¡vw‘+kìnØ;Ðø©R·‚kæŽ-œ$z½ÜüÕô µ—Ç·öº|ð Ó+€šœ·s_‚_aŽãgŒ2æ]ª/�àŸãYßU(4ß3?È|bó-L�i×åÂ܉wµ"ì>;þƒàx¬Kpõ_À¼žÅRÀXPAZ’ÎøFØWÐP›P·EØwæYž…«ŠŽ¢ÐæÝÎã>u /r‰T$¡÷%óÌ 0�HÈ;»r}àÌ råaöLµ²`¢ýs­ÊðJ’ïf]£Øeäµo¦ræBƒdxuS×ÖL$jDÿ XËN(°«cD1€ìxˆUôÉr¥Ó˜©ÿFéÆîLßüØX=¨�Uyï ³_‘Ô+&#ø&A[‰Ø |ÄàØ8®¬‘¢ËSÚb�oúÌ-0å¶�@xºäáþÔhí\†YkeÞĺúý;ÜðÚuše@Užˆð6„éa;U:¿ŽÚrµÛ©¼‚Ý¢­ŸK2Ò¤ó*ð™ÌÿeÄÃ1€c¹â ܯ隮érŠˆ¯¿¾ÜÜ�î/„Ý;ð:h…¼†F…yïú¡7²Ä C=öË® öe¶Ci­»H ž“„Ë\PvÃLV¹·ëË™Ú#³ß½[s9ÿê®wX�O½;;ãáâžÑÎŽì˜Eˆ1—j†òw͵¹ƒ È–ÌZÇë‹�âw6ž»Õ³¥\S:K’þ­…§x&ßë ]Ìמ¤ì{ûNX/�<¬5ôCz ^Y2]ü5Œ a÷ˆÇÀ ¡˜¦[éübuÏ·*tSmÅ2·‹Aâ{@2 ’6G>¦�š+÷ C“-GÐñÎ �ûb*¾sÙd ¥µh9 ÆQ¬›¡nT¢Të ) Í�,™½Ÿ±E§ÉÌ%˂̵�q™4äu4cÚ$û^Êí‡ñÓ²´9L»ìŠÔšCÉÝìYáëišKò¾·ˆf�Ø£÷EcÊü-ë:XFÅWaßÏ\9ÙV!JE1B*÷óýT`Mæaûö¾¹ÏeP‰­Äù© 0=´ œ Øje£NN•mPs¸½Ç–zjÓ°¾–T(~öBrÛh0°L!Á›]Ùäý’,"m7ÿNùÇ9μõFügÀÑÚ§AïýUc½]Ó5]Ó_ÖTÀýáë¯?ûðÃW©'�ïO€OÍ\y»Ã.*É¿ŽC;¾æTCN¥ð:WCc.˜;ìÃðîλïM;R³",sZUÊ–V³Z\¬ÅÅòì`w° ê¯wME\«»ý*¥Iæ³!à´lR°¸[_ª‰^ôàè‹åt¼q×pu\›«õ³å‘†ÙOÌã ,EANí@u°Å�za;½Öˆjîlrʘñ٥ؔc�=óaæ z•$ÐrpOsæ9V>G|/óiÄë”y·7_Ù@ØHmM°Òà¿`:Øe¹íãH€‘È{ïKk+}·ªvaЕ¸§Öj(O½gk·ª­2poeá~�ZXüQ6U�$4 ÁÖ¹÷SDkmͬˆ%·Õ£ÖTyá­V]£½Ql6îkï75g N5›N… ÕÓÊþ(›î»ˆÎ¦+6°ÌŒìEÉ *@à[P¯‘‘@[׈X#–Þ³÷&¯0ã*Ê  òd¢÷Bùª4¢b]ee™ëM:�¨©2öÑæ81t�XfÉ+óˆïλ,9ŽÕîÊ#WµOw˜¸e*ô^„õAЍåˆs�Z9ìù7 µ«§­÷¤µ&/{q¼ä©î«�Ý̀轷V�ÃWè¼Äè}„õäZDdFÅô´ÀŽM<ŽD3€®U”RÎ9³¦èE(�x <žgà&âof~ ø?ßÌü“²‹" ¸çÝóš®éš® Àéææµ7ß|ÿ?xÅzE¼Ÿù3î#™Ñ˜Äi×…ýÁ$(¨í5tŽªs +ó¸ë]P;æ‚^¹>Ë‘|DðϯGÌ-˜µöÝÉé¾ï»~ujDZ»1gÞÙÒ€ƒé Œx6œ*—6¬ÝJp²œ§y0›+i0I“À]ÂêxØ•› �õƒì¦Ï•¨½tìÄÖ ÿ—ôVÆ\' ïj¿og‹ ßl^•ófim¡ÿ²e>“}(¢ çÀ°ÁÈá>— 3ÇFI5¦86 4TFy›É8/©JÙ‡º£+FM­í,dì4lþÚ6Ï„Z1X€�¶K˜ó9Zë4„`¶Aã¢ø3ô{i)¢Î0j\ßð°Q�dÊߌˆSï…¶ýئ1"€Î+UüÍ:$jÐcè�®Éן±¼Ñ¶¨4‡‚7 l¿�¹{€“©Qi4]’¤š*8BèD¤™FYzYï­ÉÓ?À1dx„šk™kk~lù-«I6a™…¶¯4Ê� ÙºêºPxÕ/ºpk4G@ÏÞ;p>líàëÀ7€oD¼�ù(ó)°Fœk“Ok€×3?ñ³™¿Ðûÿø»™ß0?¯éš®éš¦´ÜܼþÉO±ÅG¢�]:Oíí‚t*9¾ì3Q†�GYžcëa ÄG#¡Ùß]Ò‹Sí:”ïß¹H„kaŸÓ½;¢KXªa‡» |&�„b˜»æ–Ï®¸£ºf–Ãj]X¬AØÓ¬a+'¡íÎñîìvôù«Ð³zᤠ̆‡ÇÖTåôW¾)…Ì@7Øà!p�zì�³) D£U}]l›¬\ì¯1Bpï€û®´1îqC µ—¢¾“ùð“Äšç}WjÆñ>4ð;‹ŽRɯÌÞ¯‚# [ÞˆË /ïc•�­i˜’>lÐǼ-ãD`]Ýr i±R³ëxÊ,Ç­hñ’§GœHÃÈÖV‚à`äÊÖZcLôq[‘å¿´–42â$†ŒÒ רšÓQêW¹êûºbYÆ<§³jm(Š 8°‘7 +ˆ['O9¶h{k }Ñ´ ÐÚiÚu\TÅ@äÐ4ÛöP‡…VPó$ô¯!¯m¥)N |kGòP^Ñ6Í*R¨}ÚºfkÐé¤Õe. Ce]†‹¡Z2A\>¬îZ¸ ë¸ÓFÿ·aÂ|7ZD5{Ð[k"äpVè6«®�~i£WE¥Ô.Z A¤áA5p驆ò6ó�ˆßÊü·_Îü€Ü°ªa 5£;7s‰¸ÉüdÄ ð¸½÷kº¦kzNj­½ö‰O´ÖÖ¾Ã/†Ý;ðc;�ÐëŠCØÕßÙ¼ˆ_bÆô;Ø ÃÐzïr‹3¾Ëz�ÎIFßÞë3øöÚÖmwC½^P�ÂìUU7½¿Ýº„˜ÍmÖ[R†Õšk3û\…úëWvú—Šv<�˜ 7–„�äʹ§iÅ¥º¸ò8 §žë-ιña°ù›ÁÑåÛ-ÇÕîVDý‡ÇÝó€ÏF|Ý–Ú1CXü½+9OfWöùEJ¶÷#¾üÕÌ×ÌÁ<"˜ç˜Ï(OuÎèÊ3­v&‡Ë–ÀÚû™,#¹ê•¹™¹Ð \ù[9 GCôtŽ[»0:}ÃÉÁFìÂ^@¼-GxĹ|ϽwâïÒ@Ùi-ó6â”Y!ïF{[ËuM¥ 4à<_.2omb ÔKPXöCáY›A’‹ÈÞ§IP.åfTìi0rÛ^ô…'³m¬'–šÂ¼p¸µÈ°�ÒÈci44ODÏLwf5óÆü+±‹XÏÛ*é_/ݸŒ�\ïZ8E€Þ£240 ú¯Tø2{‚´·$ÝhÌL}ؽ�rä  s-H�‚3w¹H?ƒ˜Î®i¥¢êoº Z.ÿ"ÒDäº6ÆÏçYŒAuéðTp­)3ßÍüÀ?¾”ù!°Ê6II ¥óˆ¬C Z{ÂÝq龦kº¦k)Z»yø°-ËGg}nJà;OT­A1k9JÞ]Wæ>_ŒùW€¯_ÇŒ5w¨½Û31çR°:û\³ i˜³ÙJsi§p§QDœ¼áP„‰;ë™c&üÀZ”ñã˜ÛüÒ<3­º�¼[»`mÝ$œP²xq7°£ö»Þ:’í]ø£¨»RÒ¼8îIxºÎ5« ãx‡æ‹ÁGYSëáX+' Ã`b Í™ ÁªJTœ3?tS{r§YU[så@­æ„ÀH´hD30%ŸgåKGdæCàç�àaâK§pOÛ¥¤—÷ôzæ[ÀÛŒMY«ü0ý‹`îŽøîÕµÅZÙ ØM Îã\ZKúÝ5Ü»N=˯Á5{x£©.’&^LúÐ|Èt6»b]3âxÔÚz¿÷G·™7­½žùéÌŸˆx3"2O9씽 ¾KFîy×1Ö"åSÔZÑ2È Ôty\ ÕØ‹½ÃõŠa *è~±�hŒ�{A–˜ '¿¿8 …ãÓî£oDüƒˆÑû‡›-3ÝÔì“#Y;/’s¾sè¤,¸¦kº¦k:¤ÓÍÍëŸüä“÷ßß]ÿHÀ±K�€ï¥ÊÆÊyïðtd×?\°šGç6Ä\9£溫{gHÈÐׯjW¢ö8HèèDN0Qe3¸÷Ý÷œq˜ZvX? ˆûZI2ø.ÕÕ,Ù‹Ù! vC¶:3ŽÛÛ&³ÇG‡EwÙ1£šU(á«ÔÉ̘Õ\¡›$Ä‹;Ÿe7&FehÖSñ@D§yÆ:å·{üUà à1}u;ߨjß•v®ÉçäQUªü)ð6ð‹4’C½õ°áӌ͞ڎ ºK·UÓr£¨ÄÔIØHB·Õª-�Ñ¹Í $?x6Pk§ÌÛÞoˆ·‚›ŒOl®(+¥¢…Û¢�ë²@S]ë* Áƒ}Q³´¨çKæJšxZ�œ´е÷ñÜÚ a·<ÄTNú6\1°‡…ÑJz”Áý¾#ž}-€�“Ó{†‡U#�qHFüïžc#oräßÇ]‰×uÄ:r¨öÒB@\Q3¿ó¤�âØZTÈv­2Ér–5šJDÜß~øÃ̯G¼ñ¸v£®ëqd~*âS™Ÿ�øLÄÏŸ~x³|ðdà$×y6WwÙ„ÜG›4Î7UóÜSèUÂzÚì2”{/•¶úàáösÏhwæRØá©˜Ç0 ¿×Ú?þIïî¨Û3Œ)×gö¿P»îbÝt�;{xM×tM×`9�ÞøÔ§Þþæ7_±ž5â»äÑ*¶£½‹X9™M†çDÛ¨ÚÜÛ­‰fùÄ{£iÀ:L*Çú»ä]ƒòØ}Ÿn�ì¤Ê¹kþü=®ø¯îÚïV ,¿lY&;0-”¼Ž—<š»£ü> #Uœ,³²�çáÛÙ'Rà�Öô/Éßf-u«¿Ïc¡´)„îÌäáê…¿C,V³ÍÒm�X²P]ÕâCà瀟ÞÚ3zÐEÜ;ÝÇ–;¼¾ž#Þ!1£·„§iïñ® �6Êê¨ÏÉx&#yÓ9ðf°œÁøÓªj*+ÞF¸˜3PÇ (¬X+· R$€ ­]{C þS§‰4ÑŠ�9d‹&Ƀ™Ó'b_p™e€3wsˆF`�ûÌŠ\Y–Ɖ,‹ãVéá¾Éû"ˆõõ¤aÔ £§Ì•ƒ ɹZ³ZÔ瑽÷ÖÊt ®ÄX€T ¥~‰~q@|A^RÅvOTaÆqî©Ôʼn׀‹Ĭ4-:‡#m¶åì™ÿ=ð¯�¯�z¿m­—�ÖåZfkíx x-ó3ëúùÖþ6ð+™?Ï厺y£([ŠÿHË\»�tén†¥YÀ™ã$¦F3éL&Ì€ÓZˆMßÛmR(«óký6„Éü0âŸöþ¯"V-›Üñdð[[ ¾½ÛÉ™¹üâ¯þ*$ók¼¦kº¦Ï”™Ïž³©’S€Hù‡]뺨¯»�ìÖ¯›ÿì’‘ 9O)MQZ h³IãMÀº¬”†ò]€˜•¶3T$UŸ"øÏ9K.@ì»ÛÔÙŽUŠ?Ñ+ + ú;…à…¢ÔÁ|ø“ƒµð¢ïÐ}áNNôˆO½B4ʧHРLÉ%OnOº´õ¢è*H/#<„Lb�nòM²Tá ‰ð1€SÄY5cdrt†òh¶;³zWŒö¯¾G¶d^+T͉¤ �04 Žà~ÙÎù0¦Aœø*²d/ï¯u¿h9Ù/´yÊ2Ã_¦9¤QÄJX¶P]„Aº&Š‹»r“ªÑL¥U¬ª]ZëåçÆÙmV—B¸8Ó3"z_"Öˆ�<ÙÔç›+|©(ò�áÂ×�z²¿üwÿàŸߊxÌó³wÞá I“Àñ$óð6ðuà‹¿ñ`j˽%¸´¡§ÁpšSÚmH®çèÝä¥�Ö〰N˳f‘ßmà°¨ÎÙô Ûù“ˆ¿cöñ~×Eš`µ â§M¹òÁ_9î×tM×ô¼­�<ˆÖp)° îç)¬ôððiCŠaz‡üœ[2š›AR¦”tw%Ñp�h¡ÓŽÒÚuL¶3$äÙÕ+0¥äšu!µV°“SR©­å  X»NÁZióV�W£Ï~„�V9Ü`èö“”Óé—<¢@¸Uàø^Ýt1N–ß¡¿¨£yW£GåËîr+n5!}”›ýê\ì:AOÁ£A‰¢ì�>ÚTøëÀ?ξåÑÙá>ˆwsf^Ôö¶*´ÜSà2 ÙÁé�®ä}Ÿ Ì㨛q£‰hSãFêeµ" msi—z ……zqKŠ…¦Äª°?Î<¡gºFAü“[ž²¤cž¬±®E/0½µA×®³„Z;‘5\‘õ¢µä±�¡s—ˆqè™# MŽàî…׋d¢Ûs‰A’ƒŠŒÉÃsC@ïµ÷^t—ÆÇ0˜îj–ÖJ'kïÑZ-›¬ô"7ÙT¥±um@ç)¤rák(Em§fm)óLòŒìÍ^Ñf‚:otZçokIîû¯Gü·Àï·l¼AäBöÉ»¶"žF|˜ùƒÌ?Šøç™¿ñ7[ûBæ/?‘ù& e�ÎJR‘a€¡dÝw²£ØªÀ÷9óñnæ;ï¶öẮ‘yñZÄë ô ó!ð0â�Ì7ØÌ7qFg#�y~-âüê¼+|'õdËО}Uþç÷Ýå>Ž�—(òÃ(õœGá®ò»r>G†{Jûr�z¹äm½\ï¯Ì{þôêéc¯üž/È�}ú}¼3äcQË‹LûˆXnnÚ²ôu}E§ûcà»Àç|Äüa4z@í»´ÃÖB ;4Ì�˜öAô a²œët8èxw½ZÀ±dksC½•nÍy�ªa×¢¾ŠŸã<–]ßa« N˜Qr³álÊtâ{ŸU„jÇÁhiö¡ÏˆÝ0+!ÏV¿$^ïfO§É³0§˜?°Ì04¿¢!ÚÀÖµâó¤dþYàMàõÃ^û×íË¥0ÃÀS]üAæãˆÏÌRºQe ¦¾9ÍSB#îW„°«T7²JÄfð‚$ò Ó©7=¶ “¶ð·<Ó…†[ëü:Ë“Ó&ie)Xä¹öªÖBúVµ}¶ÂÚ´Ì z$éÞ+xh=ϧÞ\ò%R„›cyfHJQMNĸݬŽÔCzÔK�3ÅPè ¾‡Y8 ãT6Τsï¨C©€FOÐŽNØ„ wçªBj[v�y”YLp 9"zR%¤†!äÊ‘†O-Q¦GüNkÿ7à«èÆ'­�èÑõ£»Fzæ3à;­}ø�ÌÏøŸÿà§€‡Ú;1#`Èã®Ç&ÉEŽƒ×ÌgÀ—#¾|%ó{�2ŸD¬¢xe¶ˆx�ùFÄg"~:óó™¿ü ðfÄƒŽ¥ ÇzD¿ßÚ—2Wî¥Þî£Ù’ß9ÔiuŠ}0ò ®qÜÿcJž–À�xºªâÏ1EÄ̓^{íüìÙÅ_ï�æ;ð-àW€€[ɱéea ØÁ0.Eà†á-Gºª¼‡è*Þ…Wos+îÜõ¦…{ôÕ‹§]‘<êé2—ÊYþDÞÕsLë!OÌïs•SÝ” ”xd·es×ôÎ.rŸn£H7À­¡mÌ  éC Ó�‚¤�Âj?U…7À™Ë XÈj"ÑV±&ÁÙjÑQ@úuZ;esc2�7€7�·41.á�Kõbé9÷W��oeþð:¯ì�A+³�ã·ÀîÖØ¼òô¼AsP![�#¯àæ6pŠ˜.ô�A×Faw ¢¯œÝ`0ô\,…:©T{(KrcTmµŠÎÊ0ð='‹ü߬›š3 qU• î…ú/Ô£úÙDŠ€Žˆê½‚ä¬D홹Fó$y>:|43Û²ˆ5^­$pÛû‰;G ‹btC–K’Ò“Úu­l^{ÜwY5Åõ/UW´u…>”ÓÒÓ0fjÙ¡÷R{Ó†T:¶•3€µ÷oj�8s¿¯0k#´ÕÄvŒ®<Š:º»n�ïf~?â73ÿVkÿûÌ¿ñffcvóÖ @ðYD`Wù5ó |'â¿ÏüMà;™�"žÑÆKŒ°?‘ÙàÍõ0â§€¿ ü癫µOfÞÐ& r€¼ßû;km¶¾ëÞô5ÿ|×ßÒÏÌq§×ᇒîé ~¡ ýß«Wøç–îïí¾g%ÏÑÃNKÏ©í®Jî©ç‘ñ}u1>öŽÜUùýoµ{–z¡ ?rJXÊÞ¿ûîã÷Þ»oýw·»fþð†Ìî®$¯­üÊ•_ô"ç;¬NG̰‹B0.ƒW„^üs‘�+Úáû‘]ÖpDQrØWTƒ<Í»<"‘«Nï¯Ë†Ù&ñŽ;˜ó…UµkW–�w­Íõ¸}™kØ�Å>ËìW0²{³VÒò{mý-g³¸Þo9AAïo3Ü–9QÃã ®�üàxÇÓLjàïJ�/oÖ7BŒß‚ᑽ(ÍÑîÚ¬J–p#Óê©!#Á¼×ÁŸ°/É$%ïHÀõ�î*'„ñ+.ø°úl[m0Ä $'}ð[QTúb˜uÕdØÝ‰ v^õ?"3D$Cà�nVpn.}hgêè#gopN&M  ½5=s:_?(X²ì ÇDTתx�<ÕL™=ƒn¾ð”ØœÙf¾v2 õû›H¦E}ý0âµöOé×wD¾ó¯ûXožrK�ä%/.ëè{À¿þ(â–îð“MÑ`BWŠ�D=¬Àø—ßÈ| œiÚá †ˆ+%Ï ¼—ùåˆßjí÷{'â pÑ"`l@æñýˆ–ù4>òàAW+å»+Þw©bùÅ_ù).fU^Ó5]Ó5@æÓ'OÞýþ÷_ÝŒY3 øÙªuþé®çŽÃ¸J;NËNíþ¦}ÍùŠŠÈ;®ly‡<; Ä9__.¡p՟̳Cð.dŸåo—,�‹òìäos¿ò`©ò<Ô/Q›]o—äWò°Œ;ÓHòìhj´ÍM”`Næq“`go43$v¦‚WÛ Æ�W;Ï\bD„]‰yÖÕ•'À—€ïòìªcÒËô‡èž_ˆø)¾»'�°ƒ‚wI°¸»\±»Û'mܧÌ3î¨ÿ;�‹¸B¢›¶Y|"DñkrD–ÄQ;ˆ;¥Ü‚6EÔÙÂzÔ@›�Aø#ôœú†m'¢D{< ˜²Å:ˆG7u/'ô²ŒÈ•@ÎU!°s'I#Qx´ºPÁéK0¢Â  >ÞÚÆæ¢HU[b Jˆ¿®Ð‡ålÎì­�½³ Àç÷¦g™ÃÀ »f{:p‡ª2t´�ñ‰ø~Ä™ùŽùÑw¸swS$iÜ»{D�®è¤§ÿœùÝÌßkíw"þ(ó½ˆ×3ßÔ8ΰ¸[÷½±µÿ{ÄïO0Îíš2U_´%@ûáñ=à€/e~#â{™O2#âmÈ÷�É“w6¼×¼cùÿªüô¸_�û5]Ó5Ý‘2óöéÓw¾ýí<ìOŸG÷¬ªŽ‹ÿkÓ÷M¸Ä±†½``ÙQàÓðï5æŒM�bX$ÁœKû)æë»¾À¤ÓeÆO‚5 Ó{Twi+%I?ëfR«âÆ(Ž»waglä¸}‡×½¶4 í2À>àÒ>—_ -wkf11ƒª¾ï0èc�âûRC³ØÝºÙ�¯_><ŒÅΗvøýãIUóø©ˆŸµ+ A´‘Ÿ ã—>Â,XŸ·…ûVR®ý =àN64ae‰Z•8pß:R­³yi[% x cìknüª‰]Ÿå:Mú;U—t§œ²jº‹—Ù+˜#�ô©‡f#Ñ’|ö™¹° ò‚Cº*?½­]4ŠWÁ w‡4I-ºyuh@Ó^˜#[‘a2å0Vp¤Þk5`š–òR'O *arìúMs`ï gÔ]ÓZñÐþ4ó¿kí|Ç*“ô ¥Û3oÇýBùÊ“Àm棈o_�ø³ˆg™Ÿ^;<ÃÇíÑ�/ÿðϼèâ:ÀQÌݯR=â=à_níO�ïKăÌ×"Và×�÷ËÖ:8Î/Ö&EMJ6 Uæ ܯ隮éŽÀí³g?øö·×óù£s?7%p><œ#‡è×°Î3IL¤ç#l…ydÝ›«â;¯^‡"¨<Ç]­ë`‘8\?^Œùó®N70kùڻ:óÐÙpn>Z®«£ncf3/óF‚4J¶�s=ænÆLÄ=&Lù8èÄ 1Ó9¼9}Ýf‘½Îú¡w8˜"%M ¯&)¶“d,Öû€??÷Õ©ë? ÎLuêu௟˜d°Ð3ÇÊ»)®�¹'˜7x‘qFÒ£Ôx]t u¬Ô­îý…: Ñ­ž´¾`¤ Åø*áØ@fNÜÂt‹î\6À)b,ÅðìÌ�¡¡¦C†&Äf –µ¦ƒK“•,„õ]Ñ uØgµ²,ÁEƒrº‡E¯lMÞñÌh­€Þ8}�nUéPfyçµ';ba@̽¿sý®ôø*ð)Û†0jìÌ;”æ?mo)þº{ðï¤6h‚è­¥üß;þ4X­ £×‰ÅÆ\Dw†�<£0D+rˆw'¬†6#×�BÜW5¬³O:ç_]rÁtÕ°Î_ó�Ýó «Ä-.W  ™1� Сü�m-&üb Â+f„l}´¿n,&¦ÔX@ÊÙ½¡�¯„> Æ™/ƒ\Å_>YûSï¸1ôbþXœb;·\pMÿà]àglzû„O ·n¾7‚ø<'sþë¿‚ÐÙ…IÊEè nwÎÃQŠðõ“±ŒÆ£Fƒë'Ø~GÆ™i ÁÞ"Ι54E™(,[ÛŽ“Ïm£÷‰V÷k“`gÆò¸žËÀMœ'¢«sæ îp=ñ`×�êCž}çvÛS’=]íÞ,¥ Ö—W{]ä´ôÞé_¯€›µŸulç�xÀãWQZbü“š¨¡Xæ5FÕñÞï«ìŠº¹"ν?ÞÊ|§µ÷3o3Ÿôþ´µs泈x|øéÌ¿ñ9àÍÚûa“yĈì=">`•¬c’fÜ©Ù+tpצn“‹w’.úñ¢Âúõ7Zûø ð à÷"þ×½ÿç?_‘éiÃeZW`"l« 0Ke"à«ÍŽ™¨Ù^SuÙB¶Ì"‘tÀÝðÁ_‡ÉZkŒj/;THáÎØ 5óÊ.*'ºvÍfïkÄ£ˆßÉü݈¯d¾ÓûO€±2”JZæQš~2ó¯+â?Éüùˆ õ~ŠXz�ŠI<,öˆÅ.<ššú¬_w‹Qî­Ç|Ëä0Ð\ú|ñÅ̯EüfÄÿ ø™¿ñ)`‰øúºþãÖžù̯•"Ûv{×-|ÁËÎõÙ •ñ�Ìïd~8E|HCEÝÏy€§ãÅÝ‘L/C•Ùõ)žûë]i÷"yN…Ï©ùcxòݯ­{6ôœ¾ÿEuêå:ò±·{—Ïïc‚{ªýþ£sW‘»@Òóºgºgå/]ÿ}ÚEæ‡|ðþÛo¿âþÔቾ¼i(SÓ^öue�‘¥SﯠÿÑçíP2­ £v§m4Âиc¤ñC`XÓ¥:ÚNAQ=^‰;°ÓÖvqùã’*¼Å¸¤·6K~4TÒ®»êº-ìÚmsÍݤUÅÿɹÑ8DótÌíê…Õ ø’Ë,¹SíÃD-d³‰J—³>wRáëXûFȸÚKÑW¸ÞþxzIÿÓÇâzߥø,ð‹ÀÍ šIÜ<Œ(“FãåĤ ¢]_ó‰�gÓ¿¶$ª·ê¸}‡[¸ýö‡5‹m"qõ#dV‘µ�"ØèU„rÚ ñ61-¶T0D“³³w’y ‚Y­Ðý/pÚØk-,OHõ;7è0€µ÷q±2.~‰ÚgåtE•¡ù V€Œù$”ßö�C&³g>ŽøÃˆ¿“ù��/e~§µçˆsDFœ3W`�8·öaæ‡ïo_�ø­ÌñkÀ¾ÕÚÀàE£�xø5Úf@‰¶]fÕ‡ÞÁ}¿²ƒìn!øO·ßÎü2ð�ˆGÀà&âFüã–:èW[ªÐÅöV”x¼ì>³ jôˆ'µ>CRÖ.ÛNòãO;V:_K_T1ö<¯ôµ •3î¸þq¥—¨ðåDúa—úXëUj~~¶�]ò�E*¥{¾l_b¿På»›ÑúxgþÔв¼þ©OµÖÖKûS_°Þxœùàçf²ŠCaBõÞz�írv‹%²‹S¾SÑü9Î>ÍD‹³‰¤œmfi'ýšA”£†Ž¸ó.@�•_YàI¢6Ó(ÉŽÇ/mÔF„ÅlÄaS¥Íä%w Ñ!(sØO®�œöçô÷¹* )Q¬¶X±X Ø!N‘%Ø"äãd+z#º®V¾h‹½ùû‹0)À|ø)àÝKƒ ¾õõác‡ì•n�o�l«ÒÎ$ ë{™+kíG¤Xi#¾ÌtŠÆ<'+ ;Loc?€kxµX�ÃýLX¯cP7ˆI,>Ʊ b¬˜4_ø©6—ÿ»p¼b®½°u,6—m!æAÝ&'  n6 Ü{¯#KÇÁ¥„x]H.3#n{¿áк5F`,©ŠœS>oŨpn3o#n�w3¿¼ ¼]¡f2?ñ½ÿàç#>  …x½U�á{­!›Ÿœ(=%ÆbȺfÄ)óqÄ¿þë̯p猆±#´èCYPkæ œ3µöµÞÿàuà§#þFæÿ*ó?~.â“ÀÛT‘b¡ªîšØ]—$»Óšvyü†òdºü âà�3ÿ â‘ù[DíÊæô7$\Ú1©f-9ãå®[;¸õ"/= .¼Kùnºü…Qe>vl}M>é.¬×1½Gú�WEñàõ×Ûét×þÔÝc÷ùé |ø¢¢Îc‡Ã‚ð]�n‡ƒ�_‡‹C1CjÇ÷0Ž�‹$ç¢`å®õnŸÃj>^Ù]žœ€¡[©Í8IÀw™ep ‚»5†h•v6Œ´$CÈ‹ j‹­Û9|»7³å³ñRþjÂû¸KB×ÃÉÎ1UO}›rqB„ØÜ #6œMWC!™(jn›sΖ<¶sXq HgêùsÀ/z—avi•ÿãOßÎü:ðYÃå»™_Ò4c•PÇ—Ö‘ÈM�wr°WˆâÃäÆ\Oj2ÖuR’G#éòÊó#�Ö²Z¤”Tª…Žúº`;ƲêI`í=ì@ÊJºy{ïµNf Tß ‰åÒI¬ßN�â)EÜ2Ð{Íùs}•U\Ô—:ïICÑûJßv¸\ëü¦ˆsćÀ»_ÉüFÄW�¯og>-â;=#'àq>‘ù? |ø‰ÌŸ>Ÿùs­½!†ý­!(¯R-E� à­ýðw3¿ãœ%#j»Ëy‡ª! ­�§ÀmÄcà[ÀoGüg½ÿoZû刷l\Zk«�ºí(Ü­œº_$Rï}Y–»ó �…"?z ü^Äo_ŒxZ4ªˆâš_4§ƒ;kiýM×ýŽö"Ç‹Ê,ÕIø�‹Ý¯øºÁè«ø}�û�8àøïåDúó,õêéGPí?ÔôCíïý+ÿsSûd¤µvº¹¹yðàüqìOMà;ÀÓ:/ºêŸý‚;𚆞%{…;,»Ã£B{0L™DØ<ÌHt*ÎÎÕ}FÁú"ïzá0ב· éâ9¾lså²:üë.¥õNÙ\ó.æ�Ñð‰¨]Zí¦Ì0ÕUZMGê;ì®tží:Xqo3ŸÊaw›õ£Lîážy¢7®sj•ÕÚK½>WN§êõ§€_~�¶Á1íÐÎéø± ùÌüøð‹À'<®mô+¶ ‘w ‚GƒB¥6CÈàKÒ¹»Í@j2ÔMŸ“ÄèAÔ^Üñò�oÜù�É8¿�89J+LRû©÷uYj[d�¨˜åçÌ©·¼ø™`@ôÎMºÑû9â¤ý£„ò™¹fžZÛ‚¨ʯ^,Ê\pŸ³bawÆ>QMEZ) <íýÛ­ýðë™_>ȼ•Šæ 7²÷¥µï·ö•Ì�zøÉˆ_ìý üjæÏP·§ÞEà)Uo£c ì ü›ÞÿnÄ7¹½u¯ƒçÛQ¦p°X%šÆkïÙÚ3àQæ[¿ |¶÷ÏŽ­((R½øîUâÈ[ ÷;åÝóñîî¶Ò·ï—�J@ïžï�0úºCØ®Ü};ïjeßëWåObÚ©ÅA<€å ¿ú«®¦ˆû¦xM×tM?>)€õ|~ï{ß{úäÉ+ÒÜ�á(ýàMctÀÀŸ>ƒ Iî[\BùÇú�0�;ŠÄ\CÎùÝN쇦wäõx—U¯�åâ¸s—dá,vÅ•à}i³Ò`–äŽþcþ©Ò‰¾öàWu­Ê:‰%8 ÇŠY«y�\É 0É+«œ»³Ø®�f$x Ö®¿a ›¿ÍØ&½§iUÉ{ü»{ô»(¿ãÇ’:p ü ð¦ó4ÝŽóª½z]2Õ•á¿4Ä9~¥¸»Ûpû+XV«B÷ÌFŒ>ÝM:a¨ˆ‡È][‡�æ¬ÆrÿÚh ÿqusµ`öaFÈ@8´Í’¬†eÎàÝ÷:/Î_:�„‚kÒÛÂJ:Qš„IÆ zˆµéY/ç yFðýð‡À[E?¸Û¿î_w×?øžÀ ü"ð©dׄ‰L0IøT!T;+9KDM?—_õ×Õ’¡ C«æKE$•T¡ús®sÜG­�]˜ˆEEåwÿwYn«Ëo¶ÁÑÈŒÚÌ.A$6¦~I?vš´›ñÉQLÖ3¦ ŒžEüàï œc8ÔwÀn‡1Oÿªá�Üßþ8â‹­}øx=â¼õÊÀ@æïEü?€'Ò6 0£’dkâÀ·Þep‘›âÀy>Ú¾øk̆Ä.ç]÷‹ßP.ön…a—sgE/îºì¢î*ôJ´Jà5\tö—Y‚y ö#Ϊ.xܯÀýš®éš.¦Ì|ç[ßzõóS$p~øŒ9SOTòHÂÁiþTÌ æ�‡ã ÏAƒÃÍÚv.œ ‚B`å®�Žæw y媹ÙaÇ«­ÍxW}ÌÞ àº]ø7çbGr{®\ø#ŠA|)áÄ%ý÷÷ÓlÂø2ð__mmå`IÛ˜Gÿˆ‰§±> µ<Îüðň/+ðЬPDü7¿ë·¼Ù ÀÜPÜ7\°ò.8{Œƒ.ÛÀ/îú²ƒ¿wuÿø؇©¹¨¨£�b[wÄñúNuÇq9önç¹wèìøGvç ܯ隮éÒ{ßÿþÓÇ�ïúÕЙøÙ20ü$®ãT÷ûVr §wü± ÌÜ+î v÷ÁÛí3ëÝÝ„9<Šá9ïjH v‚•³~\ ÞÜóI5Êß¼ טo„•—q9԰н[£8ºá]!þùø!ÜËkÖšïj ì±»siD¸‡)m='8°¨C@Sd‰ˆÚÀ*憺p |ø£»iî»ä¯m]Ù}x™Db÷_>y€×CÛ4<ÒtØí„#È m[0ýŠ›šjó¬vü"ȾØaFÃL™¨ �Læl[)vjªó¶êÄ¢‚× .™”|HXþNÄ⾌ ¬¾Öm½P�ÆêO†ò¥ž!O©±P8�[³¡ŒˆGÀ?þða)ð¬ytoß…ww ½ªˆ8ß~;â‹™´Ö2OÀ㈿|¿ôsÇ6Ê]•Ýœ<ŠíÓø.ÊøÎ�î’×¾Õ] uoNùwb¾èwßá~ÏpìÔy?'³‹W‰cî�0Çñ­_û¼X½kåXí] þzrê5]Ó5Ý+EÄr:=xýõzà>'ÛGb÷ñì¾ ü-à“fŸ±3Â=¥áE‚@ÃÀ.,¬Å#ôw<ªW»°æ+°Žq}›æŽèâšÌÄqåøuÙ3ŽËU³C7{Â>Kò—ÃïTÚ�ãúI²±û¾h œ'ï{ÚÄ|8ÐrW:³ˆªŠY±®=Ìí¦}Þ‘‹ 5¶¼M<®aú(¯ùr},<!à¯_>›y2òÉ&pD�Ú |/ Æ©õ9âÌŒØ&#E�·F9mÇ*‹·7Ã&Ž›®¶xR'çyá¥�ô3 �gÀSàÃÞo#2³Øá¯g~ødăÌSQSêÁRµVý#îWËI›c§Ì^'Q´¶ˆ Òš¢ÁôÌ%¢Â­hCçÂz U5 ‰Ó׿YŸùéˆ%baCkf»fnÚcˆÃNØ=ŽRÊ\Z»Íl´»*Xa�¸©lÀ¹÷ =YQA{Ž ’æØEz,À›?š¨+pª˜ƒ™™yÊÌÖ FŸ#þøZn, ·c\ŸUÐq›»¨ÝMëºCÀUdÞïý÷#þø�`ÚáãE(©†vf×Önâí,�4†÷ýçLñ¯ e½ì0«×¹ƒþ"ðì´¡æpé~tI‚Žð»Œ‡]wf�DÚ�æn ޶�Kå:Qþ‹J®lWà~M×tM÷M±,¯¿ùær:�ïî1Ê]é |ø?iÐ3føåøµ°Âb˜ÏZÚ%ÇsgmþÕí¦‡™bWû*Ã:ƒ~UuôIOʱ“Õ꺨ÛGÞ6Œ}î˜u÷AªØ�iùž;=Ö9¯B¸Í°͘ *P'â²{÷}õCêŠÙ›®:ô4yªÑŽ”´(Ê jß †¹-�ÛW ºµÒyEVÍ8ȉ1ʇ†µ¯1"2O„†…eo">|øÚl™‹.ÉcžWÇîF¿ ü>ð&ðé¹ÞÂhg œ�dnLž`æ‡Ï(¢öF;°XÔ÷ ~(–®ñmŒrxô߉ø"ð€ï–ÓÝ|öAÌÀ7"þ8Ÿ>—ùyàóÀ/ŸÊ\2£µ…Üdvâ¾3Ð }½÷Œ8EœÙåÅ´|T|ú²aÊØ{–ù8â{ÀW2¿ñ½Ì'@F¼ÙûO¶ö™Ì‡ÀCjø3Ÿ>͆eâ~þ$ó)õS;¨­Ü}¬t0íXsú÷f@ÄÓÌg†€}R$Íž>>âN�à¾ã·<¿ .Ò¿ê¢*QåÇ’ÄwØ÷#ï`wq§“�2½Èq°\È]…;ûD@üØŠšðúëÌ)Ðx؉}ò¢xå§Æ5]Ó5ý%NñÚ›ož<åy9_¥ž¿ü<ðiCÕIŸºöz ¹VAÌDÒë~¿èCΙ��3àÓ¹GU€¼üÒÁ¹‹P¨bZ7ËæÐÓ±ìŽ4»è•{P(+"°‡Œ‚†8 CGççkÌ2 åßåßéÁûóOžÜ�íÞq7 \E;1¼¡œ+\f¤ž3ÆìÂWUí ¡×ìŒ÷ÅÉñ~Qšñóª`í:Ÿ¾^› u”6Ó4Šœ¤8¯åý͈5x0anq…Ý©ÿøðõy^Ó]oX‡G”ðB)éøÿ…ÌBFŽÐ‹žaXºÉ0`7ï…sÄ3àp œ�§ÀSàX�'ÀŸÿ ø7Ào¿ | øø$pcÖ”wãO�ñ5Gí—”³U¥ kÄ»À¿ |5ó}à6¢¶¸…_�GîÈP-¢”Té­_2Ïߊøçø?ȼ¥¾jÐRLñ|g¾|/âkñÀ߉8+p ,À)â ð�kWèœ.†JtÔxÔÃ1 ¡t7O\�þÓE—ŠšØéü w\�œÉ0G\+ñvÍ ³]û»œÏ‘-.íõܹç�·ÏNÇ‹»+;;ä˜ÙMïQ]ß]QÇU|w¬ìîÞ?fõõã ÊìÔ}X¯’\™?æk ÷vÙþpÛýq‚Kétsóú§>ßüæs|ê_w¥3ðuàmàÓÀ �Ôš6cAi-ŒÐ »ŽææŒÝ?-'«(N¼v?´C� Þyg­N}fr±#NSÙ¡ó�PéÝ\È[Wd«øÞ€‹&„wa·XáLz�c_š3GBp›Õãbì†à9ö˜‡Ð¶ˆÑú°‹ªß· iy‘å …[]0‡øI"©<²MX6ã9¬Ñr÷þDÄ üCeß•.Þ;4ðÒw¥[à«ÀŸEü'µ½’©Ñ��sC… áÈ|ñ8ó�ˆw�w�GÀ„ìNÀCàð=଑�x?ó›Àïÿ[à�pÿ øf¦¬�cÇwʤáÔ÷#~3óßgþDÄ瀿üræ/7\(XHÎY¸Brî½4-°½÷ei™ñ4âë™ømàqDœ"ó'MŒ+]=îýikßjíwzÿtÄ"~øåÌ/¯Eœ.á?÷³Âµ„‰ã*r�wdbìм|´;pæ'†¹~•ÓepGo¹~Õ„„¹8¥ïZAÒ‡ÚxªŸÄ ¹ÈÃ9¾Sv_w¨ý¨]t4¼M­Ù`VïŽ^lÅòÜuóúÜ>N§]¶�<¦ùË~õWË‘ðò÷ˆéß,é>ç}~ºgzõÊŸƒ-^®Ý¿ò{BœçˆôCŸ÷TÅýôžš¹ç¼ºÿ”»§<Ïi÷:–ºg oŸ“î!^Ïž<ù¸Žaª´? |vÄSãü°£Íè×㕘1®g;2¶½ æÜtÎÙ”gÇÌ> ¿èaÿÖE¿qw¸Ãý»º³ËyW6]llÅ '»p;ÍHBUë{OÝù “d·²ÖÜNWŽø�¨#9½wǑŬ·0×þ.³�oš…4êõXýT—+p8þ*LJe“ürÌwà‹À{x�ä€F˜éQ{¥¸Íü|Ä›™‰AÓ—ÿxÓOAF#£gÄû�ùëÀo_Šø ð-à-ààð>ð.ð6ðþl ŽîD|ñgÀOG|Æôß�ß�ø�Ùä~Бrv(ÇS߉øàËÀ‡ŸŒxsý´º: €Î¦[k·À×#þNæoÆô8:;ô¶á?êüà›™_Ìü­Ì?G<‰øÆŒ;w>Ô¼ƒ0³ËyQ-®Ã�»÷ma¸ðSò"]BÉëw«@ú¹K`eØMòãç�0GŒ»ë¾[zG;Á›óÏ.Œ› E1¿¯wý­<"Æõsã(Ûn ŽÝô_[kÇýÏ�*óœš_½Ñ�·òªŸõå*ÿ‹rýþyJû±�ÔŸÛÐÿP'ðý³ýðoÞˆXooßë­çìO…½çžŸ§>$p¾À€î0�çp„}1_QÚ¡O<¾Ž!ô9æJ³ Žþ¤¶¹’œÿ*ÿ®‰fB¶C¶‹Bî ‰ ín›¦>\äáæ:)HUá`ŠxCQ 캻í�kqéz›‰ï’YtŽ6‡ëq ¸QÔæs òÐ/ °Õ¡+�Ž:I+b£P Äÿ)ð휽ŠçÙJxñsÀg#Êé®Iµw^òW��?þuÄïE¼ñè»u%[ ÿ!ð}à—€×#JùFüCÛàXóˆÏvµá’füóñð‡Àï×Á¨ŒUŒCLÇ|«-­­�h­½ü¿2£µó(öâ_A½�H£;Ï€ï¿ñ>ðôâÜ¡Æ]��:à»ÇqØêêÐ\§#]TÝn8v×Ýñœdƒm‡­»¿ûåê:<r‰KfÃîºëÇ{½ký8y|½âˆ~�Mìz}T©Ë¿Ö�N¼]ÿõâ$ß Í%Ž;^0íJüE1þò¥˜]¿9÷ógK½z»ž^N™^ÉKãû—èþ�Xê½?yï½'�}\s2�gÀç€74†JŽƒ®u°»ó;Vsš³ÃXÕ6«³•^Ư;Gü×ÂòÄ\üØ©<”=6wL^¼YÇ…nw½Û-8´ùoQ~Lénç€+³Í$™ÝzˆŠ/s„æ1kÛI>°¸�’_bÞìÝÙ=,€Œ{ñ½•0=TÍ7st£FVÉÂ7g½E[æF⦉HàÛÀWî}Ó1½ÜKø®tË;ëS$^�~S>›üøà_G|x¬dvOÙª�"¾Á»;€GÀ¿­è.TwÄ7»Ú.~>Ɉ÷�?¾ü â)Ѐ׀E| ›*gÿCÄ?ž™¯ýˆ¥v­;†Û}ÝùY³"ºÌqg®HcŽhw?]ü¼S‘ƒ~ô=ë§cë.ƒ‹¤Þ %ÏdneÞ‘vŽuî®_ÔêÄ…?ŽN5zô÷?§›^¡£öã¸g¾_‰KLý‹ÓÕ÷æºÆ..u®æj|7à~—ÍqM×tM×4¥ÌÛ§Oßë­WgËè!¸Ÿ~–!)0ãÚ})»½h3tÀš˜Qãµ;t>b}!9Ì@Ö�éED¾ëEÌ=ºhZ¸—ÚÉnK8è ˳sŠÇÜM ¬†ä5WC~<ªwGËýÐýœ^bx$×$iº6‚G•¶¹‰0r¼ë§:u3·%ĶÌíê­¯n·€Îõ•ñäÕFT£?¾õ�òu.ÒQÉwi[W$¶~Ý©1ç]¹Å‹Ù2ñþzmUyÌ`]_w ªí ܯ隮éÅR="Þùîw×ÛÛçg;.¼Þ• ç}®Â!WñK�ü 3,>è£ÏÞó{=Žww®ñ-§äés†vðIWr ºkk×ú®Ñ´¯ªê¢õrl4 žªBIž†³w:T~Yfÿ7 4»ç»vÍîy?“òR×\3jË»“öAÂ7ÓžÒÎFZ,ŒLÌÞÍ�~ç’ŸÔX¯E:eGmÌTñF¾¼{÷ì}Ñôrod•Z�÷�×�Ÿ²@�AüZ. ¼ü+à«3Ôu‹¢Z¹?Þng›G9w8éb¯ýÊîóÎó]©g>¾ñ§À€<êÖ²U ÇÿVÄ¿Ì\Í`8⤣l[ôüw?Âå‹™/¶{üzÌ¿ÃÐ9Ç„¹+w²[ܵ{\.pˆ¼›w)j‡Sw0׋\„þG!U¡ïú}ÎXE°{aÏC½’ã°Ká(í®¸[t»•‡£lqx“^�û5]Ó5½`ŠˆÖÞûþ÷Ÿ>y~üŒKÏ€Ÿ~ÚÐÒÖàv猘…ð�©,îÀ…ýR͸†ê³ðâ.ä|}ð�”þ«£@ï�Äs°(+bç‰ß ã•Rï„ß)s9n�Ä¡lÎ’» Γqå+L¤:¢ÐéëLæÁl*`f+¹ƒ_¾ÿÄ„éï’ªÍL›enngÔå\¡jÛ‚±D¤‚…“æžüÀ,+ÜD|õA!wéø‚_óÀ ¥Ûˆ÷€ŸŒøT’3NˆÐÓmÄï¿|0 pQH¡Ï�ñúµóü,ï×EXƒ~º(ÀÅëœñO€¯¼ Ü+Ö;�gàŸº{bÜ�¥v˜ûv]’»Ðá]�rù½Îaã¨ù˜}Õë¼kã(Þìîzê9ÕôóM;YW”k,{L½Â’ÿ®Û!Ì9íµI¶çŒÂsn=/~ÙÞ‘»ôéòïô³ÓÃNQ˜'ÃÎ.º÷kº¦kz±TO‰'ï¿ÿø½÷>ÞØ2'àl‹êÔ(€ƒ‡vq"00(毎½æÝ³ÏIÞ.‰€¯�ë±6 ê¨4­†crP›VD² mïØ>õã q§ò±×í�œëÞhÏ#�»Ê.üVP —„ý”1w6gõîLïŽ*éóO’ÊûŠ—&Ìb¶\QÕë�Y`'æå�uD,v8hqÞþ$ó½Ú/‘v8é¥_ÊmO�3ðsÀ›†P !3��ÿ�aÈ/ páÝG°»òìÀå»\[QÑîë %7Ô>¾üð‡À-ð)à!ðøÿoÍø)ïàpEÕ×çˆêà,/혼KE�Ì<þ�»�(µè˜x'�çôŽÄ î=ø£*ñ#]w?»¦ó•Ž]¾¨C‡ÝÇ•�8Øâ–8²ή\‡»G�w*:ªÅ=.ì2—ê¤À’Ê#~ë¼^’\�û5]Ó5½pŠˆg~øÁ;ïœ?Š-sŸªôy~øì¥lG¶>ÄáWØE]?‚r‡nN^�C‘œ¯aq;Hâü÷£§Á»äñ¿j1ç Û¡GÊéy: ¯†b£aàs»»Þù¯G6ÑE#a:Éú»Ó³”ŸV¹zêQƒ£ý.cf™«ª¯«a÷ªV=e@z†>O�Œh¹;ZHaøÓ2#â üð6Yï/‘v¯êû³SŽõŒ.D¼$ð³ÀÃB¼üfÄ£»ãáUìjÞqî/ØnÞ°69/a¾‹¥.VXWÎÀ»À ¬€Ã@7;pvWL’#˜;¶~aËú׋vÂ]�ì.¸¹Ls\Xô�# ß £_ ïbσ`Tîð8xÍ/®Qì{ñ´©cwŸ�3Ðû(@¼3W.Öùœå£*è{Žê?å�y_2ìÔ{œö®º]‹G]ÍÀýR÷®éš®éšv)"úùüÁ{ï=}üŠÛ𦴟>€¤¸„ðôá9Øì[içžÏ;¨ÎºÝeë3 tlºËé½øÿ·÷ïO’$Iz ö©ydÖ«»úYýîžÇb;»¸%ˆ}8€�òNpy¼#åþ þ‘ …B ~ OŽÜ;à ÀÎÌîÌô£žY••™áÊ,LãSUsÏÈȨªìnW)Éò07SSU³ÿT]Í,Ãn+éz)I£çx° &•¥š02ÍÇ–^Ȫ¦¿7$Þ¶¹$dˆ/ɽ1R/€•0$]Ô[)TX{po–©¬t¤”ñ±Å¬õa;b{‚}}dª¥Œct*ò?SrÈ•Hœ½ÎCÙX]߃È{õ8Uª³ùøï�S@{ø¦‹)svÄ~ÆêÈÐ*—‡’§¸ŽÁ©µê…ÈCàß‹üFäkà´‡Ãrô4wÝEr3Š„mP?·e„7Ói¸È|ò‹3J!Yž9w=�n"xî.L˜®ÿ#É·é ̳®› #�Ðpp(ì*>e–òg��g~öUráŒÌ–TÃüí¢À´÷…Zh/zùüùÉÇÝG•hû#ŒÀO�•ˆl†/·¿3¹àœ Ͳ�ïZ×êÁ\Ó/fVeN‘�ENCg²œ…[¸º–/Pg©„À='±ŒÀª-îTï¢ñ7êµ¹µý[§ýj”VÍ–Ä–ãýUž<8"β±.Áb;ˆtç7WªYŸçE6ûónŸ±íÑYßÍÀž¥…žûQ~öïÑ\D.€¿€EîÉfksiÀýÿ¼¬¦¾,äÐÕTÍe›Š:3·©ò®xõ"‡Ÿ�)ðø8›ÿ2&D”w2™I<ú·’.ªCo”-Óƒo1[nÎ%]a¸fØÆ‡EÒFݶáEÒ‰�³< yMµ™�_¬BhäMl¸¾¹=S³(†Ê¦‹å,‰÷ërMñÔµHæ X“ÌŸ'ÞÜZh¡}¨þ=úýïÇõ8¹êïÉðx§¥+l˜˜ˆ¬3ø³j Û5o{"¾Ú6;™ -Y¹f¸F¦âKXÎ6f±ƒiB(=¤€ç·Ù!¢Ì®¼SèÜ{Ãè†ÎÇ^s»\õ£ þz€#KYYùtyëT}§âCéìtg¥ÞNÇÖ$„”}x°Bø›¿""Rà¬ad°Û6œ¹œ œb pjïGó´ó†^o·š=Gà)ð7 ſަœ‚Úí"ØL(�ÑÈÃ.béŠÔí¥î˜Èbt«M]‡8k–gÊ]l7oUk’CàSòw1¨•XÐwFH^ñÉAâ l^ZËíüQûËè¶V¶Xø”õØ,HcÁ˜˜¯5%;+]j1&“ߘ³âÁhf®|ËLZça.1¦ŸZj\Ý’ܯþ ]h¡…~Œ$RJyöðáa³ej(ô àvB„ðPŒ¯A˜/ß*éD¡’"”†Þ$Uàìg »}û×|nÁËfª…XµúæÜE¶ƒ•(õ¥¤ˆabreçÃû —†Ë¥É°2ýœ¼¾"Á ͳœü1?~ØVmM;ä„Nᙳ‡t©4LX˜GJd{bšY"õi\ñ:ÚJпþ~g;CŒ0®Ê-#ž3à1p&ò@Ä‚?þÇêfL£ö óŸ‚\¹þ.šMuš+‡»3øuF˜®¹÷©7Ü<\diÚ…æ:½46wì#ëYNƒ’œÓÂôà�X<> êl%î±»z•?æ!2Ï™©™33âl�<‹BþIàÐ|öOàýœî·iÂs_�òªY^{`Cýóø6C[ j_h¡…v 9:>~ûý÷‡a¸´æ.Üjµ5ð[àI …ÂCUŽö7@®úE×\ÂÕÖYr׆ÚKó+êݰ‡ 71n!/%ônêÿZÀ*Œ^Áâù„°·qC{€¾¡pÛ×|¤ �ÌÅ›—÷¸n]‚¿£ÇÇê_J $ȣȺ›Øì™Â’òÑä·ñh˜Ø�Ñ4F�gJ}ˆª¢m8³¦Àž¨BµžÍ¹n‹VxOõ¯�÷¯[§ˆ~—b‚L')ðTäÿ£úß'À R€ÛÀ1u×@üÒC®Ìåv�ê.š†úàÜ� S£›A¶\³v‘+‡&ABþÈ•ƒY*,ËÚeQÑs º �òšÑ ;ë è“q<ãV©ä }ÙÄ0ìnʎ㘯%ÝIRãÕ¥ÙJÆ™eÈ›ðtç$ËÌ– guì(+öar~ª—î€V¡2ƒøª¬©Ü"EÏZh¡…Ê$¥\œ��XJbáú91&T0ÄÏ’Ÿ;e&vË2@r·Ýåý™'#ÔîHå¡gcš^Á2Ö*$Í�Bè×ø—RØ�`­»Je/+"›�-�ÙÙ¨ÛÅ©íË)½©¹ÐB -”IDtO?>}öìòš—…ʸN>î‚ÜÔi9J �ãíoHŸ9â9¿9€é€’+ñI@Löû½&!%IŽÄ¶‹¹|+ý•ä0·BÖ ‰@ v‘à²ñh!iñ·ÐºæLM;ư£dvf¢i@¦ü-!LMó+x7{‡ÐÍeBƒþ’Ø«ÕçBxKrCô*°ÊJàÞ2yehØz��¦»h1x¤[A‹�Ø"Åß‚ÍFQ]µ!µ–´NW"ÿ³È75Bíg+£\…aH)ðBä‘ <§mvvDíݯ|ÀR˜ŽUï"s¸žÂ'3…—‚à™ !D=Õ]0Å Û E®Ì6T™QùÒñ �pæo€8s M¦\ ªfæµ|ëÅn)†*>öŸ'Lî.Ûjf♚Ù&µßŒòC_A;ÃÖ¹ÒX³Ñò‹ .ce>¡²•,À}¡…ÚŸlo™õÅ~›V÷é¸ |Òòn –  Ð22CªÆ Ó Êášñ«Ñ�šÜß$,… h¸âdø±ø’ŒeƒÌÌÇÀº’ Ñ –QÚF©÷â«\ø�¼1_ùQ0‹…WBm‘ Îy/Ü$CyøbYCìN/ˆS€DÄRŒ¶~NèEdlÛR�g©¡¿[ª¿ù•ÈùáP{.ß�CøX÷“yÉì²Øö.]Ű å\‰[·ò¥>ƒ9öp˜ºû±wýán†’A¤y™«�Ò c[§\³Ë�—¥òèp9+¢i¥lgj]XŽ8¯›.¡+…©�†²šá¼$Ö`Æ®I§fNI`}BwQ{¨`þÕÌ.™ª:yïÇ@êéM‹³ÐBß?‘Û÷îÝ»_¦h¬æ.Ü6?²Àß�=¾Âgüu 9’šñ¨I9ö° ·’V Ô„ÿr§†JmkLÇ¥%ZX´�׆¥®ìœp¾MhÕ�aw¸ u¼–‡Õ·¾Öd=I͹kãÀŠÀ{ ÒŒdÊMRŽx Ù¶öÒC½$,a•™Ï^%>±¯à&Ю:�<›ôzÕM�ÛÖªZŸâÀ?>J.ÊŽÄßFZSwwaŰÌTàB$�q)ÛÜÜ ÷x¶dî†ò.¾Ë´-Í5¹rà@Bæêd Ãu®–Å0P˜Ç=ËoJ1žâ +Xd³Øu†é612[Û&ƒíåb¬„ò^ŒO]sÉ­¨÷�¦…×§d‡ŸêµšAù|È+¯jU¿7ÌmвZÓ4|™U÷ÔÅëaÄ¥´”MQ­Ú‰¸OuÐ�4»WëJÜ¥{ô;_Mˆæ«í"Ò뤽õ݅ێσý†`ñökuýAœç°ËDÝ}8®ÿÅÙ±£pw¿¹øŸžœ<òd~C÷«Ò9pø€‡Vð{rOaG†zaÛ�\'„É ±å˜À0€f~¢¿CbhÑCÏhð1`t£xLª‡Vê‹Y…—ðf1¼¾&>¦g×Tëö±ÖY‘0ðz\¾"ßF‡g^’ä 1BD¿kXô‚ñJx]iCž�¼)[h[ÁÅEËœ�…ºDu]«‰ˆê(2¨þVä?zá¯C‚gx±‡€ìz \ÊŸ¡ÏUÅC{4w{犯3òd8OÙÞ€ó‚…Ž¦ô”�3ÂgÕ‡«CC�Ö{N¤é6™ÆjfyؘR$#Tr~”¹km¹øÁ‘¿‘<{]S°¡¬#ãœûv±%_‡�l«lù0@¡£uÄ}¡…º>•a¸÷î»Ç·o„›ýr�¿^¤�þÀ)ÅYC ªÇ¯5Ök›d/©»ÑÝ •f �=ïbi5UZU ’„íš;5I ‰€^?®‰§x©£¯› ¡¾½P�Ú‘°¯¶Užê5à¢]¯Ó¢£� •¾‡Ò@(] õ2’·P5 ™[ó7²‹�C³�^†´î¢óP‡Í¢-5eHM Õd"o:õ:‚vrɪ…‚âÛ4qŸñRZ¼œß6_Â(?`}õ6OmþIž7ÃQ?²Áw2�Å܆ú·î'3ÊæÌÔíòe‘ i1øOEþð-mÞ‚½(£"¹ ˆg”péÓ�; ¿ÕûÉßÅ";J;éºÎ㤠¦fàZÎÌ {M�Z?ûXÈyãÏÛ0ãfŽòf1ºm¹£K¡T¸aÔdvÛøÌÜÎX2Ô¬v…ÏÕ‚äYì)ÛÎX#6‹Úõ-mPxˆóuæÓrÜñCî -´Ðk£"R†áÅÓ§§''ó5…@Æ.tüp—v5Ùôè�”l‡V�c´µdEm¹²øÈ}Àúñä®�šž•RxÛRPBYÒšZN%/G[&ò¯36e+‰_bkÄgÕê-ÛV%$ýD.©á0k›MØ% qtî4ìçSš´Лc0+“ÄÞ®“ÚvõyF�Úò€�¬asl#[ ø©®ø¸ ¬Dþ^õqmìBSõÓ~?>Ì7ÙE’=d¸´É蟲ç "·VátžJ!z�YÀ7%­Ý½Tò Øu›wqó”5º3„û 2�Š+guŒyƯ¼ü”UëÂSÛ‚¦–X PVi¼ì¨l™¬‚ú�sæ ”�2BhbƒÛõ@†aà7æðÇÐÝÜZh¡k“ȰZxüû߫ߴa_~lò•?ÞOÙÆ!D !è.c}x4¦ôOÁ¥ø^*YœØÊí—XónÚ£GóJ]¬Ü`[|Mî jkß*ÿÖ—dÎJÂ匛¶‰§qf¸o˜ ÊsþÌHÆ1ÁÌnì-À#~Ð(“21 ñÃŒ Â^AÝ4†ý m­Šé""ªµm5Ë x¸ù÷ÀÅÓLóÀzwÐŒ‰¨í|óyœz)‰§=šï(IFWù:\L…r(ÔÊÃ�)ÎYZf2…׃À]TÕrÇgT»Tž|Þ'ç̰‚!³¥;&Ÿ™Zvó–‘Æ*ën8;3Éjš$™UHŒ±~%9‡lF¾;UÓxò]†ìÚöÏa[Ù@p/l�À0wìõ¥Zh¡…~äT7N?>?== [Ò"Q»`ËarÐ7a©!zž@¡�¡÷‡Cʸx1,î‚ïc’SèÖ6O:¿çuÉ,¾¾É_¼x…4RÒKi½G¦×ÞhÖÝàÛjjË·1ž¾ œ" Š[[VYé+^üHñ?PT>Øv$]ØÓ¿âbMõÑ0ý¬D ²@Ú.·EÞž¿ªœ¯ý¨Í�qGl=zº¨úR¸¶»´!|8%É”À$å»?uŞʺ™áÉ’ç“2sЈ„ ¾Ùy&}‚G³;"]ktí“ ÂÂRHiG„ ¤ëßaXÓ B Ìf¼›f†ãÍl«™w�Ìêçíú«è¾ã/ŒU;¾î%´ÊHËp#i†tÞ…Bñ©ÏB¬ qÖ$C»›‚ û[Ë-´ÌðW‰ghÂ�Ôþrn C^ñlƒ•˜[€Ú&ÀØÂó½fÊ1´¥ŸA*øY…лÕ!«£$UIÝ�‚ß#©ÌY=<fà j0‘5¸–ÔÎM,…¦îÉïÅ7ΉÈ;À߈œ GøuqëájLº‰Sä*8ûJŠ\µr/ �fã9ãº7TaxÃ[Š1Œ#QFVóÏ �OÖ%3Ì´[>?÷„ÂÛÁ¼3ð´Òü±M–2eÿÜ &¦Jƺ3•»u�†¯{w ëÏ7ÏŠ‡·|·«»Où½ÊÔÏòB -´ÐÕh8:ºÿÁ·îÞÅ᜞œ÷´H8ÏJ ®1Pãå­!…Ú†ßÄ€ÙŠ]Éá·ŒAÃŽV’Åt·ÖdôuMò„tÓ1ì‡(ä·…ÕCÎ >±‡%ÒfvñX„=¯â]“ð ;XM¡WÌ9 %ï*÷²˜úÐþn,¯ª ŽÛp¬M)Z X+¬€Aä®ê—À/TïôÂ�,ÎS¯\§ù.e w©ðèþÖ½¹<ƒc»•è%Wã�ë¶?`ú O–<‹�¥b«xvДlS*Ô v“d¶a«J»ô ˜‰ò<ÉCÒ?ønw3Dƒ°,Û!¸[VèM…Þ`1Â7BÓ¹]S*ç9�Ý�¼e' iu˜ ü„qïy9 -´ÐB»�ˆ «Õéóç/ž<ÉÏ€Ps¾‚UC a~ LmÏÀ‹¯1Ê 2è·¿ðÍ•ZÄ‘r0Ø—L¸UþÈIÞVbÐS{<»vèÆ‰sý€­­ïš Âê‹Ï0ÉÖPï)‰„‹ õË!É_² !±¾Ps~á¼&ñ-��'bÈn×´×�í £žÛÚ7äÊ*²Â&‹F€"2ÿAäYc…v1ÿð� @rÜŽ�Â4¹”v‰#îÁ–¹…¯ÿÞÀCz1fx›påÜ�ËYª°’²+m2vq[P0w=uW½Ë4ÓËßõÂL H”åÉN]&¡€ýTÍP'ç–0ŸêÑ’m¤7g‹eÔìŸ'IWà`[kÈA;®`†¡Þ²$~ØÎp5ÕØ’Ö�ßr^€ûB -tª?¥<ùæ›õùù¡X��| yK¯°^R5û²_FßK`h­Ô£I.á&9,–Y‘xÚGKÀ(| ¾k²L`È|òËÆÍB­ÖIÇ�o}Ù:QU“À¯ m›¦¥Wgô©8JYïA©�ê¨×QýBV�Ë—3š·W a¼‚¦IÚÓ´‚õúà‘#‘߇ÍqN×|ææ§>ßšoÛE·SNõ•8ïB™áîÎFaóPxªSxÌÓÅ‘�ç ÿ)rjDfžš6W™—G¼»’«/ÃPLŒrX:ÙÍŸ (ÖT£·¿ ÆK”¶�7Þ ÆDZ§— ‰Xv×’Ýëü4Îk@E ð@õÏ�§wà¹q&®SÔÅv»´Ýå�Ù¥]‡àè.ý²ŒÿüÍ ™ •(”tkr§U‹õzÍMBCËBÉ™*êIR»‚Ô©DƒF–PÁ–á:á$Ñ`«ì6Ô ¡-Øô·‹ [gÈ„1üFßÜ+g4œ±rî]zþ§5äãf§$äiÉ]„7š<Æø:BÉ9â‘}. |xÚ€bÿ›�BǤˆ‘ûÀ‘_$r�¸;®V Í»å]Èx}šAQó½ì"O€¿ÝÊ][1xšª™ññ|œÁ¹—.Âc²:C]g³œ��ùPÖ»á`¦n"‡øpx¶p·üRC1~íZ[’s25F�ç|¼ßØr®Kן™RAR =\hžYñ¢ÞZmî -´Ð�ID†££³ÓÓç�ÏW›yÑH�—ÀWÀñôÒIqnCQö£Æ  þV`n± œ+bˆÖ.÷XåY†«W÷…˜‡¨6ãcëþšikZ”�“F˜›½·Æ&mמ….ŽZ¢ã~6èîèµ(ž�WñKšO‰{Ôž¨B-ùgMar%C ´óŒµŠ£›üa¶ÔG©½ôXQ…�3#2ªBämà-à[à¹ÈZ‡Ä]Ü™·�º!ä.8òúÆM�ΩÊ3à)×™ê+÷Ò…S"óÇKÓTæÝæ™áu`. OwÌš£ãó:r×h¹"Átaû�]‚Ù9<ϳt¦!Ïá�sªå<!o$KÛíˆ90Ï�»2cÏÀ|þµ 7—äbq/ p_h¡…M"e†axòí· ºŸw€ÀÑD�œ�ÂU` „S·½x m%â÷u1t[R5%dÉå…rwá‚™¤Î%¾‹çÊÀfPËb g+4ù9ù¤xC+3Ô@"™î%Y@|¼½$£®¬Ñ¥BN Ê”¡¬w©ÝÀ³ÝÊÑ„Ï̳ØÒBÑy§—¬g¦¯|µ¶Ý(x‚0½ƒ„a˜¬°»U|ø.,5Hü~‘<Ðü�ÍÍ/÷ü1”›ATu ܵ½9à—p¡…úq’ˆ”a¸8;{þøñîaõyR‘'ÀgÀ}î(]¦+ ±põ8�›×¿¦‡ œÆmxÔR/x©¥õÈÄa{M…Ň«å�á.§Ý‹—<�ñÉOÈàíÅCs¶6çÙkê"Ûœ­a ‘$jžÚ…´~ÆÖMÏ ZÃâ_ (¡vPž'Ü37“då�f§tÙªÖQĸ <>ùð¤ò¼ ±#êÝO\µÎ~Ôå<£K€J3fJ²ýe"DÚ…z}¤;Õ<Àè.ÿ)HÝ­iAúKíÀ·ºï^8ÀÌÌA‰fyVv~bðzÜ U€ÝvÍ=a²âA†¤—äŒÁ� Keð=KeM8º?%aÐ4ËœíÉÉ6©2YÉ…Zh¡½IJŽŽž}÷ÝùÙÙd�«dË8îRúA‡gû;zèÌ+¤˜w¸©,Û¥±ø†ð@pìaVî"Çhƒ¨˜‰Õ7 í¯¡üÑ¢åÅ@gÒÂðt�¶L˜ Îæ•¯Ö‹ñ±rIB udWÔ‘%¦sò}pÌPý o,#ð­XZëzh©PÎt-s†–,ugÞÞùð¨=¯O’" —Öçëy˜»;Û+QÀ»;Š‘qm·æ¥òO�-I>CÀ…&§øxð.BÂk sGüwj|gLÄ& be¹¯IÃF:e%Ë��ÜEê3`˜š_ÌÌ 5p6 ¸X,jȱY€ûB -ôjHdu||ñòå‹'Of΋¾*Ï)è^‰ÁhiˆŠƒÍpÃgË()ûg«HÂ[Já^Ø`Äúå°.¨ŽÝåú î˜‡¢áëÛÝ’ôj\û[<ŸBÀÚ¸ñÉ …`·=èÌôçÇ 'Ù ‚La·Víc×·á1•&¶�/Ä㥔d̓´Ö d7.4Ì´Ó”@[ÕÀZl]/~–·¿GÀ»Àm‘œ±„½Çñ|°y¦|—G|kÎpfž¯<Àº‹Tó×2g ¬¦Ê»…Ý[SÕX©nÛ¬»*„¶G^©÷nñØ~†„ó¡CwCÎS2˜�Yknžw^ÏÆ1nuÛ“!û!ðÔõyb¶kõ‡F¡mŸ?5—¦Ìê‡ÊSòÔ¿ p_h¡…^ ÕŸu)åù“'g/^Šm º:†�1‡[#¡+ñ›mX O+µø®³ªª|¼÷ˆx°h]Œ ;†sЂ»¦¨$tÏÄ·‰'ÔœT¿rÔœœÀ“ñ´x\ÁTÈY4 »lL~ ¾!šð«´ «#©­´À9ïâÏ*°Û쇗ć7€·šÒ†•ùÃÇÚkaÍOUŽEÞ^¯z^si&BïWzF~º”Ãõ{< ̓®0%Ä�J#ÙQýnyÈx™’9ÇS3òËÂDØEuYv�ÀLra×G ò6V9 ½ãë#fÒÅ»ÆÄºàÓ‹‚�§l›ë 7”Á÷ÈuL;P*Ë0 ݰz;0dÿgjè™É÷¸ó|ºá¢þ0(d2Üp›¿Ri¿_¦ØƒþåYë8>ù曩”˜«þà¨È¹êG×Ì  +…|hkÀn&QÄPóg�j{° ’H‚zŒY5–„ »{æÔën ¿O°®…ÂÆ 4’шÙH‰ 7QÓêER/|ñõÙ’hÁkFCïAøl–`pc²ö~GÄíLVSÊÒZÌ2|a‹¬GfóÂDÄDížù5ˆ@UzEäcÕߊüÐiHqMb@Ó½ÛE3;Šq(ig�Ö.0:ãàK%ì¾ZÒµU—gÙ¡Žôb±Y»™ln«i«£©PzW}öë2ÿ,gð§ ¨�ÿNáÑœ>ž{WJ%gˆœm-óaù³`Ábv1SǤ꾰ÊþaPÇÔï¶Ý¸ßÈ’üo9ín–›`ÀƒÐ"ù«cxÓè ŠH†ÓgÏ^>~}n•^Ôœ`ŸËÁ!m+1(ÆT)¬ 5å13ÖÏ>ƒÂí@€Ød+^`£ìKh.^fÖT|6 ƒ~Ʋ–%_Aè‚ËApY&I çÀ6wÍ–QºËõA¾�¦-<5ÇFÉÏáU­\ÁT6Ëðh*�õºñgÚàn^‰Xá-‘{ªßˆ<ÖÓ›–à*41§^ U¹¤ ì®*ä.øX–ÙÏdݧø3 œi•û áð,ŠÍ3ƒe:ßÕqž?Ë?Óœÿr>Œæe¦Aò°kä”0l4Þ'XrÊ-aÛrv�x°žÊM#6E6>ëÅ­r�Ýw\<¯¦ì< C†Wlâú{FÜû�œµ{lI±#€žéh?fúqÿvd>ÅpÆbûÝš¡ÉgDÚ±£WÑjêßÁiGžSÒ^žÏÈp—ò:Kܤ%Ì<ýî»q½î6Úé7‡;i©¾E%Í62€k’…8qHû|–µšð8/pf18ñƒ«9 økæi�Ý|Ûî¦4è)ÄD¼ûÁƒxö1èŽt×J¶[£ô¸{ªïWšÌ.) ͯ¾7þ¥9Ý”úâ'ôÆN›:u†„}ÜyþŒdv†ïÅÓÊ߉lWÔí¦4"’6«9ÞŽD~£z&²VU+»> 'ˆ1G74È5ÃE÷ãTÃë¹ ÿav¬—ÞÍè*‡¥¹I7 o�ŒÞ¤}»²Í€iž SÕ01gréÀy(©û¸w­”³h¬BæÉȸkÆÐ$T›™ºl¾æ'ë_S$tÄ}u_8Li”_)VÜÐ̾�ù¿0n7¸œùî�ô°2Ü,¯T‘W:ˆ×ïè† Á«ëë ¢^†ì]swn"«££Ó““—ÏŸO%Ì\•ísà=àc�YíB ç‰¾Š¿ B«Ô"j mß$P–Ê:�<ŽäN¦+Ö51ú§Ó2[×a %<þflʬ˜yÈÝŸcËy…¶a ð�k ±bÉM»nvS�ÇLð½)Å‹�L¡¤Èмõºð[–Á y“Jõâ瑜�-è¯�çꄈ¨È‘ÈÀmàoEžoª\²“ãU)€†.ítŸj~p�­¯§¦dè‚ÂüqFA†k9Ž>ÕŠNÉ$dèeÉ]º9$9²;“•YeyBM†¤aouI)ì¡rðLúœyó "vhkVp~&>Aø ¯U‡›vI|2L¸&†)nýš:ÙòÁþœ3Óôá'üÇVµ?%_?¸+¼$žz ð:§ÝCø }/蕺—Œ2 :Ž'�_œŸOð¸Ú¾�5}â‹–éÎ-C„˜/à�šÝ�Þ¸ £ù)!Wõ…¡÷BÑmñÒ Ábfe8Ïê@ò˜ðì«­MÇà-X¾GWòàÞ˜5‚0–ÍÏX¶+ؘú�H8äH’ BâYa°¡R[ÞÒÞÞZÀsRŠ%�2­üÙ·Vgíí0$!•ó�ŠH�Ò+¨ÞùPä-Õo€'Ø<Õ1¦¯J øìc·Ú|¼¶Ë¶{qpš‰LX‹ëè2/à ”Pu ^Ïôª™v3!^þ8#g뻯¤´-\2jM2Ôæ:9'Ä*p/affû0‡l žÿSA³èR†Ù83a•NtÊcdåœ÷oÜHà¾ÐB ý°HDŽnÝ:ùòäñãƒø{ ¼>îO$K(]ðNŽšª!)¥ p Ô´‡A-…š9hâ`’ˆïþå@�Jü?N&Q st^øµïˆÑ'#{´PqÄÚDÕd¶†idlÅ7 ‘r^îÙu®àóàÑìP/BÌ›%ῃ·O°³ S“[B {¡~µÉÌ’KÚ¹¨+äØFaðõ7­D zxWä6ð{à™(gfob؇YäÁr�.¸ÌžÀ+E»ˆ”¯CBÂŒœfeì5ÕËc>S…™fB¼¹Ó¬]ýÛÍ/ŽÄ [’+Ïä´l ‚Ý&O�¹«»uª”•>Õ6Øa&¥>Û0ëËtÛ± ]yØÙ€÷,öÌ¬æš p_h¡…^=‰”aV«“G�¦Îc’«ÝE¤"žÏ}Ð=°A±OŽ7k‚††É •ÀcP$P.¾2oBbmÃ_NÛÏ_“.fµÞ¥áiÆèÌ-¯Ë ÜÂöJp–Íìr3âå¹,-{Pð]¬x�æÄY³JGá¤�È®¾šugd¯)Ô—€X¡e"qÛldm°[HMõ“GȰì½Ô»üL®{Úˆ¯­�»À‘À¿^ Oašã¬ph�C‰§ÐE²‹íæ1wæéÝKA|»]p6#g`†#hþ 5¬lÞSèÂÖ)�ÑÐsžAkKw êç›àN0OV�ïvgiøÈ¶µ¶Jχíá»ã…4²�3Ûd~ΰŽáµ‰IØí1´mÀ�¯º/´ÐB'ii‹Ï¾ûîJY1S¤Àðà^CE .Õã×�#�„n3Jã}3‘æà0ç¦E+:uÕê3þÜqÂûšD=[æâÇAl†þ!lÜe_“«Á›´¢T¼.B&â1Ò¶_» ®ñÏ®…Ýå-ÞùîHMB�›=ºâ—ö†w ¶tÕʳ#§Þëf1[J›7á‘Êj{P«ÈJõ}àðwÀù�P{ëm‹T¤äš¢í"ÆëÁ;J2Uy»OÁÙP>Ť‹ärÛ®_”S}�† ò²’â =cbŒó©¨vfp¹ˆÔŬ]#„ý×§ºèšn¦aˆkÚb2TãæùÔ©Ñá:\³+9§ÄhoWû¬r`Î|*qÏFYh¡…:ÕÇgž¿|9UáJA÷sà]àý»eðÇ@\ Yj·Ðu€Y õЇeÝœî>ª:¦~(�”bÁ”™sšJis–<ŒÙê9+G{VvúÙëï¡áQ�0š*ð-iî œ»`$­Ä$}cË2Hªiœƒ³ÁƒÅ§ÀZÛïÈž·¶D�÷ÅÐ_ÈV%um%ëÖM¤¡½J²w GÀÛ"�߉èttGê6ìbÊPáÒ¸{¾`ß+¢.Èãë.êºvw;Ê­ºZ׋¹-£êâ[q× ˜þ/ä€YaxŒÙ ð¢Òìð ùœõ4ÐñL¬Ei ALÑ}±³nÍÍg("j/ *–ªD¸ÜùðBu|€ØÐzð(D¹U`’ó¯N\ øºæÚE)®‰ <:ÕuaÜ|ªmWž™.¦òpæ b�ÛÜo©KÏsÈÚå)°,ËÙ <šÑsý¹fæ¹màÚwÅ™Ùå=³šQsj.q§Òs*Øàðs –/À}¡…z}T°ž|óÍúâ¢[!üfÍ“§ÀçÀ» 6� £ÉŒ)sáL=Àújù‚q¤É ”ÅÁ 8D©s˜Ü:I4ü¶;´kIrJâDm7Éw•À(7d£q€Ùà¸åº€ªUp6âYV‡�|*é¥Gñà1enêgãïÑ×_û³¢µ»11”fK�ë¿@ä[à[¼³aØKÀÎ4�Yg’dv ¯ TL ?u+´Ý%ôÞ½eX0¤S[Mwù\ŠÕ>†æS^\¸î楄 {î·f¢³+25ëL˜�‚LÄÍyã—);g#›%CäKÇ14a3†B֔ᵕ°I»é4]IXµ)E²TÌyî -´Ðë%‘q½~öðáÔAªW¢úkúp/JŠ‘�V+|™×ª¢ǹßL] Ï't‚¢ÝåV¥…¢4[œ%á´œBЙáf†ž¦‡¢¥'#æÀ þ¯1d*„æVgô 0c¯Ž¦­-á+€RÕy¼ ©¦4ÄÖ6ÏŠ�Ü�â}~‚Ê V]ŒÔox#tA•ͽ¼ ¼#"ª_g"¼×ç Ú‘æ!Ô|å+ñuÑ÷)¶Œ§p|ÆRSÕ¬rЈ!×¥9E™¡•„ ò¼ŽébÎÀ1CRmÉß¶„´k±p+`ý\?—ífrQؤAÚlŠî‘I¶(6èz™ßQž‡€ïì,9ú1=j3wŸÀÿ�÷©ˆË¡–ù«£,ö—v~htúÖîLv©ö:gÈ5;Ú}÷Sj�VÄkÊ0ÃAJyöÝwg§§ÝšWú ‘ Õ€�š`Ý�¶rIå¹fh•ñ(£½ÐJ&€2×á¼Þ»0ÀÇ�¡n®j®>Ü›»*0•T?Äã»™ôÙ€œÆÃ ³Å�gã,ä3ˆãa&åÜôüºätåyËIíœs‘üvŠ‚Ñ„Då|§±Ïïÿ°¦Öp ¢MÍ�ä#õ ¬Û×aîŸï¿y¦Š‰Wü{ƒã2è qÍy¶;Ö¼&u‘n7 ¦«æÔÝù.ò­.��©ÜíeFC–ŒêŠ °/g’ÌÃG£Œ³g2µìcÞf±Ë-sžBÃ9×(èË6±†öqæ•”ø79©;‚´¡» pö8„‹ÜWwßúá«–ãŽq„´;¯B»c‚p‹ÿíªæÅèþ›‘ö (jwñ®Tžo]wî¨ïîC³Ÿ„3}íxë°åš×ïkŠÃ~J]ß×Tî-y¾‘aµ:{ñâäÑ£ëgËX÷€/èž~¿ÓBJOðqÙÌdFÒÅß_~Ù%ÃS ÜÖÂÑAæÃ8>èbñ]^?ºn %I…Ô\H6&*+ÁVN=Êß\ãS<“ÁãfN‹‡��#Ù¦,GßGR?5eÛ>šaA2£ñ¿ÛŒ•s‚|5¶§MZ~u`ýæw>GÀGÀ=‘¯Û¡ª[ËOÃÄ)ÃÜ.vŸ4óÌq §bêrÒæ�3Ht¦$#ã)r ͼlF—ZÞ6�Ì;¶V—v7cƸó^G¨oþðcàïTh?›1Ë´° ]Sð«ñ™îAÇ® •lj¶R~C’§ÁÔó‘€»*H”Ýi¦ö~·ö£¾N‘®É|?yvou}}o‡ƒwôJ•zÕczÓ8ô[54ðä믵DÀÏ€c_‚ ˜;#¤Á)ƸâÁ_@Àä†Gx73þ âÏ"±ðß3Oñ4D…Ù!a´Ê*qøßþ U¼Äs6ƒ„ ¡@hw¡Qý•9yôèå‹×߲šÏ�û­äR°¾iØ.BHnkShà-ü¨¾¤úÀiïnñÛ½ÃCj»Îéd0Zナ*óÁ³HÍ>]sY+ö+¸ãKV- r¡ÊSƒœiºÃ'PËVU?ˆê¹r¨Þ³¼Õ¦ír³¢.X Ð�Ù+Ž‘ò[Ø�bæUÈ•‹0XJ—:«E¶ö¯(("£ÈÕ÷EVª œ½šíÒ3hã»Ý�m—ÉÌÇWGÝŽtÎÃèj&îÒ<ÔdЧ2˜xßÀy5s�ü1(5zŸYC™Ì¤&ÊcÖ\š×VVµ0¬‚ bÌäót-Àõƒñ»LºÜ¸D¼µ‹qò›�Àvêu ÷"”¯Ï¬à¾ÐB ½:;=}þè/$Ú›ÖÀà“„h»Ø+£·nX½ø: O5�â »ÕÑe$ìbðJ[M+DÕ'�B�†PKO¤kFÏùÍß*Äœa4KUHÚâM„fU¶¿)[#Ѓ×Î’Fø…F°-[$^Iú'Šãål¨‘‚ô&j-ȶŒòe¢GñüA% �Ý y#üºÆdP‘•*DVÀÀcà·"c ôì¾£t‰�]†ž!Ë·®ÚÅk tÕ½ËuqÕ.­fîôÙEö¹d&°m|Œù¼j»øư"é0ÊÒ2Fºˆ“qsÎɈŸ%/¥¬×ëÌ9Ô}uÝ~]Àƒ—2ˆ¤¹ Aòù�ËÚ!©Ü‘UÛJ"+"ñ¬ÔÜZh¡7C <ýöÛ‹³³î]I/ çHä–ê~SÈXÅ£:+Ì׌á!l7ɤ›•Îu˜a¨i˜¯zc�íåè¾!õ.2Î=H5‘86<7ArªçcŠ0˜fû˜•B¤Yz)eÔ°:U«`ú‚@0Hª¼ÁKíbMò^ xu8=½û¢ xwœ(6Ÿ1SX¦Ðèoq�ž3ãyvq¿õß(RTo‹¼<¾¡5¬æ{=Ê»€,|œ‡³»tú:1FWÚ)Xlº ]¼µ#JÃax† Iá¡B7‹š!iÈÄ`> 1™a0óaÌç˜twb0&Îf’aæ+OœõÛÝHÇT›™çæ Irx²²A²?�{aÇ#˜ÂÆnî -´Ð› ‘aNON^«~Ý3©Ò&˜âÇ%¯=�æ“À¯`!×äz@E ðð¡È)ð°ÞÄØkïgz¶×‰î¿N°Ábïn“)DÔeÒÐ9¬žkå ·!HÆpÙòS žEÍÉÖš:í2ïvÄ2³•¦âÓÜ�7™ájлp_’›‘õ�r'ø®uÔåœIÈǘ©¬'-!'Cs�8‚ªkaIn›.9î -´Ð#NON^<}ª½ »ô^>ÎЩÈgª÷Rš8<Â3øt�V@–BL�ªÁãcMMB/âÒìä@µùÌA)"ä·E�+÷áÐPFŸæ²î\Èÿ,ˆqÀÍ gÍ[Ðäoˆ¯i1{neÐy˜Žå‡üÝÐ…x׈>@˜0¼cŒY~Mr²rÓƒ², ‹šØ ðK ëw£]}L‹Tì~ ¸<ž‹|[Snv‹7_J]ˆÙ�îÞØØ£ß þŒ»’Q`·$\̤”äßÀùt�Œe§DêæyÏ¿àÂg»Ðy*f�ÞüÉÊNmvnýòK‰ ž…ºkä{FHôÆÈ˜t³•²Ñò­`‡À*[/ß âY“¸/´ÐBoŒDd¼¸xöðáúüüúÜ.>V>š‚A ÈÅ`ÏMýr9Ýí#GúªG�âñ&Ö$F–M“vðõ­wÛdÐžŽœvÂŒ¢IÈê„,¶‰QHe®À{¶˜Ø&A�Zb«<_'$ÏD’vðh*[¥ýe>kb‚äªñ ‹÷ŽVô±’¥³ÉAýn$¹¨‹l1‹ =àoŸ'"¿±î÷4¢ŒÆf�Ù¥l_iÎLîn SîÒ6ó™J–è‚Z»ÕeØi Ž3�©l×]ž31ûn‚ÐÔÛƒPa wpWæ@õf]fJ´%ÊÝø}PƒËðc×5ÅÔLîDèMHWë®"1UæÒw -´ÐB')åäá×/^„Ûs‘TßéApFWá7Žáu(¸CÛ�lÂØâcÌ9;% mòJ­”àlWÖ"chÉbñ�gë—#â 1G#tÜ Ö+„äù¢x©Ì†… 3;?Ô¶”w™ ˆ µÒdj¤÷a4ÍtcÜ~bä% Å/$5ƒ‹÷èР<é…4šÊtÚl†#RKVôŒ"oŠ<¾Æ 0q} ÌHÅzç»ûñ¼ŽHWê('Rïb“.Fœj;…æC|3‘Ý)ô?•®Ó�sgt—A¶1ïžÍ'`â®g2ÅDiµ¨ôçÁ8õn]eo Ø�ÃŒ ¬Zwí]zþF˜qØý0ÎqôK nº/9î -´Ð#Ê0\œŸ?ýöÛ+eÅLQ…tµíeº!]gÜÉÀšñ7#Ñ�»š„ÐuŽÈv1w€éV¸ß:ꦂhb«¾ZH×Fû( # ¤�‚³ÁQa†Ô¦cñ „Aƒ5‚)²‡“³Mà¼AXÖ.01¯@=ªF2µöxìVØ 3Tàýg‚^Ü;*æ•Ù~”¤©øë”‘u}Ò×:"uƒ�{"Ÿ¿Õó›z¹ Ø‹Bho†[†G»0ßOªëÓ.°»{ëR`*®s†w@êÝ®çí\‹à9\Ê$Ë#½7r™/ĽÇ Þ�q˜`†tí~v3Lò0±<3/@f¤ºÔÓËpŸ5bC1sþrMi!ÛT™¸/´ÐB¯ŸD¤©º÷²edúMâ�ŠÜ>H‰tÿµ» ðni‚žVn¸Óð|`»‹Ý™�A팛Î Gb;Õ6ë.¤²I>Å!ä̓Z•”zzalj×̧^Ûöš “2ŒV¿}äeS+i¡©~Ôìì§0¬B‰:¦N%›'‹^&˜¾h/‚Ìf@6l¡]nÖ"Å †ÈJõp|'òÄo@¹ àp֛ůÁïÈs�¾^Í@ð©@l÷ã vÏ(6À-ƵV­[�™ïÞž‚ÔÝð<ßê¾W±r^ä  †<³Çž‘"Ó&LFºy‰§x/%ØêÒQ6�¹2_„çQP-Y.éÚÓÒñ³ÿƒÍCÒ9¥Ê¼éïÏB -ô£¢ú«ôâÙ³Ó§Ot|ÜJ¨Né/Gs˜2Tí"lðåš"NՉ ²¹|E Z§ÒeY—.¶àÑpV<€{ñMxÁh½[Á.ç…ó©XÆ™SVì‚�ï5ü/,0åÜI½d憌sâŠßΦµ[aÙ(˦´¤©!ZÃâe@k¸¦ lvö„êT¬¡ª+`-2ˆ¬DÞÕß"ëÐç~ÔÅ%{óýØãÒwQp ®ñÇn”zJˆÜ6¯%5„ZKºÈ>\¨_“>^ªo€¿Ù È„ ¦]©|œ‡ ÄwAä3¾ ¸Ù+È}Æ;�ÊLS/‚ü‘ ë…î=^ -´ÐB¯šÎOOOžÿî"#æ.cÕå3ƒ†/e«½ Xº@6l·BàÙJ²oÀÌÅ{†¡ßœTSKÂNç&w0ËPÛÚé­ÙPÆ„ÑùÔìÊžü1òæ.Â^ø¡ò”µ»’Ì|=Ùn p_h¡…Þ0 PJ9ùòäÑ£‡Øïé8>nû<Šò„�erÔJR »F! $ë‹ÔÜpØH@Mä @Ð%¤g`B–�ƒú¬›‚Ye³M˜eÉùõ‚•g„�{^�µ Çqn%e!µg vð@¬«”m%^v6ŠŸo ¹Á²±“§ ~ɯøÉ#5CIä–ȇÀ[ÀÕ§~÷ƒÐ"Ü%¯`žíAÄ;8uñVÆ^†£.Eùõ" Òn_S˜;·Íi9|=%yÇ©†Ô ¬gzaÐd6àkÅ0Ô¶ƒ¢BïÆ9ÔaþÁ\ê7tg‚âî¼ÓK6;ËÐ=\)ü Öè Öµk‘½—¸/´ÐBošDÊ0”axöÝwgg‡âz&rxÐ×h9ŒmÕàáì „5ÄVRÀ[}× ë.ÆÍ±Æy&v†þŠæë܇óCþLHÉÈ ²Ýÿüb¡øæHN‘úš¹> â÷Bê³ýA‡=1s†àa”•ޙ䜥BÑIzåùfB4oñøÁïìžsc²S”Ç -g¦>Åë[‚ÛÀÇÀç"§Àïj:MBi×�pg$Ç·¦ ç «Ýë¿AêâT.™QáR�‡Ëp^¸˜©ÜÅßS%9g¾IÎZ™RÄà8O‰)†0yW†Š°C…ݽ –Ö® ÙsàŸKº† nCVgj¸ƒ:Ü£9$ÁJº=9uî -´Ð›#†ADž~ûm÷Õ=hl«Toºu�&�*TGRMËvˆÂ÷@'<,6ô¶öx+ã]Là6cÎHÔÒÁC"‡áTIJq|wLMН#žUñ J`´¤`vß\,&½ U؆æ‰_¶«”NÃÂ0ó’ŒÀ$ž³¤ýìÙ³š2Ѷ¤¶vRçÙá]Þ9óžÇ¨ë†T")ªY‰¨HV"o©~œ‰ü¶m@i‡†È2��ðY�º®Hj!b:Ãm¦$ ¶]\…“õ»ÑñK† {ž<áÖTÀpÇ‘Îàé�WÓÍ–á ŽèÏX)g¿t Ëù0aDò«ƒàµ²Ø]ПÅãIeyDî[Ò?÷–'tÓ¾$ -´Ð��¤”ÕÑѳG�ÎOOã­«o YéLd|'Ðà „¢@a×: ýgQ…Wºqˆ×xœg”{7R_Ÿá)ÃbV�áf�\“5Bå 9o„ãî\yLvY`Ê‘0+…óeÕË`F+Ä�ûâ¥ev+$¬W ç7�~Ÿx¤ú< ²óÀ™•xOIÖ:¨¼j³ˆ¡ÑokáúÊdóÆ@dãòŠÕz�p-¼Ü¾yü�ê˜ÀÖŽt)Í@3 ™«ÒÍ$ ׸°›EcÐ-o .ò­©šSà>HÂ�N Æ»ÎFÆôbÚ�s@Ì]Á›²ØÜˆœæ4÷yæ:SóÖœ»1�çùY 2æÃÔ lëK†åäÔ…ZèF�Ô¬Áq|öðá¸^_Þ`Ràð>p?Ť]×;¢!¼P‡¡*râ+ã?Ût\˜c(Ìñï´ÎI9|˃áÑŒÈnÎÀ:à]î‹3²Øè Ì]3VæÐ8“AOCØc’-ãr¶g„[¿Œï UkBê&�C#{­Á%lŸ€Ë+­¼¡òx±KPÈ,Ù³„ÒS–¥5¶kR¿£È ¸#òðøNä|·xp—.…ï|=¡Õãë§)ÙEó˜‹SøxþV—³QXî™ÌázS2fÈÈÛç &«xÓYa¶Ã”jA‹�9“-@9Ò䟋¬�qèrÎ*«´9Q> AÍ/À}¡…º)$"eµzñôéÙ‹8Äžî.D ð!p”ÐsøÐ§‘X%¼Åéì¡‚¤r4Î_BºJðÎðÏi �!]Øð›Ÿô„š’3T°»œÅÁ <ðýÊDÊÇèa+|Þv DâŇÿ+_µ<4o�%¼ Áe)~¯Â ¹xyŽ�$Ò@Mx:1‚7¨-tWýž3ðyPl‡àž•Y×vQ9€ŠŒØìWS€¸¼|+òD¤x6óÄ¿fšJ€w\²ŸŽL¦°5—Ìè>½2ªžÂµX³²#†¾¾ ýf(?[´íê˜:攲�Ú˹\Sý6ó’Ûš²]ëY_ŒÈY/nXe½g- „i#qqêÜZh¡7G¬ŽŽœbjÄÎÐãxîȰo ®o¡kK;1Ý ã�#»˜À÷Á%P_@*ãl$“²5¿–TÎjfË[ïuÆ Ä„}€îD¯œ9Ô¥JóÊzä…°MÏÉ÷ iÍÇ0×1”Š££moï1ŠH±Y‘š+/"P•æÜ¹¼üNäoMsÙ~W"Æ"ŽìÇö&#I¡Ö©jS×—ÆÅsÍnµ 1‘†..ìr0>†¢5·(2ËÐ�‚OY)÷ÞÝg=Wë²ÊQðÜĬ”ÃùF,ÀTPßj²7Â>ϼ¨&g¨º®¶íwb–;8…gðT_;V;H«;r»~¿»s›’p¾Ú."V‹+1ç»ûõ;ÃáuêµKG»Ës�oÁ^?‰ˆÈpttþò勤 àBD€O)èørRŠUÈ„‡°Æ¶ÆzóÉAœšäÌ�€t5‰T+3òã âk2s¤.Œ¿xdÉMFÒ‰?zæ‚W'¸.¬,G©:Ɉ7VG�‘º4Ùàd‘Bé#é+‰§ýífL!y@Ü®'ì^ϾâHuÂ÷Àpå ð{ ë.hѵÞðÕ/iÊÏ÷ƒÇüÞí¨Ôî€2„xùßLµ©[|7p› NU›i?Ýs¿»0Ìw÷ Wçrì8�v×hŠÃÌøî7ý^)͈´Ÿ ÓŠ0¬V£êóÇ�µJõ¸>nMãWõ ªD A_ñÕŒ«TŸ`Öœ4¬Õ^å€MóEè”KL—\Ó½Ì-¨VÓš<èÙ d��ÆÃˆÖ¸å|nxÓI ÌçD ÞT‘…‡ÆYä¾´—'ÖW7¹<$åcÂ+$}£P3+Ë%l+óýÕ@;›Tµw‘¢z|üx ø pR›ôVΤïH]g` —\•Û $6Ú”õæa}øÈˆ¼ËpþÒ‹¬‡� RY…i³TSAn`s¾7œÂ¦óñ62ð^ëÒEäSeŸ!Äæ­¯Œ¶³¦&Uv_íãÔ†?A‘@ºÝU¦Jp�ïÒB -´ÐaHDDVÇǧ''/ON¸ø:\ÏDÞî·í>Ћ¾ š3ˆy]Æ�X»e€ØnY¸”÷aÈËè38ÅþKK¼æ”qkªOê`u„˜34 QgƬ ›(U’‡€zvo¸Õšxrh¨] ¸�ž3< ~ν<õŸuÇò¯{Ð�úíçÈ…m³ÅX©°…¨ÒE!SðĨÿF¿‰ ÷µ™Z5¼×î5¤*2ˆ|$ò™Èà‘ȸ3Šº”f�e¾žG*—2¿á4…}g´ØÅ\™C.ïv:…#wiÊsæÌ¼`Úˆ9t›äl“>mgÒuºœCeFä�m¶I�Û®;¥ÙèŽk„áš p_h¡…n‰È°Z•Rž=|¸>\ÐÀà®/gD¨ˆ+_À!-'3]ðÊB%\n}YVw€›Ö)#<#Æô’€GäV�ê!ä<%¿w_n€rô ÙÏ ³ë›GÊ7ôÉ™-a³H†­è)j›…QŸC/~—›¬f`ˆÞT 9ò¶1ízwö—©Úª Îhš“ ÄÙzYQMÞÏgÀn¬�"Õ;"ïˆ| ò8,ãï€kÀb€h8© …AwsHžë7NÞ(>Ÿ¤k‚Ò£­­�?û˜—W²š£G–ÝÄnÓ´ø öOºÄ’ÏUŃøŒ¹Ãu€ªƒ©+¼zÅ µµ[Ás€õ€Ä„¥âêu„wÞ¬+¨d�`ö1LwXDx4Gƒ2T³ˆŒ ¬U�Ç"ïï¿Sýn¨]‡º¸" ««Â÷.`ºQà—vkÖ‹y€°cÆÜSMÂõ Ÿ®`’v�ò”¨SYCêw1¿TrÛ_2[5Û-#é<ÇÂ|“v”û¹f¦ì´mƒÃÆéʬm A°9£ymkòݸ/´ÐB7’D†a8¾}ûéwßÙ*Õ™ßÐ]h œ€Û±Åž§±²ø»ŒAÌ*p€I¨ÄÒ�‘dèb8ô®A8Û`œR ‡5�y7xl¸0 K$@lmÇ$•q å$PNHçjö®` ,‘l«à> %« d� ˆ³£’…1¥lÙh~7’_È(ig2�4(B£Ãb¯É’¦{ÐÑ*HR¡´úºMä!µ[,aÅ5’/"oo߈¼°-ð 2ÔÎ u4êßpìÞ•0  ð¥à{þV6ã¥^Dî4#ò.·&RÝeŸ-š*õÂX™.!‘&éCï\_RH;+ÈwgìÀòOY†}åoD¾›Êq_h¡…n, P†a½^?ü˜÷»�‹œÑ*Õ_g8…Ð3 œyvÓÓ9w\}…�y2%7ÉL¸»—Í;ᨯ)d¦€ªÂöJ®KV‡‰SSº{#––bÎùßy³ÁGÊ�Qª¹¢¤º4È+Þ˜vÍg!I Ƈ)”‡&wŠÆJi’(m$j}…VS}ùšza‘Ä¢m )",°Yb!rKõ¾È»ªEžªxe``iäî<ŸŽÝío.ï–d 6U³‹;§ªÙ5w4g¬:åZˆT³:Ùaë&ÞL ìrå,f°2Í«ÙåosV0ÏÆ©12 ýÁjÉ€{øq¿þ·çà ßHG¯M‹yº!b¼6º úî'Ãõ%×é[ûÙ!¾™¾^éã}8::yôèìÅ +»NÐ]�S‘·ÚyL†iª ù0Ô­,¾œqªÁ/®lhL€+Ô£5Fbž÷K)¾^ ãSR+¥kP ˜{ñ±ò�ÀÃú²vâ…ϸ>«‡{ %lí쓌¾—Á‹Än@ý7x>\-»ghÍM5»Ž¥Ê–áNuÕ]Ø=Ól ­�íêµAê.ø©8ÙzŒtáªSˆYýñ«¡òÔ‰QÜ$„ÿ§úÔÇ\n¸tVd&‡�¸‡_üý8„Ÿ¤K;Ú½¯ÝöcxXšïú î]sŠöß]¸Í ÇŽ’Ïè~bLÑÁAó‡ñvŸÛS”™3ÜñÖL¿»{LÃÑ‘ªžð¹ÈÛÀ ðD„ÓÔ›—")Ê»ûÝPóP"½ r äM½ZÜ1@«´=K¾ç´– ‹L°’G'MN)aà{©^ì„Ì£Û ¶¶µž=‹ß©&kgñøÐ5[Òº›ql‚Ìl7¾…S:†i_DŽ€÷€û݈»½ ¿Îξ×3$þß›¢ï‘䯴¯Ìü�¼a¸�†ûšfÉå&ÓauÇ¡æpÛòñ×_ëX3u¯•-` ¼>nQlÒb 1…<¥W™! YOzw+ŒÓ†ð‚ Œ‹gR|—ù0g–„ƒ-ÊËŽ„u±î-Äd5•ð÷LìLv`Ú8.Ì¡eösضÙSÊuÌ2ql¡M©üÖd65Èn:1‚²×„ÚÍŒ¼´”…—$­5 ^h8„ÞiT•ê½Ðó]�J7è¿ Ì‹pø øRdüVõ"�¤+aåP9£®™†SIÀó]ÜpšŠ³ra0uOóu¶ÀTFÀ÷¹$ Æ€õ¹Ðšgô”ÊÉ*¬~èº[.fÔÏFëãçG!Ø3#lujúq“îRÝ)sm� 9Rýø¿ˆüת×üÇ•pŸ¢½¿2qýšéª]Ÿ~ v¦¤R¡ÃZæûeg–öP>Æa, R†áÅÓ§/_¼À�¶†<¹Ç $mvÒÈ�{ì›ó³s:f=Ð&ßRKâÀ ióG«‰T^ª /Ar«#ÏÖAa4\h`QÚÅÔj�œüS¢åÖN¼ŒOHnQDèo?83Ö»½»àëµ€ÚºFr¢Ð¶Á54ƒ ¤ŽÒRT¶'(»¦cv&­Ð|ëz †aq…Ò; ñæDàm‘OUàw"§=”v}bxÚÅ@9`¹#ÏN]5ùãüÛ†ˆÙõfBûMv »îúÝ®¹÷Ú°›E3/Õ” ]·„Ûfå¿• ÇãµíÀØM¡AšŠ]f~v3mXž¨8ð.ð¯�.òá6Uæ*À}¡…ZèuRý5”Rž~÷Ýxq�ö{wž œ´Uª+¿ä:†r�`´P!ÚuÆßê1[»[àÀ·â +¦óm˜L0%Hj% lÊ<âÏû ¹Eʦ4K ÁåìfäÁ t²%ž†:VsLŠˆ7,K"½.,oŠ��…±ÆÊÜ þ,' �;w4ÐÇàY¯µ1 ¸Ÿº­èE,$¿V"h©í›‰W€ˆ´ÓšîŠ|ð[‘ ½:Bèâ'FZÝ\êÀaǸ{·ÓH]$Ý•y OÝÍÕ¦ ¶ø¤®03(Sp¿RÁ3ÚM!Ôî¯:ÃâÜ]H7Ê‚ìܵ gïHK^7ùyu�2Óc×JSîn�-3‘ö#v øk‘ÿC{ZyàÞxc¡…ZèF‘ÈêøøôéÓ—ÏŸ_²­�sàp‡ U@3¼6ê"KM3æš Ø­Éc‰ãÁ9ç>�aPî…EålòB�C×JáØn?ä²1¬#H¾%$`¨Þìe"®Ï 5mØì Þn’j/‘݈ƒâŒ’²’•[œñ=³Rþø*I¶ê¾É1S«5Iü:hã94_DÖª…n¡¡öÈ[7·¤.‘ßç4(×§€]f¢•›Bµ©ÊWú¯Ÿæe›Aá¹¼ëM¥3Í ÿ)pß½î¦vˆÏiAoàrú¸][IèˆCàSÚ|œ±þ”Wp3_Ø8áîŒñÃÇÑèY ;|ŠO}2Ú0ÜþøïD¾R­§GàÞõKZh¡…Þ,‰È°Z©êóÇ�/ÎÏ1ž¹*�ŠðÀçp\6e]qaÎÐ�Þ5§1®–¡p@{%U%Rƒê]8µ£LT6°˜3×ÑXñ­ðÁ°²¥¾$ÅtÆ<($\(ØÌ*0ÖàØpyW$ùAÉ-`ßõò[–“iê•[˜õe#èð¦EI’jçpAÚ±Àh~Åè ¥Þ€Û'‘ãöì—ƒˆŒ"¹%RO.{ œ¨nQþ!(D.g0·á¡ðõˆ§Ëü¦‘¤hw¸Ëu.Eù9oäRktzv²S·B¹•ä¼p“¹”6\ç&⃆>ë˜=‡)õ 1¤®[ÜÌ\ PnÄà¾[ÁîvcüÌÖ\p¼üðù 8ª Qà¾ÐB }_HD†££‹³³“Ç�•é®À‰È»ª÷=zã�öèá )Ay»Ð^+¥»s­!ƒQ»¨ ¶¤Þ­œ• ²1žnÀè»0pÖ;‚ÔäkM6afôv"ÕI¤ÀÐ$Zå�zn‰R/Á¹�dÌ,¼Wz}q¡øë�ÜŸÕAšO:j*§ß˜Å‚3cõkµõÄàò¿±%É@„ µ\äj‡z`S;lëŽê‘·�Sà¹È˜BïS!ÞÊØ1 ®*¦˜ËtàùæÐ<€žª6ßv*·$|œºUm'y£§à{¾È•ƒœydó’Ö0C¦·‹é­GŽâÛÝì&åù3�Ñ»Š^×2¯ß¯R�ñ}û2‘[Àà ü×ÀO€£Æjˆ9î p_h¡…n0•aV«“Ç�ÏÏÎÅóx |Ü#HÄ¡ñ�b!þ£�¼QîZ„~ù |§J8L|ñýjê1ôkþ@úv÷†Ä¸¯aÕãH…æFÁ†ÌaJ~khû¥•ÍÁ˜‚Îâ�¯$‹±¡ÞgSRÁ*˜eX‹ns#˜ËÚ†ˆ»ug;W²YÂGž-\ÎFßVY×ç¾ß%ÓòµF`Uk^û rGõS‘ÏE.€GÀiÐôêàa ~åHí¡:º�$»…ÞgšÏ˜ñÒ×á.£Û®Û3%j7s&ËêLåÕÌx]øzjçÇ©é”ÃíA�yC™ý³SÁ•Eõ¶È;ÀลzKä8nw€{À}à=àcà�!òߨþµÈ»À Z TÝéÕ”9Zh¡…n•RîÞ¿ÿÑO~òë¿ù›‹³3~ÆìM#ð[‘ÿ¸­z¯>sÒsN8VæŠÇâŒéÑêÛGI5­—€¹»�¨m€žãèÌŸ;å$£uªÉ¹Úr-Â[ÞÁpÝj( •*äq FÒ1Y®ÏXåÁo ” BÃÚT/^ðj U3«Ñ'ÖÅ9ÉÌnò�~¥�z‹±3“ðìË™­àmæÏ8Ö~ÿœMw5×pÑÂê*2´{õÛUC¯µ—50¨~!ò_ü¿TÿFäEÖÝ©›v<ƒb¹Z·ùLåKóúÎÄÎs�œ£ÂåóP›köÍÕº˜¾~´ä˜sBr ZürÏœ¬Âw+óÚKH  ÑâÜð8¾Ûoy[ä¥ê™ê˜ötÏͳ¨¶Ï#çºð@©~ ü+Õû"§Í㽫z8¤”3Õ—TïŠ|*ò±ê­úõ¬‰= »Cuî -´Ð÷‰ÊjuÿÁƒ·~÷;ÛÖýútü;‘ª?n"·@ø˜�<„ »‹ȳ’°d�Yk�u— [LÜÆD=+ë‚Å0ì(¾ÇB Gƒn� 'ǃz·.ã2øVÒÑœ“œù|¡®�ÁyAì-„à=hÈÆ—AR¸ ÁbC…Qv.d3ìÚëÈãÈ#·¤!ûU/iÝ*ÀEÃÜ ªrX5˰Á¯ƒ7[ Ð’VˆT(0ÖWùªk²ùZD*n¤¦ÞŠ·Uß>ù¿«þ?Eâjr rÊAÀy3|àÑj7‡aì{ÃiÆ ¼;8×Ùgê FÈ´<»K3Ñ0±-¯Y8lUnè¹+›qcñ OsוíÅÅÅ0 ìTÀ® ÆVZ¯×ùECmUýHä"ÿVõ7"ÏÇ1¨¶Mt)Å|Íð½ë& "ŸªþWÀÜU•vl‚½æÒqDÝÊÆ^G)�ׯ ª¨_ü¯~ùËMOm„¾§ÓúÆQ˜¬‹UH¯Í¶ûu4ÓêMÍŠ8÷IDVGGž=|¸¾¸È�üýh <ÞÞj(‡“=�P 5ѪY £Ï€w™•öŽnE‚Yð« Ñ‹¿"Áb[&niãlhžñnVÄàxñÑ�¥zh›c¦‰`Æ»B†ÕÖ]8:T{vθ<ˆÄ#˜Ý•€û­ÄZYl[¼Ø–Æ|ÊÒ¶rî7ëà�`wmO{#\µ‘�ºzžð†âr~ƒ±ÑEDƒÿ#²y%RqÄ-‘·U¼%ò+Õóvë:?/ywaåT*Å¥èe&_âæÐŒ�39õ"@¸)ËLáøyËìrwFìðÎâÏÄ|·0„ç§TÎÌ£•€÷€ÿðgªwTGà¢*œÝK Ãg?*Ku ܾþà_ïˆÕ"²ª¿¢"Ò~ÕpÔ*Xö=ÿ¢ PK¸“‹ƒVl?=d;ÐA0Ð íÁ04™éëúßóû:øÊ Dl;ÒŽC?£ÑÁu?¸õÞÔpLõ{}—co›_…¡ˆ «ÕùÙÙó'OµJÀ©HMv?Žèç’�&Z¡Ý‚O?@ªŸ1kHw ¹. "í‚Á4£Øà<„šV"Gj‚òµ~ØR&X k耆Ãþ6Ü‘ÀEèÃßâKLÄ4‡jô¸sLÍ�tªÏu‚ýƒ^Bý¢¡[[,ËlmÔlëôÁ[¬žp‘ÆWê~êdd^+œU 3�‰•å •3³eÖïTv!„¼Jãi­Jû6ðžÈ["›š®÷›@gƒ†ë]XíWá5S@¨SâÍßŬ¡òÇÂÏC0�ï3zΡè.Û)eç=–z=¶#´gês°ŸÅ0u¶…À}àŸ üBä ÕwDn©ÞŠH=7D{Š}k<¾ÂñpGä#à‹ü·ª¼W»Q&­}U´5âF=àžm€}q6· vÇ[;Ò«ûÎcî©~EÜ¿»w}Uæ¹½j(6ÅášÜ€IÃ^Újº¾´3C¿ÃiþÛ·Çlœo¿)ní7Ž€2 Ã0œ†òâ¢>ï‰9þø#à¥ül?Y©ž«Ž",ß¶uѺ٠pÜ~*ò§ªÿ)ð¯Eþ•êÏ�[©o¾zméˆÍrUÈ.¥ªÓšïœã¾ß£q÷V;F g^?†½ßwx*„¿;Þ�ÑqGμFØ]©=úº>íŽ;ô‡Õb^†™Y±‡Ðæ×·ùÁíܨ®Rýð‹/þîßý»‹Ãí0sü øX䧪ǹ„’*ñ5zËF%Õ±†Öœ÷)YÄœ{D Es|>õ…†kCoŒw­Ú@Y×êÁ(GsÃÚM¡ Fk B«µlË>/„à�FLk¿ì-CÛ e A„¯i>'ÍKÊD²†âJ B‚z4y‚�d Ûz¿ð]£�lÞS}MIê%Y§��­Žå�ÛfÜ5‰Ø|ž"¢¶g¼}©ë!¬"Ǫ÷Eþ‰ê;"w� <Îq5’^ZBë0¢:+g€ËP‡ÿÎÐ¥9ôsÈ?éR†à(k;$u³%Ïû¡ƒàˆ­B÷£¤ˆ~ȃ2 ›+›0ÝT~ÆèÝR/x%k-ç„uyKõN oà¶êO€ŸÔtvÕsàßÿFõùð\õ\dóÝTï”òð•ꟈüpoo‰ÜV½«zK¤˜R úkEíªCÓBÚ7N›äZ[©Vq7¿'¥à À}¡kÒ+C0?Lz¥ðôPtÓÆ´~ɯC××è5Úd8:z÷ã�ýõÓï¾×ëƒdº+ðLäß©¾<ðkOgžÓ†Ï,Vm5 ýt3F awãc —‡Ds£1µ"âd¯#ô`.’s²&1 -«‡¡A>ÿuM¨oÎÙê#Õ7Éù�†JGZ—ÉI,BV]·èò@ݱ�Í-QRmH£Ìœ¥­tÑP>¯ædIL‹{#¾ �LfÓ1ÄÝGšT&€yS64MÇ@6‹Ä¦–ê™JdäZhF<^—v«ˆT½ÞùSÕODþoÀ¿¾¾"vÏà�A¹¥=tS¬yÓ¾:šrËKÝ,pìà�të076oàop™÷‡ Î@öÐÐpð ²<<‚],nuŒ¹Ákv‚g’WÊÚ&�Æ¤Ö ÕjFÊÇÀ-Õ"r¡:ˆl\ýZSõðKàߪþJäWÀ·ªÏ”rxøLõ+‘ÏU79oUȶŠv­ºj_ÿmò›ˆÖ½bš(RJÝ:õ÷A¤ïXËÇQDfsÜZh¡…n*‰È°Z8yüx¼¸8àÓú…ˆ€UBÀ!#…ŸßJÀ¡Ø…H*“R(�S¨ ¢'€úBI½y�ò›¸ üÙÈ™åš30�+X¦õè[�ôE²€Y½0],¥Ií]‡=Ø8 þÜ‹½É¥±:…àµñ´gh;8xÝe¸V�KŒ¿Aíâ eЬ(¹ÓµH�-—·x» 6ÉëòXü¯žã¸A*€ˆÜSýTäKÕ•Èsàôè6À’ǵ:S¹";ör�ü«£.Jž©9S8_!ÜíÆ°3nž‰sOñÏ7#ßšgÅ]3ŽGÏaEnÿ+à�U‡ŠÚëÊlÕÒ–h×ïˆo‰|&òGªÿ ‘¿þRõÏEþ‘ÈO�û5XP7m*îƺ¿jo»‚Ò{!¿ù¡3´fº7Mêÿ p_h¡…¾¯$¥ GG/_¾xöl<ÐÖ�Fà¹ÈÛªoÑ‘œ=A@Šñ1c&$Ä_)à?x„š3°™OI@ÍH=Ë¿à]BR� !—¯ü{»ö–Q‚€½¶»l=!†ùE„z;#p�©³.vÍï=¸£µW¶r0ðmÜÂK Ž‹—ö°‡ßƾǮCU¨¾ia‰éÚÞ’kë±Ö î��Ú_ßÚÓ¢Õ¡-ž³÷*†ïÃŒ ²Y©n\/‘¡¥Ü>~*ò>pÃ3{k]-,‚Þ}c“yÖjÖ!ò¿Vý¨Û¹T•ŠíD©:ø×V"EuÑq¬®,Ú¶Kµ_T³”RTkšN Þ‘Q¤Pê‘m}ϰÞ(àŸúÖûÜZh¡ï1•a8:>~öèÑùÙÙu.€çÀûÀ[í—4cY¡Ð&£F«ðq¡ûuVâ`(Ä$p°Ê!& µìT HScÈà¸ø&Ü6CO®ÉIí ”ÉwÊh… …^´[Z#Ù�eVª&½ ˜nwo±®§ÄîÊèÍ5ãZÀsu´jˆœ!8 íöÚ}Ê-9AAI V&çä6ˆo[‘º½â¯QÀÒb훼šŽ€Aä.ð9ð%ðx „e(3iÖ[MàKû˜Q¬$€µM�ã7KÏÈ6L�d´nóP- Þlöyhn4}Ï 9Ý�pK¤¦Å �òÌ-}H•éªÔÜÔàŸÿx»n©Šºe»HÍ¿Üü8×uöu¨ÑtU-¥fÆo¾Y5嬿µ×Ÿ»¶«¼ªj…èmMªð‹Ýî£:ò~²6Äíã¸÷…Zè{LRʰZ pòøñúââPlx!¢ÀÀÊç„0Z 9ÖHåHÐ >�Á»`=° Ø+€H¾†¯HÒu(1�íÂr¦KK7·[¬…NˆÁ…AFIuÄFœG®ÄŠågs±a»þ† �&õƒB†;3Ù¼ùôÖਰHJ– 8›…1oÇ¢à!Šô6]Ò7ôΤ4 á ^�yG#U³#€µªÔ”wQDî§À£¶)Ǧ‹+ÂŒ.|ì¢ö)ô¶Ý8Üxª³Ly ózÞkêVËc”£æSö¬·Ž�¼ ¼^zÏ$w7Ó§šÔëÍ©«­ð à¿~ØÎ-¨ß�†‰Ç©+dG‹�o#,¥T—blMìl)ÓÛy³ÞÔ¬Q3Ý›?Œ–¢cÂ&U^äb«°÷…ZèûMRÊêèèìôôôÙ³fº+ðTä.ðpìa�¡·mµ:ŒJ»#Õ˜Ò8ð]ñlæÃÿ s˜¾÷¬fϱ³‹ÐÞªU+žI¾PG8hÈÀè› YCÒGkÂ/ò¨Z$Zï® ’Â[ž³™ öö†eïNÒh2LWÒ=/µîÂ&6µ0¯ e�çe¯…rfÐ ¾ÑàZË͉a…b8Æ*7è -` ÕAämàsÕ#‘¯�—×N›i�Ç\ˆ€àåp!󛃈v�¯‡ó¥ÕBùºÒ¥>ÀÌ……Þµ‡È+*òÏ€8ÅfÝóH¢NÉfwkü:„êûΞˆw�ÿø§À}U-¥¾;ª0ºî˜d¿«h)4C‹ÊÃÿŒ …ÌmMH‹¬›Œö¢ ‘ºª[*«†ÚU6)ïôm¶+­Ó¸/´ÐBßo‘áèhX­ž}÷݃îhÇ©¾¼íaMÀa5̦²ØE7ƒER}# �¾_P†Ãè± 6õ³Î¨—5Ê�áÀ'`G‹'eÄÌØ4lƒ#Ä™e0h+Iw$Ãgžè½¬PÎg@Ò7˜)6;=æp¸uœŸÀ4¾#¥³gÂ4P²H}öúض ÛÚ.=êÇTšk:x•¥Ùj}A�¸‹HÛŽf©OBõ8ùXõm‘gªgõ®F³Za¸fX@7þFá¢)¨f…ìºÌH>±žú¸cü~Dr«îؽü©ê_¿ù0Šœc[ú̹1ݘ:¿Ž0õã @V¥ü3à_ŸX¤£EÜ+—B­j«šÖ°µ³ 6®ìZu(EÇñˆpüæ«¡ª5�›í µuQ½m{G*ï-ÿi5œ¿÷…ZèûN»£î0³^_Zw:y¼ÜMiÊò.ÅÄù€læ‚! ÇÚA°Œ›„`vî%(Rè#’œB¬ºÈ$Lœ«¿••bÄ9$&âí&Xë¿uJeadY¼é‚ðëdXxæðCl¹"*‡z�4qg©Øæ|ˆ’q¼_²ÒàH¨kÓbHž�õµö<‡V΀ž­16¬°u*HìÕ9î‰yßUP;ØX‰ü™êÿ±”ŸÕ°:á{žÒÚ6Š‘†éÇæ‘Ž-f«os¶×ã¸y‰'›e©5'þ«T¿°õÝÔØ¾/›],eìßì*c¹4¶À½­Ì•9GZh¡…æ©”rûÞ½³/^<}zXÎg"çÀG-a†Q,|ŒSè/lj•`#ø‘ê]Ã/�´¬9gjhmÅwŠtÝ- nC7ßF|Þ£É*ÕÚCgVŸ•Ro(é…äN-TnŸÑóÑ”, º+Ï”ñ.Èó1†µ—�¤b|¬g×¼0€q¼ö ý3C¥8§Áˆ¯Sš3£3Áð¼W#d:î±�c0RTÒL´AKWh[Öœl¶Æ{_ä€��#àQZ±º#…êL>Gg¯C7 …ð3¦áu¾ž*™ozÜ=u>ôæ¯×G"üpKÕ&íààª_‰ˆÈI�3¤uÃdã¸û¦£öï®È?ùo�?P•š‚"RZh¿f·£Î‘�oÜRÕ+ŸM¶˜êè§ß6ÖÐŽ;؈Ôâ÷5[Æ¹Žª›oYÝbµ!øÍo‚ð[ï ¸/÷…Zè{H"R†áøöí“G�Î_¾< ç¸îoGR°<à-ô 6…Dv^öÄâXløE.„·˜-c_¦ÜÅ… /ÐÁ|Œæ Áb«[ä)la.ÉtB �cØÁoÂå!Î�VÊ…j»`ð ŸL2¦ J‰ûìcYÛzçVf@vJ2`Àå̼;àcêÅ+ª`6\§ŽØ ƒWdMa{ ÓQCF~Ã"¦—qê-¡�%¥n�¬€#àà'"Ÿ'ª�ë."W¡dÍåüq>ÉûªtcÑÑ¥¸¼[a—:a èLG]ÐßM×éšñ�꿾ªyÞª5cD€•È=‘U"ò!P³°.Z<iˆ­»îjf>þwªÿ•È­d]çj‹\�²Y'ZAwM«Vpîz+/5*oߦÚ#áï(máiÝšf¨9fãXÝàRŠª:¶/Q)…ÝæjJi;Ð,À}¡…ú��ˆ GG¥”§6aæBd|Ün%!'þ¯]¶2–„“˜î 6bÏ�Ad9¼ÈÄ<; ¹%ðÇ‘ƒâÅ×çø:kZ|¦uñ�ï/ɺ ¤få“mž7_B°æ»BÌs@;É(䨘ÀcKAYy¶y¸g’”Ló”ØOSÓk‰oåù`–�ìÍêôv‚ßi€Ä‡º¬Ð^�¬ª‘"r,òð¥êW"#ðû+ž±Š"íã.+2“=èb¤]ê»`÷P-ƒòÃÞm·ŸîˆðÇ·DþSàO�[$YÝž¨¾äð®êGª_Š|"ò6p¸ÜŽEn·TWªÛŒ»¶!£´W@·U¿þ3‘ÿNõ/Eî5+JÞ¬P·í&±ñKkŠ‹Œãæ÷PµˆˆÈ8Žh{¤Ö´1´¤•ºG{¡­¢6±|ÕÒNSBeÅ_+Õ¡©>€lw|G=�Õ,¥ZDVXh¡…ú¡ÐjµzïÓOŸ|ûí·¿ùÍ—¦­�߈| ÜWµý¶3dÏ;�XÌ)d+ Ze˜0ŠRïÖ!JœŽ âiº°ëœ¹ÁvduŒ'»1¬i¡¶ £ÅÃt`M•á£àVm$üjê\v/Ó'ýóÑH|¾ï¦ÂZ3`å]VÖþ.’ñÃ-þ»j›½©™ý±1éoxøn|LGË\:Ö­Z¡D|3]iwMý5 «i“Jdh¯û ¬_¨àÂÆB7;¾›WÕøDõÜù7ªß´S*w¡ðÕîfËXI÷w  ü+Ña£ø×§]”¼²ÓÉK‚qfjr}®záìšÐûÕ¿ùsàmUmߊÈ8ŽÕ à¸#ò“qüLä‰|'òx¼T½‘;ÀmÕsà ðx œ‹ ª÷�Ï€Ÿ?ÞW=j¸YÇqGG´þ+«¶£¼n¶z¬Ç3Õàz5‚ÒWRUëÚZuY7ü]Ý€qK)ë†éÑÜmVJ[ô¼ý‹Ê°Þ÷½"û¸/´ÐB? 9ºuëÃ/¾xüûߟŸí—CÛ§à?Ÿ÷}’$ŠT“±,¨þHð¾ŽÝ5ä�ùpe“¡~,þb¢>V]¼< ׬!C+¥&vWZ(w‹Ò’)„Ô qÜZ!lÑÈÕJ’§xkŒ©-g´›F!ù¤ëÀ  c9´Æúø6X,$X!GÅÄc5Aä7&¤Ù ÍÚâçR€àpŽÍ P[�/| >{€Ú8¬g&›™ÓB†¨)"°6Ôxê-àsà_÷EþÀï�3à:ÛBhX‰a"×Ì…?0b´m%NáìyŸDëY¡uL²ÏY1Ì­[^€»ªÿøª÷P÷ åŸZT:ƒê}Õ÷JѶ6´Ö)-6l6g¬)æ+‘Auë—6ÝÕ±]´%§ª(E€óÊPU[<~=Ž›tšqJE6/¸TÇúb�,RÜkw…l^€ Äëöð¥Eâu7¿ðñ(ª5ÆQÛ^òÅN•©¦¼9~äB -´ÐUIDVÇÇg/^œ<~|XÎg"w�w[ê3(®e ¿\ÈØ4ÀbŽ>ÜóTÇöTã˜7ãQ¥&êY1 W϶$-² �•J†°æ ÁzŽ—‡¿†³Ù�àNß‘&Œ¼ûZ̘uQ’�c!p†ûaD‚m9ß&Øy ãgËï˜YÛàϧhl²Yº¿ɃÞº æ]wш!QÐÎ*lÌÕ|Ñvv×–9cïj6|i˜ã6ð)ðpÞÎXÝMw±JÈîØq å~tsÀÒ¼$S/"²{3“ÍRé.ð±È½ðË”»Ì»ï4ê­•êO€ÿ½È?nµùl -êÜÉÍ Í7I,­¨âí—Nä¸%Él]î#U‡š¡ŽÍbkµsŽjeóoì»Vqs}¿Ô°>ÐÒXZ¼éÏâÚp³,•ìf?eã8JSÌšlÂü”Õ#¥`î -´Ð�J)eµzüõ×ã¡·u?k™î¼ì2€WÐGÃÓËìIÀuÐØ+ð üCÒŽ¦‹@šú bg ´2*½ÝÓ¥Ç6@Uî+S®_è–]hkäWÒwô%ðêtuW Þëö|å�3(c¤$ ƒëÂ@\{Ýib+>îÎr†ó’”^P >mäÂBüh|ÌåH›Q<Fò=Ðà”idBä•Õu{õèø‚MƒÒ ÓÕ#‘w�/€w�çÀËkÄÝp7ùê°MHüx]\*À¥½KÛ-‘z¦wQ¾]ßþ ø‡"ï·En×Tlþ®Ñ¶Œ]1DdÞQýcà?+åþ+°jtiPµvo_Æ6ñV5#¥5/í–¶œ–u«iáj¤ô[1ôºæ¯×´õ*$zVÉeMûú¥SÕQµ4¢Â芳]ø£Í�Ñö—y¹¥ØÂSvx„Á8ÖY‹S­öÔØ/´ÐB Ý|‘ã;w^<}úüÐA÷Ó¶Jµ.¢’ÁíF7 -ªV|ó0Ý�Ô2*å¸xHy·~�ƒÁ8f˜q9ƒæîÝ Ï8¡f€ò’ʵÇ0*§Ö ¾Z½0tkæÍˆœû Áf%!�Ôã`æ oM%&FiCý•GÀÜë+$FPÍ ;N«Y¯×ä?T&ý-福n^ˆ¿ÙÊ@Õªù57fl8É 4ÚövƒÈ…ÈæðH‘P€·�/€ŸªÞ9Nv½ Ù áz/–—tÇ)(¯¨—Ý…¹ôd÷7u°|||¦ú¥ÈÀà¨à7®`Úí§NƒpøøK‘!ò‰SÄ ‹+Ç­Mš–í½AÃ5Î]Ó`êÔª±ü¶6Zjžºª¨®�M“³ê_­¡m*nß,ùD£�]«©ŽØDå7yí"EUlu©}¿¬Gš–h'•O…ß-—6íU¥ËAÒæˆÈÜZh¡ ÕÜ'ß~»>??àošÏDîïõP8ŒæŽVÀjx+‡E­ Iܘg¨É­P}ךä´K›NŘë6çU°ub³R’n1g¾¼–4Ó‘Àºy)lno· ›½én—^Èzð& ]ÀÏ„µWÔÊÈ&RÎPÊÆTß|¤¶Ú³3R"VH2˘úl^Ã÷FÌÍv³1i·‹öÆ5Ofsº»�ýÞü„šâÿ¶ÈWÀO�—À£Bï—f‰ðÒÕù¤öëÿP¼AÅýNÉ�Cì âó-Æú¢zü'"¿Ž€càm‘÷€O�ŸüLä¾%_‰ÕAdVÀ±ÈààK‘ÿ¥ê?~ Ü&þ5 EéZl–ŠNíðT´�´ÄwËŒ¯¹à5­@Kˆ×Rê’ÓÍÁ¥õV œ+Íùí·¦­+e”?’C"í=€eÆÛ©L çm³Y$ZνõHÙ2ÒÖ¿Âv+„ã«ÏPÝY"î -´Ð•8=9yñìÙaÑÎ�Sà}à…uáã—Šá�&<` ˆ<ài®Ö K ¡êÀ3´²@¯Œ†F«fϘ³c�½”ŒÅ'ñ›­Ö¾2_ðÇà3(iº¶ Ý$xVÚÜÓ:X5àrLØd^6B¡™À&5äÍ(ßZ­§‡RÉE‘f@íUSê½P¿ì,w.ë®4aØwñTßÜ¢›Ý×AU…Ò€HEf¶N]IòàÒñJ4H~u ç&`§ù á�@ðj¸¦ ™VÀ‘¿V}ÏÎj-Gò¸þø øxxø@äàgÀ/�?ù ‘?Þªñiûq¨ ¼îtÎ_‘�hr¶5ôT„]]Jø›ÙÛVšŽØV3gL5ÖÒ`¢S–¬Ç  Çæâ”–îâf¾…í[6‹Zö< õƒæilý:ªLy'ø–Ý~Qפ6 4Éà¾ÐB ý0iX­Däñ×_�ëõaÖÎDN�€;01PËøøf´¹‡¯À@¾? 4¡¡:á�{’q667,ˆÈ,ˆ‘_�Öô ¥¶é§MŒâ•bï‚/Æ^�œÎQVÏ¡ ǵ§æHò°²†e9%]¼8R>P>z°awb0vHB¢ÄÍtQ¡®’g^ÙbÜ’<·œÄŽŠ6 ξ«a# çÆYD[ˆ EXǦÚð.ð px<¿:vwÑâF¯çLŰßu£ìÝûÔÇz}ø+àgu‡–†°¹B�E·EÞ>þø%ðKàO€_ˆ|¼ÜnAèmtÙ¶!jÛ¢o£Ým’hëÅ’Fl¢ 6[¤twû}�­úP-"¶ #uÛfÑd³þêv.#›£6iþFu ê�¶ |]Âa5Ñü�Ê .y©0-É~L¤™¢â~­É3ã¸÷…Zè‡IRJ†g�½|þ}”ŽÀs‘;~‡C0BÏ•òìB¨>· (¿¤»HÕuñÝJ…ª…0ªø4{4ŽƒŽ¹ë. ÁhkP&&âúV8R 71ü R„E 0Óò³0â휇¡7BVby4m’’Êd�/WhUhñõƒÀ’îšÇ5�¡Œ¹Nè¬gêWl#š®¦^€-d¡Ñ©ÀHše`8¦!ªB©P+à3à>ðxQ÷Áˆ±{ÞDåÕÅÝov¿ôÝBÎûŸ»FÓÿH䟈ܩ›ö]Ú®Õni$V€ðŽ¥rnÛ°Ô O+MuØ7´Aäm�–jÒð·ûR˜#Ѥ’49µqF‹ôWÔ.-oV¹†ºÛ¾�0Ì­jYéÒ¯Ød[Û÷}l/Äö±iÖ�†ìµ1[Mˉþ¥`e‰¸/´ÐB?`*ÃÕ'ß|SR=à�[ÝaæCàž�;‚p˜¥ÔÈ×;q® hžoæ ÁÑ@Œ¨‚'0(HËuÎX ½’®7 °I\æ „z%áÅìBdC±Ž,¤¤j ñ1áiðG6�xZC‹Ð³/lÅ.¨#“|M‘lmhðLL…p½òFû8eí‘äa‡mlÑú‘º�ŽIîâˆ4FƒEß:¬Iòn¡ ©¨ÖSu>>xœ]»o Nðô:Íw¯Ï«_¬Êaò]v›™¹®‡tÞþø'ªï[’L �o>µ¿µÕfòXl›ôts˜‘soÚ.� ߥíºXƒñî÷�àûØ3Zî âÛ4ëªÓº#¶¸öo�­å[—�¶ŲŒšR…šƒÿ}mÃ{ äó�½»`ùÑœ iý^¨bëv= p_h¡…~°$¥¬V«ç�Ÿ>.³°=èLdh;*€~|9Uƒzp¼’áûÑ£·ŽF=V‰òµ±’Äa¤P… |ù#&'$?¤²”Cç¥,Î88»Á,šîÚ²F’Ää±’1ñ,´ÝáØ;øVý[¤NÐפ¿Ã&¼†žŽ¬çJe-ÔÛ\}¬¸Ía«ò.ºéà}¤­kÑðS!W¤V-æ ˆÈªU3cÛ¤dܾ>î/€Þ™¢nB¯ÿ{4“…òª^ìÊRj £°hQˆÕ¦> §Ú†ì0dË›lCÂß\ÉD¬Wñò¯}åÁ SûhDŒÉèÍ«©÷°G{–³Ðs}lÍy‘3 ³Z=Ð1›‡InQ˜Z”´ °n!^h¸ ”`søøø�G~‹›Ýéš¡÷ýzÌy)¯¡Ç\8ßdsp øø¥È_?Þò§t1|ﮘ¸©9ø‹#2ðÁ«Ô;Ƶ‰½�¼ÄY[¿¥ÁkÆÓ¶ÆTZ“­l¶w�¥Ú×ém‘["ô hOߊãÛ¦7Ú6‹ÄGká&pÛÀ‹êºm^i¾Gå¶nZ…q[&ó÷×g·œyúÖŽöãšæ­·£";öµ ç½exSžØ~ýî>yöþ P;p0Ú¯£ëË0C¯ÔDû‰4Ã|fèK)/NN^žœÌ‹´]´#™îz„·}Þx �b…~”C…€¹F,¾#æ‘°NÃ=Y½œ×)Ú*½ˆuÐ%pCŒUPßÊà㘘€š 0ûXR9‹|�ÌAüG3µUS*a‘*£Ù“»¾Š�Fú˳„ò•ÜÃÓâÍew-«8HnÌMß‘j®ÛÆŽì‡ÁƒxMþ ,–Ã@‚ YÉ®Ãü¯îõ‘ÍÕºÑ;hðÜ~ œbÚ#L¹ø6Ô¾{üûà$ b^ú(9î?þ1ð—À?Þ9êE |7<-Ämûuk!p›Q5+f´-Ñ,F·åËÚй6Èο…vI¯|.êtª'Cµ?ç|wx‹ñoQxãS½¶ÆÄ~ökB–vHSµÒHïìq5Òìö‰’døwFšwq…ˆûŽN¦i¦É·ö¨öª™¼REv4æ~Ì÷¨v¥š‡¥ƒ(òJ‡û°®?¯ö£›`¢ý˜Gà> RÊãW�é®À ‘[Àû½];6ÂÐ�rÀ‘Œh$� ^%O/xFß<§¿óÓ"#ûP'x£ç©T�ó¼KâøÃÛ'$Žs Šô®%¡ ñw™²� Dºçz+dV¬)w�ûÒ$­u¤~€˜ÕHaòµ—“]šzÍ›ý[M~K“=ó" m›<6|ì!”47Ø8…ü‡Åá§ô¶á-ecZ¦2`HÛÛöÑC�¤ÊfCñ"ï��—”Œt3I(´üš3]¯€·€/DþøsàO€Ï€;6%”‡Ù.ä@ö5” l6úÜd}øqß|åUG:ý€%P™s¸Áám‡.QJ‰V¯ •0”p¢¾í¶#UUå Èl*P6ÑöÍvìU74}ùåÏ‘×ìvl�ÏÊá«äsßÍzfÒÒFnl¡z×ôG›žÚ[�0ÒF×��]“®�\¯Ô|¥º¥öèKü¨½qÂaFÂW=¯Žù�™š33¤”rëîÝÇ_ýòÅ 9ô�À3àp×oë^)„©ºg\n϶üSž$ÊÑqñæÞù!ZÒ­ÅB˜Y}è7æ¹&±ÇTÞÕ…ÅÎ ¯[Y‰Z_&,4@lF!M+Íò¦WøIʱÌ9…¦ë5 !x!$-„˜yú*ÌÐV—æ@xFäf.‹¦s”9 œ–3Pó®; ÿ‘=„�Yš-Š@ÚÆ&‰Á¬ªæpKäðð8 ) —Qþ騭Ý“×Ðã~$mòÜy¸ÕŽOºÜÞ>~ ü1ð�€ŸÕ]nE %n bõ[œÝ^Ah†à›ÊRÇX»‰Mñõ�Ãæƒ÷ <ñ<7î\c®6UhëÍ?VÚ°r½9¶¬›Í×ÜG»•‚ý›WIãÛ¯Fusº6)ûç�E5¬ož*IXÚF4f«¼iBà\U¾¬÷Ö,<8oˆ¹QŠ¢ÔM°Ìõe¸¸_“ÿ5%yãŽë÷�æ�»]ïnç+M‰2 g/^<òd}qqÕ¶—Ò¹Èð8N¨´P Ð ÔR×Ö|œß ¬îdþ†ÉX†z/O@É Ö öÙƒPý5Ô/þ­f|\ÉTæü xk¬`îϤ€VÕk�•‚¯\R¾|¹$Sp_úkR|øÔQ³†…¯üCƒì!ûhMˆ_HëBùÁB‡Aø~ƒõ ‰ºÁß"ë†ðÜ@ˆÔXûö¼Þ–ã.mk6Ž5Ô6œ9gWÉzg¨³7æ¹j ‘áf¥×°áŒƒÈ{À_?ùøøøø ø9ð à_÷�ãR‹�#œ©ÒûÚVŶzµBñ):5~"6 ÑÌcKJ±©h€xë¶�`“TûI޶£Ki+Pë[×B>Ú›ßÛV¯ÍÇæ m¡ê îIq}ã¶Ý_²õnÂÇ޵-”K .hƒ�&…ŒªÒòé/î -´ÐB? *«ÕóÇ�_>^?ö‡î¤%Ìð3›~ý“ T!K°¬A.ÛÙ:T©¦úVðˆªø­u1�xÂÜ ]‹¿Ãì«d5èdGE|ÃÁcGfÈ ’µfËdW'»HX^ë¬?°¥×‘x¯ ^Ú0¬£R`;È` ‹·Kš<  µü:Bü4ãNY*õs)ØÄ&‰xËÛÜî–ýCK,Þ°ž5SÁJ�ù 0ñÎzÆí-àsàS` ¼.z^Ä¥tÕ×¹‡Š¸½Ô.À‡ÀŸ‰ü'À§"Ÿ_¶Ÿ€w€Û9ƒËïö(Ø®-TšŸ)w@¶V#$j1oV~$8k•9ƒ\+ìngqï"ÛMfì§É&IiÔ^„wh ?¹–Ê¢j‡"m©n%I§DYnýšª±ƒaTȾ5ŽÍÞ6Ÿ·À×w-½>Ø Í›]€ûB -ô£ 2 yúÝwõ Õèv¬6§íÕs~#a»ØŠGÕ¶½ÓÂÉ9êƒ3eƒ =䌿eÎM ‡o.>,-Ä¡nÏai |‡|k¤šÒ+5D2{P„1«õ•(·bôYÈâÍ•ÍúÆ%>7�›äŽñ8n×ì}ñqQ+/ƒyD6Ü![Ýì.Be••¬Çc\ÇlmëkÝ*Ô�"l¶†´ -¥¸)ˆÔ…%·€O�¯€O€sà8Ç>´7ø¹f²Í+Š» p ¼üð‡"w}×’úµñÚ ^Õ•)!€�hÞn_%цåa¶³Â¿”Bï%½_ªÕKË3©¢†• !œ¿ÅÊ-wel!êRÊ9ï)Ùâèu^ eΰt�¬é¬VƒõG7ü½•˜lå ‚W¢ªº1£9íᴆߑƞY" p_h¡…~T†a†“Ç�Ïž?;<œ‹ŒÀ‡ÀqÚNô„ùì–¥Ä0d”YÐ#Ä�Av@œÌ* (¤…­ì0†3˜ØÖül–^×ánÀ¸A€MfCêJ@3b„ÁV  \ Ô'™äj S@Æ—TY|a°mÐ: HžHÜ–ÕÌÙ˜f®zë‚°8O0ñ» ™$lÏ ¹’Mxˆ¹¼xÁ”³S¼¦ò󵈯Èf¹ê&6I€^ˆ�w€�€?>žO÷Ú/ò5C �Wµ¥„mrÛÛ>‰¶wµ,ù¸/´ÐB?L‘RʳG�j¦ûÁîÖÀsàCàm½T`C“!âЭøjh×v£Õ×T¿c ×ÔTÈcÛGƒwaÙ(‹Áü㎩¯ ¼z‹±RÜãH•Õ³b�óÝL ¦¥­Ýä'·‰apV|õcľAè·z¤»ê¡yhXòò.”·úüz$jðCÓµU0,SX› ’Êò.‚Ã0´ø¢m··•³A×’´“t G7`ª}�m�? càCà'À ø=pæßŸ\J! >S窷fšU›†À ¸Õ¶ŽYC…éÀ3‘_¿.€»m14÷¥”U¤ðÓ±ý²·v˜ch¨TA¨¹´¶VR¬  ÀŠrÁ·ÓÏZ´@õHâծ-tÞf¸YLKaßp£ŸÍðÚs«8å®l„¡ÝÜÇæXÖëà‡ ¥Hó@´eÝ”¶ìÕp¹6ÎÌ�óg(Uf‰¸/´ÐB?R}þäÉÙéöÔűûŽ;Nœˆ À»ô\=´€ò_ø…üí¦jçG##EC`cBTêëÜThà¬Æw×ôQ=ÌÖ8žy¶~IåâÙò‹õÀDüu¥Á/\{pÉä·dõ r ™÷Þ}fkª1\}h y¤Ô[U©;¥r~é¿öZ0 á’ ÙÙ ÓÑ 8N˜:k*ô�§àõe2¬£Øì°QÄ©ßà ß7FnQ ÙV€ÛÀàcà8Îi�F—ìw`ëTìÜ z÷ שj¹ œ¡NߣUÛ—½.­É‘ïðý€S‘ß¿ŽZô½öŠ4šÑ•9çc›iÁLüëQ8$¹ÙÌ\Ú²Qžxs[¨›ß¶ m¿ù^41FJïAMmbªj „o2aÚ˃ìk6¹Ræ¶_‰Þz�&0š§:¶ëYeK©ßäô7—Õ ¼}ý—T™…ZèGGg/_ž<|hÏæôv º�À ðpXµB†ÅH0&Ã[Œuà›3"Wj�íVp�ò°Å·µçŸ„g•Çm¶†\õZ‹�©� ׿VHÐ!¤˜³v]œ &?ø­÷à q*v—CNOÆg� ¿Xè–)È]gݹ„#©y"*éX7eñÑ…Mþµwuÿ…ä–î\µ¥<¡ùF)Z³¨d„ �F ÷ڶgåPÀ˜7µ\©~üTäsà.ðx±vÁ÷=hn«Ý~YºµªÖp[äVËM·Gôo•0½c’à{5à3à×ÀI Òßâ%ž�ªò«–ãƒ×-@I¸½Ÿ2ÖÔvd/„P·Â“7å¦ ¿àJmƒÏI¥¯ÞÖ—ði*›—¤ [mÃxžÀ H)Òbäh¯e_Wo¡áòMTÞl÷^¥Zcûc%2ª®°IÈ·÷¸/´ÐB?Z­V(åñ×_¯Ï·»Æ]ú»g?�»<ËÏD.€�[a]†z Ç€øçß2 Y"_Úß ý9‹í)žQTd¡÷¬‹±*´í#˜-ø3õë TYYäµ!uC~v“mÙl·æ蜩Ms‘#ààKàçÀmà!p6 ß3]ÕÞïˆÜª±pï2ÉED¤âécûf©Öuì_¡y.ÞþaBnûm¡\F‘¯�ÿœ¶‘Z1nÇ̰©#¶Ä¹!ï š›Ø-ä ò²`ÜBSËŒ@ÞõPŠ6¬Ï]T<ˆHË<)ØÆà·¿fþµ ùkÞ| {±£MD‹ý+ítQ—ÀÖ75Í]•3¨X|ûâß- mh’mã/ÕüxšB p_h¡…~d$""ÏêaLW ºÛ›Ö]:9ða º‡çhjõ¹Â¿ìè5DRzDU¯™Øm 6l«b•&é7míF�kµ°(V©•¤ O ‰² »�åÙw�ÀF6 ÇÈÆ0GŽ YI¼YÂ…Ù*¼éÅ 9°%uFVÓ…õ™Ba xЃœVa*¯Ý”¯iÇŒu͈ÆA[}^ñ0E÷o“ø[2ƒí‚Rz­¼jYÎdCÛ²0Š]w€ÀWÀGÀàùÎûEÊ^›½ÔÝBŽZB˱H –ú?¬6gjÀþ–È*ô{i|�.òO�qà$þ àkàï€S‘•È­‰s|]””² ö‹h/m†¥ÒVMZÐŽ@Úì̇†nƒÐöÓQ�+FÛa]DÚjæµ%Ž×)D»ÄTXo"““y6ó¶šHdÝD2©n‡u´e»üÕ¨ ÚÚÙ‘~O”¾hÈNyYÒ¼x»Õi_S§à¾ÐB ý訔"À“o¾±}!ÑâDÚýíù<¹ ¼å�!=ùùZdá€q@Ïð04ó±ÂBa$$Œ¨¨2R—Q{Φáò _ÏÓÊzœƒlJÂÀûY kÔQê7w§ôœFCÞv¹aØøÒ+›¢ôÆ„’Íž¦”ù<+£¹ZpÀ¸ë€ÑmÈL’Á; -ÆÃTd”Ï«ŸYkx5ÏŸošˆ¶øbœ"B êÆ&›ý¼9B¶[æq 3¿ìàøø¸î¼hu¿´m>ƒÉ³ŽDjJú-JL· :¯15§Å„رߩ¯s7Y¥"Å3àà·ÀIÍ~é 1€¡¾u$–[o¶FˆÓ&?aÐK;wi‹U­~óжÌÓ�²úëBìk¸Mµ’ífDššŒm"ÙZgVÖRq„DµXþšB)CFÛ¦Iö}©™ëœý%TY[ÞZT5,im¬Š�S,À}¡…úÑ‘ˆ «Õó'ONŸ?å—6Ü=af ¼ÞÞé�ãò)þÙ…ÚÝ,lñ¡mx|†»huàQ&Wz*3=Ÿ|Ú”ø^² ð×… u˜‚:!á[›À¥%KØÝ >g¡0îÚôe›³v#!àÇGoj�Øç‘õBÊ�áÊ _S+¶³$0ûW6v,pÎS èY¼ä]oMZ¬Ñ¼ˆ�ê°ë¢¾!Ò.Ÿqzx2°U·š©œEV-Ð^¿™U»U‹'�=±+’~ø8krb�vÝæÂK‰ÝË�ÿ#›£:+Ÿ’rÖ-$ÓÚoò½c¿ýz"Ž F+àøZäïUŸ‰\´D^L¯ö&„$öc-?dè 7ÚhÖ¿ H³‰mï7lă§±=a”ü=´Þ+ÕcG·ËL[4Û¶u7•-ݸaB’鯷 ŽÌ&¥EèG;áµ9“hÓ²ò\[*ª&ÖkC훓ƒ�m˜ÒœÑ¸/´ÐB?FYŸ¿|ùôÛoy_ȃîÀ® 3g"kàA‹Ÿ ÝHzÖ2Ê °’ÁYñBs#F«Ü—r’„]¤—Qzbó®"’Jà›0^75ÇÄ?+e³eBòLFÀµ„ÃÌ�à Âi?ÁlŒ ©Ž½¦Ð‰Œ#MŠ 𛊠&wÞ Òn…’ Ž�yyæŒÞV‡N ÍÃ7ÿdÍá®.44èØZ§!+Ýš¾!zÚáT¿/¤xþ’ÂÃ\†ÂBrfIB_F…$ Ç����ÌhüƒÍ¹S¥^ø¾‰�.–$c¢j‚ ý«×ˆÛEX…BÎ c}3욦Oõ…™Z€ªeÆÈ¸ñŽ.Í”4Fl¤!c>Œ¹Ã3›íÉ|IG`Dã’ªP9‹š—K Žô¾‚ÔÖ°¤Ù¢Þz¬£‰1zŸ^x�my–vX¦m©¶ _K~0‘V¼Û uQ3UÞ>¾>î§Ài’çúèh.Z";’àJÒßH!ãåš”CïÔû8ù[àÛºÄÖï”%Ø$ÿlñzø^{½º>[°…úøï Ë™ìPÒ�‚èÌÓ¾JZ’ÕH… ·é;ÿn)…40 óÃ[Rþ:òê+W€µåÏ4˜.TGüyU›:-ߦުï^à¾ÐB ýHi8:/.ýõزe@¸|†„jwÛò%ðAÝÚ@‚/n4‡ÔÐEÈ�éÖa 0(\»ÅB� Mªµï‘Ÿ‘Mu {òyðçžX©‹l±¬#ó·&¬ŽP}VJ“µƒqB×ÅCaÆÙo6õkÛŠPÙeb ÈÛ·ASFxi2ðèð‘X#ÔëNIHËP¾í9éê§%—ˆ5,xålÔëþÔÍFòöú‹¿¹d/bßàÑæMaÍÜÞ¾þðàhçu«WÂKöî"Øœä–WΦØfÎÐ’Ê=i&~ï ×Àcà7"ßO�¸ À�š¶Vcø^S(Ýþeí Û³B¥%‹›0! KØk¿ÂR·U…?v8`MûÛl…lyêÛÔ�öÆc´%¤›7©¯ÚnhËXµ=´i1X‚M³›È ¢²=ziÄŽM­Â3pÇn­…Zh¡©ê³G�Î}¶ vxóë×]::9kØ]üÓν֧‡tXãh…h…â KªŒt-)¹%Ãý.¢ Ø1P€ƒmsŒvÊXݤ Nƒai ˆ¯½0J\V� ^i�tÀ]©!üuV93§›[¡öDZ÷ o­0�YXw3&§Ð-øE�¦§\IpIx‘Âa{Ð-¡Ù8Ò¸XM™m'§!*la®2/íDúE†¶¼’³_6~Bï ^Åþøx<žÏNÚ=hlvØ®ø´½&|gÝ>ÞÞ�qö'ë®�L„ö'¶�X‹ e£ÌnIÀèÁI%·0Ï‘ÐP-sà‰'”ÁÛÚÀ3ìNÝ0Qƒ5$x„̶6¯QaŠS|Ù ™Ú\¤¨Ú©@j‰ÂU K¨PECÒU€p ¸|¼ ŒÀKÒ$èãÕ°{{í3x†ŽI ½‡I²ÕØÍ‘øŸM›fÕnçÀSà·ÀÖ¾¿Ví,[žŠa”Åk¾°¡'Ìhµ ‚«qDÕöMG˜`”Ù"éÍšwg™×§Ö¼n&#‚|Wا¨eÏ �ÚpT8ޘ׹²}[R5*¥ïëš�êm'[›¢›|›/ÿè�Ú¸´™?1†ÝâK(´âÇÛõôîˆ|GÚO¤©¾æµØQÇë÷»»x»mGæWbÂåüo¦£©j‘0ünîAû¹¯Ú½™¢=t¼ttv‘aÝgDÝ÷ë&"GÇÇç§§'��W ºó³vGìþRd>h»CnšŽá§—]sŽ�2”·À�“ð¾Ó1=,ÑCÕÅ—óß�ì^Òµõe2saðR s/— ©®cRÐ:b�C®y0 'j�ž�¤k$-LÂÑ«Z±MÂþ3f±[¹m×…`’4%Äg°H¯2È.¤ jŽ4¯š–ÜQ…¤+ïRÚø2Cß’Æ‹% YO}6^¶Û�Û×°‚­¡Õ6àië¡©n³eÖ¬69îŸ?>ÎÛa«Ý¯úî?f“usÏV=nü¡þ ƒ¾5Ò} ^‡ŒçÏЭ ß<^¶Õ«Cï—SÙÝòùåá+ þY Ç9߈Ñ$šëÅò»76íeKiœ§º)»ù™%c*6{½oDµ9ÜñOöB`Ýó¬,¯](ǦæÀØ/O±eÖ•¿êºMc3N¸wÇþàfïgða[íÈáúàf?†ï÷:œ÷nup&Ÿƒz¼êŽg�öX)ÜÒF ¸n8Ô½G*hk¨nUÁz]¹¨j+V×Àà“†…`1{wybàðð1ðó¶íÌsà%×ô?i@æè¼ùfî‹ éÜ¥vñ5·jJÕ‹�š² ÅN»?k>+À<~|¸EÞü7ξ#¥Á\ñß5M¢Y§9/"ˆ7 *ªC»®­lUmY£6[H6Ð|SRß&êÐÎ7µ§‚xà^še̱13–:'m“™Ç·Ç&´&›«i`-ÇFš­*îã¸yL}¯‘Ák ï—}Þˆ´ß/½)b+í—tôý¢0+n’ÊenÝ»÷øë¯ÏÒö2¸ì1¼v¯ 3¶ãÍ·ÍÛ_{nË(À5m•3ô* T¨‚ú¨v†V]ò‘FŒä8Â�$†´§5£^(ïÂ;–dM×J­Š—!0lGÈ�"»7<câɺ‡|�à €† $më 3´ lK,�`„tä3ð¬ ꫯ`…Ás«Õò{îÑO0¡ J/1LÇâïnå÷JSG[ðGg^Öò� Úº…Ø‹ªEßëNvBSŽ£ ÍîŸgÀ Ù§ »=5)1›¤ Úå=qa͸Üãf¡Þ· ¿Õ Õö'Ãô½�ä«¿þ8VÀ]ÙîSÃÁU9ïÐ2OxóJú^ �!lÚ´jµ»Quh»­k³ï÷þ) ‘3—€¿˜²AÇ~I‹š� Ûoµ«‚YÄJµˆ\Ôôž°`º¡v�œ&Xå 1Ufî -´Ð�’Ê0œŸ�� ÎbÈ÷ü­¼”6Y_ŒÝM ÂñR�m¾~×^0Þ²(u;5h‹àwð+ÜÔj­ì§@Dl—¤¡�f4\¾™H~÷P¹íˆ_õ¹P…?P‰=�Ñ‹aR©—ÇúRZ^Žßø‡>÷F«eŒ§‡òõ¯P]€ûB -´ Ãðìñã�éŽô$Îî^é8Õw+ºàGìè± ÖWÂ!àûFÈ„#s•«SYñ©vJÈ…C¡�u†¤V�±£•d L ÐY dñØJ5±§µøV%Ù!ðä&¹_+g] ‡ò® Ì“«I=»‘²5ØJùÝK¨ÌvÁý0Ü…$gõ ½(è®zÓ1C»ÞÈã0ØØdØÎ5=¦¬#ËyÀ&+z4ôBTÉCà/�)~øøœöÕYwcöWÁTkà%pAsér7€Põv¸{��›‡!ŸWÃl/€àkà·Àp\å7?j[¿I&€Qñ_›½v˜QDÂoˆÐ æ¢jðÝö€·�†‚üý ˜^¶¶µÕ1Ü¿U¡Eô«(­™�~ ÞÃ4­©/¥dßÌ̺Y$MÑíWRõÿ‚Š�3yY¡3IEND®B`‚siskin-0.22.5/assets/siskin-48.png000066400000000000000000000054621525470217700166620ustar00rootroot00000000000000‰PNG  IHDR00Wù‡ ùIDAThÞíYil×þfÞ<ïÞm¼0 Ò¨,‚¨„–VŠBXÚ¦EMT Eª %U þ�øAQ¥äWÓ_¥‹ú#RUA•€¶@eâT ÌVVÛ`llÞ—ç·M¿s}ïÓ0~Ï6˜F�”'ͼYî=ß9ßYîë‡;v¸ø ÿl|Å_øÀ ÎÿbP˲€@–m�Ÿ‹¸.Üxn,¦ŽO €ë>¥$Äq¬`�ôtÄ#ÄB!ÄÃá„ÂÆ–ûYYp²³ÇŸû?ñ•ÅD©¡–„{zÑ踵Åúò=agd ½¨™eeÈ((P@c|OyêK ½çPùp_ú®\Ad` am9ÊrT¢Dûû1ÒÕ…¾›7‘S]�¢E‹àð~”@Ôs_…øž�–†´Ü\ŒÞ¿�î/¾@Œ”±23«Óª2¶?À˜€#Š’>÷/\ÀØÐf¯X�Ç’÷ñ˜žpð¸DqZ7='Ã{pýßçÑqñ‚n Õˆ ªÇúè‘¶¶¶ÄkUUU(,,TT±ÅC”>kúI9U¹lâ/”Çù¬\¹{ÚŠ;2òò�áÜßÿ…ÖÏñʲg±aýwpïAnÞºM%¢hooÇðð0öïß�={ö`îܹ8v캻»‘MëÇDI‰‚H£Ç†;;•Qr**;°­Mï¼ãN¥¸<�A‹ šþÙ€Þæ[Xù�:¼¹e=^¥òÈ,Dó¥óxqíVtvvËK8yò$V­Z…C‡aãÆ�8{ö,Ö¬Y£†,..F&I#uˆqŽ]F*¥q ìéRiò�À£•réêŽæÛ8sè0–Î-ǯ?xëÖ­¦ÿlܽÓÁÃ=TÍ.FÍìttÜÃæÍ›•ò555ŠFB�‡bß¾}ؾ}»úoæ:™zÃŒ…¡ÖV.^¬ 6]j§ŒIiÌ.éÙY8säÚhÁ¿x »Þû9­”‰ŽÖvŒ�…a‹¡é`#'7S½»dÉu41Ðô*êëë=¶p‰ ‰)I¿¡Þ^¤‘¦RC¦ÕJ¨üìÉ"AÅÕ8~‚:g—ÿ„½ï¿�´‚Di­’¢ µ5åøøði|üÙéDvoˆ²¢  V¹. äžW `�œQR¢j¦ÑµNšFC V¸dv%ÖþäÇèhiŹÓgаÿ�êþœª¬Xù<^~i%úúñÁo>J(o8nxn®ùƒ×ÛnÈ3zA<”æpq`½²u«;ÝJ,©.‹½O/›±ó'O£ýòEukV~*+Kqù?͉õ@¢eHbqYTRhdâB8Eþ‚ÈdÖŠ&©Ê2®×è�Õ Iãb¯“Á _½iW¯ÂÝ7pþøqôöM ¡ß ~«'²�®ºTDݽÜdáéμ 1Õ ½$З®]«@]mlL:Ùd"¤/’s[¯Þ©>jM^È|ƒBËT“ËÐctw±ÊyóRZ)•'Œ7^e "ÙHWèÄb(…Ƚ 𠳫'3ç2‰í©®ÉÃgbÑòÒ$ÊkÂö0ÇÉbl ?x š:w²öÚMæ�©Äoiƒo_º4©â�<Ïë-£)‰­”ûTòeïÿ�ã½Dz^aë-‹œ©ôqf²¤—.rˆÝ8w.y° ôÞMXÓnDÚi¡©ò†Ð…’Îÿ?ãý:JÏw0I|ÊUÞuëÙ USµ×Žé÷-=©¥'…>„Z暼ãh½u‹«1”“”ëÚÊò+ã½.í¹¥¤J �æõR¾¿XÆð®¯µUóè…¤Ïæ;wp›)¶šÿú;5iÔ2͜٣qS`Ê4¦Á´ÑÝóùwƒ´Í”ŸRŽR~Oy�²Žò>ûåC ¦^+ÕÂTˆ)dSÌÀÖˆ�ð}.þó磂 ¤µqµQݧ²/$�Œ@V�”-ÏS~+N8Ï ÿ£œSJh°vJº¬7dY©2 k€d%é}$!èB¸„�ü;èõëמ3ÏÐãc¾Õš _p"IJEŠ4+•3JצÉBS($ zÊ0¥]ªüø|7E6J‰QYÉ2¦RlÐ{IЬÚßcåÿ+ç°¯]é=ôŒ7AØ®/}º¾4妸– “ÑÊG´HJÔ`"¼oŨ˜üQ »s<š 0¥”¤M½è�ë-ÊoåçãÏkI§Ï™4âÌN]ðlõⓈ§RF} aóŸÏJ& óÝ0ŽPyBÄ´'û§BÎ%&¨ìl.3�PñqÝ|ž"F‘þé‰cÀÒÖ6Æ´ÂQ“Íä³KYèÞc,ô×Ö>ÁÆ–�JÒ»Œy˜={[ƒka ÄÖ ‚á6ß7b@ˆÒ¶Q^Ò¦”ëräå7¹²›Ïþë—ÍÍ3ËBâni‹‡5ßcZé¸>Z¦ˆiåâÉ\rN/(L�Fyµ%o¶ã„n#ÄÛžg^d\gœN�C·êÂey@ÀãKï";Ú¶0^E Â20Æûë‰_`4y¦ˆsϨ•� ÌeZëÖù¿ÀÀõë‚ek/( Òr KHî×»Ù‰ '»vžqL31!lj1 {˜i`É#€'ê$ŸKµ' â™<ൾX]o·{A˜ÞIŽfßße¦IÃè%`5 äš&­$æ°Z¢ ™Ÿ¿©ÙöÐ)â�Âć(ïñ’¡�k–�æÃˆÿƒž¡™,UMc”¬ßŸc “Ö/®¨P„JA­xÀC'F²Í–"ðÈ΃+ßL†ÓÊ;:¨š@o<XîÕ.Z´{&½�L”O/Üa•Ìã$ótÕ ¤øêd¨�µ¡•M°ÀÐÆGmóþŒ?ò…Ù«”” ³®�lº^Ж�ù¾áZIXž5ƒ«¿bÆõ»ézÅ×+9G/nžn@e²š™xÀð“Jä³éºÅ†+—çú‚Ùõ�€Yêµ²§Qó6Ž^�[ž{ãë½HñmÀ$wcŠ]Š’ÒRµŸó·«WQ¯c!ê‰ÿšÛò6‹z�× _Ìœ‹È.¡\ïÐ AÝ'I "•9P³pán×·ú‚guæí:S~ Õn.#ˆf–÷¦Åe:ì$�­›ª5ÑŠ?²Õov.LK/çšBÒµª,˜…¼)5›ét”ù¼¥« ù¼V®3�i/¦Úë�{@$ÄĆيñ(/Çÿã¥�ös~IEND®B`‚siskin-0.22.5/siskin.r3000066400000000000000000000004161525470217700146610ustar00rootroot00000000000000Rebol [ title: "Siskin make file" ] import %tree/rebol/Siskin/prebol.reb import %tree/rebol/Siskin/siskin-msvc.reb import %tree/rebol/Siskin/siskin-xcode.reb import %tree/rebol/Siskin/siskin-make.reb import %tree/rebol/Siskin/siskin.reb system/modules/siskin/do-args siskin-0.22.5/test/000077500000000000000000000000001525470217700140715ustar00rootroot00000000000000siskin-0.22.5/test/.gitignore000077500000000000000000000000641525470217700160640ustar00rootroot00000000000000/* !/.gitignore !src/ !src/* !macos/ !/*.nest siskin-0.22.5/test/macos.nest000077500000000000000000000021661525470217700160760ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= ;@@ This file is only for macOS builds! #if macOS? [ compiler: clang source: %macos/ sign: off flag: fno-objc-arc framework: Cocoa target-arm64: [ arch: arm64 flag: "-arch arm64" ] target-x64: [ arch: x86_64 flag: "-arch x86_64" ] bundle: [ Version: 1.0.0 CFBundleShortVersionString: "1.0" Copyright: "Copyright © 2022 Oldes. All rights reserved." Icon: %../assets/Siskin.iconset ] eggs: [ "Hello macOS app (arm)" [ :target-arm64 name: %macos-arm file: %main.m bundle: [ title: "Hello Mac (arm64 version)" ] ] "Hello macOS app (intel)" [ :target-x64 name: %macos-x64 file: %main.m bundle: [ title: "Hello Mac (x86_64 version)" ] ] ] ]siskin-0.22.5/test/macos/000077500000000000000000000000001525470217700151735ustar00rootroot00000000000000siskin-0.22.5/test/macos/main.m000077500000000000000000000032171525470217700163030ustar00rootroot00000000000000#import ; int main () { [NSAutoreleasePool new]; [NSApplication sharedApplication]; [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; // Minimal application menu creation... id menubar = [[NSMenu new] autorelease]; id appMenuItem = [[NSMenuItem new] autorelease]; [menubar addItem:appMenuItem]; [NSApp setMainMenu:menubar]; id appMenu = [[NSMenu new] autorelease]; id appName = [[NSProcessInfo processInfo] processName]; id quitTitle = [@"Quit " stringByAppendingString:appName]; id quitMenuItem = [[[NSMenuItem alloc] initWithTitle:quitTitle action:@selector(terminate:) keyEquivalent:@"q"] autorelease]; [appMenu addItem:quitMenuItem]; [appMenuItem setSubmenu:appMenu]; // Making a Window... id window = [[[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 600, 400) styleMask:NSTitledWindowMask backing:NSBackingStoreBuffered defer:NO] autorelease]; [window cascadeTopLeftFromPoint:NSMakePoint(20,20)]; [window setTitle:appName]; [window makeKeyAndOrderFront:nil]; // Getting main scree size... NSRect frame = NSScreen.mainScreen.frame; CGFloat scale = NSScreen.mainScreen.backingScaleFactor; NSLog(@"screen: %f %f scale: %f\n", frame.size.width, frame.size.height, scale); // Centering the Window.. [window setFrameOrigin:NSMakePoint((frame.size.width - 600)/2, (frame.size.height - 400)/2)]; //[NSApp activateIgnoringOtherApps:YES]; dispatch_async(dispatch_get_main_queue(), ^{[NSApp activateIgnoringOtherApps:YES];}); [NSApp run]; return 0; }siskin-0.22.5/test/src/000077500000000000000000000000001525470217700146605ustar00rootroot00000000000000siskin-0.22.5/test/src/global.c000077500000000000000000000000211525470217700162600ustar00rootroot00000000000000int meaning = 42;siskin-0.22.5/test/src/hello space.c000066400000000000000000000001101525470217700171730ustar00rootroot00000000000000#include int main( void ) { puts("Hello space!"); } siskin-0.22.5/test/src/hello-error.c000066400000000000000000000000741525470217700172570ustar00rootroot00000000000000#include int main( void ) { errorExists(); } siskin-0.22.5/test/src/hello.c000066400000000000000000000006111525470217700161250ustar00rootroot00000000000000#include #define EXPORT __attribute__((visibility("default"))) // Initializer. __attribute__((constructor)) static void initializer(void) { printf("[%s] initializer()\n", __FILE__); } // Finalizer. __attribute__((destructor)) static void finalizer(void) { printf("[%s] finalizer()\n", __FILE__); } EXPORT void hello(void){ puts("Hello everybody!"); }siskin-0.22.5/test/src/hello.h000066400000000000000000000000321525470217700161270ustar00rootroot00000000000000 extern void hello(void);siskin-0.22.5/test/src/include.reb000066400000000000000000000001321525470217700167710ustar00rootroot00000000000000Rebol [ Title: "Included source" ] print "This message is from an included source file!"siskin-0.22.5/test/src/main.c000077500000000000000000000010511525470217700157500ustar00rootroot00000000000000#include #ifdef HAS_HELLO # include "hello.h" #endif #if defined(OPT_INCLUDE) #include OPT_INCLUDE #endif #ifdef HAS_MESSAGE extern char* message; #endif extern int meaning; // in file global.c int main( void ) { #ifdef HAS_HELLO hello(); #endif printf("The meaning of life is: %u\n", meaning); #ifdef HAS_MESSAGE puts(message); #endif #if defined(STR_VALUE) printf("Has STR_VALUE = %s\n", STR_VALUE); #endif #if defined(OPT_STR_VALUE) printf("Has OPT_STR_VALUE = %s\n", OPT_STR_VALUE); #endif } siskin-0.22.5/test/src/opt-include.h000077500000000000000000000000471525470217700172600ustar00rootroot00000000000000#define OPT_STR_VALUE "Another string."siskin-0.22.5/test/src/posix.c000077500000000000000000000000371525470217700161710ustar00rootroot00000000000000char *message = "Hello Posix.";siskin-0.22.5/test/src/test.reb000066400000000000000000000001621525470217700163300ustar00rootroot00000000000000Rebol [ Title: "Rebol preprocessor test" ] #include %include.reb print ["Script preprocessed:" as-red #do [now]]siskin-0.22.5/test/src/windows.c000077500000000000000000000000411525470217700165140ustar00rootroot00000000000000char *message = "Hello Windows.";siskin-0.22.5/test/test-errors.nest000066400000000000000000000015351525470217700172610ustar00rootroot00000000000000; use main seed as a template... #include %test.nest ; but provide own targets... eggs: only [ "Test error: not existing include" [ name: %error-1 info "Intended error follows!" :test-6-iclude-not-exists ; it should stop processing here ] "Test error: missing source file" [ name: %error-2 info "Intended error follows!" files: [ %main.c %not-exists.c ] ] "Test error: unknown/missing tool" [ name: %error-3 info "Intended error follows!" needs: [unknown-tool] ] "Test error: invalid dialect 1" [ name: %error-4 info "Intended error follows!" needs: 123 ] "Test error: invalid dialect 2" [ name: %error-5 info "Intended error follows!" 123 file: %main.c ] "Test error: error in source file" [ name: %error-6 info "Intended error follows!" file: %hello-error.c ] ] siskin-0.22.5/test/test-extended.nest000077500000000000000000000004741525470217700175510ustar00rootroot00000000000000; use main seed as a template... #include %test.nest ; but provide own targets... eggs: only [ "Test extended" [ name: %test-extended global-file: %global.c files: [ %main.c :global-file :os-files ] define: {STR_VALUE="\"This is extended test!\""} ;probe-spec strip: on ] ] siskin-0.22.5/test/test.nest000077500000000000000000000123371525470217700157540ustar00rootroot00000000000000name: "Testing..." source: %src/ compiler: gcc ; immediate action probe-spec: action ["Probe current spec structure"][do [?? spec]] ; pre-compilation action sign: false os-files: [] #if Windows? [ defines: [HAS_MESSAGE] os-files: [%windows.c] ] test-4-include: [ files: [%main.c %global.c] ] test-5-iclude: [ :test-4-include defines: none ] test-6-files-A: [%main.c] test-6-files-B: [%global.c #if Windows? [%windows.c]] test-6-include: [ test-6-files-A: :test-6-files-B ] include-hello: [ define: HAS_HELLO file: %hello.c ] eggs: [ "Test 1 (hello)" [ name: %test-1 files: [ %main.c %global.c #if Windows? [ %windows.c ] ] :include-hello probe-spec ] "Test 2 (get files)" [ name: %test-2 global-file: %global.c files: [ %main.c :global-file :os-files ] ] "Test 3 (define: DEFINE)" [ name: %test-3 file: %main.c file: %global.c file: :os-files some-defines: [DEFINE_1 DEFINE_2] #if Windows? [ define: HAS_MESSAGE ] define: "TEST_DEFINE" define: :some-defines define: {STR_VALUE="\"Some string\""} define: {OPT_INCLUDE=\"opt-include.h\"} do [? spec/defines] ] "Test 4 (include)" [ name: %test-4 :test-4-include defines: none ] "Test 5 (nested include)" [ name: %test-5 :test-5-iclude probe-spec ] "Test 6 (nested files include)" [ name: %test-6 :test-6-include files: :test-6-files-A probe-spec ] "Test 7 (flags)" [ name: %test-7 ; all variants should be accepted, result with only one value flags: [mconsole] flags: -mconsole flags: mconsole ; cflags: [-ffunction-sections -fdata-sections] cflags: -ffunction-sections cflags: ffunction-sections ; lflags: ["-Wl,--gc-sections"] lflags: "-Wl,--gc-sections" do [ ? spec/cflags ? spec/lflags ] info "This egg has no files to compile, so there will be no output!" ] "Test 8 (file with space in name)" [ ;compiler: %"/Users/oldes/test space/gcc" ;compiler: %"/c/Dev/MingW/mingw64/bin/ gcc" name: %"test-8 spaced" file: %"hello space.c" ] "Shared `hello` library" [ name: %libhello file: %hello.c flag: shared lflag: "compatibility_version 1.0" lflag: "current_version 1.2.3" ] "Static `hello` library" [ name: %libhello file: %hello.c flag: archive-only ] "Using `hello` static library" [ name: %hello-static file: %main.c file: %global.c define: HAS_HELLO library: %hello ] "Using `hello` shared library" [ name: %hello-shared file: %main.c file: %global.c define: HAS_HELLO shared: %libhello ] "Preprocess Rebol script" [ name: %test.r3 preprocess %src/test.reb ] "List directory" [ name: %list-dir ;; used just to have nicer command when executing without interactive input #if Windows? [ cmd "DIR" ] #if Posix? [ cmd "ls -la" ] ] #if Windows? [ "Open Window" [ name: %window-win32 file: %window-win32.c flag: -mwindows define: UNICODE ] "Read WSL directory" [ name: %window-unc file: %window-unc.c define: UNICODE ] "Hello stdio" [ name: %hello-stdio file: %hello-stdio.cpp define: UNICODE ] "Hello getShortPath" [ name: %hello-short-path file: %hello-short-path.cpp define: UNICODE ] "Hello speak" [ name: %hello-speak file: %hello-speak.cpp library: %sapi ] ] #if Linux? [ "Open X11 window" [ name: %linux-x11-window file: %linux-x11-window.c library: %X11 ] "Open GTK window" [ name: %linux-gtk-window file: %linux-gtk-window.c ;pkg-config --cflags --libs gtk+-3.0 flags: "-I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/usr/local/include/webp -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0" ] ] ] ; -I/usr/include/gtk-3.0 ; -I/usr/include/pango-1.0 ; -I/usr/include/glib-2.0 ; -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ; -I/usr/include/harfbuzz ; -I/usr/include/freetype2 ; -I/usr/include/libpng16 ; -I/usr/include/libmount ; -I/usr/include/blkid ; -I/usr/include/fribidi ; -I/usr/include/cairo ; -I/usr/include/pixman-1 ; -I/usr/include/gdk-pixbuf-2.0 ; -I/usr/include/x86_64-linux-gnu ; -I/usr/local/include ; -I/usr/local/include/webp ; -I/usr/include/gio-unix-2.0 ; -I/usr/include/atk-1.0 ; -I/usr/include/at-spi2-atk/2.0 ; -I/usr/include/at-spi-2.0 ; -I/usr/include/dbus-1.0 ; -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include ; -lgtk-3 ; -lgdk-3 ; -lz ; -lpangocairo-1.0 ; -lpango-1.0 ; -lharfbuzz ; -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0siskin-0.22.5/tree/000077500000000000000000000000001525470217700140515ustar00rootroot00000000000000siskin-0.22.5/tree/.gitignore000066400000000000000000000001461525470217700160420ustar00rootroot00000000000000/* !/.gitignore !/audio/ !/boron/ !/rebol/ !/red/ !/utility/ !/sokol/ !/library/ !/nappgui/ siskin-0.22.5/tree/audio/000077500000000000000000000000001525470217700151525ustar00rootroot00000000000000siskin-0.22.5/tree/audio/.gitignore000066400000000000000000000000321525470217700171350ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/audio/miniaudio.nest000066400000000000000000000054771525470217700200400ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: mackron/miniaudio source: %miniaudio/ include: %miniaudio/ compiler: clang arch: x64 strip: on optimize: 2 #if Posix? [ libraries: [%dl %m %pthread] ] #if macOS? [ sign: on entitlements: %miniaudio/Entitlements.plist define: DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING define: MA_NO_RUNTIME_LINKING frameworks: [CoreFoundation CoreAudio AudioToolbox] ] eggs: [ "Example: custom_backend.c" [ name: %custom_backend file: only %examples/custom_backend.c ] "Example: custom_decoder.c" [ name: %custom_decoder file: only %examples/custom_decoder.c ] "Example: custom_decoder_engine.c" [ name: %custom_decoder_engine file: only %examples/custom_decoder_engine.c ] "Example: data_source_chaining.c" [ name: %data_source_chaining file: only %examples/data_source_chaining.c ] "Example: duplex_effect.c" [ name: %duplex_effect file: only %examples/duplex_effect.c ] "Example: engine_advanced.c" [ name: %engine_advanced file: only %examples/engine_advanced.c ] "Example: engine_effects.c" [ name: %engine_effects file: only %examples/engine_effects.c ] "Example: engine_hello_world.c" [ name: %engine_hello_world file: only %examples/engine_hello_world.c ] "Example: engine_sdl.c" [ name: %engine_sdl file: only %examples/engine_sdl.c ] "Example: engine_steamaudio.c" [ name: %engine_steamaudio file: only %examples/engine_steamaudio.c ] "Example: node_graph.c" [ name: %node_graph file: only %examples/node_graph.c ] "Example: resource_manager.c" [ name: %resource_manager file: only %examples/resource_manager.c ] "Example: resource_manager_advanced.c" [ name: %resource_manager_advanced file: only %examples/resource_manager_advanced.c ] "Example: simple_capture.c" [ name: %simple_capture file: only %examples/simple_capture.c ] "Example: simple_duplex.c" [ name: %simple_duplex file: only %examples/simple_duplex.c ] "Example: simple_enumeration.c" [ name: %simple_enumeration file: only %examples/simple_enumeration.c ] "Example: simple_loopback.c" [ name: %simple_loopback file: only %examples/simple_loopback.c ] "Example: simple_looping.c" [ name: %simple_looping file: only %examples/simple_looping.c ] "Example: simple_mixing.c" [ name: %simple_mixing file: only %examples/simple_mixing.c ] "Example: simple_playback.c" [ name: %simple_playback file: only %examples/simple_playback.c ] "Example: simple_playback_sine.c" [ name: %simple_playback_sine file: only %examples/simple_playback_sine.c ] ] siskin-0.22.5/tree/audio/mpg123.nest000066400000000000000000000005701525470217700170600ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @mpg123 nest: %mpg123/mpg123.nest siskin-0.22.5/tree/audio/vorbis.nest000066400000000000000000000053131525470217700173530ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: %xiph/vorbis github: %xiph/ogg compiler: clang arch: x64 strip: on optimize: 2 include: %vorbis/include/ include: %ogg/include/ #if Windows? [ define: _CRT_SECURE_NO_WARNINGS ] arch-x64: [ arch: x64 define: _FILE_OFFSET_BITS=64 #if Linux? [ library: %dl defines: TO_LINUX_X64 defines: __LP64__ ; has long (integer) 64 bits ] #if Windows? [ defines: TO_WIN32_X64 defines: _WIN32 defines: __LLP64__ ; 64-bit, long (integer) has 32 bits and 'void *' is sizeof(long long) ] #if macOS? [ defines: TO_OSX_X64 defines: __LP64__ ; same like LLP64, but long (integer) has 64 bits instead of 32 ] ] lib-ogg: [ include: %ogg/src/ files: [ %ogg/src/bitwise.c %ogg/src/framing.c ] ] lib-vorbis: [ include: %vorbis/lib/ files: [ %vorbis/lib/mdct.c %vorbis/lib/smallft.c %vorbis/lib/block.c %vorbis/lib/envelope.c %vorbis/lib/window.c %vorbis/lib/lsp.c %vorbis/lib/lpc.c %vorbis/lib/analysis.c %vorbis/lib/synthesis.c %vorbis/lib/psy.c %vorbis/lib/info.c %vorbis/lib/floor1.c %vorbis/lib/floor0.c %vorbis/lib/res0.c %vorbis/lib/mapping0.c %vorbis/lib/registry.c %vorbis/lib/codebook.c %vorbis/lib/sharedbook.c %vorbis/lib/lookup.c %vorbis/lib/bitrate.c ] ] ;source: eggs: [ "Library: ogg (x64)" [ name: %libogg flags: shared strip: off :arch-x64 :lib-ogg ] "Library: vorbis (x64)" [ name: %libvorbis flags: [shared] strip: off :arch-x64 :lib-vorbis library: [%build/ %libogg] lflags: {-Wl"/DEF:vorbis\win32\svorbis.def"} ] "Library: vorbisenc (x64)" [ name: %libvorbisenc flags: [shared] strip: off :arch-x64 file: %vorbis/lib/vorbisenc.c library: [%build/ %libvorbis %libogg] #if Windows? [cflags: -Wno-microsoft-include] ] "Vorbis decoder_example" [ name: %vorbis_decoder_example library: [%build/ %libvorbis %libogg] file: %vorbis/lib/vorbisenc.c file: %vorbis/examples/decoder_example.c :arch-x64 #if Windows? [ cflags: -Wno-microsoft-include upx: on ] ] "Vorbis encoder_example" [ name: %vorbis_encoder_example shared: %libvorbisenc ;library: [%build/ %libvorbis %libogg] ;file: %vorbis/lib/vorbisenc.c file: %vorbis/examples/encoder_example.c :arch-x64 #if Windows? [ cflags: -Wno-microsoft-include upx: on ] ] ]siskin-0.22.5/tree/blend2d/000077500000000000000000000000001525470217700153635ustar00rootroot00000000000000siskin-0.22.5/tree/blend2d/.gitignore000066400000000000000000000000321525470217700173460ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/boron/000077500000000000000000000000001525470217700151705ustar00rootroot00000000000000siskin-0.22.5/tree/boron/.gitignore000066400000000000000000000000301525470217700171510ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/boron/boron.nest000066400000000000000000000027711525470217700172110ustar00rootroot00000000000000;~ Siskin project nest file ~; git: https://git.code.sf.net/p/urlan/boron/code version: 2.0.8 compiler: gcc optimize: 3 source: %code/ includes: [ %code/include/ %code/eval/ %code/support/ %code/urlan/ ] define: [ ; CONFIG_ASSEMBLE CONFIG_CHECKSUM CONFIG_COMPRESS=1 CONFIG_HASHMAP CONFIG_EXECUTE ; CONFIG_READLINE ; CONFIG_STATIC ; CONFIG_TIMECODE ; CONFIG_THREAD ; CONFIG_ATOM-LIMIT ; CONFIG_ATOM-NAMES CONFIG_LINENOISE ] files: [ %urlan/env.c %urlan/array.c %urlan/binary.c %urlan/block.c %urlan/coord.c %urlan/date.c %urlan/path.c %urlan/string.c %urlan/context.c %urlan/gc.c %urlan/serialize.c %urlan/tokenize.c %urlan/vector.c %urlan/parse_block.c %urlan/parse_string.c %support/str.c %support/mem_util.c %support/quickSortIndex.c %support/fpconv.c %eval/boron.c %eval/port_file.c %eval/wait.c %support/linenoise.c %urlan/hashmap.c ] #either Windows? [ file: %win32/os.c library: %Ws2_32 upx: on ][ file: %unix/os.c flag: -fPIC library: %m library: %z ] include-random: [ define: CONFIG_RANDOM file: %support/well512.c file: %eval/random.c ] include-socket: [ define: CONFIG_SOCKET file: %eval/port_socket.c ] flag: -std=gnu99 library: %z :include-random :include-socket eggs: [ "Boron" [ name: %boron file: %eval/main.c ] "Boron library" [ #either Windows? [ name: %boron ][ name: %libboron flag: "-Wl,-soname,libboron.so"] flag: shared ] "Boron (using dynamic library)" [ name: %boron-host file: none file: %eval/main.c shared: %boron ] ]siskin-0.22.5/tree/library/000077500000000000000000000000001525470217700155155ustar00rootroot00000000000000siskin-0.22.5/tree/library/.gitignore000066400000000000000000000000541525470217700175040ustar00rootroot00000000000000/* !/.gitignore !/*.nest !/sdl2/ !/sdl3/siskin-0.22.5/tree/library/freetype.nest000066400000000000000000000024321525470217700202340ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: freetype/freetype /VER-2-14-1 eggs: [ "Make FreeType (cmake)" [ name: %build-freetype #either Windows? [ cmd [ "cmake -B $SISKIN_TEMP/freetype -S freetype -DCMAKE_BUILD_TYPE=Release" "-DZLIB_LIBRARY=$SISKIN_INSTALL/lib/zs.lib" "-DZLIB_INCLUDE_DIR=$SISKIN_INSTALL/include" "-DPNG_LIBRARY=$SISKIN_INSTALL/lib/libpng.lib" "-DPNG_INCLUDE_DIR=$SISKIN_INSTALL/include" ] ][ cmd [ "cmake -B $SISKIN_TEMP/freetype -S freetype -DCMAKE_BUILD_TYPE=Release" "-DZLIB_LIBRARY=$SISKIN_INSTALL/lib/libz.a" "-DZLIB_INCLUDE_DIR=$SISKIN_INSTALL/include" "-DPNG_LIBRARY=$SISKIN_INSTALL/lib/libpng.a" "-DPNG_INCLUDE_DIR=$SISKIN_INSTALL/include" "-DBUILD_SHARED_LIBS=OFF" "-DFT_DISABLE_BZIP2=ON" ;"-DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE" ] ] cmd "cmake --build $SISKIN_TEMP/freetype --config release -j 8" cmd "cmake --install $SISKIN_TEMP/freetype --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/glfw.nest000066400000000000000000000070621525470217700173540ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= name: "GLFW" github: glfw/glfw strip: true arch: x64 source: %glfw/ include: %glfw/include include: %glfw/deps ;temp-dir: %tmp/ ;output: %bin/ optimize: 2 compiler: clang flag: std=c99 #if Windows? [ library: %gdi32 library: %User32 ;= Keyboard and Mouse Input... library: %Shell32 ;= Drag related api defines: [_GLFW_WIN32 UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS] ] #if macOS? [ defines: [_GLFW_COCOA UNICODE _UNICODE] frameworks: [Cocoa IOKit CoreFoundation] flags: [ -fno-objc-arc -mmacosx-version-min=11.5 -fPIC ;"-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" ] lflag: "-Wl,-search_paths_first,-headerpad_max_install_names" arch: arm64 flags: ["-arch arm64"] ] glfw3: [ files: [ %src/context.c %src/init.c %src/input.c %src/monitor.c %src/platform.c %src/vulkan.c %src/window.c %src/egl_context.c %src/osmesa_context.c %src/null_init.c %src/null_monitor.c %src/null_window.c %src/null_joystick.c ] #if windows? [ files: [ ;%win32_time.h %win32_thread.h %src/win32_module.c %src/win32_time.c %src/win32_thread.c %src/win32_init.c %src/win32_monitor.c %src/win32_window.c %src/win32_joystick.c %src/wgl_context.c ] ] #if macos? [ files: [ %src/cocoa_init.m %src/cocoa_joystick.m %src/cocoa_monitor.m %src/cocoa_time.c %src/cocoa_window.m %src/nsgl_context.m %src/posix_module.c ;%src/posix_poll.c %src/posix_thread.c ;%src/posix_time.c ] flag: -Wno-documentation ] ] eggs: [ "Static glfw3 library" [ :glfw3 name: %glfw3 flag: archive-only strip: false ] "triangle-opengl" [ name: %triangle-opengl file: %examples/triangle-opengl.c :glfw3 cflags: [-fno-objc-arc] ] "Test: allocator" [ name: %allocator file: %tests/allocator.c file: %deps/getopt.c library: %glfw3 ] "Test: clipboard" [ name: %clipboard file: %tests/clipboard.c file: %deps/getopt.c library: %glfw3 ] "Test: iconify" [ name: %iconify file: %tests/iconify.c file: %deps/getopt.c library: %glfw3 ] "example: boing" [ name: %example-boing file: %examples/boing.c library: %glfw3 ] "example: gears" [ name: %example-gears file: %examples/gears.c library: %glfw3 ] "example: heightmap" [ name: %example-heightmap file: %examples/heightmap.c library: %glfw3 ] "example: offscreen" [ name: %example-offscreen file: %examples/offscreen.c library: %glfw3 ] "example: particles" [ name: %example-particles file: %examples/particles.c file: %deps/getopt.c file: %deps/tinycthread.c library: %glfw3 ] "example: sharing" [ name: %example-sharing file: %examples/sharing.c library: %glfw3 ] "example: splitview" [ name: %example-splitview file: %examples/splitview.c library: %glfw3 ] "example: triangle-opengl" [ name: %example-triangle-opengl file: %examples/triangle-opengl.c library: %glfw3 ] "example: triangle-opengles" [ name: %example-triangle-opengles file: %examples/triangle-opengles.c library: %glfw3 ] "example: wave" [ name: %example-wave file: %examples/wave.c library: %glfw3 ] "example: windows" [ name: %example-windows file: %examples/windows.c library: %glfw3 ] ] siskin-0.22.5/tree/library/libpng.nest000066400000000000000000000017051525470217700176660ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: pnggroup/libpng /v1.6.54 eggs: [ "Make libpng (cmake)" [ name: %build-libpng #either Windows? [ cmd [ "cmake -B $SISKIN_TEMP/libpng libpng -DCMAKE_BUILD_TYPE=Release" "-DZLIB_LIBRARY=$SISKIN_INSTALL/lib/zs.lib" "-DZLIB_INCLUDE_DIR=$SISKIN_INSTALL/include" ] ][ cmd [ "cmake -B $SISKIN_TEMP/libpng libpng -DCMAKE_BUILD_TYPE=Release" "-DZLIB_LIBRARY=$SISKIN_INSTALL/lib/libz.a" "-DZLIB_INCLUDE_DIR=$SISKIN_INSTALL/include" ] ] cmd "cmake --build $SISKIN_TEMP/libpng --config release -j 8" cmd "cmake --install $SISKIN_TEMP/libpng --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/nanomsg.nest000066400000000000000000000021071525470217700200520ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: nanomsg/nanomsg /1.2.2 eggs: [ "Make nanomsg (cmake)" [ name: %build-nanomsg cmd [ "cmake -B $SISKIN_TEMP/nanomsg -S nanomsg -DCMAKE_BUILD_TYPE=Release" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/nanomsg --config release -j 8" cmd "cmake --install $SISKIN_TEMP/nanomsg --prefix $SISKIN_INSTALL" ] "Make nanomsg static library (cmake)" [ name: %build-nanomsg-static cmd [ "cmake -B $SISKIN_TEMP/nanomsg -S nanomsg -DCMAKE_BUILD_TYPE=Release" "-DNN_STATIC_LIB=ON" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/nanomsg --config release -j 8" cmd "cmake --install $SISKIN_TEMP/nanomsg --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/nng.nest000066400000000000000000000020721525470217700171730ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: nanomsg/nng ;/v1.11 eggs: [ "Make nng (cmake)" [ name: %build-nng cmd [ "cmake -B $SISKIN_TEMP/nng -S nng -DCMAKE_BUILD_TYPE=Release" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/nng --config release -j 8" cmd "cmake --install $SISKIN_TEMP/nng --prefix $SISKIN_INSTALL" ] "Make nng static lib only (cmake)" [ name: %build-nng-static cmd [ "cmake -B $SISKIN_TEMP/nng -S nng -DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=OFF -DNNG_TESTS=OFF -DNNG_TOOLS=OFF" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/nng --config release -j 8" cmd "cmake --install $SISKIN_TEMP/nng --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/sdl2/000077500000000000000000000000001525470217700163615ustar00rootroot00000000000000siskin-0.22.5/tree/library/sdl2/.gitignore000066400000000000000000000000321525470217700203440ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/library/sdl2/sdl2.nest000066400000000000000000000012731525470217700201230ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: libsdl-org/SDL /release-2.32.10 eggs: [ "Make sdl (cmake)" [ name: %build-sdl cmd [ "cmake -B $SISKIN_TEMP/sdl2 -S sdl -DCMAKE_BUILD_TYPE=Release" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/sdl2 --config release -j 8" cmd "cmake --install $SISKIN_TEMP/sdl2 --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/sdl3/000077500000000000000000000000001525470217700163625ustar00rootroot00000000000000siskin-0.22.5/tree/library/sdl3/.gitignore000066400000000000000000000000321525470217700203450ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/library/sdl3/sdl3.nest000066400000000000000000000012711525470217700201230ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: libsdl-org/SDL /release-3.4.0 eggs: [ "Make sdl (cmake)" [ name: %build-sdl cmd [ "cmake -B $SISKIN_TEMP/sdl3 -S sdl -DCMAKE_BUILD_TYPE=Release" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/sdl3 --config release -j 8" cmd "cmake --install $SISKIN_TEMP/sdl3 --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/library/uv.nest000066400000000000000000000001031525470217700170340ustar00rootroot00000000000000;~ Siskin project nest file ~; ;github: @uv nest: %uv/libuv.nest siskin-0.22.5/tree/library/zlib.nest000066400000000000000000000012621525470217700173510ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: madler/zlib /v1.3.1.2 eggs: [ "Make zlib (cmake)" [ name: %build-zlib cmd [ "cmake -B $SISKIN_TEMP/zlib -S zlib -DCMAKE_BUILD_TYPE=Release" "-DCMAKE_VERBOSE_MAKEFILE:BOOL=$SISKIN_OPTION_DEBUG" ] cmd "cmake --build $SISKIN_TEMP/zlib --config release -j 8" cmd "cmake --install $SISKIN_TEMP/zlib --prefix $SISKIN_INSTALL" ] ]siskin-0.22.5/tree/nappgui/000077500000000000000000000000001525470217700155145ustar00rootroot00000000000000siskin-0.22.5/tree/nappgui/.gitignore000066400000000000000000000000421525470217700175000ustar00rootroot00000000000000/* !/.gitignore !/*.nest !/*.r3siskin-0.22.5/tree/nappgui/nappgui.nest000066400000000000000000000013601525470217700200520ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: frang75/nappgui_src eggs: [ "Make NAppGUI debug (cmake)" [ name: %build-debug cmd %build/debug "cmake ../../nappgui_src/ -DCMAKE_BUILD_TYPE=Debug" cmd %build/debug {cmake --build . --config debug -j 8} ] "Make NAppGUI release (cmake)" [ name: %build-release cmd %build/release "cmake ../../nappgui_src/ -DCMAKE_BUILD_TYPE=Release" cmd %build/release {cmake --build . --config release -j 8} ] ] siskin-0.22.5/tree/rebol/000077500000000000000000000000001525470217700151545ustar00rootroot00000000000000siskin-0.22.5/tree/rebol/.gitignore000066400000000000000000000000641525470217700171440ustar00rootroot00000000000000/* !/.gitignore !/*.nest !/new-rebol-extension.r3siskin-0.22.5/tree/rebol/Siskin/000077500000000000000000000000001525470217700164145ustar00rootroot00000000000000siskin-0.22.5/tree/rebol/Siskin/prebol.reb000066400000000000000000000150511525470217700203730ustar00rootroot00000000000000REBOL [ Name: prebol Type: module Exports: [process-source] Version: 1.1.6 Title: "Prebol - Official REBOL Preprocessor" File: https://raw.githubusercontent.com/Oldes/Rebol3/master/src/modules/prebol.reb Author: ["Carl Sassenrath" "Holger Kruse" "Oldes"] Purpose: { The official REBOL preprocessor. Combines multiple source or data files into a single REBOL output file. Includes the full power of REBOL, allowing you to evaluate any REBOL expression during processing. Allows merging of code, data, images, sound and other types of files. Supports conditional expressions, such as conditional including of files. The output is a reduced REBOL source file with extra spacing, comments, and include file headers removed. Processing is recursive, so included files can themselves contain commands to process. } Rights: {Users are allowed to modify this source, but must keep this header intact. Changes to the official version must be approved by REBOL Technologies www.REBOL.com. Send changes to http://www.rebol.com/feedback.html.} Usage: { From command line, shortcut, or alias: rebol -s prebol.r input.r output.r From REBOL console or script: do/args %prebol.r [%input.r %output.r] Supported preprocessor commands: #include %file.r | (file-expr) #include-files %path [%file1 %file2 %file3] #include-string %file.txt | (file-expr) #include-binary %file.bin | (file-expr) #include-block %file.rb | (file-expr) #do [expr] #if [expr] [then-block] #either [expr] [then-block] [else-block] An unlimited number of expressions and results can be processed and created by using the #do command. (So, if you add new commands, please make sure they can't first be done with #do. Each command affects use of #issue data within source code, e.g. this preprocessor cannot be preprocessed.) } History: [ 8-3-2004 "Oldes" [ "Modified not to be evaluated on start" "Added #include-block command" "Includes are described in the result code using comment" ] 5-Mar-2021 "Oldes" [ "Updated for use with current Rebol version" ] ] ] error: func [msg] [ if block? msg [msg: reform msg] sys/log/error 'PREBOL msg halt ] include-source-comment?: true ;adds comments before included content process-source: func [ ; Process REBOL source code block. Modifies the block. Returns size. blk [any-block!] "Block of source to process" size [integer!] "Starting size" /only "Don't use recursive processing" /local file data expr cmd else tmp path include-cmds header do-expr base ][ base: system/options/binary-base system/options/binary-base: 64 ; output data in base-64 do-expr: func [expr /local result] [ ; Evaluate expression and make sure it returns a result. set/any 'result try [do :expr] if function? :result [set/any 'result try [do :result]] case [ unset? :result [ error [mold cmd "must return a value or none:" mold expr] ] error? :result [ error result ] ] :result ] include-cmds: [ #include [ ; REBOL code or data or loaded images or sounds. data: load/header file if header: take data [ if include-source-comment? [ if :header/author [ insert data compose [ comment (join {## Author: } mold :header/author) ] ] if :header/title [ insert data compose [ comment (join {## Title: } mold :header/title) ] ] insert insert data compose [ comment (join {## Include: } mold file) ] insert tail data compose [ comment (join {-- End of: } mold file) ] ] ] data ; return it ] #include-string [ ; Raw text data string read/string file ] #include-binary [ ; Raw binary data (unloaded images, sounds). read/binary file ] #include-block [ ; Includes enclosed rebol block data: load/all file if data/1 = 'rebol [remove/part data 2] head insert/only copy [] data ; return it ] #include-eval [ ; Includes result from evaluation set/any 'data do file ;file is not a file but a block to evaluate!!! head insert/only copy [] data ; return it ] ] while [not tail? blk][ ; Source pragmas begin with # (they are of the ISSUE datatype) ; and are followed by a filename, a block, or a paren. either issue? blk/1 [ cmd: blk/1 ; If it is an #INCLUDE of some type: either find include-cmds cmd [ file: blk/2 ; Expression such as #include (join %file num: num + 1) if paren? :file [ file: do-expr to block! :file ] sys/log/info 'PREBOL ["Including file:" as-green file] ; Include requires a file argument: if not file? file [error ["Invalid" mold cmd "file expression:" mold file]] ; File must exist: if not exists? file [error [mold cmd "file not found:" mold file]] size: size + size? file ; for stats only ; Execute the include: if error? data: try select include-cmds cmd [ error data ] ; Replace include command with contents of file: remove/part blk 2 insert blk data ][ ; Process other types of commands. If they return ; a non-none result, insert the result into the output block. ; Otherwise, do not insert a result into the output. switch/default cmd [ #do [ ; #do [expression] expr: blk/2 remove/part blk 2 if data: do-expr expr [insert blk :data] ] #if [ ; #if [condition] [then-expr] expr: blk/2 data: blk/3 remove/part blk 3 if do-expr expr [insert blk :data] ] #either [ ; #either [condition] [then-expr] [else-expr] expr: blk/2 data: blk/3 else: blk/4 remove/part blk 4 insert blk either do-expr expr [:data] [:else] ] #include-files [ ; #include-files %path [file1 file2...] tmp: copy [] path: dirize blk/2 foreach file blk/3 [ size: size + size? join path to-file file data: read/binary join path to-file file repend tmp [file data] ] remove/part blk 3 insert/only blk tmp ] #comments [ ; #comments true/false include-source-comment?: either find [false off] blk/2 [false][true] blk: skip blk 2 ] ][ ; Ignore it (could be a valid #issue datatype) blk: next blk ] ] ][ blk: next blk ] ] unless only [ foreach item head blk [ if block? :item [size: process-source item size] ] ] system/options/binary-base: base ; restore the original base size ] siskin-0.22.5/tree/rebol/Siskin/siskin-do.reb000066400000000000000000000001101525470217700207760ustar00rootroot00000000000000Rebol [ title: "Siskin boot file" ] system/modules/siskin/do-args quitsiskin-0.22.5/tree/rebol/Siskin/siskin-make.reb000066400000000000000000000203231525470217700213210ustar00rootroot00000000000000Rebol [ Title: "Siskin Builder - makefile project generator" name: mmake type: module note: "Work in progress!" ] siskin: none ;-- variables: Compiler: Root-dir: Objs-dir: Source-dir: File-build-targets: OBJS: LIBS: INCLUDES: DEFINES: FRAMEWORKS: CFLAGS: LFLAGS: PRODUCT: PREP: CLEAN: ; ----------- none valid-archs: make map! [ x86: i386 i386: i386 x64: x86_64 x86_64: x86_64 arm64: arm64 arm64e: arm64e ;used on the A12 chipset - on Mac M1's and iPhones models (XS/XS Max/XR) armv8: arm64e ] write-file: func[file [file! block!] data][ if block? file [file: rejoin file] try/with [ write file data sys/log/more 'SISKIN ["Make Generated:^[[33m" to-local-file file] ][ sys/log/error 'SISKIN system/state/last-error ] file ] get-relative-path: function[path base][ path: split clean-path/only path #"/" base: split clean-path/only dirize base #"/" take/last base ;-- remove the empty part while [all [path/1 path/1 = base/1]] [remove path remove base] insert/dup path ".." length? base file: to file! any [first path %""] while [not tail? path: next path][append append file #"/" path/1] file ] to-posix-file: either system/platform = 'windows [ func[path [file! string!]][ path: to-local-file path replace/all path #"\" #"/" path ] ][ :to-local-file ] relativize-files: func[files [block!] dir /local tmp][ unless any-string? dir [exit] forall files [ tmp: get-relative-path files/1 dir append clear files/1 tmp ] files ] quoted: func[str][ if find str #" " [ str: append insert copy str #"^"" #"^"" ] str ] dirs-stack: copy [] pushd: function [ target [file!] ][ dir: what-dir append dirs-stack dir dir ] popd: function [][ dir: take/last dirs-stack ] escaped-args: func[args [block! string! none!]][ if none? args [return ""] args: either block? args [reform args][copy args] ; not nice and optimal, but I have no time now... replace/all args #"\" "\\" replace/all args #"^"" {\"} replace/all args #"^/" "\n" replace/all args #"^M" "" ajoin [{ --args "} args {"}] ] form-pre-post-build: func[ spec code [block!] /local val args tmp siskin result ][ result: make string! 1000 siskin: system/modules/siskin append result rejoin [ {#!/bin/sh^/} {echo Prebuilding...^/} {cd } to-posix-file spec/root ] parse code [any[ 'do [ set val file! set args [block! | string! | none] ( ;?? args if string? args [siskin/expand-env args] append result rejoin [ lf to-posix-file system/options/boot ;to-local-file siskin/expand-env %$REBOL3 " --script " to-posix-file val escaped-args args ] ) ] | 'pushd set val file! ( append append result "^/cd " to-posix-file pushd dir ) | 'popd ( append append result "^/cd " to-posix-file popd ) | copy val 2 skip ( siskin/print-warn ["!!! Ignoring setting: " mold/flat val] ;ask "Press enter to continue." ) ]] result ] make-project: func[ spec [map!] ;dir [file! string!] /guid id [string!] "Visual studio project type GUID" /local output dir-bin dir-out rel-file name obj tmp file ][ unless siskin [siskin: system/modules/siskin] output: make string! 30000 mkdir: func[dir][ clean-path siskin/prepare-dir 'MAKE dir ] dir-bin: mkdir any [spec/out-dir %.] if name: spec/name [ set [dir name] split-path name if all [dir-bin dir <> %./][append dir-bin dir] ] dir-out: mkdir %make/ unless spec/root [ spec/root: to file! get-env "NEST_ROOT" ] siskin/add-env "NEST_SPEC" save dir-out/(join name %.reb) spec PRODUCT: copy name ;-- compose .pbxproj file if siskin/debug? [?? spec] Compiler: spec/compiler Root-dir: undirize spec/root Objs-dir: dirize any [spec/objects spec/temp "."] Source-dir: undirize join spec/root any [spec/source ""] ? Objs-dir if #"/" <> first Objs-dir [insert Objs-dir join Root-dir #"/"] ? Objs-dir append Objs-dir rejoin [ spec/compiler #"-" spec/arch #"/" spec/name ] OBJS: clear "" LIBS: clear "" PREP: clear "" INCLUDES: clear "" DEFINES: clear "" FRAMEWORKS: clear "" CFLAGS: clear "" LFLAGS: clear "" CLEAN: clear "" File-build-targets: clear "" foreach dir spec/includes [ if #"/" <> first dir [ dir: join spec/root dir ] rel-file: get-relative-path dir dir-out append INCLUDES join " \^/^--I" to-posix-file rel-file ] ;-- collect definitions foreach def any [spec/defines []] [ def: either any-string? def [copy def][to string! def] append DEFINES join " \^/^--D" def ] ;-- collect libraries foreach lib any [spec/libraries []] [ append LIBS join " \^/^--l" lib ] ;-- collect frameworks foreach file sort spec/frameworks [ file: to file! file append FRAMEWORKS join " \^/^--framework " file ] append CFLAGS spec/cflags append LFLAGS spec/lflags foreach file sort spec/shared [ siskin/replace-extension file %.dylib ] foreach file sort spec/frameworks [ file: append to file! file %.framework ] append OBJS #"\" tmp: copy [] foreach file sort spec/files [ rel-file: skip get-relative-path file dir-out 3 ; file: find/tail file spec/root ; set [d n] split-path file parse file [ spec/root file: (file: join "$R/" file) ] obj: siskin/replace-extension copy file %.o replace obj "$R/" "$O/" append OBJS ajoin ["^/^-" obj " \"] append tmp first split-path obj append File-build-targets rejoin [ "^/^/" obj ": " file "^/^-$(CC) " file " $(CFLAGS) -o " obj ] ] foreach dir sort unique tmp [ append PREP join "^/^-mkdir -p " dir append CLEAN rejoin ["^/^-$(RM) " dir %*.o] ] ;-- stack-size ; stack size if all [ spec/stack-size none? find LFLAGS "-shared" ; don't use stack-size setting when making a shared library ][ case [ siskin/windows? [ ;This does not work on Linux! append LFLAGS rejoin either find form spec/compiler "gcc" [ ["-Wl,--stack=" spec/stack-size ] ][ ["-Wl,-stack:0x" skip to-binary spec/stack-size 4]] ] siskin/Linux? [ ;This does not work with Apple's clang! append LFLAGS join "-Wl,-z,stack-size=" spec/stack-size ] siskin/macOS? [ append LFLAGS join "-Wl,-stack_size -Wl,0x" skip to-binary spec/stack-size 4 ] ] append LFLAGS #" " ] ; unless find spec/cflags "-arch " [ ; ; ] ;-- and... ; spec/output: join %make/build/Release/ product ; PRE-BUILD: form-pre-post-build spec any [spec/pre-build []] ; PRE-BUILD-SCRIPT: siskin/to-local-file join dir-out %pre-build.sh ; write-file [dir-out %pre-build.sh] PRE-BUILD ; siskin/eval-cmd/v/force [{chmod +x } PRE-BUILD-SCRIPT] ; replace/all PRE-BUILD-SCRIPT #" " "\\ " ;@@ add proper escaping!!! ;@@ TODO: post actions.. ;POST-BUILD-EVENT: copy "" ;form-pre-post-build spec/post-build file: join dir-out [spec/name %.mk] reword/escape/into makefile self [#"<" #">"] output write-file file output siskin/print-info ajoin [{Make project generated: } as-yellow mold file] file ] makefile: next { # Siskin Builder generated makefile # ##################################### PRODUCT= # For the build toolchain: CC= $(TOOLS) NM= $(TOOLS)nm STRIP= $(TOOLS)strip # CP allows different copy progs: CP= cp # LS allows different ls progs: LS= ls -l # RM allows different RM progs: RM= @-rm -rf # UP - some systems do not use ../ UP= .. # CD - some systems do not use ./ CD= ./ # Paths used by make: R= O= S= USE_FLAGS= INCLUDES= DEFINES= FRAMEWORKS= LIBS= CFLAGS= -c $(INCLUDES) $(DEFINES) $(USE_FLAGS) LFLAGS= $(LIBS) $(FRAMEWORKS) $(USE_FLAGS) ### Build targets: .PHONY: default default: $(PRODUCT); clean: all: $(MAKE) $(PROJECT_NAME) prep: ### Post build actions strip: $(STRIP) $(PRODUCT) OBJS = ### Main build target: $(PRODUCT): prep $(OBJS) $(RES) $(CC) -o $(PRODUCT) $(OBJS) $(LFLAGS) ### File build targets: }siskin-0.22.5/tree/rebol/Siskin/siskin-msvc.reb000066400000000000000000000504251525470217700213620ustar00rootroot00000000000000Rebol [ Title: "Siskin Builder - Visual Studio project generator" name: msvc type: module ] siskin: none ;-- variables: ARCH: PLATFORM: PLATFORM-X: PROJECT-TYPE-GUID: PROJECT-GUID: PROJECT-NAME: SUBSYSTEM: LIBRARY-PATH: INCLUDE-PATH: ADDITIONAL-DEPENDENCIES: CONFIGURATION: CONFIGURATION-TYPE: PROJECT-FILES: PROJECT-DEFINES: PRE-BUILD-EVENT: POST-BUILD-EVENT: RESOURCE-ITEM: MSVC-PATH: TOOLSET-VERSION: STACK-SIZE: ADDITIONAL_OPTIONS: none get-relative-path: function[path base][ path: split clean-path/only path #"/" base: split clean-path/only dirize base #"/" take/last base ;-- remove the empty part while [all [path/1 path/1 = base/1]] [remove path remove base] insert/dup path ".." length? base file: to file! any [first path %""] while [not tail? path: next path][append append file #"/" path/1] file ] to-windows-file: either system/platform = 'windows [ :to-local-file ][ func[path [file! string!]][ path: to-local-file path replace/all path #"/" #"\" if #"\" = path/1 [ insert next remove path #":" ] path ] ] relativize-files: func[files [block!] dir /local tmp][ unless any-string? dir [exit] forall files [ tmp: get-relative-path files/1 dir append clear files/1 tmp ] files ] dirs-stack: copy [] pushd: function [ target [file!] ][ dir: what-dir append dirs-stack dir dir ] popd: function [][ dir: take/last dirs-stack ] make-guid: func[/from name /local id] [ id: enbase (checksum/with to-binary form any [name now/precise] 'md5 "Siskin") 16 insert at id 9 "-" insert at id 14 "-" insert at id 19 "-" insert at id 24 "-" id ] prepare-dir: func[dir [file! string!]][ clean-path siskin/prepare-dir 'MSVC dir ] write-file: func[file [file! block!] data][ if block? file [file: rejoin file] try/with [ write file data sys/log/more 'SISKIN ["MSVC Generated:^[[33m" to-local-file file] ][ sys/log/error 'SISKIN system/state/last-error ] file ] escaped-args: func[args [block! string! none!]][ if none? args [return ""] args: either block? args [reform args][copy args] ; not nice and optimal, but I have no time now... replace/all args #"^^" "^^^^" replace/all args #"^"" {^^"} replace/all args #"^/" "^^^/" replace/all args #"^M" "" ajoin [{ --args "} args {"}] ] form-pre-post-build: func[ code [block!] /local val args tmp siskin result ][ result: make string! 1024 append result "^/^- cd .." siskin: system/modules/siskin parse code [any[ 'do [ set val file! set args [block! | string! | none] ( ;?? args if string? args [siskin/expand-env args] append result rejoin [ crlf to-local-file system/options/boot ;to-local-file siskin/expand-env %$REBOL3 " --script " to-local-file val escaped-args args ] ) ] | 'Rebol2 set val string! ( if none? siskin/config/Rebol2 [ siskin/config/Rebol2: %rebol2] ;if #"/" <> config/Rebol2/1 [insert config/Rebol2 root-dir] replace/all val "#[LIB]" siskin/lib-extension replace/all val "#[EXE]" siskin/exe-extension append result rejoin [ "^- " to-local-file config/Rebol2 "-csw" trim/lines val "^- ^/" ] ) | 'python set val file! ( append result rejoin [ "^- " to-local-file any [config/python %python] #" " to-local-file val "^- ^/" ] ) | 'call set val [file!] ( if #"/" <> first val [insert val what-dir] append result rejoin [ "^- " "CALL " to-local-file val "^- ^/" ] ) | 'cmd set dir [file! | none!] set val string! ( append result "^- " if dir [ append result rejoin ["CD " to-windows-file pushd dir " & "] ] foreach line split val lf [ line: trim/head/tail line unless empty? line [ append result rejoin [line " & "] ] ] if dir [ append result rejoin ["CD " to-windows-file popd] ] append result "^- ^/" ) | 'pushd set val file! ( append result rejoin [ "CD " to-windows-file pushd val ] ) | 'popd ( append result rejoin [ "^/CD " to-windows-file popd ] ) | copy val 2 skip ( siskin/print-warn ["!!! Ignoring setting: " mold/flat val] ;ask "Press enter to continue." ) ]] append result "^/^- ^/^-" result ] vswhere: function[][ vswhere: siskin/locate-tool 'vswhere none ;?? vswhere versions: copy [] if exists? vswhere [ output: make string! 1000 try/with [ call/wait/shell/output to-local-file vswhere output ;probe output append output "^M^/" parse output [ thru "^M^/^M^/" any [copy ver: thru "^M^/^M^/" (append versions construct ver)] ] ;probe construct output ][ siskin/print-error ["Failed to call:" as-red vswhere] siskin/print-error system/state/last-error ] ] forall versions [ either all [ p: select versions/1 'installationPath v: select versions/1 'installationVersion ][ siskin/print-more ["MSVC available:^[[0;32m" pad v 16 "at" p] ][ remove versions/1 ] ] ; use the latest version if possible.. try [sort/compare versions func[a b][a/installationVersion > b/installationVersion]] versions ] make-project: func[ spec [map!] ;dir [file! string!] /guid id [string!] "Visual studio project type GUID" /debug? "Force DEBUG build." /local name tmp output dir dir-vs dir-bin defines includes rel-file filters items ver lib-paths ][ unless siskin [siskin: system/modules/siskin] output: make string! 30000 unless spec/arch [spec/arch: system/build/arch] ; check for available VS versions ver: vswhere MSVC-PATH: any [ all [object? first ver select ver/1 'installationPath] "c:\Program Files\Microsoft Visual Studio\2022\Community" "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community" ] CONFIGURATION: either debug? ["Debug"]["Release"] siskin/print-info ["MSVC path:" as-green MSVC-PATH] if not exists? to-rebol-file MSVC-PATH [ siskin/print-error "MSVC path not found!" quit/return 2 ] TOOLSET-VERSION: any [ all [find MSVC-PATH "\2022\" "v143"] all [find MSVC-PATH "\2019\" "v142"] all [find MSVC-PATH "\2017\" "v141"] all [find MSVC-PATH "\2015\" "v140"] "$(DefaultPlatformToolset)" ] siskin/print-info ["MSVC platform toolset:" as-green TOOLSET-VERSION] dir-bin: prepare-dir any [spec/out-dir %.] dir-vs: prepare-dir %msvc if name: spec/name [ set [dir name] split-path name if all [dir-bin dir <> %./][append dir-bin dir] ] STACK-SIZE: any [spec/stack-size ""] ADDITIONAL_OPTIONS: clear "" if all [not debug? spec/strip] [append ADDITIONAL_OPTIONS "/DEBUG:NONE "] if debug? [append ADDITIONAL_OPTIONS "/VERBOSE:LIB "] try [ ; this part is a little bit hackish! ; it's for being able to use specification done for not MSVC compiler replace name tmp: join "-" spec/compiler "-vs" if block? spec/shared [ foreach file spec/shared [ if file? file [ replace file tmp "-vs" replace file %.dll %.lib ; not much safe, but good for now ] ] ] spec/compiler: 'cl spec/name: name ] siskin/add-env "NEST_SPEC" save dir-vs/(join name %.reb) spec ;-- compose .sln file PROJECT-GUID: make-guid/from name PROJECT-NAME: name PROJECT-TYPE-GUID: any [id make-guid/from "Siskin Visual Studio Project"] PLATFORM: any [select [x64 "x64" arm64 "ARM64"] spec/arch "Win32"] PLATFORM-X: any [select [x64 "x64" arm64 "ARM64"] spec/arch "x86"] ARCH: either all [spec/arch = 'arm64 system/build/arch <> 'arm64][ "x64_arm64" ][ PLATFORM-X ] SUBSYSTEM: either find spec/lflags "-mwindows" ["Windows"]["Console"] reword/escape/into sln self [#"#" #"#"] output write-file [dir-vs name %.sln] output ;-- collect ADDITIONAL-DEPENDENCIES lib-paths: copy [] clear output foreach lib join spec/libraries spec/shared [ either dir? lib [ append lib-paths lib ][ lib: split-path lib append lib-paths lib/1 if lib/2 [ unless parse lib/2 [thru ".lib" end][ append lib/2 ".lib" ] append append output lib/2 either parse lib/2 [thru ".lib" end][";"][".lib;"] ] ] ] ADDITIONAL-DEPENDENCIES: copy output LIBRARY-PATH: copy "" foreach path unique lib-paths [ path: siskin/expand-env copy path if #"/" <> first path [insert path %../] append append LIBRARY-PATH to-local-file path #";" ] ;-- collect RESOURCE-ITEM RESOURCE-ITEM: either file? spec/resource [ if #"/" <> first spec/resource [ insert spec/resource spec/root ] rejoin [ { ^/} { ^/} { } ] ][""] ;-- collect PROJECT-FILES clear output filters: copy [] ; used later items: copy [] foreach file join spec/files spec/assembly [ ;file: siskin/get-file-with-extensions file [%.c %.cpp %.cc %.m %.S %.s %.sx] file: siskin/expand-env copy file rel-file: get-relative-path file dir-vs dir: first split-path rel-file parse dir [remove any %../] ; get directory name without .. (used in gui as names of folders) take/last dir ; undirize append filters dir ; remember current name repend items [rel-file dir] ; and store link between file and this dir name ;include all directories in the path.. while [not find [%./ %../] dir: first split-path dir][ if #"/" = last dir [take/last dir] append filters dir ] append output rejoin [ { ^/} ] ] PROJECT-FILES: copy output ;-- collect PROJECT-DEFINES clear output foreach def any [spec/defines []] [ append output rejoin [def #";"] ] replace/all output {\"} {"} ;@@ temp solution!!! PROJECT-DEFINES: copy output ;-- collect INCLUDE-PATH clear output foreach inc spec/includes [ inc: siskin/expand-env copy inc inc: clean-path/only inc if #"/" <> first inc [ insert inc %../ ] append append output to-local-file inc #";" ] INCLUDE-PATH: copy output ;-- collect CONFIGURATION-TYPE CONFIGURATION-TYPE: either any [ find spec/lflags "-shared " ][ either find spec/lflags "-archive-only " ["StaticLibrary"]["DynamicLibrary"] ][ "Application" ] ;-- and... PRE-BUILD-EVENT: form-pre-post-build spec/pre-build ;@@ TODO: post actions.. POST-BUILD-EVENT: copy "" ;form-pre-post-build spec/post-build ; siskin/print-info [as-green "MSVC Name: " as-yellow name] ; siskin/print-info [as-green "MSVC Bin: " as-yellow dir-bin] ; siskin/print-info [as-green "MSVC Libs: " as-yellow AdditionalDependencies] clear output reword/escape/into vcxproj self [#"#" #"#"] output write-file [dir-vs name %.vcxproj] output filters: unique filters new-line/all filters true ;probe sort filters vcxproj.filters: copy { } foreach filter filters [ ;first one is always %./ which we don't need filter: to-windows-file filter append vcxproj.filters rejoin [{ ^{} make-guid/from filter {^} }] ] append vcxproj.filters {^/ ^/ } foreach [item dir] items [ ;print [mold item mold dir] append vcxproj.filters rejoin [{^/ }] if all [dir <> %. find filters dir] [ append vcxproj.filters rejoin [{} to-windows-file dir {}] ] append vcxproj.filters {} ] append vcxproj.filters {^/ ^/} write-file [dir-vs name %.vcxproj.filters] vcxproj.filters clear output reword/escape/into build-vs self [#"#" #"#"] output output: write-file [dir-vs %build- name either debug? [%-debug.bat][%-release.bat]] output siskin/print-info {^[[1;35mMSVC Done^[[m} output ] sln: {Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26730.12 MinimumVisualStudioVersion = 10.0.40219.1 Project("{#PROJECT-TYPE-GUID#}") = "#PROJECT-NAME#", "#PROJECT-NAME#.vcxproj", "{#PROJECT-GUID#}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Release|#PLATFORM-X# = Release|#PLATFORM-X# Debug|#PLATFORM-X# = Debug|#PLATFORM-X# EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {#PROJECT-GUID#}.Release|#PLATFORM-X#.ActiveCfg = Release|#PLATFORM# {#PROJECT-GUID#}.Release|#PLATFORM-X#.Build.0 = Release|#PLATFORM# {#PROJECT-GUID#}.Debug|#PLATFORM-X#.ActiveCfg = Debug|#PLATFORM# {#PROJECT-GUID#}.Debug|#PLATFORM-X#.Build.0 = Debug|#PLATFORM# EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal } vcxproj: { Debug #PLATFORM# Release #PLATFORM# 15.0 {#PROJECT-GUID#} #PROJECT-NAME# $(Configuration)-$(Platform)\tmp\$(ProjectName).dir\ $(SolutionDir)$(Configuration)-$(Platform)\ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0')) $(LatestTargetPlatformVersion) $(WindowsTargetPlatformVersion) #CONFIGURATION-TYPE# true #TOOLSET-VERSION# Unicode #CONFIGURATION-TYPE# false #TOOLSET-VERSION# false Unicode #INCLUDE-PATH#$(IncludePath) #LIBRARY-PATH#$(LibraryPath);$(SolutionDir)$(Configuration)-$(Platform)\ $(SourcePath) #INCLUDE-PATH#;$(IncludePath) #LIBRARY-PATH#$(LibraryPath);$(SolutionDir)$(Configuration)-$(Platform)\ $(SourcePath) Level3 Disabled ProgramDatabase true true #PROJECT-DEFINES#%(PreprocessorDefinitions) true #ADDITIONAL-DEPENDENCIES#%(AdditionalDependencies) #SUBSYSTEM# #STACK-SIZE# #ADDITIONAL_OPTIONS# %(AdditionalOptions) #PRE-BUILD-EVENT# #POST-BUILD-EVENT# Level3 Full true false true true None #PROJECT-DEFINES#%(PreprocessorDefinitions) true true true #ADDITIONAL-DEPENDENCIES#%(AdditionalDependencies) #SUBSYSTEM# #STACK-SIZE# false UseLinkTimeCodeGeneration false #ADDITIONAL_OPTIONS# %(AdditionalOptions) #PRE-BUILD-EVENT# #POST-BUILD-EVENT# #PROJECT-FILES# #RESOURCE-ITEM# } vcxproj.filters: { {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms } build-vs: {@echo off call "#MSVC-PATH#\VC\Auxiliary\Build\vcvarsall.bat" #ARCH# cd %~dp0 msbuild "#PROJECT-NAME#.sln" /p:Configuration=#CONFIGURATION# /p:Platform="#PLATFORM-X#" cd %~dp0 } ;vs/make-project "Siskin-SDL" %Projects/Siskin-SDL/siskin-0.22.5/tree/rebol/Siskin/siskin-pr.reb000066400000000000000000000005361525470217700210310ustar00rootroot00000000000000Rebol [ title: "Siskin Preprocessed" Version: 0.10.3 Author: "Oldes" Home: https://github.com/Siskin-Framework/Builder ] import #include-string %prebol.reb import #include-string %siskin-msvc.reb import #include-string %siskin-xcode.reb import #include-string %siskin-make.reb import #include-string %siskin.reb system/modules/siskin/do-args siskin-0.22.5/tree/rebol/Siskin/siskin-xcode.reb000066400000000000000000001017361525470217700215160ustar00rootroot00000000000000Rebol [ Title: "Siskin Builder - xcode project generator" name: xcode type: module ] siskin: none ;-- variables: PROJECT-UUID: PROJECT-NAME: PROJECT-VERSION: PRODUCT: TARGET-UUID: LIBRARY-PATH: INCLUDE-PATH: ADDITIONAL-DEPENDENCIES: CONFIGURATION-TYPE: PROJECT-FILES: PROJECT-DEFINES: PRE-BUILD: PRE-BUILD-SCRIPT: POST-BUILD-EVENT: RESOURCE-ITEM: TOOLSET-VERSION: STACK-SIZE: SECTION-PBXBuildFile: SECTION-PBXFileReference: SECTION-PBXGroup-Sources-Children: SECTION-PBXGroup-Headers-Children: SECTION-PBXGroup-Frameworks-Children: SECTION-PBXSourcesBuildPhase-Files: SECTION-PBXFrameworksBuildPhase-Files: SECTION-PBXCopyFilesBuildPhase-EmbedLib-Files: FRAMEWORK_SEARCH_PATHS: HEADER_SEARCH_PATHS: GCC_PREPROCESSOR_DEFINITIONS: GCC_OPTIMIZATION_LEVEL: OTHER_LDFLAGS: WARNING_CFLAGS: MACH_O_TYPE: ARCH: GCC_WARN_64_TO_32_BIT_CONVERSION: MACOSX_DEPLOYMENT_TARGET: none TAB2: "^-^-" TAB4: "^-^-^-^-" valid-archs: make map! [ x86: i386 i386: i386 x64: x86_64 x86_64: x86_64 arm64: arm64 arm64e: arm64e ;used on the A12 chipset - on Mac M1's and iPhones models (XS/XS Max/XR) armv8: arm64e ] make-uuid: function[type [any-string!] name [any-string!]][ uuid: make binary! 12 ni: to integer! now tp: checksum join "SISKIN" type 'adler32 nm: checksum join "SISKIN" name 'adler32 binary/write uuid [UI32 :ni UI32 :tp UI32 :nm] sys/log/debug 'SISKIN ["UUID Generated:^[[33m" uuid mold type mold name] uuid ] prepare-dir: func[dir [file! string!]][ clean-path siskin/prepare-dir 'XCode dir ] write-file: func[file [file! block!] data][ if block? file [file: rejoin file] try/with [ write file data sys/log/more 'SISKIN ["Xcode Generated:^[[33m" to-local-file file] ][ sys/log/error 'SISKIN system/state/last-error ] file ] get-relative-path: function[path base][ path: split clean-path/only path #"/" base: split clean-path/only dirize base #"/" take/last base ;-- remove the empty part while [all [path/1 path/1 = base/1]] [remove path remove base] insert/dup path ".." length? base file: to file! any [first path %""] while [not tail? path: next path][append append file #"/" path/1] file ] get-file-type: function[file][ any [ select/case filetypes suffix? file "file" ] ] to-posix-file: either system/platform = 'windows [ func[path [file! string!]][ path: to-local-file path replace/all path #"\" #"/" path ] ][ :to-local-file ] relativize-files: func[files [block!] dir /local tmp][ unless any-string? dir [exit] forall files [ tmp: get-relative-path files/1 dir append clear files/1 tmp ] files ] quoted: func[str][ if find str #" " [ str: append insert copy str #"^"" #"^"" ] str ] dirs-stack: copy [] pushd: function [ target [file!] ][ dir: what-dir append dirs-stack dir dir ] popd: function [][ dir: take/last dirs-stack ] escaped-args: func[args [block! string! none!]][ if none? args [return ""] args: either block? args [reform args][copy args] ; not nice and optimal, but I have no time now... replace/all args #"\" "\\" replace/all args #"^"" {\"} replace/all args #"^/" "\n" replace/all args #"^M" "" ajoin [{ --args "} args {"}] ] form-pre-post-build: func[ spec code [block!] /local val args tmp siskin result ][ result: make string! 1000 siskin: system/modules/siskin append result rejoin [ {#!/bin/sh^/} {echo Prebuilding...^/} {cd } to-posix-file spec/root ] parse code [any[ 'do [ set val file! set args [block! | string! | none] ( ;?? args if string? args [siskin/expand-env args] append result rejoin [ lf to-posix-file system/options/boot ;to-local-file siskin/expand-env %$REBOL3 " --script " to-posix-file val escaped-args args ] ) ] | 'pushd set val file! ( append append result "^/cd " to-posix-file pushd dir ) | 'popd ( append append result "^/cd " to-posix-file popd ) | copy val 2 skip ( siskin/print-warn ["!!! Ignoring setting: " mold/flat val] ;ask "Press enter to continue." ) ]] result ] make-project: func[ spec [map!] ;dir [file! string!] /guid id [string!] "Visual studio project type GUID" /local name tmp output dir dir-out dir-bin defines includes rel-file dir-name filters items ver lib-paths d n id_fileRef id_file dirs blk headers product-type framework-dirs ][ unless siskin [siskin: system/modules/siskin] output: make string! 30000 dir-bin: prepare-dir any [spec/out-dir %.] if name: spec/name [ set [dir name] split-path name if all [dir-bin dir <> %./][append dir-bin dir] ] dir-out: prepare-dir rejoin [%make/ name %.xcodeproj/] unless spec/root [ spec/root: to file! get-env "NEST_ROOT" ] STACK-SIZE: any [spec/stack-size ""] siskin/add-env "NEST_SPEC" save dir-out/(join name %.reb) spec product: copy name ;-- compose .pbxproj file if siskin/debug? [?? spec] PROJECT-UUID: make-uuid "project" name TARGET-UUID: make-uuid "fileRef" name PROJECT-NAME: name PROJECT-VERSION: any [spec/version ""] SECTION-PBXBuildFile: clear "" SECTION-PBXFileReference: clear "" SECTION-PBXGroup-Sources-Children: clear "" SECTION-PBXGroup-Headers-Children: clear "" SECTION-PBXGroup-Frameworks-Children: clear "" SECTION-PBXSourcesBuildPhase-Files: clear "" SECTION-PBXFrameworksBuildPhase-Files: clear "" SECTION-PBXCopyFilesBuildPhase-EmbedLib-Files: clear "" MACOSX_DEPLOYMENT_TARGET: clear "" ARCH: select valid-archs spec/arch unless ARCH [ tmp: form spec/arch ARCH: case [ find tmp "x86" ['i386 ] find tmp "x64" ['x86_64] 'else ["$(ARCHS_STANDARD)"] ] ] unless string? ARCH [ARCH: ajoin [#"(" ARCH #")"]] MACH_O_TYPE: any [ all [ find spec/lflags "-shared " product-type: "compiled.mach-o.dylib" siskin/replace-extension product %.dylib 'mh_dylib ] all [ find spec/lflags "-archive-only " product-type: "compiled.mach-o.objfile" siskin/replace-extension product %.a unless find/match product "lib" [insert product "lib"] 'staticlib ] all [ product-type: "compiled.mach-o.executable" 'mh_execute ] ] FRAMEWORK_SEARCH_PATHS: clear "" HEADER_SEARCH_PATHS: clear "" OTHER_LDFLAGS: clear "" filters: copy [] ; used later items: copy [] dirs: make map! 10 foreach file join spec/files spec/assembly [ ;file: siskin/get-file-with-extensions file [%.c %.cpp %.cc %.m %.S %.s %.sx] rel-file: get-relative-path file dir-out set [dir name] split-path rel-file if none? blk: dirs/:dir [ blk: dirs/:dir: copy [] ] append blk name parse dir [any %../ dir-name: to end] ; get directory name without .. (used in gui as names of folders) take/last dir-name ; undirize append filters dir-name ; remember current name repend items [rel-file dir-name] ; and store link between file and this dir name ;include all directories in the path.. while [not find [%./ %../] dir-name: first split-path dir-name][ if #"/" = last dir-name [take/last dir-name] append filters dir-name ] ;if file ;append output rejoin [ ; { ^/} ;] ] filters: sort unique filters items: unique items ;? filters ;? items foreach dir spec/includes [ if #"/" <> first dir [ dir: join spec/root dir ] unless block? dirs/:dir [dirs/:dir: copy []] try/with [ append dirs/:dir read dir ][ siskin/print-error ["Cannot read from:" as-red dir] continue ] rel-file: skip get-relative-path dir dir-out 3 append HEADER_SEARCH_PATHS rejoin [ {^-^-^-^-^-"} rel-file {",^/} ] ] ;? dirs headers: copy [] foreach [dir files] dirs [ if #"/" <> first dir [ dir: join dir-out dir ] try/with [tmp: read dir][ siskin/print-error ["Cannot read from:" as-red dir] continue ] foreach file tmp [ if find [%.h %.inc %.hh %.h++ %.hp %.hpp] suffix? file [ append headers dir/:file ] ] ] ;? headers append SECTION-PBXFileReference rejoin [ TAB2 TARGET-UUID " /* " product " */ = {isa = PBXFileReference; explicitFileType = ^"" product-type "^"; includeInIndex = 0; path = " quoted product "; sourceTree = BUILT_PRODUCTS_DIR; };^/" ] foreach file sort spec/shared [ siskin/replace-extension file %.dylib id_file: make-uuid "file in Frameworks" file id_fileRef: make-uuid "fileRef" file append SECTION-PBXFileReference rejoin [ TAB2 id_fileRef " /* " file " */ = {isa = PBXFileReference; lastKnownFileType = ^"compiled.mach-o.dylib^"; name = " file "; path = build/Release/" file "; sourceTree = ^"^"; };^/" ] append SECTION-PBXBuildFile rejoin [ TAB2 id_file " /* " file " in Frameworks */ = {isa = PBXBuildFile; fileRef = " id_fileRef " /* " file " */; };^/" ] append SECTION-PBXFrameworksBuildPhase-Files rejoin [ TAB4 id_file " /* " file " in Frameworks */,^/" ] append SECTION-PBXGroup-Frameworks-Children rejoin [ TAB4 id_fileRef " /* " file " */,^/" ] id_file: make-uuid "file in Embed Libraries" file append SECTION-PBXBuildFile rejoin [ TAB2 id_file " /* " file " in Embed Libraries */ = {isa = PBXBuildFile; fileRef = " id_fileRef " /* " file " */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };^/" ] append SECTION-PBXCopyFilesBuildPhase-EmbedLib-Files rejoin [ TAB4 id_file " /* " file " in Embed Libraries */,^/" ] ] framework-dirs: clear [] foreach file sort spec/frameworks [ file: to file! file set [d file] split-path file if d <> %./ [ append framework-dirs d ] siskin/add-extension file %.framework id_file: make-uuid "file" file id_fileRef: make-uuid "fileRef" file append SECTION-PBXBuildFile rejoin [ TAB2 id_file " /* " file " in Frameworks */ = {isa = PBXBuildFile; fileRef = " id_fileRef " /* " file " */; };^/" ] append SECTION-PBXFileReference rejoin [ TAB2 id_fileRef " /* " file " */ = {" "isa = PBXFileReference; " "lastKnownFileType = wrapper.framework; " "name = ^"" file "^"; " "path = ^"System/Library/Frameworks/" file "^"; " "sourceTree = SDKROOT; };^/" ] append SECTION-PBXFrameworksBuildPhase-Files rejoin [ TAB4 id_file " /* " file " in Frameworks */,^/" ] append SECTION-PBXGroup-Frameworks-Children rejoin [ TAB4 id_fileRef " /* " file " */,^/" ] ] foreach dir unique framework-dirs [ append FRAMEWORK_SEARCH_PATHS ajoin [{^-^-^-^-^-"} dir {",^/}] ] foreach file spec/files [ rel-file: skip get-relative-path file dir-out 3 file: find/tail file spec/root set [d n] split-path file id_file: make-uuid "file" file id_fileRef: make-uuid "fileRef" file append SECTION-PBXBuildFile rejoin [ TAB2 id_file " /* " n " in Sources */ = {isa = PBXBuildFile; fileRef = " id_fileRef " /* " n " */; };^/" ] append SECTION-PBXFileReference rejoin [ TAB2 id_fileRef " /* " n " */ = {" "isa = PBXFileReference; " "lastKnownFileType = " get-file-type n "; " "name = ^"" n "^"; " "path = ^"" rel-file "^"; " "sourceTree = ^"^"; };^/" ] append SECTION-PBXGroup-Sources-Children rejoin [ TAB4 id_fileRef " /* " n " */,^/" ] append SECTION-PBXSourcesBuildPhase-Files rejoin [ TAB4 id_file " /* " n " in Sources */,^/" ] ] foreach file sort headers [ rel-file: skip get-relative-path file dir-out 3 parse file [spec/root file: to end] ;; remove the root part of path, if possible set [d n] split-path file id_file: make-uuid "file" file id_fileRef: make-uuid "fileRef" file append SECTION-PBXFileReference rejoin [ TAB2 id_fileRef " /* " n " */ = {" "isa = PBXFileReference; " "lastKnownFileType = " get-file-type n "; " "name = ^"" n "^"; " "path = ^"" rel-file "^"; " "sourceTree = ^"^"; };^/" ] append SECTION-PBXGroup-Headers-Children rejoin [ TAB4 id_fileRef " /* " n " */,^/" ] ] ;-- collect GCC_PREPROCESSOR_DEFINITIONS GCC_PREPROCESSOR_DEFINITIONS: copy "" foreach def any [spec/defines []] [ def: either any-string? def [copy def][to string! def] replace/all def #"\" {\\\} ;@@ temp solution!!! append GCC_PREPROCESSOR_DEFINITIONS rejoin [ {^-^-^-^-^-"} def {",^/} ] ] GCC_OPTIMIZATION_LEVEL: 2 parse spec/cflags [ ["-O" | thru " -O"] copy GCC_OPTIMIZATION_LEVEL to #" " ] ;-- collect libraries OTHER_LDFLAGS: clear "" ;probe spec/lflags foreach lib any [spec/libraries []] [ append OTHER_LDFLAGS rejoin [ {^-^-^-^-^-"-} either dir? lib [#"L"][#"l"] lib {",^/} ] ] WARNING_CFLAGS: clear "" parse spec/cflags [ any [ to " -W" 1 skip copy tmp to #" " ( append WARNING_CFLAGS rejoin [ {^-^-^-^-^-"} tmp {",^/} ] ) ] ] ;-- stack-size if all [ spec/stack-size none? find spec/lflags "-shared" ; don't use stack-size setting when making a shared library ][ append OTHER_LDFLAGS rejoin [ {^-^-^-^-^-"-Wl,-stack_size -Wl,0x} skip to-binary spec/stack-size 4 {",^/} ] ] parse spec/lflags [ thru "-mmacosx-version-min=" copy tmp [to SP | to end] ( MACOSX_DEPLOYMENT_TARGET: ajoin ["MACOSX_DEPLOYMENT_TARGET = " tmp #";"] ) ] ;-- and... spec/output: join %make/build/Release/ product PRE-BUILD: form-pre-post-build spec any [spec/pre-build []] PRE-BUILD-SCRIPT: siskin/to-local-file join dir-out %pre-build.sh probe write-file [dir-out %pre-build.sh] PRE-BUILD siskin/eval-cmd/v/force [{chmod +x } PRE-BUILD-SCRIPT] replace/all PRE-BUILD-SCRIPT #" " "\\ " ;@@ add proper escaping!!! ;@@ TODO: post actions.. ;POST-BUILD-EVENT: copy "" ;form-pre-post-build spec/post-build GCC_WARN_64_TO_32_BIT_CONVERSION: either find spec/cflags @-Wno-shorten-64-to-32 [@NO][@YES] trim/tail SECTION-PBXBuildFile trim/tail SECTION-PBXGroup-Frameworks-Children trim/tail SECTION-PBXGroup-Sources-Children trim/tail SECTION-PBXFrameworksBuildPhase-Files trim/tail SECTION-PBXSourcesBuildPhase-Files trim/tail SECTION-PBXCopyFilesBuildPhase-EmbedLib-Files trim/head/tail FRAMEWORK_SEARCH_PATHS trim/head/tail HEADER_SEARCH_PATHS trim/head/tail GCC_PREPROCESSOR_DEFINITIONS trim/head/tail OTHER_LDFLAGS reword/escape/into project.pbxproj self [#"#" #"#"] output write-file [dir-out %project.pbxproj] output siskin/print-info {^[[1;32mXcode project generated.^[[m} dir-out ; returns the *.xcodeproj directory ] project.pbxproj: {// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 50; objects = { /* Begin PBXBuildFile section */ #SECTION-PBXBuildFile# /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ 40AFCA8426BD67990023CA1A /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; 40E23ADE26FB4A0C00E7BF3F /* Embed Libraries */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( #SECTION-PBXCopyFilesBuildPhase-EmbedLib-Files# ); name = "Embed Libraries"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ #SECTION-PBXFileReference# /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 40AFCA8326BD67990023CA1A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( #SECTION-PBXFrameworksBuildPhase-Files# ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 401BDAF826C44E8800F18C0F /* Frameworks */ = { isa = PBXGroup; children = ( #SECTION-PBXGroup-Frameworks-Children# ); name = Frameworks; sourceTree = ""; }; 40AFCA7D26BD67990023CA1A = { isa = PBXGroup; children = ( 40AFCA8826BD67990023CA1A /* Sources */, 40AFCA8826BD67990023CA1B /* Headers */, 40AFCA8726BD67990023CA1A /* Products */, 401BDAF826C44E8800F18C0F /* Frameworks */, ); sourceTree = ""; }; 40AFCA8726BD67990023CA1A /* Products */ = { isa = PBXGroup; children = ( #TARGET-UUID# /* #PRODUCT# */, ); name = Products; sourceTree = ""; }; 40AFCA8826BD67990023CA1A /* Sources */ = { isa = PBXGroup; children = ( #SECTION-PBXGroup-Sources-Children# ); name = "Sources"; path = "../src/"; sourceTree = ""; }; 40AFCA8826BD67990023CA1B /* Headers */ = { isa = PBXGroup; children = ( #SECTION-PBXGroup-Headers-Children# ); name = "Headers"; path = "../src/"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ #PROJECT-UUID# /* #PROJECT-NAME# */ = { isa = PBXNativeTarget; buildConfigurationList = 40AFCA8D26BD67990023CA1A /* Build configuration list for PBXNativeTarget "#PROJECT-NAME#" */; buildPhases = ( 400196FC26E7F4B300D82EC0 /* ShellScript */, 40AFCA8226BD67990023CA1A /* Sources */, 40AFCA8326BD67990023CA1A /* Frameworks */, 40AFCA8426BD67990023CA1A /* CopyFiles */, 40E23AE226FB4D1F00E7BF3F /* Embed Libraries */, ); buildRules = ( ); dependencies = ( ); name = "#PRODUCT#"; productName = "#PRODUCT#"; productReference = #TARGET-UUID# /* #PRODUCT# */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 40AFCA7E26BD67990023CA1A /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 1250; TargetAttributes = { #PROJECT-UUID# = { CreatedOnToolsVersion = 12.5.1; }; }; }; buildConfigurationList = 40AFCA8126BD67990023CA1A /* Build configuration list for PBXProject "#PROJECT-NAME#" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 40AFCA7D26BD67990023CA1A; productRefGroup = 40AFCA8726BD67990023CA1A /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( #PROJECT-UUID# /* #PROJECT-NAME# */, ); }; /* End PBXProject section */ /* Begin PBXShellScriptBuildPhase section */ 400196FC26E7F4B300D82EC0 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( ); outputFileListPaths = ( ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = #PRE-BUILD-SCRIPT#; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 40AFCA8226BD67990023CA1A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( #SECTION-PBXSourcesBuildPhase-Files# ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ 40AFCA8B26BD67990023CA1A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = NO; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = #GCC_WARN_64_TO_32_BIT_CONVERSION#; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; #MACOSX_DEPLOYMENT_TARGET# MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; name = Debug; }; 40AFCA8C26BD67990023CA1A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = NO; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; #MACOSX_DEPLOYMENT_TARGET# MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; }; name = Release; }; 40AFCA8E26BD67990023CA1A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = #ARCH#; CLANG_ENABLE_MODULES = NO; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "#PROJECT-VERSION#"; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; GCC_PREPROCESSOR_DEFINITIONS = ( #GCC_PREPROCESSOR_DEFINITIONS# ); FRAMEWORK_SEARCH_PATHS = ( #FRAMEWORK_SEARCH_PATHS# ); HEADER_SEARCH_PATHS = ( #HEADER_SEARCH_PATHS# ); OTHER_LDFLAGS = ( #OTHER_LDFLAGS# ); PRODUCT_NAME = "$(TARGET_NAME)"; MACH_O_TYPE = "#MACH_O_TYPE#"; }; name = Debug; }; 40AFCA8F26BD67990023CA1A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { PRODUCT_NAME = "$(TARGET_NAME)"; ARCHS = #ARCH#; ONLY_ACTIVE_ARCH = YES; CLANG_ENABLE_MODULES = NO; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "#PROJECT-VERSION#"; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; GCC_OPTIMIZATION_LEVEL = #GCC_OPTIMIZATION_LEVEL#; GCC_PREPROCESSOR_DEFINITIONS = ( #GCC_PREPROCESSOR_DEFINITIONS# ); FRAMEWORK_SEARCH_PATHS = ( #FRAMEWORK_SEARCH_PATHS# ); HEADER_SEARCH_PATHS = ( #HEADER_SEARCH_PATHS# ); OTHER_LDFLAGS = ( #OTHER_LDFLAGS# ); WARNING_CFLAGS = ( #WARNING_CFLAGS# ); MACH_O_TYPE = "#MACH_O_TYPE#"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 40AFCA8126BD67990023CA1A /* Build configuration list for PBXProject "#PROJECT-NAME#" */ = { isa = XCConfigurationList; buildConfigurations = ( 40AFCA8B26BD67990023CA1A /* Debug */, 40AFCA8C26BD67990023CA1A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 40AFCA8D26BD67990023CA1A /* Build configuration list for PBXNativeTarget "#PROJECT-NAME#" */ = { isa = XCConfigurationList; buildConfigurations = ( 40AFCA8E26BD67990023CA1A /* Debug */, 40AFCA8F26BD67990023CA1A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 40AFCA7E26BD67990023CA1A /* Project object */; } } ;- SOURCE: https://github.com/tuist/XcodeProj/blob/f54ce91a2df8ce0d565db72d21faa5de3e151cec/Sources/XcodeProj/Project/Xcode.swift#L70-L337 filetypes: make map! [ %.1 "text.man" %.C "sourcecode.cpp.cpp" %.H "sourcecode.cpp.h" %.M "sourcecode.cpp.objcpp" %.a "archive.ar" %.ada "sourcecode.ada" %.adb "sourcecode.ada" %.ads "sourcecode.ada" %.aiff "audio.aiff" %.air "compiled.air" %.apinotes "text.apinotes" %.apns "text" %.app "wrapper.application" %.appex "wrapper.app-extension" %.applescript "sourcecode.applescript" %.archivingdescription "text.xml.ibArchivingDescription" %.asdictionary "archive.asdictionary" %.asm "sourcecode.asm.asm" %.atlas "folder.skatlas" %.au "audio.au" %.avi "video.avi" %.bin "archive.macbinary" %.bmp "image.bmp" %.bundle "wrapper.cfbundle" %.c "sourcecode.c.c" %.c++ "sourcecode.cpp.cpp" %.cc "sourcecode.cpp.cpp" %.cdda "audio.aiff" %.cl "sourcecode.opencl" %.class "compiled.javaclass" %.classdescription "text.plist.ibClassDescription" %.classdescriptions "text.plist.ibClassDescription" %.clp "sourcecode.clips" %.cp "sourcecode.cpp.cpp" %.cpp "sourcecode.cpp.cpp" %.csh "text.script.csh" %.css "text.css" %.ctrl "sourcecode.glsl" %.cxx "sourcecode.cpp.cpp" %.d "sourcecode.dtrace" %.dSYM "wrapper.dsym" %.dae "text.xml.dae" %.defs "sourcecode.mig" %.dext "wrapper.driver-extension" %.dict "text.plist" %.dsym "wrapper.dsym" %.dtd "text.xml" %.dylan "sourcecode.dylan" %.dylib "compiled.mach-o.dylib" %.ear "archive.ear" %.entitlements "text.plist.entitlements" %.eval "sourcecode.glsl" %.exp "sourcecode.exports" %.f "sourcecode.fortran" %.f77 "sourcecode.fortran.f77" %.f90 "sourcecode.fortran.f90" %.f95 "sourcecode.fortran.f90" %.for "sourcecode.fortran" %.frag "sourcecode.glsl" %.fragment "sourcecode.glsl" %.framework "wrapper.framework" %.fs "sourcecode.glsl" %.fsh "sourcecode.glsl" %.geom "sourcecode.glsl" %.geometry "sourcecode.glsl" %.gif "image.gif" %.gmk "sourcecode.make" %.gpx "text.xml" %.gs "sourcecode.glsl" %.gsh "sourcecode.glsl" %.gz "archive.gzip" %.h "sourcecode.c.h" %.h++ "sourcecode.cpp.h" %.hh "sourcecode.cpp.h" %.hp "sourcecode.cpp.h" %.hpp "sourcecode.cpp.h" %.hqx "archive.binhex" %.htm "text.html" %.html "text.html" %.htmld "wrapper.htmld" %.hxx "sourcecode.cpp.h" %.i "sourcecode.c.c.preprocessed" %.icns "image.icns" %.ico "image.ico" %.iconset "folder.iconset" %.ii "sourcecode.cpp.cpp.preprocessed" %.iig "sourcecode.iig" %.imagecatalog "folder.imagecatalog" %.inc "sourcecode.pascal" %.instrdst "com.apple.instruments.instrdst" %.instrpkg "com.apple.instruments.package-definition" %.intentdefinition "file.intentdefinition" %.ipp "sourcecode.cpp.h" %.jam "sourcecode.jam" %.jar "archive.jar" %.java "sourcecode.java" %.javascript "sourcecode.javascript" %.jpeg "image.jpeg" %.jpg "image.jpeg" %.js "sourcecode.javascript" %.jscript "sourcecode.javascript" %.json "text.json" %.jsp "text.html.other" %.kext "wrapper.kernel-extension" %.l "sourcecode.lex" %.lid "sourcecode.dylan" %.ll "sourcecode.asm.llvm" %.llx "sourcecode.asm.llvm" %.lm "sourcecode.lex" %.lmm "sourcecode.lex" %.lp "sourcecode.lex" %.lpp "sourcecode.lex" %.lxx "sourcecode.lex" %.m "sourcecode.c.objc" %.mak "sourcecode.make" %.make "sourcecode.make" %.map "sourcecode.module-map" %.markdown "net.daringfireball.markdown" %.md "net.daringfireball.markdown" %.mdimporter "wrapper.spotlight-importer" %.mdown "net.daringfireball.markdown" %.metal "sourcecode.metal" %.metallib "archive.metal-library" %.mi "sourcecode.c.objc.preprocessed" %.mid "audio.midi" %.midi "audio.midi" %.mig "sourcecode.mig" %.mii "sourcecode.cpp.objcpp.preprocessed" %.mlkitmodel "file.mlmodel" %.mlmodel "file.mlmodel" %.mm "sourcecode.cpp.objcpp" %.modulemap "sourcecode.module-map" %.moov "video.quicktime" %.mov "video.quicktime" %.mp3 "audio.mp3" %.mpeg "video.mpeg" %.mpg "video.mpeg" %.mpkg "wrapper.installer-mpkg" %.nasm "sourcecode.nasm" %.nib "wrapper.nib" %.nib~ "wrapper.nib" %.nqc "sourcecode.nqc" %.o "compiled.mach-o.objfile" %.octest "wrapper.cfbundle" %.p "sourcecode.pascal" %.pas "sourcecode.pascal" %.pbfilespec "text.plist.pbfilespec" %.pblangspec "text.plist.pblangspec" %.pbxproj "text.pbxproject" %.pch "sourcecode.c.h" %.pch++ "sourcecode.cpp.h" %.pct "image.pict" %.pdf "image.pdf" %.perl "text.script.perl" %.php "text.script.php" %.php3 "text.script.php" %.php4 "text.script.php" %.phtml "text.script.php" %.pict "image.pict" %.pkg "wrapper.installer-pkg" %.pl "text.script.perl" %.playground "file.playground" %.plist "text.plist" %.pluginkit "wrapper.app-extension" %.pm "text.script.perl" %.png "image.png" %.pp "sourcecode.pascal" %.ppob "archive.ppob" %.proto "sourcecode.protobuf" %.py "text.script.python" %.qtz "video.quartz-composer" %.r "sourcecode.rez" %.rb "text.script.ruby" %.rbw "text.script.ruby" %.rcproject "file.rcproject" %.rcx "compiled.rcx" %.rez "sourcecode.rez" %.rhtml "text.html.other" %.rsrc "archive.rsrc" %.rtf "text.rtf" %.rtfd "wrapper.rtfd" %.s "sourcecode.asm" %.scnassets "wrapper.scnassets" %.scncache "wrapper.scncache" %.scnp "file.scp" %.scriptSuite "text.plist.scriptSuite" %.scriptTerminology "text.plist.scriptTerminology" %.sh "text.script.sh" %.shtml "text.html.other" %.sit "archive.stuffit" %.sks "file.sks" %.skybox "file.skybox" %.sqlite "file" %.storyboard "file.storyboard" %.storyboardc "wrapper.storyboardc" %.strings "text.plist.strings" %.stringsdict "text.plist.stringsdict" %.swift "sourcecode.swift" %.systemextension "wrapper.system-extension" %.tar "archive.tar" %.tbd "sourcecode.text-based-dylib-definition" %.tcc "sourcecode.cpp.cpp" %.text "net.daringfireball.markdown" %.tif "image.tiff" %.tiff "image.tiff" %.ttf "file" %.txt "text" %.uicatalog "file.uicatalog" %.usdz "file.usdz" %.vert "sourcecode.glsl" %.vertex "sourcecode.glsl" %.view "archive.rsrc" %.vs "sourcecode.glsl" %.vsh "sourcecode.glsl" %.war "archive.war" %.wav "audio.wav" %.worksheet "text.script.worksheet" %.xcassets "folder.assetcatalog" %.xcbuildrules "text.plist.xcbuildrules" %.xcclassmodel "wrapper.xcclassmodel" %.xcconfig "text.xcconfig" %.xcdatamodel "wrapper.xcdatamodel" %.xcdatamodeld "wrapper.xcdatamodeld" %.xcfilelist "text.xcfilelist" %.xcframework "wrapper.xcframework" %.xclangspec "text.plist.xclangspec" %.xcmappingmodel "wrapper.xcmappingmodel" %.xcode "wrapper.pb-project" %.xcodeproj "wrapper.pb-project" %.xconf "text.xml" %.xcplaygroundpage "file.xcplaygroundpage" %.xcspec "text.plist.xcspec" %.xcstickers "folder.stickers" %.xcsynspec "text.plist.xcsynspec" %.xctarget "wrapper.pb-target" %.xctest "wrapper.cfbundle" %.xctxtmacro "text.plist.xctxtmacro" %.xcworkspace "wrapper.workspace" %.xhtml "text.xml" %.xib "file.xib" %.xmap "text.xml" %.xml "text.xml" %.xpc "wrapper.xpc-service" %.xsl "text.xml" %.xslt "text.xml" %.xsp "text.xml" %.y "sourcecode.yacc" %.yaml "text.yaml" %.ym "sourcecode.yacc" %.yml "text.yaml" %.ymm "sourcecode.yacc" %.yp "sourcecode.yacc" %.ypp "sourcecode.yacc" %.yxx "sourcecode.yacc" %.zip "archive.zip" ] siskin-0.22.5/tree/rebol/Siskin/siskin.ico000066400000000000000000000055101525470217700204110ustar00rootroot0000000000000000 2 ‰PNG  IHDR00Wù‡ ùIDAThÞíYil×þfÞ<ïÞm¼0 Ò¨,‚¨„–VŠBXÚ¦EMT Eª %U þ�øAQ¥äWÓ_¥‹ú#RUA•€¶@eâT ÌVVÛ`llÞ—ç·M¿s}ïÓ0~Ï6˜F�”'ͼYî=ß9ßYîë‡;v¸ø ÿl|Å_øÀ ÎÿbP˲€@–m�Ÿ‹¸.Üxn,¦ŽO €ë>¥$Äq¬`�ôtÄ#ÄB!ÄÃá„ÂÆ–ûYYp²³ÇŸû?ñ•ÅD©¡–„{zÑ踵Åúò=agd ½¨™eeÈ((P@c|OyêK ½çPùp_ú®\Ad` am9ÊrT¢Dûû1ÒÕ…¾›7‘S]�¢E‹àð~”@Ôs_…øž�–†´Ü\ŒÞ¿�î/¾@Œ”±23«Óª2¶?À˜€#Š’>÷/\ÀØÐf¯X�Ç’÷ñ˜žpð¸DqZ7='Ã{pýßçÑqñ‚n Õˆ ªÇúè‘¶¶¶ÄkUUU(,,TT±ÅC”>kúI9U¹lâ/”Çù¬\¹{ÚŠ;2òò�áÜßÿ…ÖÏñʲg±aýwpïAnÞºM%¢hooÇðð0öïß�={ö`îܹ8v캻»‘MëÇDI‰‚H£Ç†;;•Qr**;°­Mï¼ãN¥¸<�A‹ šþÙ€Þæ[Xù�:¼¹e=^¥òÈ,Dó¥óxqíVtvvËK8yò$V­Z…C‡aãÆ�8{ö,Ö¬Y£†,..F&I#uˆqŽ]F*¥q ìéRiò�À£•réêŽæÛ8sè0–Î-ǯ?xëÖ­¦ÿlܽÓÁÃ=TÍ.FÍìttÜÃæÍ›•ò555ŠFB�‡bß¾}ؾ}»úoæ:™zÃŒ…¡ÖV.^¬ 6]j§ŒIiÌ.éÙY8säÚhÁ¿x »Þû9­”‰ŽÖvŒ�…a‹¡é`#'7S½»dÉu41Ðô*êëë=¶p‰ ‰)I¿¡Þ^¤‘¦RC¦ÕJ¨üìÉ"AÅÕ8~‚:g—ÿ„½ï¿�´‚Di­’¢ µ5åøøði|üÙéDvoˆ²¢  V¹. äžW `�œQR¢j¦ÑµNšFC V¸dv%ÖþäÇèhiŹÓgаÿ�êþœª¬Xù<^~i%úúñÁo>J(o8nxn®ùƒ×ÛnÈ3zA<”æpq`½²u«;ÝJ,©.‹½O/›±ó'O£ýòEukV~*+Kqù?͉õ@¢eHbqYTRhdâB8Eþ‚ÈdÖŠ&©Ê2®×è�Õ Iãb¯“Á _½iW¯ÂÝ7pþøqôöM ¡ß ~«'²�®ºTDݽÜdáéμ 1Õ ½$З®]«@]mlL:Ùd"¤/’s[¯Þ©>jM^È|ƒBËT“ËÐctw±ÊyóRZ)•'Œ7^e "ÙHWèÄb(…Ƚ 𠳫'3ç2‰í©®ÉÃgbÑòÒ$ÊkÂö0ÇÉbl ?x š:w²öÚMæ�©Äoiƒo_º4©â�<Ïë-£)‰­”ûTòeïÿ�ã½Dz^aë-‹œ©ôqf²¤—.rˆÝ8w.y° ôÞMXÓnDÚi¡©ò†Ð…’Îÿ?ãý:JÏw0I|ÊUÞuëÙ USµ×Žé÷-=©¥'…>„Z暼ãh½u‹«1”“”ëÚÊò+ã½.í¹¥¤J �æõR¾¿XÆð®¯µUóè…¤Ïæ;wp›)¶šÿú;5iÔ2͜٣qS`Ê4¦Á´ÑÝóùwƒ´Í”ŸRŽR~Oy�²Žò>ûåC ¦^+ÕÂTˆ)dSÌÀÖˆ�ð}.þó磂 ¤µqµQݧ²/$�Œ@V�”-ÏS~+N8Ï ÿ£œSJh°vJº¬7dY©2 k€d%é}$!èB¸„�ü;èõëמ3ÏÐãc¾Õš _p"IJEŠ4+•3JצÉBS($ zÊ0¥]ªüø|7E6J‰QYÉ2¦RlÐ{IЬÚßcåÿ+ç°¯]é=ôŒ7AØ®/}º¾4妸– “ÑÊG´HJÔ`"¼oŨ˜üQ »s<š 0¥”¤M½è�ë-ÊoåçãÏkI§Ï™4âÌN]ðlõⓈ§RF} aóŸÏJ& óÝ0ŽPyBÄ´'û§BÎ%&¨ìl.3�PñqÝ|ž"F‘þé‰cÀÒÖ6Æ´ÂQ“Íä³KYèÞc,ô×Ö>ÁÆ–�JÒ»Œy˜={[ƒka ÄÖ ‚á6ß7b@ˆÒ¶Q^Ò¦”ëräå7¹²›Ïþë—ÍÍ3ËBâni‹‡5ßcZé¸>Z¦ˆiåâÉ\rN/(L�Fyµ%o¶ã„n#ÄÛžg^d\gœN�C·êÂey@ÀãKï";Ú¶0^E Â20Æûë‰_`4y¦ˆsϨ•� ÌeZëÖù¿ÀÀõë‚ek/( Òr KHî×»Ù‰ '»vžqL31!lj1 {˜i`É#€'ê$ŸKµ' â™<ൾX]o·{A˜ÞIŽfßße¦IÃè%`5 äš&­$æ°Z¢ ™Ÿ¿©ÙöÐ)â�Âć(ïñ’¡�k–�æÃˆÿƒž¡™,UMc”¬ßŸc “Ö/®¨P„JA­xÀC'F²Í–"ðÈ΃+ßL†ÓÊ;:¨š@o<XîÕ.Z´{&½�L”O/Üa•Ìã$ótÕ ¤øêd¨�µ¡•M°ÀÐÆGmóþŒ?ò…Ù«”” ³®�lº^Ж�ù¾áZIXž5ƒ«¿bÆõ»ézÅ×+9G/nžn@e²š™xÀð“Jä³éºÅ†+—çú‚Ùõ�€Yêµ²§Qó6Ž^�[ž{ãë½HñmÀ$wcŠ]Š’ÒRµŸó·«WQ¯c!ê‰ÿšÛò6‹z�× _Ìœ‹È.¡\ïÐ AÝ'I "•9P³pán×·ú‚guæí:S~ Õn.#ˆf–÷¦Åe:ì$�­›ª5ÑŠ?²Õov.LK/çšBÒµª,˜…¼)5›ét”ù¼¥« ù¼V®3�i/¦Úë�{@$ÄĆيñ(/Çÿã¥�ös~IEND®B`‚siskin-0.22.5/tree/rebol/Siskin/siskin.manifest000066400000000000000000000017351525470217700214520ustar00rootroot00000000000000 True/PM siskin-0.22.5/tree/rebol/Siskin/siskin.rc000066400000000000000000000011501525470217700202370ustar00rootroot00000000000000101 ICON "siskin.ico" 1 VERSIONINFO FILEVERSION 0,18,0,0 PRODUCTVERSION 0,18,0,0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "FileDescription", "Siskin Builder" VALUE "FileVersion", "0.18" VALUE "InternalName", "Siskin Builder" VALUE "LegalCopyright", "2024 Oldes" VALUE "OriginalFilename", "Siskin.exe" VALUE "ProductName", "Siskin" VALUE "ProductVersion", "0.18" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END STRINGTABLE BEGIN 101 "Siskin Builder" END 1 MANIFEST "siskin.manifest" siskin-0.22.5/tree/rebol/Siskin/siskin.reb000066400000000000000000002217411525470217700204150ustar00rootroot00000000000000Rebol [ Title: "Siskin Builder - core" Type: module Name: siskin Version: 0.22.5 Author: "Oldes" exports: [ windows? macOS? linux? openbsd? freebsd? dragonflybsd? netbsd? posix? haiku? turris? bsd? expand-env ] ] ;? system banner: does [next rejoin [{ ^[[0;33mâ•�â•— ^[[0;33m â•‘^[[1;31m .-. ^[[0;33m â•‘^[[1;31m /'v'\ ^[[0;33mSISKIN Builder 0.22.5 Rebol } rebol/version " (" rebol/platform {) ^[[0;33m â•‘^[[1;31m (/^[[0;31muOu^[[1;31m\) ^[[0;33mhttps://github.com/Siskin-framework/Builder/ ^[[0;33m ╚â•�â•�â•�â•�^[[1;31m"^[[0;33mâ•�^[[1;31m"^[[0;33mâ•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�â•�^[[m}]] import 'prebol msvc: import 'msvc xcode: import 'xcode mmake: import 'mmake msvc/siskin: xcode/siskin: mmake/siskin: self debug?: off ;--- backwards compatibility --- if system/version < 3.17.2 [ ;; The code is using the new QUERY, so let's make it backward compatible, when needed... lib/query: query: function/with [ "Forward compatibitity version!" target [port! file! url! block! vector! date! handle! word!] field [word! block! none! datatype!] ;;"NONE will return valid modes for target type" /mode ;; deprecated ][ mode: true case [ datatype? field [mode: none] block? field [ parse field [any [change set w: word! ( all [field = 'modified file? target w: 'date] to set-word! :w ) | skip]] ] all [field = 'modified file? target] [field: 'date] ] query*/:mode target field ][ query*: :lib/query ] ] ;------------------------------- append system/options/log [siskin: 1] all-options: [ #"c" "--clean" - "Remove cached results before build" #"d" "--debug" - "Maximum verbosity and debug messages" #"h" "--help" - "Display available options" #"o" "--output" "path" "Destination path to use instead of the default one" #"q" "--quiet" - "Minimum output" #"l" "--list" - "List all possible targets (eggs) in the nest" #"r" "--run" - "Execute build product immediately" #"t" "--test" - "Soft run without real evaluation" #"u" "--update" - "Update all linked source repositories before build" #"v" "--verbose" - "Make the operation more talkative" #"V" "--version" - "Show version number and quit" - "--msvc" - "Create Visual Studio project and use it for a build" - "--xcode" - "Create XCode project and use it for a build" - "--make" - "Create makefile and use it for a build" - "--git-ssh" - "Clone gits using password-protected SSH key" - "--no-upx" - "Ignore default project's UPX compression setting" - "--script" "path" "Evaluate Rebol script" - "--gzip" - "Compress the result with GZIP" - "--no-comp" - "Don't invoke compilation/linking step" - "--platform" "name" "Override system/platform value (for POSIX only!)" - "--arch" "arch" "Override system/build/arch value" ] ; mapping of commands used in the interactive input into command line arguments ; it is generated in the `init-options` call supported-commands: make block! 20 ; also these 2 help strings are generated bellow help-options-int: help-options-cli: none init-options: func[/local long short hlp1 hlp2][ hlp1: make string! 1000 ; CLI help version hlp2: make string! 1000 ; Interactive help version ; Interactive version does not require `nest-name` ; and don't use `-` and `--` before option names append hlp1 ajoin [ " ^[[33mUsage: ^[[1;32m" second split-path system/options/boot either system/product = 'Siskin [""][" siskin.r3 "] " ^[[1;33m ^[[0;33m[options...] [targets...]^[[m^/" "^/ Possible options:^/" ] append hlp2 ajoin [ " ^[[33mUsage: ^[[0;33m[options...] [targets...]^[[m^/" "^/ Possible options:^/" ] foreach [short long arg doc] all-options [ long: to word! skip long 2 short: to word! short either short = '- [ append hlp1 "^/ --" append hlp2 "^/ " ][ append hlp1 ajoin ["^/ -" short ", --"] append hlp2 ajoin ["^/ " short ", "] repend supported-commands [short long] ] repend supported-commands [long long] long: form long if arg <> '- [append append long SP arg] append hlp1 pad long 15 append hlp1 as-green doc append hlp2 pad long 13 append hlp2 as-green doc ] supported-commands: to map! supported-commands help-options-cli: append hlp1 lf help-options-int: append hlp2 lf ] prepare-interactive: func[args [string!]][ ; preprocess user input when runing as a Rebol script or from `ask` input try/with [args: load args][ print-error ["Invalid command:" as-red args] return none ] unless block? args [args: to block! args] ; in case that input was a single value forall args [ change args any [select/case supported-commands args/1 to string! args/1] ] args ] ;- environment - nest-context: object [ root-dir: none template: make map! reduce/only [ ;@@ the reduce/only is required when the source is embedded in exe! name: none compiler: none arch: none root: none temp: none sign: none output: none ;%bin/ bundle: none source: %"" script: none objects: none gits: [] files: [] clean: [] assembly: [] libraries: [] shared: [] frameworks: [] defines: [] includes: [] resource: none entitlements: none rflags: "" ; resource options cflags: "" cppflags: "" lflags: "" stack-size: none cc: none ccpp: none pre-build: [] ; native commands executed before building (in msvc PreBuildEvent) post-build: [] ; not used yet actions: [] eggs: [] ] nest-root: none nest-spec: none nest-file: none nest-time: none rebuild?: false ; if force compilation of all files (even if not modified) no-eval?: false no-upx?: false clang?: false no-comp?: false run-result?: false update?: false gzip?: false CI?: false target-names: copy [] interactive?: false git-ssh?: false git-update?: false git-updates: copy [] ; keeps what gits were updated in one commands batch result-code: 0 ; last returned result from eval-cmd force-compiler: none android-sdk: none android-ndk: none timestamp: none result: none out-file: none out-file-override: none platform-override: none arch-override: none app-file: none ;; bundle output defaults: context [ output: %build/ temp: %tmp/ debug?: false verbose: 1 ] s: p: val: valid: none ] dirs-stack: copy [] chars_alpha: charset [#"a" - #"z" #"A" - #"Z"] chars_numbers: charset [#"0" - #"9"] chars-file: charset [#"a" - #"z" #"A" - #"Z" #"0" - #"9" #"-" #"_" ] ;#"." cpp-extensions: [%.cc %.cpp %.cxx %.c++] throw-unknown-option: func[op][ print banner print-error ["Unknown option:" as-red op] prin newline print help-options-cli quit/return 1 ] do-args: closure/with [ "Main Sisking input processor" ][ init-options system/options/quiet: false unprotect 'system/platform ;? system/options ; ? system/script/args ; ? system/options/args args: system/options/args if string? args [ args: prepare-interactive args ] ;@@ this is temporary hack before finding a better way how to handle raw args! if all [args "--script" = first args] [ ; I've added this option to be able preprocess builds using Rebol scripts ; without need to download Rebol as an additional utility (in GitHub actions) script: to-rebol-file take remove args if rel-path? script [ insert script system/options/path ] if "--args" = first args [take args] ;ignored ;? script ;? args print-debug ["Executing script:" as-red to-local-file script] print-debug ["..with arguments:" as-red form args] system/options/quiet: true try/with [ do/args script args ][ print-error system/state/last-error quit/return 1 ;@@ TODO: choose which error number to use ] quit ] if args [ ; expand short options forall args [ if string? args/1 [ parse args/1 [ "--" to end ( unless find all-options args/1 [ throw-unknown-option args/1 ] ) | #"-" copy ops: to end ( new: clear [] forall ops [ either tmp: select/case all-options ops/1 [ append new copy tmp ][ throw-unknown-option args/1 ] ] change/part args new 1 ) ] ] ] ; check for early options... case/all [ find args "--debug" [ defaults/debug?: debug?: on defaults/verbose: 4] find args "--quiet" [ system/options/quiet: on ] find args "--version" [ print banner quit ] find args "--help" [ print banner print help-options-cli quit] find args "--git-ssh" [ git-ssh?: on] find args "--update" [ git-update?: on] find args "--no-comp" [ no-comp?: on] platform-override: select args "--platform" [ try/with [ if system/platform != 'Windows [ system/platform: to word! probe platform-override print-info ["System platform changed to:" as-green system/platform] ] ][ print system/state/last-error platform-override: none ] remove/part find args "--platform" 2 ] arch-override: select args "--arch" [ try/with [ unprotect in system/build 'arch system/build/arch: to word! arch-override print-info ["Target architecture changed to:" as-green system/build/arch] ][ print system/state/last-error arch-override: none ] remove/part find args "--arch" 2 ] ] ] unless system/options/quiet [print banner] ;- (temp hack): allow identify real platform if system/platform = 'Linux [ tmp: copy "" call/shell/output/wait "uname -s" tmp print-info ["System uname:" as-green trim/tail tmp] if not platform-override [ tmp: to word! trim/all tmp if find [OpenBSD FreeBSD] tmp [ system/platform: tmp print-info ["System platform changed to:" as-green tmp] ] ] ] change-dir root-dir: system/options/path unless get-env 'SISKIN_INSTALL [ add-env 'SISKIN_INSTALL root-dir/install ] unless get-env 'SISKIN_TEMP [ add-env 'SISKIN_TEMP root-dir/temp ] unless get-env 'SISKIN_ARCH [ add-env 'SISKIN_ARCH form system/build/arch ] if debug? [?? args] if all [string? args empty? args][args: none] either all [args not empty? args][ unless block? args [args: reduce [args]] project: to-rebol-file take args parts: split-path project unless any [ 'file = exists? nest: project 'file = exists? nest: join project %.nest 'file = exists? nest: join project %/.nest 'file = exists? nest: rejoin [%./ project %/ parts/2 %.nest ] 'file = exists? nest: rejoin [%./tree/ project %.nest] 'file = exists? nest: rejoin [%./tree/ project %/ parts/2 %.nest] 'file = exists? nest: rejoin [%./projects/ project %.nest] 'file = exists? nest: rejoin [%./projects/ project %/ parts/2 %.nest] ][ print-error ["Nest not found:" as-red project] exit ] ;?? nest try/with [ do-nest nest args ][ print-error none ] ][ ; Script may be evaluated from inside Siskin utility or as a Rebol script! print help-options-cli exit ] ] :nest-context do-strip: closure/with [spec [map!] file [file!]][ ;-- strip resulted binary if debug? [ print-error "STRIP ignored in the debug build!" exit ] any [ all [file? spec/strip exists? strip: spec/strip] all [spec/compiler = 'clang exists? strip: locate-tool 'llvm-strip none] strip: locate-tool 'strip none ] either exists? strip [ print-info ["Stripping binary from:" as-yellow size? file as-cyan "bytes"] eval-cmd/no-quit/v [to-local-file strip file either macOS? [""]["-s "]] ][ print-error "STRIP command not found!" ] ] :nest-context do-upx: closure/with [file [file!]][ if no-upx? [ print-info "UPX compression skipped!" exit ] upx: locate-tool 'upx none unless any [ exists? upx exists? expand-env copy upx ][ print-error "UPX command not found!" unless windows? [exit] try/with [ print-info "Downloading UPX" bin: read https://github.com/upx/upx/releases/download/v5.2.0/upx-5.2.0-win32.zip if #{28275e48a8b5ff9719c98a3d6ce68cb4437721f599ca2d904e8f4026a0a0558b} <> checksum bin 'sha256 [ print-error "UPX binary checksum failed!" exit ] exe: codecs/zip/decode/only bin [%upx-5.2.0-win32/upx.exe] upx: write root-dir/upx.exe exe/2/2 add-env-path root-dir ] [ print-error system/state/last-error exit ] ] either any [ exists? upx exists? expand-env copy upx ][ set-env "UPX" none ; upx tool is using it for some unknown reason and don't like our use eval-cmd/no-quit/vv [upx file] ][ print-error ["UPX command not found! (" mold upx ")"] ] ] :nest-context gzip-file: closure/with [file [file!]][ print-info ["Compress file:" file] bin: read/binary file bin: compress/level bin 'gzip 9 out-file: write/binary join file %.gz bin ] :nest-context do-rebol2: closure/with [code [string! file!]][ add-env-path root-dir rebol2: any [ get-env "REBOL2" locate-tool 'rebol2 none ] if 'file <> exists? rebol2 [ print-error "REBOL2 not found!" switch system/platform [ windows [ url: http://www.rebol.com/downloads/v278/rebol-view-278-3-1.exe crc: #{1DEF65DDE53AB24C122DA6C76646A36D7D910790} ] linux [ url: http://www.rebol.com/downloads/v278/rebol-view-278-4-3.tar.gz crc: #{F078EF80744DF217AAB5CD60E75B5A5D2690F396} ] macos Macintosh [ url: http://www.rebol.com/downloads/v278/rebol-view-278-2-5.tar.gz crc: #{E45DEFC8155D157090588F85B521A40FA7A30E48} ] ] unless url [ print-error ["REBOL2 not available for" system/platform "platform!"] exit ] try/with [ print-info "Downloading REBOL2" bin: read/binary url if crc <> checksum bin 'sha1 [ print-error "REBOL2 binary checksum failed!" exit ] either Windows? [ rebol2: write root-dir/rebol2.exe bin ][ ; file is *.tar.gz tar: decode 'tar decompress bin 'gzip rebol2: write root-dir/rebol2 tar/6/1 eval-cmd/v ["chmod +x" root-dir/rebol2] ] add-env "REBOL2" to-local-file rebol2 ] [ print-error system/state/last-error exit ] ] ;It looks that Rebol2 does not support output redirection, so use temp file... eval-cmd/log/v [rebol2 "-csw" trim/lines code] %log.txt ] :nest-context add-pre-build: func[dest cmd [block!]][ cmd: new-line/all reduce cmd false append dest/pre-build new-line cmd true ] add-action: func[ dest name [set-word!] spec [block!] code [block!] /local title ][ parse spec [ opt set title string! ;TODO: args ] append/only append dest/actions name compose/only [ title: (title) code: (preprocess code) ] ] parse-nest: closure/with [ nest [file! block!] dest [map! block! none!] ][ ;if file? nest [print-info ["Parsing nest:" as-green nest]] if file? nest [ nest-time: modified? nest ] spec: preprocess nest case [ block? dest [dest: to map! dest] none? dest [dest: copy/deep template] ] src-dir: any [dest/source %""] truthy: ['true | 'on | quote 1] falsy: ['false | 'off | 'none | quote 0] reserved-words: [ ar arch assembly cc cflags cppflags clean compiler define defines file files flags git github include includes lflags libraries library libs name needs optimize out-dir output shared source stack-size strip eggs temp temp-dir tools upx framework frameworks info entitlements ] get-spec-block-value: func[spec [map!] what /local block][ unless block: spec/:what [block: spec/:what: copy []] unless block? block [ print-error [ "Unexpected type of:" as-red form what as-purple "Expected block, but have got:" as-red type? block ] return none ] block ] add-files: func[spec [map!] what [word!] files /local block file][ files: either block? files [preprocess files][to block! files] unless block: get-spec-block-value spec what [exit] forall files [ file: files/1 switch/default type?/word file [ file! [ if rel-path? file [file: join src-dir file] append block clean-path file ] get-word! [ add-files spec what any [ select dest file select nest-spec file ] ] ][ print-warn ["Unexpected file input:" as-red mold file] ] ] ] add-to: func[spec [map!] what [word!] values /local block][ values: either block? values [preprocess values][to block! values] unless block: get-spec-block-value spec what [exit] forall values [ switch/default type?/word values/1 [ word! string! ref! [ append block values/1 ] get-word! [ add-to spec what any [ select dest values/1 select nest-spec values/1 ] ] ][ print-warn ["Unexpected `add-to` input:" as-red mold values/1] ] ] ] opt-get-word: [opt [p: get-word! ( change/only p select dest first p ) :p]] logic: [ set val: logic! | truthy ( val: true ) | falsy ( val: false ) ] parse copy spec [any [ ;x: (probe first x) quote name: set val: any-string! ( dest/name: to string! val ) | quote tools: set val: any-string! ( tools: expand-env val ) ; stored in nest-context! | quote git: set val: [url! | block!] ( append dest/gits val ) | quote github: set val: [path! | file! | ref!] ( if ref? val [val: join %Siskin-framework/ val] append dest/gits either all [git-ssh? not CI? ][ as url! join "git@github.com:" [val %.git] ][ join https://github.com/ [val %.git] ] ) opt [set val: [refinement! | tuple!] (append dest/gits val)] ;optional branch | quote eggs: [opt 'only (clear dest/eggs) ] set val: block! ( append dest/eggs preprocess val ) | quote stack-size: set val: integer! ( dest/stack-size: val ) | quote arch: set val: word! ( dest/arch: val ) | quote root: set val: file! ( dest/root: clean-path val ) | quote sign: [set val: string! | logic] ( dest/sign: val ) | quote bundle: set val: block! ( either block? dest/bundle [ append dest/bundle val ][ dest/bundle: val ] ) |[quote temp-dir: | quote temp: ] set val: file! ( dest/temp: val ) |[quote out-dir: | quote output:] set val: file! ( dest/output: val ) |[quote compiler: | quote cc: ] [ set val: any-string! ( dest/cc: expand-env to-rebol-file val ) | falsy ( dest/compiler: none) | set val: word! ( dest/compiler: val) ] | quote ar: set val: any-string! ( dest/ar: expand-env to-rebol-file val ) | quote strip: [ set val: any-string! ( dest/strip: to file! val ) | logic ( dest/strip: val ) ] | quote upx: [ set val: any-string! ( dest/upx: to file! val ) | logic ( dest/upx: val ) ] | quote source: set val: any-string! ( src-dir: to file! val if not empty? src-dir [ src-dir: dirize expand-env copy src-dir ] dest/source: src-dir ) |[quote includes: | quote include:] set val: [any-string! | block!] ( if none? dest/includes [ clear dest/includes ] if not block? val [val: reduce [val]] append dest/includes val ) |[quote files: | quote file:][ ['none | none!] ( clear dest/files ) | opt ['only (clear dest/files )] opt-get-word set val: [block! | file!] ( add-files dest 'files val ) ] |[quote needs: | 'needs] set val: [word! | block!] ( unless prep-needs/required val dest/arch [return false] ) |[quote clean: | 'clean] [ 'none ( clear dest/clean ) | opt ['only (clear dest/clean )] opt-get-word set val: [block! | file!] ( add-files dest 'clean val ) ] | quote shared: set val: [file! | block!] ( append dest/shared val ) | quote assembly: opt ['only (clear dest/assembly)] [ set val: file! (append dest/assembly join src-dir val) | set val: block! (foreach file val [append dest/assembly join src-dir val]) ] |[quote flags: | quote cflags: | quote flag:] opt ['only ( clear dest/cflags clear dest/lflags )] set val: [block! | word! | string!] ( val: either block? val [preprocess val][to block! val] forall val [ add-flag dest val/1 ] ) |[quote lflags: | quote lflag:] any [ ['only | 'none] (clear dest/lflags) | set val: any-string! (append-flag dest/lflags val) | p: block! :p into [ some [ set val: 1 skip ( val: form val append-flag dest/lflags val ) ] ] ] |[quote cppflags: | quote cppflag:] any [ ['only | 'none] (clear dest/cppflags) | set val: any-string! (append-flag dest/cppflags val) | p: block! :p into [ some [ set val: 1 skip ( val: form val append-flag dest/cppflags val ) ] ] ] |[quote rflags: | quote resource-options:] any [ ['only | 'none] (clear dest/rflags) | set val: any-string! (append-flag dest/rflags val) | p: block! :p into [ some [ set val: 1 skip ( val: form val append-flag dest/rflags val ) ] ] ] | quote flags: 'none ( clear dest/cflags clear dest/lflags ) | quote optimize: set val [integer! | 'size | 'z | 's | 'fast] ( add-flag dest join #"O" case [ val = 'size [#"s"] true [val ] ] ) |[quote define: | quote defines:][ 'none (clear dest/defines) | opt ['only (clear dest/defines )] opt-get-word set val: [word! | string! | ref! | block!] (add-to dest 'defines val) ] | quote entitlements: set val file! ( if rel-path? val [val: join what-dir val] dest/entitlements: val ) |[quote library: | quote libraries: | quote libs:] opt ['only (clear dest/libraries)] set val: [file! | block!] (append dest/libraries val) |[quote framework: | quote frameworks:] opt ['only (clear dest/frameworks)] set val: [word! | file! | block!] (append dest/frameworks val) |['set | 'set-env] set var: [any-string! | any-word!] set val: [string! | file! | block!] ( if block? val [val: ajoin/with val SP] try [val: expand-env copy val] ;; When file, then expand it, convert to full path and to OS syntax. if file? val [try [val: to-local-file to-real-file val]] add-env var val ) | pos: set name: set-word! [ 'action set spec: block! set code: block!( add-action dest name spec code ) ; any `key: value` quote stored and can be used by `get-word!` | opt-get-word set val: 1 skip ( ;quit if find reserved-words to word! name [ print-error rejoin [ "Invalid dialect use at: ^[[31m" next mold/flat/part pos 50 ] return false ] if block? val [val: preprocess val] case [ all [val block? dest/:name] [ append dest/:name val ] 'else [ dest/(name): val ] ] ) ] | set name: get-word! pos: ( either val: dest/:name [ if block? val [val: preprocess val] insert pos val ][ print-error rejoin ["Failed to process:" as-red mold name] return false ] ) | 'info set val: string! ( print-info val ) | 'pushd set val: file! ( add-pre-build dest ['pushd val] ) | 'popd ( add-pre-build dest ['popd] ) | 'python set val: file! ( add-pre-build dest ['python val] ) | 'msbuild set val: file! set args: string! ( add-pre-build dest ['msbuild val args] ) | 'cmd set dir: opt file! set val: [string! | block!] ( if block? val [val: form val] add-pre-build dest ['cmd dir val] ) | 'call set val: [file! | string!] ( add-pre-build dest ['call val] ) | 'Rebol2 set val: string! ( add-pre-build dest ['Rebol2 val] ) | 'Rebol3 set val: string! ( add-pre-build dest ['Rebol3 val] ) | 'Red set val: file! ( add-pre-build dest ['Red val] ) | 'do [ set val: file! set args: opt [string! | block! | none! | none] ( add-pre-build dest ['do val args] ) | set val: block! ( add-pre-build dest ['do val] ) ] | 'preprocess set val: file! set args: opt [file! | none! | none] ( add-pre-build dest ['preprocess val args] ) | set val: word! ( either find dest/actions val [ add-pre-build dest ['action val] ][ print-error ["Unknown action: " mold val] return false ] ) | pos: 1 skip ( print-error rejoin [ "Invalid dialect use at: ^[[31m" next mold/flat/part pos 50 ] return false ) ]] ; Disable compiler assignment when "--no-comp" option is used if no-comp? [dest/compiler: none] dest/files: unique dest/files new-line/all dest/files true ; ;add these flag even when not specified by user as these are needed ; unless dest/arch [ ; ?? dest/arch ; dest/arch: any [ ; select system/build 'arch ; select system/build 'target ; either find form system/build/os "-x64" ['x64]['x86] ;@@ deprecated! ; ] ; ] ; switch dest/arch [ ; x86 [ add-flag dest 'm32 ] ; x64 [ add-flag dest 'm64 ] ; ] ;? dest dest ] :nest-context print-eggs: closure/with [][ i: 0 print as-yellow "^/Found eggs:" clear target-names parse nest-spec/eggs [ any [ set name: string! set target: block! ( i: i + 1 append target-names name print rejoin [" " as-green i ":^-" name] ) | p: 1 skip ( print-error ["Unknown target rule at:" mold p] ) ] ] ] :nest-context parse-action: closure/with [ nest [file! block!] dest [map! block! none!] ][ if file? nest [print-info ["Parsing nest:" as-green nest]] spec: preprocess nest ] :nest-context do-nest: closure/with/extern [ nest [file!] args [block!] /with parent [map!] ][ CI?: ("true" = get-env "CI") supported-commands/q: 'quit ; changed shortcut for use in the interactive mode nest-file: any [to-real-file nest nest] forever [ debug?: defaults/debug? add-env 'SISKIN_OPTION_DEBUG either debug? ["ON"]["OFF"] if any [ none? nest-time none? nest-file parent all [ date? tmp: query nest-file 'modified nest-time < tmp ] ][ if nest [print-info ["Processing nest:" as-green to-local-file clean-path nest]] unless interactive?: empty? args [ print-info ["With commands:" as-green mold args] ] nest-time: tmp set [nest-root: nest:] split-path nest-file nest-root: pushd nest-root nest-spec: parse-nest nest none if none? nest-spec [exit] if parent [ foreach [k v] parent [ if any [none? v all [series? v empty? v]] [continue] ;print ["extending:" mold k mold v] extend nest-spec k v ] ;not empty? parent/eggs] [ ;;@@ using so far just eggs ;nest-spec/eggs: parent/eggs ] if debug? [?? nest-spec] any[ all [any-string? nest-spec/root 'dir = exists? nest-root: clean-path nest-spec/root] nest-root: clean-path first split-path nest ] add-env "NEST_ROOT" nest-root pushd make-dir/deep nest-root clone-gits nest-spec/gits eggs: nest-spec/eggs if file? nest: nest-spec/nest [ ; nest has a link to another nest try/with [ nest-spec/gits: none nest-spec/nest: none do-nest/with nest args nest-spec ][ print-error none ] exit ] unless block? eggs: nest-spec/eggs [ exit ] if debug? [?? eggs] ] try/with [ clear git-updates git-update?: false if any [none? args all [block? args empty? args not CI?]][ ;-- Interactive mode ------------------------- if empty? nest-spec/eggs [ sys/log/error 'SISKIN "No eggs in this nest!" quit ] unless none? args [print-eggs] args: ask as-green "^/Egg command: " unless args [ quit ] ; CTRL+C args: prepare-interactive args ;? args unless args [ continue ] ; in case of error ] ; make sure, that args are block even for a not interactive input ; (may be string when running Builder as a pure Rebol script with just a single argument) unless block? args [args: reduce [args]] if empty? args [ continue ] ; convert string arguments into options, integers or files forall args [ unless string? args/1 [continue] parse args/1 [ "--" to end ( if find all-options args/1 [ args/1: to word! remove/part args/1 2 ] ) | #"%" to end ( if file? tmp: try [load args/1][ change args tmp ] ) | some chars_numbers end (change args to integer! args/1) ;| (change args to string! args/1) ] ] if debug? [?? args] no-eval?: false run-result?: false set-env "NEST_SPEC" none system/options/log/siskin: defaults/verbose options: [ 'test (no-eval?: true) ;-- like normal build command, but there are no evaluations | 'clean (rebuild?: true) ;@@ TODO: could be better used to delete all cache files | 'v (system/options/log/siskin: 1) | 'vv (system/options/log/siskin: 2) | 'vvv (system/options/log/siskin: 3) | 'vvvv (system/options/log/siskin: 4) | 'verbose (system/options/log/siskin: system/options/log/siskin + 1) | 'debug (system/options/log/siskin: 4 debug?: on) | 'quiet (system/options/log/siskin: 0 debug?: off) | 'run (run-result?: on) | 'msvc (force-compiler: @msvc) | 'xcode (force-compiler: @xcode) | 'make (force-compiler: @make) | 'update (update?: on) | 'git-ssh (git-ssh?: on) | 'no-upx (no-upx?: on) | 'gzip (gzip?: on) | 'output set out-file-override: skip ( out-file-override: to-rebol-file out-file-override unless abs-path? out-file-override [ insert out-file-override root-dir ] ) ] ;? args parse args [ any [ ( ;-- reset states if there are more commands in one call ;@@ TODO: may need more additions! rebuild?: false clang?: false run-result?: false update?: false git-ssh?: false force-compiler: none out-file-override: none result-code: 0 ) any options copy ids: some [integer! | file! | string!] ( if all [ out-file-override 1 < length? ids not dir? to-rebol-file out-file-override ][ print-error "Using output override for multiple targets!" break ] forall ids [ out-file: none unless build-target ids/1 [break] if all [ run-result? not no-eval? block? result file? result/name ][ print [as-green "^/Executing:" to-local-file result/name] either find [%.reb %.r3 %.r] suffix? result/name [ ;; result is a Rebol script! ;launch/wait result/name print-warn "Running Rebol scripts is not available from the Builder!" ][ pushd first split-path result/name eval-cmd/no-quit/v to-local-file result/name popd ] ] ] ) | 'list (print-eggs) | 'version (print banner) break | 'help (print help-options-int) break | some options ; these options are for building, but they should not be listed as unknown opt [end (if rebuild? [print-error "The clean option requires some target!"])] | ['q | 'quit] (interactive?: false) | p: 1 skip (print-error ["Unknown command:" as-red mold first p]) ] ] args: none ] :on-error-warn unless interactive? [break] ] popd ] :nest-context [debug?] get-spec: closure/with [ command [integer! file! string!] ][ n: 1 foreach [name spec] nest-spec/eggs [ ;?? name ?? spec if any [ command = n command = name command = select spec 'name ][ unless system/options/quiet [print [as-green "^/Building:" as-red name]] return parse-nest spec copy/deep nest-spec ] ++ n ] none ] :nest-context update-git: function/with [ git [file!] ][ git: to-real-file git if find git-updates git [exit] unless system/options/quiet [print [as-green "Updating GIT:" to-local-file git]] append git-updates git ;; stores this git not to be updated multiple time in one command batch try/with [ pushd git eval-cmd/vv {git pull} popd ] :on-error-throw ] :nest-context update-gits: function/with [ spec [map!] ][ foreach git spec/gits [ update-git get-git-dir git ] ] :nest-context build-target: closure/with [ command [block! integer! file! string!] ][ timestamp: now/time/precise try/with [ unless spec: get-spec command [ print-error ["Command not handled:" as-red mold command] print-failed return false ] if git-update? [update-gits spec] if force-compiler [ switch force-compiler [ @msvc [build-msvc spec exit] @xcode [build-xcode spec exit] @make [build-make spec exit] ] ] try/with [build spec][ print-error system/state/last-error print-failed return false ] ] :on-error-quit true ] :nest-context build-msvc: function/with [ "Build using Microsoft's Visual Studio project" spec [map!] ][ try/with [ spec/eggs: none bat: msvc/make-project/:debug? spec eval-cmd/v [bat] ;? spec file: rejoin [ any [spec/root what-dir] either debug? [%msvc/Debug-][%msvc/Release-] any [select [x64 "x64/" arm64 "ARM64/"] spec/arch "Win32/"] spec/name ] finalize-build spec file ] :on-error-quit ] :nest-context build-xcode: function/with [ "Build using Apple's XCode project" spec [map!] ][ try/with [ spec/eggs: none spec/compiler: 'xcode xcodeproj: xcode/make-project spec if debug? [ ; to get info about xcodeproj: eval-cmd/v ["xcodebuild -list -project " xcodeproj] ; to see settings: eval-cmd/v ["xcodebuild -configuration Release -showBuildSettings -project " xcodeproj] ] ; to build xcodeproj: unless no-eval? [ eval-cmd/v ["xcodebuild -configuration Release -project " xcodeproj " build" either debug? [""][" -quiet"]] finalize-build spec spec/output ] ] :on-error-quit ] :nest-context build-make: function/with [ "Build using GNU makefile" spec [map!] ][ try/with [ spec/eggs: none file: mmake/make-project spec eval-cmd/v ["make -f" file] finalize-build spec to file! spec/name ] :on-error-quit ] :nest-context build: function/with [ "Build using given specification" spec [map!] ][ foreach [k v] defaults [ unless spec/:k [ print-debug ["Using default" k "as" as-red v] spec/:k: v ] ] out-file: any [spec/exe-file spec/name spec/target] if out-file [ out-file: to-rebol-file out-file if abs-path? out-file [ either dir? out-file [ spec/output: out-file out-file: any [spec/exe-file spec/name spec/target] ][ parts: split-path out-file spec/output: parts/1 out-file: parts/2 ] ] ] spec/defines: copy new-line/all sort unique spec/defines true foreach def spec/defines [ ;?? def if any-string? def [expand-env def] ;?? def ] spec/includes: copy new-line/all sort unique spec/includes true foreach inc spec/includes [ expand-env inc ] if block? spec/libraries [ spec/libraries: new-line/all sort unique spec/libraries true ] while [not tail? spec/files][ parts: split-path spec/files/1 spec/files: either find parts/2 #"*" [ ;?? parts remove spec/files wc: wildcard parts/1 parts/2 foreach f wc [ append spec/files join parts/1 second split-path f ] skip spec/files length? wc ][ next spec/files ] ] new-line/all spec/files: head spec/files true ;- check existence of all files (optionaly adding extensions) foreach file spec/files [ unless exists? file [ source: get-file-with-extensions file [%.c %.cpp %.cc %.m] either source [ change file source ][ print-error ["Source file not found: " to-local-file file] ;quit ] ] ] foreach file spec/clean [ unless exists? file [ source: get-file-with-extensions file [%.c %.cpp %.cc %.m] change file source ] ] spec/clean: new-line/all sort intersect spec/files spec/clean true ;src-dir: to-rebol-file preprocess-dirs any [spec/source %""] switch spec/arch [ x86 x86-win32 [ add-flag spec 'm32 ] x64 [ add-flag spec 'm64 ] ] probe-spec spec [ name files clean libraries shared defines includes stack-size cflags cppflags lflags libs compiler bundle entitlements ] ;- prepare libs & flags cflags: spec/cflags cppflags: spec/cppflags lflags: spec/lflags ; stack size if all [ spec/stack-size none? find lflags "-shared" ; don't use stack-size setting when making a shared library ][ case [ windows? [ ;This does not work on Linux! append lflags rejoin either find form spec/compiler "gcc" [ ["-Wl,--stack=" spec/stack-size ] ][ ["-Wl,-stack:0x" skip to-binary spec/stack-size 4]] ] OpenBSD? Linux? [ ;This does not work with Apple's clang! append lflags join "-Wl,-z,stack-size=" spec/stack-size ] macOS? [ append lflags join "-Wl,-stack_size -Wl,0x" skip to-binary spec/stack-size 4 ] ] append lflags #" " ] ; static libraries if block? spec/libraries [ libs: copy "" foreach lib spec/libraries [ ;lib: preprocess-dirs lib clear-extension lib %.lib append libs rejoin either find "/\" last lib [ ["-L" to-local-file lib #" "] ][ ["-l" to-local-file lib #" "]] ] ] ; dynamic libraries dylib-fix: copy [] shared: copy "" if block? spec/shared [ ; include output directory for shared libraries lookup insert shared ajoin ["-L" to-local-file clean-path spec/output #" "] foreach file spec/shared [ ;file: preprocess-dirs file set [dir: file:] split-path file if dir <> %./ [ append shared ajoin ["-L" to-local-file clean-path dir #" "] ] switch system/platform [ Windows [ add-extension file either clang? [%.lib][%.dll] ] macOS Macintosh [ parse file [remove "lib" to end] clear-extension file %.dylib append shared ajoin ["-l" file #" "] continue ;add-extension file %.dylib ;if all [ ; find file #"/" ; rel-path? file ;][ ; append dylib-fix file ;] ] Linux [ parse file [remove "lib" to end] clear-extension file %.so append shared ajoin ["-l" file #" "] continue ] ] ;if rel-path? file [insert file spec/output] append append shared to-local-file file #" " ] ] ; defines defines: make string! 1000 foreach def spec/defines [ append append defines " -D" def ] ;append cflags defines ;append lflags defines ;- defines may be needed in linker phase when processing assembly code! ; frameworks foreach frm spec/frameworks [ set [dir: file:] split-path to file! frm if dir <> %./ [ append lflags ajoin [" -F'" clean-path dir #"'"] ] clear-extension file %.framework append lflags ajoin [" -framework '" file #"'"] ] ; includes includes: make string! 1000 foreach inc spec/includes [ append append includes " -I" to-local-file inc ] append cflags #" " append cppflags #" " append lflags #" " spec/libraries: libs spec/shared: shared if none? spec/arch [ ; try to detect architecture using c flags p1: find/last cflags "-m32 " p2: find/last cflags "-m64 " spec/arch: any [ all [p1 any [none? p2 (index? p1) > (index? p2)] 'x32] all [p2 any [none? p1 (index? p1) < (index? p2)] 'x64] ] ] ;- prepare a directory to hold object files ;? spec/objects if none? spec/objects [ spec/objects: dirize either out-file [ rejoin [ dirize any [spec/temp %tmp/] spec/compiler #"-" spec/arch #"/" normalize-file-name out-file ] ][ any [spec/objects spec/temp %tmp/] ] ] probe-spec spec [ objects libraries shared cflags cppflags lflags arch ] add-env "DEFINES" trim defines add-env "INCLUDES" trim includes add-env "NEST_SPEC" to-local-file clean-path spec/objects/spec.reb either empty? spec/files [ ;; ignore compiler setting if there are no files to be compiled spec/compiler: none ][ ;; creates the dir only if there are any files to be compiled make-dir/deep spec/objects save spec/objects/spec.reb spec ] ;- preprocession phase.. unless empty? spec/pre-build [ print-info "Evaluate pre-build scripts.." eval-code spec spec/pre-build ] have-files?: not all [empty? spec/files empty? spec/assembly] expect-build?: any [spec/script have-files?] unless spec/compiler [ if have-files? [ ;; if there are any files to be compiled, warn that the compiler is unknown print-info "No compiler to use." ] unless out-file [ out-file: spec/script ;; if Rebol preprocessor was used ] unless out-file [ ;; if there is still no expected output... if have-files? [ ;; and there are files to be compiled, than the build failed! print-failed ] ;; else just exit (when target is just a pre-build script with no expected result or set of commands) exit ] ;; the output is still expected... unless abs-path? out-file [ ;; force the out-file to be absolute out-file: clean-path rejoin [spec/output out-file] ] ;; so check if it exists... finalize-build/no-fail spec out-file ;; and exit, because there is no compilation involved exit ] unless have-files? [ print-info "No files to compile." exit ] any [ all [spec/cc any [ exists? cc: spec/cc exists? cc: add-extension copy spec/cc %.exe exists? cc: add-extension copy spec/cc %.cmd ]] cc: locate-tool spec/compiler spec/arch ] if debug? [?? spec/cc ?? cc] unless cc [ print-error ["Compiler not defined or found:" as-red mold spec/compiler] exit ] if debug? [try [eval-cmd/vv/no-quit [cc "--version"]]] cc-dir: first split-path cc any [ all [spec/ar any [ exists? ar: spec/ar exists? ar: add-extension copy spec/ar %.exe ]] all [spec/compiler = 'clang exists? ar: locate-tool 'llvm-ar spec/arch ] exists? ar: locate-tool 'ar spec/arch ar: cc ] if debug? [?? ar] ;- remove objects of files which must be always compiled unless empty? spec/clean [ print-info "Cleaning..." foreach file spec/clean [ file: expand-env copy file target: rejoin [spec/objects force-relative-file file %.o] if debug? [?? target] if exists? target [ ;print [as-green "Removing object:" as-yellow to-local-file target] unless no-eval? [attempt [delete target]] ] ] ] ; delete also temporary object list file (collected during compilation) print-info "Preparing objects dir..." either exists? spec/objects/objects.txt [ ;probe spec/objects/objects.txt unless no-eval? [delete spec/objects/objects.txt] ][ make-dir/deep spec/objects ] ;-- prepare output file name and delete it if already exists print-info "Preparing output file name..." out-file: clean-path rejoin [spec/output out-file] if none? suffix? out-file [ switch system/platform [ Windows [ either find spec/lflags "-shared" [ add-extension out-file %.dll ][ add-extension out-file %.exe] ] macOS Macintosh [ if find spec/lflags "-shared" [ add-extension out-file %.dylib if spec/version [ unless find lflags "-current_version " [ append lflags ajoin ["-current_version " spec/version SP] ] unless find lflags "-compatibility_version " [ append lflags ajoin ["-compatibility_version " spec/version SP] ] ] ] ] Linux [ if find spec/lflags "-shared" [ add-extension out-file %.so ] ] ] ] if spec/bundle [ switch/default system/platform [ macOS [ try/with [prepare-macos-bundle spec] :on-error-throw ] ][ print-warn ["Bundle specified but not supported on this platform:" system/platform] ] ] add-env "_" undirize spec/objects ;tmp-env: either windows? ["%_%"]["${_}"] tmp-env: either windows? ["$_\"]["$_/"] ;?? tmp-env unless ccpp [ any [ all [spec/ccpp any[ exists? ccpp: expand-env copy spec/ccpp exists? ccpp: expand-env rejoin [spec/tools spec/ccpp] ]] all [ tmp: find/last copy cc "gcc" exists? ccpp: head replace tmp "gcc" "g++" ] all [ tmp: find/last copy cc "clang" exists? ccpp: head replace tmp "clang" "clang++" ] ccpp: cc ] ] add-env "CC" cc add-env "CCPP" ccpp if debug? [?? out-file] either exists? out-file [ delete out-file ][ ; make sure to create target directory if needed make-dir/deep first split-path out-file ] ;-- compile each file n: length? spec/files i: 0 if n > 0 [ unless system/options/quiet [ print [lf as-yellow "Compiling" as-green n as-yellow either n = 1 ["file:"]["files:"]] ] ] foreach file spec/files [ i: i + 1 ;file: expand-env copy file ;?? file source-modified: query source: file 'modified unless source-modified [ print-error ["Source file not found: " to-local-file file] print-failed exit ] suffix: suffix? source ;-- not sure if its needed, but why not ;source-type: switch/default suffix [ ; %.m [ "-x objective-c "] ; %.cc [ "-x objective-c "] ; %.c [ "-x c "] ; %.cpp [ "-x c++"] ;][ "" ] source-type: "" compile: "$CC" if cpp?: find cpp-extensions suffix [ needs-cpp-linker?: true compile: "$CCPP" ] target: rejoin [spec/objects force-relative-file file %.o] target-short: rejoin [tmp-env force-relative-file file %.o] p: to integer! round 100 * i / n unless system/options/quiet [ prin rejoin [" [" pad/left p 4 "% ] "] ] either any [ rebuild? none? target-modified: query target 'modified target-modified < source-modified ][ make-dir/deep first split-path target unless system/options/quiet [ print [as-green "Building object:" as-yellow target-short] ] eval-cmd/vvv [ compile ;source-type to-local-file source "-c" cflags either cpp? [cppflags][""] "$DEFINES $INCLUDES" "-o" to-local-file target-short ;-- using environment variable to hold temp location ] ][ unless system/options/quiet [ print ["^[[32mFile up to date^[[0m:" to-local-file target-short] ] ] store-object spec/objects/objects.txt target ] foreach file spec/assembly [ either any [ all [ 'file == query file 'type source: file ] source: get-file-with-extensions file [%.S %.s %.sx] ][ store-object spec/objects/objects.txt to-local-file source ][ print-error ["Assembly file not found: " mold file] ] ] ;- compile resource file if needed if file? spec/resource [ target: rejoin [spec/objects second split-path spec/resource] windres: locate-tool 'windres none eval-cmd/vvv rejoin [ to-local-file windres #" " ;" -v " any [spec/rflags ""] #" " to-local-file spec/resource " -O coff -o " target ] store-object spec/objects/objects.txt target ] archive-only?: find spec/lflags "-archive-only" ;- linking ... if exists? spec/objects/objects.txt [ if not archive-only? [ unless system/options/quiet [ print as-green "^/Linking binary:^/" ] ;append-flag lflags "-dynamiclib" ;probe get-env "CC" eval-cmd/v [ "$CC" ;"-v" "-o" out-file join "@" to-local-file spec/objects/objects.txt lflags "$DEFINES" libs shared ] ] if all [ any [ archive-only? find lflags "-shared" ] ;out-file ; does not have to exist! ][ print as-green "^/Making archive:^/" tmp: split-path out-file replace-extension tmp/2 %.a unless find/part tmp/2 %lib 3 [insert tmp/2 %lib] archive: join tmp/1 tmp/2 delete archive unless ar [ print-error ["AR tool not found!^/Compilation failed!"] exit ] either macOS? [ ;print-error "FIXME: AR utility on macOS does not support input from @ file" ;print-error "Archive file not created." tmp: rejoin [ to-local-file ar " qc " to-local-file archive #" " replace/all read/string spec/objects/objects.txt LF #" " ] eval-cmd/v tmp ][ eval-cmd/v rejoin [to-local-file ar " rcu " to-local-file archive #" " join "@" to-local-file spec/objects/objects.txt ] ] if spec/compiler = 'gcc [ ranlib: locate-tool 'ranlib spec/arch eval-cmd [to-local-file ranlib to-local-file archive] ] ] ] finalize-build spec either archive-only? [archive][out-file] ] :nest-context probe-spec: func[spec [map!] values [block!] /local val data][ foreach key values [ val: spec/:key unless any [ none? val all [series? val empty? val] ][ if block? val [new-line val true] ;; backward compatibility theak... data: [key mold val] if system/version < 3.21.20 [data: reduce data] print-debug format [$0.32 9 ": " $33 ] data ] ] ] preprocess: func [ spec [block! file!] ][ spec: either block? spec [ copy spec ][ load spec ] process-source/only spec 0 spec ] finalize-build: closure/with [spec [map!] file [file! none!] /no-fail][ unless file [return true] if file = spec/script [ ;- special case, where result is just a preprocessed script if 'file = exists? out-file: file [ print-ready return true ] unless no-fail [print-failed] return true ; true, because we don't want any other warning in this case! ] if any [ 'file = exists? out-file: file 'file = exists? out-file: join file %.exe 'file = exists? out-file: join file %.dll ][ ;- output is a result of compilation, so we may sign, strip, compress, etc. if all [macOS? spec/sign <> false][ if any [ ; 1. sign is environment variable... all [ string? spec/sign #"$" = first spec/sign sign: get-env next spec/sign ] ; 2. sign is user defined string string? sign: spec/sign ; 3. try hardcoded environment variable sign: get-env "SISKIN_SIGN_IDENTITY" ][ unless valid-sign-identity? sign [ print-error "Sign identity defined but not found as a valid one!" print-info "Use `security find-identity -v -p codesigning` to list identities." print-info "Store identity in SISKIN_SIGN_IDENTITY environmental variable." sign: none ] ] ] if all [spec/strip not debug?] [ case [ all [macOS? spec/sign <> false not sign][ print-error "Not using requested STRIP as it would invalidate a signature!" print-error "There is no available sign identity to re-sign!" ] force-compiler = @msvc [ print-warn "Not using the STRIP utility for MSVC builds (`/DEBUG:NONE` option used instead)" ] 'else [ try/with [do-strip spec out-file][print-error system/state/last-error] ] ] ] if spec/upx [ try/with [do-upx out-file][print-error system/state/last-error] ] if macOS? [ if sign [ eval-cmd/v combine [ {codesign --sign "} (sign) {" -f} (if spec/entitlements [join " --entitlements " spec/entitlements]) " -o runtime " (out-file) ] ] if app-file [ ;- force Finder to update its cache eval-cmd/v [%touch app-file] ] ;- print info about the output if system/options/log/siskin > 1 [ eval-cmd/v ["file" out-file] eval-cmd/v ["otool -L" out-file] ] ] if file? out-file-override [ prepare-dir @Moving first split-path out-file-override out-file: move-file out-file out-file-override ] if gzip? [ out-file: try/with [gzip-file out-file][ print-error system/state/last-error out-file ;= return original file name ] ] print-ready return true ] unless no-fail [print-failed] false ] :nest-context clone-gits: function/with [ gits [block! url!] ][ unless block? gits [gits: reduce [gits]] if empty? gits [exit] found-git?: false forall gits [ git: first gits branch: all [ any [refinement? gits/2 tuple? gits/2] first gits: next gits ] print-info ["Using git:" as-yellow git] dir: second split-path git if pos: find/last dir %.git [clear pos] unless found-git? [ locate-tool 'git none found-git?: true ] either exists? dir [ if all [found-git? git-update?] [ update-git dir ] ][ cmd: ["git clone" git "--depth 1 --quiet"] if branch [append cmd ["--branch" branch]] res: either find/match git https:// [ eval-cmd/v cmd ][ eval-cmd/no-pipe/v cmd ] ; using no-pipe as it may require user input if res = 0 [ print-info "Project cloned successfuly." ] ] ] ] :nest-context ;convert-scripts: func[ ; action-code ; /local dir result ;][ ; result: copy [] ; parse action-code [any[ ; 'in-dir set dir file! ( ; make-dir/deep dir ; in-dir dir [ ; ; ] ; ; ) ; ]] ;] eval-code: function/with [ spec [map!] code [block!] /local arg1 arg2 p args tmp err act ][ if debug? [ probe what-dir prin "eval-code -> " ?? code ] parse code [any[ 'action set arg1 word! ( act: select spec/actions arg1 either act [ print ["Evaluating action:" as-green arg1] if act/title [ print as-yellow act/title ] eval-code spec act/code ][ print ["** Action not found!:" as-red arg1] ] ) | 'needs set arg1 [word! | block!] ( prep-needs arg1 spec/arch ) | 'in-dir set arg1 file! set arg2 block! ( ;?? arg1 ?? arg2 make-dir/deep arg1 pushd arg1 attempt [eval-code spec arg2] popd ) | 'cmake set arg1 file! set arg2 [string! | none! | none] ( eval-cmd/v ['cmake arg1 arg2] ) | 'do [ set arg1 file! set arg2 [block! | string! | none! | none] ( case [ string? arg2 [ expand-env arg2 ] block? arg2 [ forall arg2 [if string? arg2/1 [ expand-env arg2/1]] ] ] ;try/with [eval-cmd/v [system/options/boot '--script arg1 arg2]] :on-error-warn try/with [do/args arg1 arg2] :on-error-warn ) | set arg1 block! ( try/with [ fn: function/with [spec] code :nest-context fn spec code ] :on-error-warn ) ] | 'preprocess set arg1 file! set arg2 [file! | none! | none] ( arg2: any [arg2 spec/name spec/target arg1] unless abs-path? arg2 [ arg2: clean-path rejoin [spec/output arg2] ] unless spec/script [spec/script: arg2] preprocess-rebol arg1 arg2 ) | 'Rebol2 set val string! (do-rebol2 val) ; | 'Red set val file! ( ; eval-cmd/v [ ; to-local-file any [ expand-env %$RED_CLI %red ] #" " ; to-local-file val ; ] ; ) ; | 'python set val file! ( ; eval-cmd/v [to-local-file any [config/python %python] #" " to-local-file val] ; ) ; | 'msbuild set val file! set args string! ( ; eval-cmd/v rejoin [ ; #"^"" to-local-file expand-env %$MSBUILD #"^"" ; #" " to-local-file val ; #" " args ; ] ; ) | 'call set val [file!] ( if rel-path? val [insert val what-dir] eval-cmd/v join " CALL " to-local-file val ) | 'cmd set dir [file! | none!] set val string! ( ;print ["cmd." mold dir] val: expand-env val if dir [ if not exists? dir [make-dir/deep dir] pushd dir ] foreach line split val lf [ line: trim/head/tail line unless empty? line [ eval-cmd/v line ] ] if dir [popd] ) | 'pushd set val file! (pushd val) | 'popd (popd) | p: 1 skip ( print-error ["Unknown cmd:" as-red mold/flat first p] ) ]] ] :nest-context windows?: does [system/platform = 'Windows] macOS?: does [to logic! find [macOS Macintosh] system/platform] linux?: does [system/platform = 'Linux] openbsd?: does [system/platform = 'OpenBSD] freebsd?: does [system/platform = 'FreeBSD] netbsd?: does [system/platform = 'NetBSD] dragonflybsd?: does [system/platform = 'DragonFlyBSD] haiku?: does [system/platform = 'Haiku] turris?: does [system/platform = 'Turris] posix?: does [to logic! find [linux macos openbsd freebsd netbsd dragonflybsd macintosh haiku turris] system/platform] BSD?: does [to logic! find [macos openbsd freebsd netbsd dragonflybsd] system/platform] print-error: func[err][ sys/log/error 'SISKIN any [err system/state/last-error] ] print-info: func[msg][ sys/log/info 'SISKIN msg ] print-debug: func[msg][ sys/log/debug 'SISKIN msg ] print-more: func[msg][ sys/log/more 'SISKIN msg ] print-warn: func[msg][ sys/log/info 'SISKIN as-purple form either block? msg [reduce msg][msg]] print-bird: does [ prin { ^[[1;31m .-. ^[[1;31m /'v'\ ^[[1;31m (/^[[0;31muOu^[[1;31m\)} ] print-ready: closure/with [][ result: query out-file [name size date] unless result/name [print-failed exit] print-bird prin {^/^[[0;32mâ•�[^[[1mSISKIN^[[0;32m]â•�â•�^[[1;31m"^[[0;32mâ•�^[[1;31m"^[[0;32mâ•�> ^[[1mBuild READY} prin {^/^[[0;32m │} prin {^/^[[0;32m └──────[ FILE ]: ^[[m} prin to-local-file result/name prin {^/^[[0;32m [ SIZE ]: ^[[m} prin result/size prin {^/^[[0;32m [ DATE ]: ^[[m} prin result/date prin {^/^[[0;32m [ TIME ]: ^[[m} prin now/time/precise - timestamp prin "^/^/^[[m" result ] :nest-context print-failed: closure/with [][ result: result-code if result = 0 [result: "output not found!"] print-bird print ajoin [{^/^[[0;31mâ•�[^[[1mSISKIN^[[0;31m]â•�â•�^[[1;31m"^[[0;31mâ•�^[[1;31m"^[[0;31mâ•�> ^[[1mBuild failed (} result {)^[[m}] none ] :nest-context force-relative-file: func[file][ either abs-path? file [next file][file] ] pad: func[ str n /left "Pad the string on left side" /with c [char!] "Pad with char" ][ unless string? str [str: form str] head insert/dup any [all [left str] tail str] any [c #" "] (n - length? str) ] env-chars: charset [#"A" - #"Z" #"a" - #"z" #"_" #"0" - #"9"] expand-env: function [ "Expands possible posix-like system environmental variables (for example $PATH)" value [any-string!] "Input value (modified)" ][ parse value [any [ to #"$" [ s: 1 skip [ #"{" copy var: to #"}" 1 skip | copy var: some env-chars ] e: ( ;?? var if env: get-env var [ if file? value [env: to-rebol-file env] change/part s env e ] ) :e | 1 skip ] ]] value ] as-env: func[val][ ajoin either windows? [ [#"%" val #"%"] ][ ["${" val #"}"]] ] on-error-quit: func[err][ print-error err ;popd quit/return either error? err [err/code][1] ] on-error-throw: func[err][ print-error err do err ] on-error-warn: func[err [error!]][ print err wait 0:0:2 ;ask "Continue?^[[0m" ] attempt: func[code [block!] /local err][ try/with code :on-error-throw ] preprocess-rebol: function/with [ input [file!] output [file!] ][ print-info ["Preprocess Rebol source:" as-green to-local-file input] print-debug ["Preprocessed output: " as-green to-local-file output] set [dir: input:] split-path input pushd dir try/with [ make-dir/deep first split-path output blk: load/header input hdr: take blk process-source blk 0 unless no-eval? [ save/header output blk hdr ] ] :on-error-warn popd ] :nest-context pushd: function [ target [file!] /quiet ][ dir: what-dir if dir <> target [ attempt [target: change-dir target] unless quiet [print-info ["Changed directory to:" as-green to-local-file target]] ] append dirs-stack dir target ] popd: function [ /quiet ][ try/with [ dir: take/last dirs-stack if dir <> what-dir [ change-dir dir unless quiet [print-info ["Changed directory to:" as-green to-local-file what-dir]] ] ] :on-error-warn ] delete: function/with [ "Delete file if exists (ignored on test run)" file [file!] ][ if exists? file [ print-info ["Deleting:" as-green to-local-file file] unless no-eval? [ try/with [lib/delete file] :on-error-throw ] ] ] :nest-context normalize-file-name: func[ name [any-word! any-string! any-path!] /local p ][ name: form name parse name [ some [end | some chars-file | p: (p: change p #"-") :p] ] to file! name ] to-local-file: function [ file [file! string!] /no-quote "Don't quote even when found spaces" ][ file: lib/to-local-file file if all [ not no-quote find file #" " ][ append insert file #"^"" #"^"" ] file ] append-flag: func[flags [string!] flag [string!]][ flag: append trim/tail flag #" " unless find "-`" flag/1 [insert flag #"-"] unless find flags flag [append flags flag] flags ] add-flag: func[dest [map!] flag [any-word! any-string!] /local pos][ if any-string? flag [ expand-env flag ] flag: any [ select [ NSL "-nostdlib" ] flag ;or... ( flag: form flag unless find "-`" flag/1 [insert flag #"-"] flag ) ] either find [ "-mconsole" "-mwindows" "-static" ;-- On systems that support dynamic linking, this overrides -pie and prevents linking with the shared libraries. "-shared" ;-- Produce a shared object which can then be linked with other objects to form an executable. "-nostdlib" "-nodefaultlibs" "-nostartfiles" "-pie" ;-- Produce a dynamically linked position independent executable on commands that support it "-no-pie" ;-- Don’t produce a dynamically linked position independent executable. "-static-pie" ;-- Produce a static position independent executable on commands that support it. "-pthread" ;-- Link with the POSIX threads library. "-rdynamic" ;-- Pass the flag -export-dynamic to the ELF linker, on commands that support it. "-strip-all" "-s" ;-- Remove all symbol table and relocation information from the executable. ;@@ TODO: add more once needed! "-archive-only" ] flag [ switch flag [ "-mconsole" [if pos: find dest/lflags "-mwindows " [remove/part pos 10]] "-mwindows" [if pos: find dest/lflags "-mconsole " [remove/part pos 10]] ] ;linker only flags append-flag dest/lflags flag ][ append-flag dest/cflags flag append-flag dest/lflags flag ] ] eval-cmd: function/with [ cmd /no-pipe /no-quit /log log-file [file!] /v "print info" /vv "print more" /vvv "print debug" /force "evaluate even when no-eval is used" ][ result-code: 0 if block? cmd [ attempt [cmd: reduce cmd] local: copy "" ;?? cmd parse cmd [any [ set val [word!] (append append local val #" ") | set val file! ( val: to-local-file val append append local val #" " ) | set val string! ( append append local expand-env copy val #" " ) | none! ; skip | set val 1 skip (append append local :val #" ") ]] cmd: local ;?? cmd ] case [ vvv [print-more ["EVAL:^[[0;33m" cmd]] vv [print-debug ["EVAL:^[[0;33m" cmd]] v [print-info ["EVAL:^[[0;33m" cmd]] ] cmd: expand-env copy cmd ; there may be case, where evaluation is needed even when no-eval? is true ; for example when just making xcode project without actually trying to build it if all [no-eval? not force] [exit] if log [ if exists? log-file [try [lib/delete log-file]] append cmd rejoin [" > " to-local-file log-file] no-pipe: true ] ;clear err either no-pipe [ result-code: call/wait/shell cmd if all [file? log-file exists? log-file] [ either result-code <> 0 [ print-error read/string log-file ][ print read/string log-file ] delete log-file ] if result-code <> 0 [ if CI? [quit/return 1] ask as-purple "^/Press enter to continue." ] ][ try/with [result-code: call/wait/shell cmd] :print-error if all [ result-code <> 0 not no-quit not interactive? ][ print-failed quit/return result-code ] ] result-code ] :nest-context store-object: func[list [file!] file [file! string!]][ write/append list rejoin [ ;using *nix type of path even on Windows + escaped spaces replace/all to-local-file file #"\" #"/" newline ] ] lib-extension: any [select [Windows %.dll Macintosh %.dylib] system/platform %.so] exe-extension: either windows? [%.exe][%""] has-extension?: func[file ext][ to logic! find/match/last file ext ] add-extension: func[ file [any-string!] ext [any-string!] /local f ][ unless find/match/last file ext [ append file ext ] ] clear-extension: func[file ext /local s][ if all [ s: suffix? file any [none? ext s = ext] ][ clear find/last file s ] file ] replace-extension: func[file ext][ clear-extension file none add-extension file ext file ] get-file-with-extensions: func[ file [file!] ext [block!] /in dir [file!] /local result ][ ;?? file unless dir [dir: %""] if exists? result: rejoin [dir file][ return result ] forall ext [ if exists? result: rejoin [dir file ext/1][ return result ] ] none ] prep-needs: func[ needs [word! block! file!] arch [word! none!] /required /local tool ][ unless block? needs [needs: reduce [needs]] forall needs [ ;prin ["Needs:" as-green pad needs/1 12] either tool: apply :locate-tool [needs/1 arch required] [ ;print ["using:" as-green to-local-file tool] ][ ;print as-red " not found!" if required [ print-error ["Tool not found" as-red needs/1] return false ] ] ] true ] to-abs-dir: func[ "Convert path to Rebol file and apply clean-path/dir on it." path [file! string!] ][ clean-path/dir to-rebol-file path ] abs-path?: func[path][#"/" = first path] rel-path?: func[path][#"/" <> first path] env-paths: none env-paths-init: does [ unless env-paths [ env-paths: split get-env "PATH" either windows? [#";"][#":"] forall env-paths [ change env-paths to-abs-dir env-paths/1 ] new-line/all env-paths true ] ] locate-tool: function/with [ tool [word! any-string!] arch /required "Return NONE if not located" ][ print-debug ["Locating tool:" as-green tool any [arch ""]] tool-file: to file! tool switch/default tool [ clang clang-cl [ clang?: true add-env-path tools: %$LLVM/bin/ ] gcc [ if windows? [ switch arch [ x86 [ add-env-path tools: %$MINGW32/bin/ ] x64 [ add-env-path tools: %$MINGW64/bin/ ] ] ;i686-w64-mingw32-gcc.exe ] ] tcc [ any [ type: exists? tools: expand-env %$TCC type: exists? tools: expand-env %$TCC_HOME ] if type = 'file [ tools: first split-path tools return tools ] ] emcc [ any [ type: exists? tools: expand-env %$EMSCRIPTEN type: exists? tools: expand-env %$TCC_HOME ] ] android-sdk [ if any [ exists? android-sdk: expand-env %$ANDROID_SDK exists? android-sdk: expand-env %$ANDROID_HOME exists? android-sdk: expand-env %$ANDROID_SDK_ROOT exists? android-sdk: expand-env %$HOME/Android/Sdk exists? android-sdk: expand-env %$HOME/Library/Android/sdk android-sdk: none ][ add-env "ANDROID_SDK" android-sdk: dirize android-sdk if build-tools: last wildcard join android-sdk %/build-tools/ "*/" [ add-env "BUILD_TOOLS" build-tools ] return android-sdk ] ] android-ndk [ if any [ all [exists? android-ndk: expand-env %$NDK exists? dirize android-ndk/toolchains] all [exists? android-ndk: expand-env %$ANDROID_NDK exists? dirize android-ndk/toolchains] all [exists? android-ndk: expand-env %$ANDROID_NDK_HOME exists? dirize android-ndk/toolchains] android-ndk: none ][ switch system/platform [ windows [ add-env "OS_NAME" "windows-x86_64" ] linux [ add-env "OS_NAME" "linux-x86_64" ] macos [ add-env "OS_NAME" "darwin-x86_64" ] ] add-env "ANDROID_NDK" android-ndk add-env "NDK" android-ndk ; it seems to be used quite a lot in tutorials add-env "NDK_TOOLCHAIN" join android-ndk %toolchains/llvm/prebuilt/$OS_NAME/ return android-ndk ] ] msbuild [ if all [ tmp: first msvc/vswhere tmp: select tmp 'installationPath ][ ;eval-cmd/vvv rejoin [{"} tmp {\VC\Auxiliary\Build\vcvarsall.bat" } any [arch 'x64]] add-env-path tmp: join to-rebol-file tmp %\MSBuild\Current\Bin\ return tmp ] ] vswhere [ if exists? tmp: expand-env %"${ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" [ return tmp ] ] ][ ;else.. ; make sure that we know env-paths env-paths-init ] ;?? tool ?? tools ; searching in tools, root and PATH directories... foreach dir join reduce [tools root-dir] env-paths [ unless file? dir [continue] if any [ 'file = exists? tool-exe: dir/:tool-file 'file = exists? tool-exe: add-extension dir/:tool-file %.exe 'file = exists? tool-exe: add-extension dir/:tool-file %.cmd 'file = exists? tool-exe: add-extension dir/:tool-file %.bat ][ try [add-env uppercase form to word! tool tool-exe] return tool-exe ] ] either required [none][tool-file] ] :nest-context add-env-path: func[ path [file! string!] ][ ;print-info ["add-env-path:" mold path] env-paths-init if all [ exists? path: to-abs-dir expand-env path not find env-paths path ][ ; adding in front of other paths so it's most likely to be used! insert env-paths path print-info ["Adding PATH:" as-green path] set-env "PATH" rejoin [to-local-file/no-quote path #";" get-env "PATH"] ] ] add-env: func [ key [any-string! any-word!] value [string! file! none!] ][ if file? value [value: to-local-file value] if value [value: expand-env copy value] if value <> get-env key [ ;print ["set.." mold key mold value] set-env key value ] print-info [ "Environment:" as-green ajoin ["${" key #"}"] as-cyan "is" as-green mold value ] ] valid-sign-identity?: function[sign][ out: make string! 1000 all [ 0 = try [call/shell/wait/output {security find-identity -v -p codesigning} out] find out sign print-info "Sign identity is valid." true ] ] prepare-dir: func[tag dir [file! string!]][ dir: dirize dir unless exists? dir [ sys/log/more 'SISKIN [tag "made dir:^[[33m" to-local-file dir] if error? try [make-dir/deep dir][ print ["Cannot make directory: " mold dir] halt ] ] dir ] prepare-macos-bundle: function/with [ spec ][ exe-name: second split-path out-file app-file: clean-path rejoin [spec/output exe-name %.app] contents-dir: app-file/Contents make-dir/deep resources-dir: contents-dir/Resources out-file: append dirize contents-dir/MacOS exe-name if file? ico: select spec/bundle 'icon [ ico-type: suffix? ico ;? ico-type if %.png = ico-type [ ico-dir: rejoin [spec/temp exe-name %.iconset] if exists? ico-dir [try [delete-dir ico-dir]] make-dir/deep ico-dir ;eval-cmd ["cp " ico ico-dir... ;@@ TODO!!! ] if %.iconset = ico-type [ eval-cmd/v ["iconutil -c icns -o " resources-dir/app.icns ico] spec/bundle/icon: "app" ] ] dict: make map! 10 dict/(@CFBundleExecutable): :exe-name Info.plist: { } parse spec/bundle [some [ [ quote id: (key: @CFBundleIdentifier) | quote title: (key: @CFBundleName) | quote version: (key: @CFBundleVersion) | quote copyright: (key: @NSHumanReadableCopyright) | quote icon: (key: @CFBundleIconFile) | set key set-word! ] set val: skip ( dict/:key: :val ) | end | copy val: to [set-word! | end] ( print-warn ["Ignoring bundle specification:" as-red mold/flat :val] ) ]] foreach [key val] dict [ append Info.plist ajoin [ LF TAB :key LF TAB :val ] ] append Info.plist {^/^/} write contents-dir/Info.plist probe Info.plist ] :nest-context move-file: function/with [src [file!] dst [file!]][ if all [dir?/check dst not dir?/check src][ ;; moving a file to another directory keeping its name dst: join dirize dst second split-path src ] unless no-eval? [ print-info ["Moving" as-green src 'to as-green dst] delete dst ;; rename may fail when used across volumes (e.g. under WSL)! try/with [rename src dst][ ;; in that case try manual copy ;; (will fail when src is a directory!) all [ write/binary dst read/binary src delete src ] ] ] dst ] :nest-context siskin-0.22.5/tree/rebol/agg.nest000066400000000000000000000006041525470217700166050ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-AGG nest: %Rebol-AGG/Rebol-AGG.nest siskin-0.22.5/tree/rebol/bcm2835.nest000066400000000000000000000006121525470217700171310ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-BCM2835 nest: %Rebol-BCM2835/Rebol-BCM2835.nest siskin-0.22.5/tree/rebol/blend2d.nest000066400000000000000000000006051525470217700173620ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-Blend2D nest: %Rebol-Blend2D/Rebol-Blend2D.nest siskin-0.22.5/tree/rebol/blurhash.nest000066400000000000000000000006101525470217700176540ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-BlurHash nest: %Rebol-BlurHash/Rebol-BlurHash.nest siskin-0.22.5/tree/rebol/brotli.nest000066400000000000000000000006151525470217700173440ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Brotli nest: %Rebol-Brotli/Rebol-Brotli.nest siskin-0.22.5/tree/rebol/bzip2.nest000066400000000000000000000006121525470217700170740ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Bzip2 nest: %Rebol-Bzip2/Rebol-Bzip2.nest siskin-0.22.5/tree/rebol/c-extension-template.nest000066400000000000000000000001521525470217700221120ustar00rootroot00000000000000;~ Siskin project nest file ~; ;github: @Rebol nest: %Rebol-C-Extension-Template/Rebol-Template.nest siskin-0.22.5/tree/rebol/console.nest000066400000000000000000000006201525470217700175070ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Console nest: %Rebol-Console/Rebol-Console.nest siskin-0.22.5/tree/rebol/deflate.nest000066400000000000000000000006201525470217700174510ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Deflate nest: %Rebol-Deflate/Rebol-Deflate.nest siskin-0.22.5/tree/rebol/docker.nest000066400000000000000000000006071525470217700173210ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Docker nest: %Rebol-Docker/Rebol-Docker.nest siskin-0.22.5/tree/rebol/easing.nest000066400000000000000000000006021525470217700173130ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-Easing nest: %Rebol-Easing/Rebol-Easing.nest siskin-0.22.5/tree/rebol/github.nest000066400000000000000000000006151525470217700173330ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-GitHub nest: %Rebol-GitHub/Rebol-GitHub.nest siskin-0.22.5/tree/rebol/godot.nest000066400000000000000000000006121525470217700171620ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Godot nest: %Rebol-Godot/Rebol-Godot.nest siskin-0.22.5/tree/rebol/google.nest000066400000000000000000000006161525470217700173260ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Google ;nest: %Rebol-Google/Rebol-Google.nest siskin-0.22.5/tree/rebol/httpd.nest000066400000000000000000000006041525470217700171720ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-HTTPd nest: %Rebol-HTTPd/Rebol-HTTPd.nest siskin-0.22.5/tree/rebol/irc.nest000066400000000000000000000005351525470217700166270ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-IRC siskin-0.22.5/tree/rebol/mathpresso.nest000066400000000000000000000006161525470217700202370ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-MathPresso nest: %Rebol-MathPresso/Rebol-MathPresso.nest siskin-0.22.5/tree/rebol/miniaudio.nest000066400000000000000000000006201525470217700200230ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-MiniAudio nest: %Rebol-MiniAudio/Rebol-MiniAudio.nest siskin-0.22.5/tree/rebol/names.nest000066400000000000000000000005371525470217700171570ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Names siskin-0.22.5/tree/rebol/new-rebol-extension.r3000066400000000000000000000030151525470217700213250ustar00rootroot00000000000000Rebol [ title: "Prepare a new Rebol extension project" needs: [thru-cache] ] ext-name1: ask "Name of the extension: " ext-name2: lowercase copy ext-name1 ext-name3: uppercase copy ext-name1 ext-root: join %Rebol- ext-name1 ;; Check if there is already a project with this name. if exists? ext-root [ print as-purple rejoin ["*** There is already a project with name:" as-yellow ext-root] wait-for-key quit ] ;; Make the root directory make-dir ext-root ;; As we will work with binary data later, prepare the names as binary as well. name1: to binary! ext-name1 name2: to binary! ext-name2 name3: to binary! ext-name3 ;; Try to download all template files as a ZIP archive. try/with [ template: load https://github.com/Oldes/Rebol-C-Extension-Template/archive/refs/heads/master.zip ][ print as-purple "*** Failed to download a template sources!" wait-for-key quit ] ;; For each file in the archive, replace all template names in both its path and content. foreach [path data] template [ path: find/tail path #"/" if empty? path [continue] probe path replace/all/case path %template ext-name2 replace/all/case path %Template ext-name1 either dir? path [ make-dir/deep ext-root/:path ][ bin: second data if find [%.md %.r3 %.c %.h %.yml %.nest] suffix? path [ replace/all bin #{54656D706C617465} name1 ;= "Template" replace/all bin #{74656D706C617465} name2 ;= "template" replace/all bin #{54454D504C415445} name3 ;= "TEMPLATE" ] write ext-root/:path :bin ] ]siskin-0.22.5/tree/rebol/opencv.nest000066400000000000000000000006071525470217700173440ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-OpenCV nest: %Rebol-OpenCV/Rebol-OpenCV.nest siskin-0.22.5/tree/rebol/rebol.nest000066400000000000000000000001161525470217700171500ustar00rootroot00000000000000;~ Siskin project nest file ~; github: @Rebol nest: %Rebol/make/rebol3.nest siskin-0.22.5/tree/rebol/siskin.nest000066400000000000000000000113551525470217700173540ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol nest: %Rebol/make/rebol3.nest ;version: 3.18.5 ;; use Rebol version!!! make-siskin: [ product: Siskin ;version: 0.10.4 ;!! Don't use this setting! Because it would be reported like internal Rebol version! strip: on compiler: gcc #if Windows? [upx: on ] #if Posix? [upx: off] #if BSD? [compiler: clang] output: %../Siskin/build/ :include-mezz-ansi :include-codec-ico :include-codec-zip :include-prot-https :common :common-host config: INCLUDE_SHA384 mezz-lib-files: [ %../../Siskin/prebol.reb %../../Siskin/siskin-make.reb %../../Siskin/siskin-msvc.reb %../../Siskin/siskin-xcode.reb %../../Siskin/siskin.reb ; must be last! ] boot-host-files: [ %../../Siskin/siskin-do.reb ] #if Windows? [resource: %../Siskin/siskin.rc] define: REB_EXE define: RAW_MAIN_ARGS define: CUSTOM_STARTUP do %make/pre-make.r3 "$NEST_SPEC" file: %os/host-main.c ;; application entry point ] make-siskin-x86: [:make-siskin :arch-x86 #if windows? [target: x86-win32]] make-siskin-x64: [:make-siskin :arch-x64 #if windows? [target: x64-win32]] make-siskin-armv6: [:make-siskin :arch-armv6] make-siskin-armv7: [:make-siskin :arch-armv7] make-siskin-arm64: [:make-siskin :arch-arm64] #if Linux? [ cross-haiku-x86: [ compiler: %/tools/cross-tools-x86/bin/i586-pc-haiku-gcc library: %/system/lib/ flag: "--sysroot=/tools/cross-tools-x86/sysroot" :target-haiku :make-siskin-x86 ] cross-haiku-x64: [ compiler: %/tools/cross-tools-x86_64/bin/x86_64-unknown-haiku-gcc library: %/system/lib/ flag: "--sysroot=/tools/cross-tools-x86_64/sysroot" :target-haiku :make-siskin-x64 ] ] eggs: only [ "Preprocess siskin.r3" [ name: %siskin.r3 output: %../Siskin/build/ preprocess %../Siskin/siskin-pr.reb ;; because by default we are in Rebol directory! ] #if Windows? [ "Siskin x86" [ name: %siskin-windows-x86 :target-windows :make-siskin-x86 ] "Siskin x86_64" [ name: %siskin-windows-x86_64 :target-windows :make-siskin-x64 ] "Siskin arm64" [ name: %siskin-windows-arm64 :target-windows :make-siskin-arm64 upx: off ] ] #if Linux? [ "Siskin x86" [ name: %siskin-linux-x86 :target-linux :make-siskin-x86 ] "Siskin x86_64" [ name: %siskin-linux-x86_64 :target-linux :make-siskin-x64 ] "Siskin armv6" [ name: %siskin-linux-armv6 :target-linux :make-siskin-armv6 ] "Siskin armv7" [ name: %siskin-linux-armv7 :target-linux :make-siskin-armv7 ] "Siskin aarch64" [ name: %siskin-linux-aarch64 :target-linux :make-siskin-arm64 ] "Siskin x86_64 static" [ ;@@ Needs: sudo apt install musl-tools name: %siskin-linux-x86_64-static :target-linux :make-siskin-x64 :static-musl ] ;-- Haiku cross-compilation from a Docker image.. ;@@ https://hub.docker.com/r/haiku/cross-compiler/tags ;@@ docker.io/oldes/rebol-dev:haiku-x86 "Cross-compile Siskin for Haiku x86" [ name: %siskin-haiku-x86 :cross-haiku-x86 ] ;@@ docker.io/oldes/rebol-dev:haiku-x64 "Cross-compile Siskin for Haiku x86_64" [ name: %siskin-haiku-x86_64 :cross-haiku-x64 ] ] #if macOS? [ "Siskin x86" [ name: %siskin-macos-x86 :target-macos :make-siskin-x86 ] "Siskin x86_64" [ name: %siskin-macos-x86_64 :target-macos :make-siskin-x64 ] "Siskin aarch64" [ name: %siskin-macos-aarch64 :target-macos :make-siskin-arm64 ] ] #if OpenBSD? [ "Siskin x86_64" [ name: %siskin-openbsd-x86_64 :target-openbsd :make-siskin-x64 ] ] #if FreeBSD? [ "Siskin x86_64" [ name: %siskin-freebsd-x86_64 :target-freebsd :make-siskin-x64 ] ] #if NetBSD? [ "Siskin x86_64" [ name: %siskin-netbsd-x86_64 :target-netbsd :make-siskin-x64 ] ] #if DragonFlyBSD? [ "Siskin x86_64" [ name: %siskin-dragonflybsd-x86_64 :target-dragonflybsd :make-siskin-x64 ] ] #if Haiku? [ "Siskin x86" [ name: %siskin-haiku-x86 :target-haiku :make-siskin-x86 ] "Siskin x86_64" [ name: %siskin-haiku-x86_64 :target-haiku :make-siskin-x64 ] ] #if Turris? [ "Siskin armv7" [ name: %siskin-turris-armv7 :target-turris :make-siskin-armv7 ] ] ] siskin-0.22.5/tree/rebol/sokol.nest000066400000000000000000000006131525470217700171760ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= ;github: Oldes/Rebol-Sokol nest: %Rebol-Sokol/Rebol-Sokol.nest siskin-0.22.5/tree/rebol/speak.nest000066400000000000000000000006121525470217700171510ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Speak nest: %Rebol-Speak/Rebol-Speak.nest siskin-0.22.5/tree/rebol/spotify.nest000066400000000000000000000005471525470217700175520ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Spotify siskin-0.22.5/tree/rebol/sqlite.nest000066400000000000000000000006021525470217700173460ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-SQLite nest: %Rebol-SQLite/Rebol-SQLite.nest siskin-0.22.5/tree/rebol/triangulate.nest000066400000000000000000000006211525470217700203650ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-Triangulate nest: %Rebol-Triangulate/Rebol-Triangulate.nest siskin-0.22.5/tree/rebol/webdriver.nest000066400000000000000000000005431525470217700200420ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-WebDriver siskin-0.22.5/tree/rebol/webp.nest000066400000000000000000000006011525470217700170010ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-WebP nest: %Rebol-WebP/Rebol-WebP.nest siskin-0.22.5/tree/rebol/websocket.nest000066400000000000000000000005431525470217700200370ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-WebSocket siskin-0.22.5/tree/rebol/zlib-ng.nest000066400000000000000000000006201525470217700174070ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Zlib-ng nest: %Rebol-Zlib-ng/Rebol-Zlib-ng.nest siskin-0.22.5/tree/rebol/zlib.nest000066400000000000000000000005741525470217700170150ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @Rebol-Zlib nest: %Rebol-Zlib/Rebol-Zlib.nest siskin-0.22.5/tree/rebol/zstd.nest000066400000000000000000000006071525470217700170360ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: Oldes/Rebol-Zstd nest: %Rebol-Zstd/Rebol-Zstd.nest siskin-0.22.5/tree/red/000077500000000000000000000000001525470217700146235ustar00rootroot00000000000000siskin-0.22.5/tree/red/.gitignore000066400000000000000000000000321525470217700166060ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/red/red.nest000066400000000000000000000016651525470217700163000ustar00rootroot00000000000000;~ Siskin project nest file ~; github: red/red #if Windows? [ set RED_CLI_TARGET: "MSDOS" set RED_GUI_TARGET: "Windows" set EXE: ".exe" upx: on strip: on ] #if macOS? [ set RED_CLI_TARGET: "Darwin" set RED_GUI_TARGET: "macOS" set EXE: "" ] #if Linux? [ set RED_CLI_TARGET: "Linux" set RED_GUI_TARGET: "Linux-GTK" set EXE: "" ] eggs: [ "Red CLI console" [ name: %console Rebol2 { red/red.r -r -t $RED_CLI_TARGET red/environment/console/CLI/console.red } ] "Red CLI console (debug)" [ name: %console Rebol2 { red/red.r -r -d -t $RED_CLI_TARGET red/environment/console/CLI/console.red -o red-cli-dbg$EXE } ] "Red GUI console" [ name: %gui-console Rebol2 { red/red.r -r -t $RED_GUI_TARGET red/environment/console/GUI/gui-console.red } ] "Red GUI console (debug)" [ name: %gui-console Rebol2 { red/red.r -r -d -t $RED_GUI_TARGET red/environment/console/GUI/gui-console.red } ] ] siskin-0.22.5/tree/sokol/000077500000000000000000000000001525470217700152005ustar00rootroot00000000000000siskin-0.22.5/tree/sokol/.gitignore000066400000000000000000000000371525470217700171700ustar00rootroot00000000000000/* !/.gitignore !/*.nest !/*.r3siskin-0.22.5/tree/sokol/Sokol.nest000066400000000000000000000646251525470217700171770ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= name: "Sokol" github: floooh/sokol github: floooh/sokol-samples github: floooh/sokol-tools-bin ;github: floooh/cimgui-sokol-starterkit ;github: floooh/libmodplug ;github: ocornut/imgui github: floooh/dcimgui ;github: guillaumeblanc/ozz-animation strip: true arch: x64 temp-dir: %tmp/ output: %bin/ compiler: clang #if Windows? [define: _CRT_SECURE_NO_WARNINGS] #if Posix? [ cppflag: "-std=c++14" ] include: %sokol/ flags: [ ;-mwindows ;no console - using windows subsystem ;-municode ] ;compiler: clang common-glfw: [ files: [ %sokol-samples/glfw/flextgl/flextGL ] includes: [ %../glfw/glfw/include/ ] ;libs: [%kernel32 %msvcrt %user32] libs: [ %opengl32 %../glfw/release-x64/ %glfw3 %gdi32 ] ;defines: [WIN32] ;flags: [-mwindows] defines: [ USE_GLFW ; GLFW_DLL ] ] common-imgui: [ include: %dcimgui/src/ ;#if Windows? [ ; compiler: x86_64-w64-mingw32-g++ ;] files: [ %dcimgui/src/imgui.cpp %dcimgui/src/imgui_draw.cpp %dcimgui/src/imgui_tables.cpp %dcimgui/src/imgui_widgets.cpp ] lflag: "-lstdc++" ;cflags: [-fno-threadsafe-statics] ;cflags: [-fpermissive] ] common-cimgui: [ :common-imgui files: [ %dcimgui/src/imgui_demo.cpp %dcimgui/src/cimgui.cpp ] ] common-imgui-dock: [ include: %dcimgui/src-docking/ ;#if Windows? [ ; compiler: x86_64-w64-mingw32-g++ ;] files: [ %dcimgui/src-docking/imgui.cpp %dcimgui/src-docking/imgui_draw.cpp %dcimgui/src-docking/imgui_tables.cpp %dcimgui/src-docking/imgui_widgets.cpp ;%dcimgui/src-docking/cimgui.cpp ] lflag: "-lstdc++" ;cflags: [-fno-threadsafe-statics] ;cflags: [-fpermissive] ] common-dbgui: [ :common-imgui ;compiler: gcc file: %sokol-samples/libs/dbgui/dbgui.cc defines: [USE_DBG_UI] ] common-basisu: [ #if Windows? [ compiler: clang ] files: [ ;%sokol-samples/libs/basisu/basisu_transcoder.cpp %sokol-samples/libs/basisu/sokol_basisu.cpp ] include: [ %sokol-samples/libs/basisu/ ] defines: [BASISD_SUPPORT_BC7=0] ] common-d3d11: [ files: [ %sokol-samples/d3d11/d3d11entry.c ] includes: [ ;Official mingw distro seems not to be up to date ;%/x/MingW/mingw-w64-headers/direct-x/include/ ;Headers above downloaded from: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tarball?path=/mingw-w64-headers ] libs: [%D3D11 %d3dx11_43 %uuid %d3dcompiler_43] defines: [USE_D3D11] ] common-emsc: [ compiler: emcc bin-extension: html flags: only [-Os] lflags: [ {-s USE_WEBGL2=1 -s FULL_ES3=1} {-s WASM=1} {--closure 1} {-s "MALLOC='emmalloc'"} ;EMSCRIPTEN_USE_EMMALLOC ] strip: off ] common-spine: [ files: [ %sokol-samples/libs/spine-c/src/spine/Animation.c %sokol-samples/libs/spine-c/src/spine/AnimationState.c %sokol-samples/libs/spine-c/src/spine/AnimationStateData.c %sokol-samples/libs/spine-c/src/spine/Array.c %sokol-samples/libs/spine-c/src/spine/Atlas.c %sokol-samples/libs/spine-c/src/spine/AtlasAttachmentLoader.c %sokol-samples/libs/spine-c/src/spine/Attachment.c %sokol-samples/libs/spine-c/src/spine/AttachmentLoader.c %sokol-samples/libs/spine-c/src/spine/Bone.c %sokol-samples/libs/spine-c/src/spine/BoneData.c %sokol-samples/libs/spine-c/src/spine/BoundingBoxAttachment.c %sokol-samples/libs/spine-c/src/spine/ClippingAttachment.c %sokol-samples/libs/spine-c/src/spine/Color.c %sokol-samples/libs/spine-c/src/spine/Debug.c %sokol-samples/libs/spine-c/src/spine/Event.c %sokol-samples/libs/spine-c/src/spine/EventData.c %sokol-samples/libs/spine-c/src/spine/extension.c %sokol-samples/libs/spine-c/src/spine/IkConstraint.c %sokol-samples/libs/spine-c/src/spine/IkConstraintData.c %sokol-samples/libs/spine-c/src/spine/Json.c %sokol-samples/libs/spine-c/src/spine/MeshAttachment.c %sokol-samples/libs/spine-c/src/spine/PathAttachment.c %sokol-samples/libs/spine-c/src/spine/PathConstraint.c %sokol-samples/libs/spine-c/src/spine/PathConstraintData.c %sokol-samples/libs/spine-c/src/spine/PhysicsConstraint.c %sokol-samples/libs/spine-c/src/spine/PhysicsConstraintData.c %sokol-samples/libs/spine-c/src/spine/PointAttachment.c %sokol-samples/libs/spine-c/src/spine/RegionAttachment.c %sokol-samples/libs/spine-c/src/spine/Sequence.c %sokol-samples/libs/spine-c/src/spine/Skeleton.c %sokol-samples/libs/spine-c/src/spine/SkeletonBinary.c %sokol-samples/libs/spine-c/src/spine/SkeletonBounds.c %sokol-samples/libs/spine-c/src/spine/SkeletonClipping.c %sokol-samples/libs/spine-c/src/spine/SkeletonData.c %sokol-samples/libs/spine-c/src/spine/SkeletonJson.c %sokol-samples/libs/spine-c/src/spine/Skin.c %sokol-samples/libs/spine-c/src/spine/Slot.c %sokol-samples/libs/spine-c/src/spine/SlotData.c %sokol-samples/libs/spine-c/src/spine/TransformConstraint.c %sokol-samples/libs/spine-c/src/spine/TransformConstraintData.c %sokol-samples/libs/spine-c/src/spine/Triangulator.c %sokol-samples/libs/spine-c/src/spine/VertexAttachment.c ] include: %sokol-samples/libs/spine-c/include/ file: %sokol-samples/libs/stb/stb_image.c file: %sokol-samples/libs/util/fileutil.c ] common-modplug: [ files: [ %libmodplug/src/sndmix.cpp %libmodplug/src/sndfile.cpp %libmodplug/src/snd_fx.cpp %libmodplug/src/snd_flt.cpp %libmodplug/src/snd_dsp.cpp %libmodplug/src/fastmix.cpp %libmodplug/src/mmcmp.cpp %libmodplug/src/load_xm.cpp %libmodplug/src/load_wav.cpp %libmodplug/src/load_umx.cpp %libmodplug/src/load_ult.cpp %libmodplug/src/load_stm.cpp %libmodplug/src/load_s3m.cpp %libmodplug/src/load_ptm.cpp %libmodplug/src/load_okt.cpp %libmodplug/src/load_mtm.cpp %libmodplug/src/load_mod.cpp %libmodplug/src/load_med.cpp %libmodplug/src/load_mdl.cpp %libmodplug/src/load_it.cpp %libmodplug/src/load_far.cpp %libmodplug/src/load_dsm.cpp %libmodplug/src/load_dmf.cpp %libmodplug/src/load_dbm.cpp %libmodplug/src/load_ams.cpp %libmodplug/src/load_amf.cpp %libmodplug/src/load_669.cpp %libmodplug/src/load_j2b.cpp %libmodplug/src/load_mt2.cpp %libmodplug/src/load_psm.cpp %libmodplug/src/load_abc.cpp %libmodplug/src/load_mid.cpp %libmodplug/src/load_pat.cpp %libmodplug/src/modplug.cpp ] include: %libmodplug/src/ include: %libmodplug/src/libmodplug/ ;define: MODPLUG_BUILD=1 ] target-arm64: [ arch: arm64 ;flags: ["-arch arm64"] flags: "-target arm64-apple-darwin" define: _FILE_OFFSET_BITS=64 define: __LP64__ ; has long (integer) 64 bits define: __arm64__ define: TO_OSX_X64 ] common-sapp: [ includes: [ %sokol-samples/libs/sokol/ %sokol-samples/libs/ %sokol/util/ ;%tmp/glsl/ ] #if Windows? [ file: %sokol-samples/libs/sokol/sokol.c includes: [ %tmp/hlsl5/ ;Official mingw distro seems not to be up to date ;%/x/MingW/mingw-w64-headers/direct-x/include/ ;Headers above downloaded from: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tarball?path=/mingw-w64-headers ] libs: [%D3D11 %uuid %Ole32] ;%d3dx11_43 %d3dcompiler_43 defines: [ SOKOL_D3D11 SOKOL_HLSL5 _WIN32_WINNT=0x0600 ] flags: [-mwindows] ] #if macOS? [ file: %sokol-samples/libs/sokol/sokol.m defines: [ SOKOL_METAL ] includes: [ %tmp/metal_macos/ ] :target-arm64 frameworks: [ AudioToolbox CoreFoundation CoreGraphics QuartzCore Metal MetalKit AppKit ] ] ] ozz-anim: [ file: %sokol-samples/libs/ozzanim/src/ozz_animation.cc file: %sokol-samples/libs/ozzanim/src/ozz_base.cc file: %sokol-samples/libs/ozzanim/src/mesh.cc include: %sokol-samples/libs/ozzanim/include/ file: %sokol-samples/libs/ozzutil/ozzutil.cc include: %sokol-samples/libs/ozzutil/ ] file-util: [ include: %sokol-samples/libs/util/ #either macOS? [ file: %sokol-samples/libs/util/fileutil_osx.m ][ file: %sokol-samples/libs/util/fileutil.c ] ] eggs: [ ;; "Sokol WebAssembly - Texture array" [ ;; :common-emsc ;; name: %wasm/arraytex ;; file: %sokol-samples/html5/arraytex-emsc.c ;; ] ;; "Sokol WebAssembly - Blend" [ ;; :common-emsc ;; name: %wasm/blend ;; file: %sokol-samples/html5/blend-emsc.c ;; ] ;; "Sokol WebAssembly - Clear" [ ;; :common-emsc ;; name: %wasm/clear ;; file: %sokol-samples/html5/clear-emsc.c ;; ] ;; "Sokol WebAssembly - Cube" [ ;; :common-emsc ;; name: %wasm/cube ;; file: %sokol-samples/html5/cube-emsc.c ;; ] ;; "Sokol WebAssembly - updating texture per-frame with CPU generated data" [ ;; :common-emsc ;; name: %wasm/dyntex ;; file: %sokol-samples/html5/dyntex-emsc.c ;; ] ;; "Sokol WebAssembly - injecting native GL buffer and image resources" [ ;; :common-emsc ;; name: %wasm/inject ;; file: %sokol-samples/html5/inject-emsc.c ;; ] ;; "Sokol WebAssembly - Instanced rendering, static geometry vertex- and index-buffers, dynamically updated instance-data buffer" [ ;; :common-emsc ;; name: %wasm/instancing ;; file: %sokol-samples/html5/instancing-emsc.c ;; ] ;; "Sokol WebAssembly - Test mipmapping behaviour" [ ;; :common-emsc ;; name: %wasm/mipmap ;; file: %sokol-samples/html5/mipmap-emsc.c ;; ] ;; "Sokol WebAssembly - Multiple-render-target sample" [ ;; :common-emsc ;; name: %wasm/mrt ;; file: %sokol-samples/html5/mrt-emsc.c ;; ] ;; "Sokol WebAssembly - Simple offscreen rendering" [ ;; :common-emsc ;; name: %wasm/offscreen ;; file: %sokol-samples/html5/offscreen-emsc.c ;; ] ;; "Sokol WebAssembly - Indexed drawing, explicit vertex attr locations" [ ;; :common-emsc ;; name: %wasm/quad ;; file: %sokol-samples/html5/quad-emsc.c ;; ] ;; "Sokol WebAssembly - Textured cube" [ ;; :common-emsc ;; name: %wasm/texcube ;; file: %sokol-samples/html5/texcube-emsc.c ;; ] ;; "Sokol WebAssembly - Triangle" [ ;; :common-emsc ;; name: %wasm/triangle ;; file: %sokol-samples/html5/triangle-emsc.c ;; ] ;; ;; ;; ;; "Sokol D3D11 - Texture array" [ ;; name: %d3d11-arraytex ;; file: %sokol-samples/d3d11/arraytex-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Binshader - Using HLSL shader bytecode with D3D11 backend." [ ;; name: %d3d11-binshader ;; file: %sokol-samples/d3d11/binshader-d3d11.c ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Blend" [ ;; name: %d3d11-blend ;; file: %sokol-samples/d3d11/blend-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Render separate geometries in vertex- and index-buffers with buffer offsets" [ ;; name: %d3d11-bufferoffsets ;; file: %sokol-samples/d3d11/bufferoffsets-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Clear" [ ;; name: %d3d11-clear ;; file: %sokol-samples/d3d11/clear-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Cube" [ ;; name: %d3d11-cube ;; file: %sokol-samples/d3d11/cube-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - updating texture per-frame with CPU generated data" [ ;; name: %d3d11-dyntex ;; file: %sokol-samples/d3d11/dyntex-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - injecting native GL buffer and image resources" [ ;; name: %d3d11-inject ;; file: %sokol-samples/d3d11/inject-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Instanced rendering, static geometry vertex- and index-buffers, dynamically updated instance-data buffer" [ ;; name: %d3d11-instancing ;; file: %sokol-samples/d3d11/instancing-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Test mipmapping behaviour" [ ;; name: %d3d11-mipmap ;; file: %sokol-samples/d3d11/mipmap-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Multiple-render-target sample" [ ;; name: %d3d11-mrt ;; file: %sokol-samples/d3d11/mrt-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Simple offscreen rendering" [ ;; name: %d3d11-offscreen ;; file: %sokol-samples/d3d11/offscreen-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Indexed drawing, explicit vertex attr locations" [ ;; name: %d3d11-quad ;; file: %sokol-samples/d3d11/quad-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Textured cube" [ ;; name: %d3d11-texcube ;; file: %sokol-samples/d3d11/texcube-d3d11 ;; :common-d3d11 ;; ] ;; "Sokol D3D11 - Triangle" [ ;; name: %d3d11-triangle ;; file: %sokol-samples/d3d11/triangle-d3d11 ;; :common-d3d11 ;; ] ;; ;; ;; "Sokol GLFW - Texture array" [ ;; name: %glfw-arraytex ;; file: %sokol-samples/glfw/arraytex-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Blend" [ ;; name: %glfw-blend ;; file: %sokol-samples/glfw/blend-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Render separate geometries in vertex- and index-buffers with buffer offsets" [ ;; name: %glfw-bufferoffsets ;; file: %sokol-samples/glfw/bufferoffsets-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Clear" [ ;; name: %glfw-clear ;; file: %sokol-samples/glfw/clear-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Cube" [ ;; name: %glfw-cube ;; file: %sokol-samples/glfw/cube-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - updating texture per-frame with CPU generated data" [ ;; name: %glfw-dyntex ;; file: %sokol-samples/glfw/dyntex-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - injecting native GL buffer and image resources" [ ;; name: %glfw-inject ;; file: %sokol-samples/glfw/inject-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Instanced rendering, static geometry vertex- and index-buffers, dynamically updated instance-data buffer" [ ;; name: %glfw-instancing ;; file: %sokol-samples/glfw/instancing-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Test mipmapping behaviour" [ ;; name: %glfw-mipmap ;; file: %sokol-samples/glfw/mipmap-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Multiple-render-target sample" [ ;; name: %glfw-mrt ;; file: %sokol-samples/glfw/mrt-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - How to use sokol-gfx with multiple GLFW windows and GL contexts." [ ;; name: %glfw-multiwindow ;; file: %sokol-samples/glfw/multiwindow-glfw.c ;; :common-glfw ;; ] ;; "Sokol GLFW - noninterleaved - How to use non-interleaved vertex data" [ ;; name: %glfw-noninterleaved ;; file: %sokol-samples/glfw/noninterleaved-glfw.c ;; :common-glfw ;; ] ;; "Sokol GLFW - Simple offscreen rendering" [ ;; name: %glfw-offscreen ;; file: %sokol-samples/glfw/offscreen-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Indexed drawing, explicit vertex attr locations" [ ;; name: %glfw-quad ;; file: %sokol-samples/glfw/quad-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Textured cube" [ ;; name: %glfw-texcube ;; file: %sokol-samples/glfw/texcube-glfw ;; :common-glfw ;; ] ;; "Sokol GLFW - Triangle" [ ;; name: %glfw-triangle ;; file: %sokol-samples/glfw/triangle-glfw ;; :common-glfw ;; ] ;; ;; "Test triangle D3D11" [ ;; name: %test-triangle-d3d11 ;; file: %src/triangle.c ;; includes: [%src/] ;; :common-d3d11 ;; ] ;; "Test triangle GLFW" [ ;; name: %test-triangle-glfw ;; file: %src/triangle ;; includes: [%src/] ;; :common-glfw ;; ] "SAPP Arraytex" [ :common-sapp name: %sapp-arraytex file: %sokol-samples/sapp/arraytex-sapp.c ] "SAPP Basisu - demo of how to use Basis Universal textures" [ :common-sapp name: %sapp-basisu file: %sokol-samples/sapp/basisu-sapp.c file: %sokol-samples/libs/basisu/sokol_basisu.cpp ] "SAPP Blend" [ :common-sapp name: %sapp-blend file: %sokol-samples/sapp/blend-sapp.c ] "SAPP Blend-op" [ :common-sapp name: %sapp-blend-op file: %sokol-samples/sapp/blend-op-sapp.c ] "SAPP Bufferoffsets" [ :common-sapp name: %sapp-bufferoffsets file: %sokol-samples/sapp/bufferoffsets-sapp.c ] "SAPP cGLTF - A simple(!) GLTF viewer" [ :common-sapp :common-basisu name: %sapp-cgltf file: %sokol-samples/libs/stb/stb_image.c file: %sokol-samples/sapp/cgltf-sapp.c file: %sokol-samples/libs/util/fileutil.c ] "SAPP Clear" [ :common-sapp name: %sapp-clear file: %sokol-samples/sapp/clear-sapp.c ] "SAPP ComputeBoits" [ :common-sapp :common-cimgui name: %sapp-computeboids file: %sokol-samples/sapp/computeboids-sapp.c ] "SAPP Cube" [ :common-sapp name: %sapp-cube file: %sokol-samples/sapp/cube-sapp.c ] "SAPP Cubemaprt JPEG" [ :common-sapp name: %sapp-cubemaprt-jpeg file: %sokol-samples/libs/util/fileutil.c file: %sokol-samples/libs/stb/stb_image.c file: %sokol-samples/sapp/cubemap-jpeg-sapp.c ] "SAPP Cubemaprt" [ :common-sapp name: %sapp-cubemaprt file: %sokol-samples/sapp/cubemaprt-sapp.c ] "SAPP Cursor" [ :common-sapp :common-cimgui name: %sapp-cursor file: %sokol-samples/sapp/cursor-sapp.cc ] "SAPP Custom resolve" [ :common-sapp :common-cimgui name: %sapp-customresolve file: %sokol-samples/sapp/customresolve-sapp.c ] "SAPP Debugtext-context - Demonstrate rendering to offscreen render targets with contexts." [ :common-sapp name: %sapp-debugtext-context file: %sokol-samples/sapp/debugtext-context-sapp.c ] "SAPP Debugtext-layers - Demonstrates layered rendering" [ :common-sapp name: %sapp-debugtext-layers file: %sokol-samples/sapp/debugtext-layers-sapp.c ] "SAPP Debugtext-printf - Simple text rendering with sokol_debugtext.h, formatting, tabs, etc..." [ :common-sapp name: %sapp-debugtext-printf file: %sokol-samples/sapp/debugtext-printf-sapp.c ] "SAPP Debugtext - Text rendering with sokol_debugtext.h, test builtin fonts." [ :common-sapp name: %sapp-debugtext file: %sokol-samples/sapp/debugtext-sapp.c ] "SAPP Debugtext-userfont - render with user-provided font data (Atari 400 ROM extract)" [ :common-sapp name: %sapp-debugtext-userfont file: %sokol-samples/sapp/debugtext-userfont-sapp.c ] "SAPP DrawCall Performance" [ :common-sapp :common-cimgui name: %sapp-drawcallperf file: %sokol-samples/sapp/drawcallperf-sapp.c ] "SAPP Droptest - Test drag'n'drop file loading." [ :common-sapp :common-cimgui name: %sapp-droptest file: %sokol-samples/sapp/droptest-sapp.c ] "SAPP Dyntex - Update dynamic texture with CPU-generated data each frame" [ :common-sapp name: %sapp-dyntex file: %sokol-samples/sapp/dyntex-sapp.c ] "SAPP Dyntex3D - Update dynamic 3D texture with CPU-generated data each frame" [ :common-sapp :common-cimgui name: %sapp-dyntex3d file: %sokol-samples/sapp/dyntex3d-sapp.c ] "SAPP Events" [ :common-sapp :common-imgui name: %sapp-events file: %sokol-samples/sapp/events-sapp.cc flags: [-mconsole] #if Windows? [library: %gdi32] ] "SAPP Fontstash" [ :common-sapp name: %sapp-fontstash file: %sokol-samples/sapp/fontstash-sapp.c file: %sokol-samples/libs/util/fileutil.c ] "SAPP Fontstash layers" [ :common-sapp name: %sapp-fontstash-layers file: %sokol-samples/sapp/fontstash-layers-sapp.c file: %sokol-samples/libs/util/fileutil.c ] "SAPP Icon" [ :common-sapp name: %sapp-icon file: %sokol-samples/sapp/icon-sapp.c ] "SAPP ImageBlur" [ :common-sapp :common-cimgui name: %sapp-imageblur file: %sokol-samples/sapp/imageblur-sapp.c file: %sokol-samples/libs/util/fileutil.c file: %sokol-samples/libs/stb/stb_image.c ] "SAPP imGui dock" [ :common-sapp :common-imgui-dock name: %sapp-imgui-dock file: %sokol-samples/sapp/imgui-dock-sapp.cc file: %dcimgui/src-docking/imgui_demo.cpp ] "SAPP imGui hiDPI" [ :common-sapp :common-imgui name: %sapp-imgui-highdpi file: %sokol-samples/sapp/imgui-highdpi-sapp.cc file: %dcimgui/src/imgui_demo.cpp ] "SAPP imGui images - How to use sokol-gfx images and sampler with Dear ImGui" [ :common-sapp :common-cimgui name: %sapp-imgui-images file: %sokol-samples/sapp/imgui-images-sapp.c ] "SAPP imGui" [ :common-sapp :common-imgui name: %sapp-imgui file: %sokol-samples/sapp/imgui-sapp.cc file: %dcimgui/src/imgui_demo.cpp ] "SAPP imGui UserCallback" [ :common-sapp :common-cimgui name: %sapp-imgui-usercallback file: %sokol-samples/sapp/imgui-usercallback-sapp.c ] "SAPP Instancing" [ :common-sapp name: %sapp-instancing file: %sokol-samples/sapp/instancing-sapp.c ] "SAPP Instancing compute" [ :common-sapp name: %sapp-instancing-compute file: %sokol-samples/sapp/instancing-compute-sapp.c ] "SAPP Instancing pull" [ :common-sapp name: %sapp-instancing-pull file: %sokol-samples/sapp/instancing-pull-sapp.c ] "SAPP LayerRender" [ :common-sapp name: %sapp-layerrender file: %sokol-samples/sapp/layerrender-sapp.c ] "SAPP Load PNG" [ :common-sapp name: %sapp-loadpng file: %sokol-samples/sapp/loadpng-sapp.c file: %sokol-samples/libs/stb/stb_image.c file: %sokol-samples/libs/util/fileutil.c ] "SAPP Mipmap" [ :common-sapp name: %sapp-mipmap file: %sokol-samples/sapp/mipmap-sapp.c ] "SAPP MipRender" [ :common-sapp name: %sapp-miprender file: %sokol-samples/sapp/miprender-sapp.c ] "SAPP Multi render targets" [ :common-sapp name: %sapp-mrt file: %sokol-samples/sapp/mrt-sapp.c ] "SAPP Multi render targets pixelformats" [ :common-sapp name: %sapp-mrt-pixelformats file: %sokol-samples/sapp/mrt-pixelformats-sapp.c ] "SAPP noentry" [ :common-sapp name: %sapp-noentry file: %sokol-samples/sapp/noentry-sapp.c defines: SOKOL_NO_ENTRY #if Windows? [defines: _WIN32] ] "SAPP Noninterleaved" [ :common-sapp name: %sapp-noninterleaved file: %sokol-samples/sapp/noninterleaved-sapp.c ] ;nuklear-images ;nuklear "SAPP offscreen" [ :common-sapp name: %sapp-offscreen file: %sokol-samples/sapp/offscreen-sapp.c ] "SAPP offscreen msaa" [ :common-sapp name: %sapp-offscreen-msaa file: %sokol-samples/sapp/offscreen-msaa-sapp.c ] "SAPP ozz-anim" [ :common-sapp :common-imgui :ozz-anim :file-util name: %sapp-ozz-anim file: %sokol-samples/sapp/ozz-anim-sapp.cc ] "SAPP ozz-skin" [ :common-sapp :common-imgui :ozz-anim :file-util name: %sapp-ozz-skin file: %sokol-samples/sapp/ozz-skin-sapp.cc ] "SAPP ozz-storagebuffer" [ :common-sapp :common-imgui :ozz-anim :file-util name: %sapp-ozz-storagebuffer file: %sokol-samples/sapp/ozz-storagebuffer-sapp.cc ] "SAPP pixelformats" [ :common-sapp :common-cimgui name: %sapp-pixelformats file: %sokol-samples/sapp/pixelformats-sapp.c ] "SAPP plmpeg" [ :common-sapp ;:common-dbgui name: %sapp-plmpeg file: %sokol-samples/sapp/plmpeg-sapp.c file: %sokol-samples/libs/util/fileutil.c ] "SAPP Primtypes - Test/demonstrate the various primitive types" [ :common-sapp ;:common-dbgui name: %sapp-primtypes file: %sokol-samples/sapp/primtypes-sapp.c ] "SAPP Quad" [ :common-sapp name: %sapp-quad file: %sokol-samples/sapp/quad-sapp.c ] "SAPP Restart" [ :common-sapp :common-modplug define: MODPLUG_STATIC name: %sapp-restart file: %sokol-samples/libs/util/fileutil.c file: %sokol-samples/libs/stb/stb_image.c file: %sokol-samples/sapp/restart-sapp.c ] "SAPP sAudio" [ :common-sapp name: %sapp-saudio file: %sokol-samples/sapp/saudio-sapp.c ] "SAPP sbuftex" [ :common-sapp name: %sapp-sbuftex file: %sokol-samples/sapp/sbuftex-sapp.c ] "SAPP sdf" [ :common-sapp name: %sapp-sdf file: %sokol-samples/sapp/sdf-sapp.c ] "SAPP sgl-context" [ :common-sapp name: %sapp-sgl-context file: %sokol-samples/sapp/sgl-context-sapp.c ] "SAPP sgl-lines" [ :common-sapp name: %sapp-sgl-lines file: %sokol-samples/sapp/sgl-lines-sapp.c ] "SAPP sgl-microui" [ :common-sapp name: %sapp-sgl-microui file: %sokol-samples/sapp/sgl-microui-sapp.c file: %sokol-samples/libs/microui/microui.c ] "SAPP sgl-points" [ :common-sapp name: %sapp-sgl-points file: %sokol-samples/sapp/sgl-points-sapp.c ] "SAPP sgl" [ :common-sapp name: %sapp-sgl file: %sokol-samples/sapp/sgl-sapp.c ] "SAPP Shadows" [ :common-sapp name: %sapp-shadows file: %sokol-samples/sapp/shadows-sapp.c ] "SAPP Shadows DepthTex" [ :common-sapp name: %sapp-shadows-depthtex file: %sokol-samples/sapp/shadows-depthtex-sapp.c ] "SAPP Shapes" [ :common-sapp name: %sapp-shapes file: %sokol-samples/sapp/shapes-sapp.c ] "SAPP Shapes transform" [ :common-sapp name: %sapp-shapes-transform file: %sokol-samples/sapp/shapes-transform-sapp.c ] "SAPP Shared Bindings" [ :common-sapp name: %sapp-shared-bindings file: %sokol-samples/sapp/shared-bindings-sapp.c ] ; "SAPP shdfeatures" [ ; :common-sapp ; :common-cimgui ; name: %sapp-shdfeatures ; file: %sokol-samples/sapp/shdfeatures-sapp.c ; ] ;spine.... "SAPP Spine context" [ :common-sapp :common-spine name: %sapp-spine-contexts file: %sokol-samples/sapp/spine-contexts-sapp.c ] "SAPP Spine inspector" [ :common-sapp :common-spine :common-cimgui name: %sapp-spine-inspector file: %sokol-samples/sapp/spine-inspector-sapp.c ] "SAPP Spine layers" [ :common-sapp :common-spine name: %sapp-spine-layers file: %sokol-samples/sapp/spine-layers-sapp.c ] "SAPP Spine simple" [ :common-sapp :common-spine name: %sapp-spine-simple file: %sokol-samples/sapp/spine-simple-sapp.c ] "SAPP Spine skinsets" [ :common-sapp :common-spine name: %sapp-spine-skinsets file: %sokol-samples/sapp/spine-skinsets-sapp.c ] "SAPP Spine switch skinsets" [ :common-sapp :common-spine name: %sapp-spine-switch-skinsets file: %sokol-samples/sapp/spine-switch-skinsets-sapp.c ] "SAPP tex3d" [ :common-sapp name: %sapp-tex3d file: %sokol-samples/sapp/tex3d-sapp.c ] "SAPP Texture creation and rendering" [ :common-sapp name: %sapp-texcube file: %sokol-samples/sapp/texcube-sapp.c ] "SAPP Texture view" [ :common-sapp :common-cimgui :file-util file: %sokol-samples/libs/basisu/sokol_basisu.cpp name: %sapp-texview file: %sokol-samples/sapp/texview-sapp.c ] "SAPP Triangle" [ :common-sapp name: %sapp-triangle file: %sokol-samples/sapp/triangle-sapp.c ] "SAPP Triangle bufferless" [ :common-sapp name: %sapp-triangle-bufferless file: %sokol-samples/sapp/triangle-bufferless-sapp.c ] "SAPP uniformtypes" [ :common-sapp name: %sapp-uniformtypes file: %sokol-samples/sapp/uniformtypes-sapp.c ] "SAPP uvwrap" [ :common-sapp name: %sapp-uvwrap file: %sokol-samples/sapp/uvwrap-sapp.c ] "SAPP vertexindexbuffer" [ :common-sapp name: %sapp-vertexindexbuffer file: %sokol-samples/sapp/vertexindexbuffer-sapp.c ] "SAPP vertexpull" [ :common-sapp name: %sapp-vertexpull file: %sokol-samples/sapp/vertexpull-sapp.c ] ; ; "SAPP Cube experiments" [ ; :common-sapp ; name: %sapp-cube-exp ; file: %src/sapp-cube.c ; flags: [-mconsole] ; ] "Generate shader includes" [ do %generate-shaders.r3 ] "Update gits" [ cmd %sokol/ {git pull} cmd %sokol-samples/ {git pull} cmd %sokol-tools-bin/ {git pull} cmd %cimgui-sokol-starterkit/ {git pull} ] "cimgui demo" [ :common-cimgui name: %cimgui-demo file: %cimgui-sokol-starterkit/demo.c file: %cimgui-sokol-starterkit/sokol/sokol.c include: %cimgui-sokol-starterkit/sokol/ ] ] siskin-0.22.5/tree/sokol/generate-shaders.r3000066400000000000000000000014521525470217700206710ustar00rootroot00000000000000Rebol [] switch system/platform [ windows [ shdc-tool: %sokol-tools-bin\bin\win32\sokol-shdc.exe slang: %hlsl5 ] linux [ shdc-tool: %sokol-tools-bin\bin\linux\sokol-shdc slang: %glsl330 ] macintosh macOS [ shdc-tool: either system/build/arch = 'arm64 [ %sokol-tools-bin\bin\osx_arm64\sokol-shdc ][ %sokol-tools-bin\bin\osx\sokol-shdc] slang: %metal_macos ] ] make-dir/deep join %tmp/ slang foreach file read dir: %sokol-samples/sapp/ [ try/with [ if %.glsl = suffix? file [ out: rejoin [%tmp/ slang #"/" file %.h] cmd: rejoin [ to-local-file shdc-tool { --input } to-local-file dir/:file { --output } to-local-file out { --slang "} slang {"} { --format sokol} ;{ --bytecode} ] print cmd call/wait/console/shell cmd ] ] :print ] ;wait 4siskin-0.22.5/tree/utility/000077500000000000000000000000001525470217700155545ustar00rootroot00000000000000siskin-0.22.5/tree/utility/.gitignore000066400000000000000000000000321525470217700175370ustar00rootroot00000000000000/* !/.gitignore !/*.nestsiskin-0.22.5/tree/utility/blur.nest000066400000000000000000000011201525470217700174050ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: %Oldes/blur source: %blur/ include: %blur/ compiler: gcc arch: x64 strip: on optimize: 2 #if Windows? [upx: on] #if macOS? [compiler: clang] file: %blur.c eggs: [ "Utility: blur" [ name: %blur file: %test/test.c ] ]siskin-0.22.5/tree/utility/blurhash.nest000066400000000000000000000012501525470217700202550ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @blurhash source: %blurhash/C/ compiler: gcc strip: on #if Windows? [upx: on] #if macOS? [compiler: clang] #if Linux? [library: %m] eggs: [ "Utility: blurhash_encoder" [ name: %blurhash_encoder files: [%encode_stb.c %encode.c] ] "Utility: blurhash_decoder" [ name: %blurhash_decoder files: [%decode_stb.c %decode.c] ] ]siskin-0.22.5/tree/utility/brotli.nest000066400000000000000000000024261525470217700177460ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: google/brotli source: %brotli/c/ compiler: gcc optimize: 2 arch: x64 #if Windows? [upx: on strip: on] #if macOS? [compiler: clang] #if Linux? [library: %m] includes: %brotli/c/include/ files: [ %common/constants.c %common/context.c %common/transform.c %common/dictionary.c %common/platform.c %common/shared_dictionary.c ] tool-files: [ %dec/state.c %dec/huffman.c %dec/decode.c %dec/bit_reader.c %enc/backward_references.c %enc/backward_references_hq.c %enc/bit_cost.c %enc/block_splitter.c %enc/brotli_bit_stream.c %enc/cluster.c %enc/command.c %enc/compound_dictionary.c %enc/compress_fragment.c %enc/compress_fragment_two_pass.c %enc/dictionary_hash.c %enc/encode.c %enc/encoder_dict.c %enc/entropy_encode.c %enc/fast_log.c %enc/histogram.c %enc/literal_cost.c %enc/memory.c %enc/metablock.c %enc/static_dict.c %enc/utf8_util.c %tools/brotli.c ] eggs: [ "Brotli tool" [ name: %brotli files: :tool-files ] ] siskin-0.22.5/tree/utility/bzip2.nest000066400000000000000000000017411525470217700175000ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= git: https://sourceware.org/git/bzip2.git source: %bzip2/ compiler: gcc arch: x64 strip: on optimize: 2 #if Windows? [upx: on defines: [_CRT_SECURE_NO_WARNINGS WIN32]] #if macOS? [compiler: clang] #if Linux? [flag: -Wno-unused-result] define: _FILE_OFFSET_BITS=64 lib-files: [ %blocksort.c %huffman.c %crctable.c %randtable.c %compress.c %decompress.c %bzlib.c ] include: %lz4/lib/ include: %lz4/programs/ eggs: [ "libbzip2" [ name: %libbzip2 files: :lib-files flags: shared upx: off #if Posix? [ flag: fPIC] #if macOS? [ flag: fno-common strip: off] ] "bzip2" [ name: %bzip2 file: %bzip2.c files: :lib-files ] ] siskin-0.22.5/tree/utility/lz4.nest000066400000000000000000000013151525470217700171600ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: %lz4/lz4 source: %lz4/ compiler: gcc arch: x64 strip: on #if Windows? [upx: on] #if macOS? [compiler: clang] files: [ %lib/lz4.c %lib/lz4hc.c %lib/lz4frame.c %lib/xxhash.c ] include: %lz4/lib/ include: %lz4/programs/ eggs: [ "lz4cli" [ name: %lz4cli file: %programs/lz4io.c file: %programs/lz4cli.c file: %programs/bench.c file: %programs/datagen.c ] ] siskin-0.22.5/tree/utility/lzfse.nest000066400000000000000000000016541525470217700176000ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @lzfse source: %lzfse/ compiler: gcc arch: x64 strip: on #if Windows? [upx: on] #if macOS? [compiler: clang] files: [ %src/lzfse_decode.c ; LZFSE decoder API entry point %src/lzfse_encode.c ; LZFSE encoder API entry point %src/lzfse_decode_base.c ; LZFSE decoder internal functions %src/lzfse_encode_base.c ; LZFSE encoder internal functions %src/lzfse_fse.c ; FSE entropy encoder/decoder functions %src/lzvn_decode_base.c ; LZVN decoder %src/lzvn_encode_base.c ; LZVN encoder ] eggs: [ "lzfse" [ name: %lzfse file: %src/lzfse_main.c ] ] siskin-0.22.5/tree/utility/lzw.nest000066400000000000000000000011311525470217700172570ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @lzw-ab source: %lzw-ab/ compiler: gcc arch: x64 strip: on #if Windows? [upx: on] #if macOS? [compiler: clang] file: %lzwlib.c eggs: [ "lzwtester" [ name: %lzwtester file: %lzwtester.c ] "lzwfilter" [ name: %lzwfilter file: %lzwfilter.c ] ] siskin-0.22.5/tree/utility/qoi.nest000066400000000000000000000011151525470217700172350ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @qoi github: nothings/stb source: %qoi/ include: %qoi/ include: %stb/ compiler: gcc arch: x64 strip: on optimize: 2 #if Windows? [upx: on] #if macOS? [compiler: clang] eggs: [ "Utility: qoiconv" [ name: %qoiconv file: %qoiconv.c ] ]siskin-0.22.5/tree/utility/triangle.nest000066400000000000000000000005671525470217700202640ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: @triangle nest: %triangle/triangle.nest siskin-0.22.5/tree/utility/xxhsum.nest000066400000000000000000000012721525470217700200050ustar00rootroot00000000000000;- .-. ;- /'v'\ SISKIN-Builder project file ;- (/uOu\) https://github.com/Siskin-framework/Builder/ ;-===="="======================================================================= github: %Cyan4973/xxHash source: %xxHash/ compiler: gcc arch: x64 strip: on #if Windows? [upx: on] #if macOS? [compiler: clang] files: %xxhash.c eggs: [ "xxhsum" [ name: %xxhsum file: %cli/xxhsum.c file: %cli/xsum_os_specific.c file: %cli/xsum_sanity_check.c file: %cli/xsum_os_specific.c file: %cli/xsum_output.c file: %cli/xsum_bench.c ] ]