├── .current-release ├── .github └── workflows │ ├── check_release.yml │ └── create_release.yml ├── .gitignore ├── README.md ├── apollo_icons ├── icon_1.webp ├── icon_10.webp ├── icon_100.webp ├── icon_101.webp ├── icon_102.webp ├── icon_103.webp ├── icon_104.webp ├── icon_105.webp ├── icon_106.webp ├── icon_107.webp ├── icon_108.webp ├── icon_109.webp ├── icon_11.webp ├── icon_110.webp ├── icon_111.webp ├── icon_112.webp ├── icon_113.webp ├── icon_114.webp ├── icon_115.webp ├── icon_116.webp ├── icon_117.webp ├── icon_118.webp ├── icon_119.webp ├── icon_12.webp ├── icon_120.webp ├── icon_121.webp ├── icon_122.webp ├── icon_123.webp ├── icon_124.webp ├── icon_125.webp ├── icon_126.webp ├── icon_127.webp ├── icon_128.webp ├── icon_129.webp ├── icon_13.webp ├── icon_130.webp ├── icon_131.webp ├── icon_132.webp ├── icon_133.webp ├── icon_134.webp ├── icon_135.webp ├── icon_136.webp ├── icon_137.webp ├── icon_138.webp ├── icon_139.webp ├── icon_14.webp ├── icon_140.webp ├── icon_141.webp ├── icon_142.webp ├── icon_143.webp ├── icon_144.webp ├── icon_145.webp ├── icon_146.webp ├── icon_147.webp ├── icon_148.webp ├── icon_149.webp ├── icon_15.webp ├── icon_150.webp ├── icon_151.webp ├── icon_152.webp ├── icon_153.webp ├── icon_154.webp ├── icon_155.webp ├── icon_156.webp ├── icon_16.webp ├── icon_17.webp ├── icon_18.webp ├── icon_19.webp ├── icon_2.webp ├── icon_20.webp ├── icon_21.webp ├── icon_22.webp ├── icon_23.webp ├── icon_24.webp ├── icon_25.webp ├── icon_26.webp ├── icon_27.webp ├── icon_28.webp ├── icon_29.webp ├── icon_3.webp ├── icon_30.webp ├── icon_31.webp ├── icon_32.webp ├── icon_33.webp ├── icon_34.webp ├── icon_35.webp ├── icon_36.webp ├── icon_37.webp ├── icon_38.webp ├── icon_39.webp ├── icon_4.webp ├── icon_40.webp ├── icon_41.webp ├── icon_42.webp ├── icon_43.webp ├── icon_44.webp ├── icon_45.webp ├── icon_46.webp ├── icon_47.webp ├── icon_48.webp ├── icon_49.webp ├── icon_5.webp ├── icon_50.webp ├── icon_51.webp ├── icon_52.webp ├── icon_53.webp ├── icon_54.webp ├── icon_55.webp ├── icon_56.webp ├── icon_57.webp ├── icon_58.webp ├── icon_59.webp ├── icon_6.webp ├── icon_60.webp ├── icon_61.webp ├── icon_62.webp ├── icon_63.webp ├── icon_64.webp ├── icon_65.webp ├── icon_66.webp ├── icon_67.webp ├── icon_68.webp ├── icon_69.webp ├── icon_7.webp ├── icon_70.webp ├── icon_71.webp ├── icon_72.webp ├── icon_73.webp ├── icon_74.webp ├── icon_75.webp ├── icon_76.webp ├── icon_77.webp ├── icon_78.webp ├── icon_79.webp ├── icon_8.webp ├── icon_80.webp ├── icon_81.webp ├── icon_82.webp ├── icon_83.webp ├── icon_84.webp ├── icon_85.webp ├── icon_86.webp ├── icon_87.webp ├── icon_88.webp ├── icon_89.webp ├── icon_9.webp ├── icon_90.webp ├── icon_91.webp ├── icon_92.webp ├── icon_93.webp ├── icon_94.webp ├── icon_95.webp ├── icon_96.webp ├── icon_97.webp ├── icon_98.webp └── icon_99.webp ├── apps.json ├── apps_noext.json ├── config.json ├── images ├── UI │ ├── image_1.webp │ ├── image_2.webp │ ├── image_3.webp │ ├── image_4.webp │ └── image_5.webp ├── buttons │ ├── altstore_button.png │ ├── feather_button.png │ ├── sidestore_button.png │ ├── url_button.png │ └── website_button.png ├── header │ └── altstore_header.png ├── image_0.webp ├── image_1.webp ├── image_2.webp ├── image_3.webp ├── image_4.webp ├── image_5.webp ├── image_6.webp ├── image_7.webp ├── image_8.webp └── news │ ├── news_1.webp │ └── news_2.webp ├── index.html └── update_json.py /.current-release: -------------------------------------------------------------------------------- 1 | v1.2.3 2 | -------------------------------------------------------------------------------- /.github/workflows/check_release.yml: -------------------------------------------------------------------------------- 1 | name: check release 2 | 3 | on: 4 | schedule: 5 | - cron: "0 0 * * *" # Runs every day 6 | workflow_dispatch: 7 | 8 | env: 9 | GITHUB_API_URL: "https://api.github.com/repos/JeffreyCA/Apollo-ImprovedCustomApi/releases/latest" 10 | 11 | jobs: 12 | check-release: 13 | runs-on: ubuntu-latest 14 | outputs: 15 | IS_NEW_RELEASE: ${{ steps.check-release.outputs.IS_NEW_RELEASE }} 16 | RELEASE_TAG: ${{ steps.check-release.outputs.RELEASE_TAG }} 17 | steps: 18 | - name: Check out repository 19 | uses: actions/checkout@v4 20 | with: 21 | fetch-depth: 0 22 | 23 | - name: Fetch latest release information 24 | id: check-release 25 | run: | 26 | RESPONSE="$(curl -s "${{ env.GITHUB_API_URL }}")" 27 | if [ -z "$RESPONSE" ]; then 28 | echo "Error: Empty response from GitHub API" 29 | exit 1 30 | fi 31 | 32 | RELEASE_TAG=$(jq -r '.tag_name // empty' <<< "$RESPONSE") 33 | if [ -z "$RELEASE_TAG" ]; then 34 | echo "Error: Failed to extract tag_name from GitHub API response." 35 | exit 1 36 | fi 37 | 38 | PREV_RELEASE=$(cat .current-release 2>/dev/null || echo "") 39 | echo "release_tag=$RELEASE_TAG" >> "$GITHUB_OUTPUT" 40 | 41 | echo "Previous Release: $PREV_RELEASE" 42 | echo "Current Release: $RELEASE_TAG" 43 | 44 | if [ "$RELEASE_TAG" != "$PREV_RELEASE" ]; then 45 | echo "New release detected." 46 | echo "$RELEASE_TAG" > .current-release 47 | echo "IS_NEW_RELEASE=true" >> "$GITHUB_OUTPUT" 48 | 49 | git config --global user.name 'GitHub Action' 50 | git config --global user.email 'action@github.com' 51 | git add .current-release 52 | 53 | if git diff --cached --quiet; then 54 | echo "No changes detected, skipping commit." 55 | else 56 | git commit -m "update version to $RELEASE_TAG" 57 | git push 58 | fi 59 | else 60 | echo "No new release detected." 61 | echo "IS_NEW_RELEASE=false" >> "$GITHUB_OUTPUT" 62 | fi 63 | 64 | 65 | create-release: 66 | needs: check-release 67 | if: needs.check-release.outputs.IS_NEW_RELEASE == 'true' 68 | uses: ./.github/workflows/create_release.yml 69 | -------------------------------------------------------------------------------- /.github/workflows/create_release.yml: -------------------------------------------------------------------------------- 1 | name: build release 2 | 3 | on: 4 | workflow_call: 5 | workflow_dispatch: 6 | inputs: 7 | apollo_ipa_url: 8 | description: 'Apollo .ipa URL' 9 | required: false 10 | default: 'https://files.catbox.moe/o2lue0.ipa' 11 | catbox_upload: 12 | description: 'Upload to Catbox.moe' 13 | type: boolean 14 | default: false 15 | 16 | env: 17 | PYTHON_VERSION: '3.13' 18 | APOLLO_IPA_URL: ${{ inputs.apollo_ipa_url || 'https://files.catbox.moe/o2lue0.ipa' }} 19 | CATBOX_UPLOAD: ${{ inputs.catbox_upload == 'false' }} 20 | GITHUB_API_URL: "https://api.github.com/repos/JeffreyCA/Apollo-ImprovedCustomApi/releases/latest" 21 | PYZULE_RW_URL: "https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip" 22 | 23 | jobs: 24 | build-apollo-ipa: 25 | runs-on: ubuntu-latest 26 | 27 | steps: 28 | - name: Check out repository 29 | uses: actions/checkout@v4 30 | with: 31 | fetch-depth: 0 32 | 33 | - name: Setup python 34 | uses: actions/setup-python@v4 35 | with: 36 | python-version: "${{ env.PYTHON_VERSION}}" 37 | 38 | - name: Install python dependencies 39 | run: | 40 | python -m pip install --upgrade pip 41 | pip install requests 42 | pip install --force-reinstall "${{ env.PYZULE_RW_URL }}" 43 | 44 | - name: Fetch latest release information 45 | id: get-release 46 | run: | 47 | RESPONSE=$(curl -s "${{ env.GITHUB_API_URL }}") 48 | if [ -z "$RESPONSE" ]; then 49 | echo "Error: Failed to fetch release data!" 50 | exit 1 51 | fi 52 | 53 | RELEASE_TAG=$(jq -r '.tag_name' <<< "$RESPONSE") 54 | RELEASE_NOTES=$(jq -r '.body' <<< "$RESPONSE") 55 | 56 | DEB_URL=$(jq -r '.assets[] | select(.name | test("iphoneos-arm64_rootless.deb$")) | .browser_download_url' <<< "$RESPONSE") 57 | 58 | if [ -z "$DEB_URL" ] || [ "$DEB_URL" == "null" ]; then 59 | echo "Error: No matching .deb file found!" 60 | exit 1 61 | fi 62 | 63 | echo "RELEASE_TAG=${RELEASE_TAG}" >> "$GITHUB_OUTPUT" 64 | { 65 | echo "RELEASE_NOTES<> "$GITHUB_OUTPUT" 69 | echo "DEB_URL=${DEB_URL}" >> "$GITHUB_OUTPUT" 70 | 71 | - name: Download apollo .ipa and improvedcustomapi .deb 72 | id: download-files 73 | env: 74 | DEB_URL: ${{ steps.get-release.outputs.DEB_URL }} 75 | run: | 76 | curl -L "$APOLLO_IPA_URL" -o Apollo.ipa 77 | APOLLO_VERSION=$(unzip -p Apollo.ipa 'Payload/*.app/Info.plist' | grep -A1 'CFBundleShortVersionString' | grep string | sed -E 's/(.*)<\/string>/\1/' | tr -d '[:space:]') 78 | 79 | curl -L "$DEB_URL" -o improvedcustomapi.deb 80 | ICA_VERSION=$(echo "$DEB_URL" | grep -oP 'customapi_\K[0-9\.]+') 81 | 82 | echo "APOLLO_VERSION=${APOLLO_VERSION}" >> "$GITHUB_OUTPUT" 83 | echo "ICA_VERSION=${ICA_VERSION}" >> "$GITHUB_OUTPUT" 84 | 85 | - name: Build modified .ipa 86 | env: 87 | APOLLO_VERSION: ${{ steps.download-files.outputs.APOLLO_VERSION }} 88 | ICA_VERSION: ${{ steps.download-files.outputs.ICA_VERSION }} 89 | run: | 90 | cyan -i Apollo.ipa -o "Apollo-${APOLLO_VERSION}_ImprovedCustomApi-${ICA_VERSION}.ipa" -f improvedcustomapi.deb --fakesign 91 | cyan -i Apollo.ipa -o "NO-EXTENSIONS_Apollo-${APOLLO_VERSION}_ImprovedCustomApi-${ICA_VERSION}.ipa" -f improvedcustomapi.deb --fakesign -e 92 | 93 | - name: Generate release notes 94 | env: 95 | APOLLO_VERSION: ${{ steps.download-files.outputs.APOLLO_VERSION }} 96 | RELEASE_TAG: ${{ steps.get-release.outputs.RELEASE_TAG }} 97 | RELEASE_NOTES: ${{ steps.get-release.outputs.RELEASE_NOTES }} 98 | run: | 99 | if [ -z "${APOLLO_VERSION}" ] || [ -z "${RELEASE_TAG}" ] || [ -z "${RELEASE_NOTES}" ]; then 100 | echo "Error: Missing required information for generating release notes!" 101 | exit 1 102 | fi 103 | 104 | { 105 | echo "Apollo version: \`v${APOLLO_VERSION}\`" 106 | echo "ImprovedCustomApi version: \`${RELEASE_TAG}\`" 107 | echo "" 108 | echo "## Release Notes" 109 | echo "$RELEASE_NOTES" 110 | echo "## Known Issues" 111 | echo "- Apollo Ultra features may cause app to crash" 112 | echo "- Imgur multi-image upload" 113 | echo "- Uploads usually fail on the first attempt but subsequent retries should succeed" 114 | echo "- Share URLs in private messages and long-tapping them still open in the in-app browser" 115 | } >> RELEASE_NOTES.md 116 | 117 | - name: Create release 118 | uses: softprops/action-gh-release@v2 119 | with: 120 | tag_name: v${{ steps.download-files.outputs.APOLLO_VERSION }}_${{ steps.download-files.outputs.ICA_VERSION }} 121 | name: Apollo v${{ steps.download-files.outputs.APOLLO_VERSION }} with ImprovedCustomApi v${{ steps.download-files.outputs.ICA_VERSION }} 122 | body_path: RELEASE_NOTES.md 123 | files: | 124 | Apollo-${{ steps.download-files.outputs.APOLLO_VERSION }}_ImprovedCustomApi-${{ steps.download-files.outputs.ICA_VERSION }}.ipa 125 | NO-EXTENSIONS_Apollo-${{ steps.download-files.outputs.APOLLO_VERSION }}_ImprovedCustomApi-${{ steps.download-files.outputs.ICA_VERSION }}.ipa 126 | 127 | - name: Upload to catbox 128 | if: env.CATBOX_UPLOAD == 'true' 129 | env: 130 | APOLLO_VERSION: ${{ steps.download-files.outputs.APOLLO_VERSION }} 131 | ICA_VERSION: ${{ steps.download-files.outputs.ICA_VERSION }} 132 | run: | 133 | if [ -z "${APOLLO_VERSION}" ] || [ -z "${ICA_VERSION}" ]; then 134 | echo "Error: Missing required information for uploading to Catbox!" 135 | exit 1 136 | fi 137 | 138 | CATBOX_URL=$(curl -F "fileToUpload=@Apollo-${APOLLO_VERSION}_ImprovedCustomApi-${ICA_VERSION}.ipa" https://catbox.moe/user/api.php) 139 | CATBOX_URL_NO_EXT=$(curl -F "fileToUpload=@NO-EXTENSIONS-Apollo-${APOLLO_VERSION}_ImprovedCustomApi-${ICA_VERSION}.ipa" https://catbox.moe/user/api.php) 140 | 141 | echo "CATBOX_URL=${CATBOX_URL}" >> "$GITHUB_ENV" 142 | echo "CATBOX_URL_NO_EXT=${CATBOX_URL_NO_EXT}" >> "$GITHUB_ENV" 143 | 144 | - name: Update source files 145 | env: 146 | RELEASE_TAG: ${{ steps.get-release.outputs.RELEASE_TAG }} 147 | run: | 148 | python update_json.py 149 | 150 | git config --global user.name 'GitHub Action' 151 | git config --global user.email 'action@github.com' 152 | 153 | git add apps.json apps_noext.json 154 | 155 | if git diff --cached --quiet; then 156 | echo "No changes detected, skipping commit." 157 | else 158 | git fetch origin main 159 | 160 | git checkout -b new-release origin/main 161 | git checkout --detach HEAD 162 | 163 | git commit -m "update version to $RELEASE_TAG" 164 | 165 | git checkout new-release 166 | git cherry-pick HEAD@{1} 167 | 168 | git push origin new-release:main 169 | fi 170 | 171 | - name: Job summary 172 | run: | 173 | echo "### 📊 Workflow Summary" >> $GITHUB_STEP_SUMMARY 174 | echo "✅ New release created: v${{ steps.download-files.outputs.APOLLO_VERSION }}-${{ steps.download-files.outputs.ICA_VERSION }}" >> $GITHUB_STEP_SUMMARY 175 | echo "🔗 [View release](https://github.com/${{ github.repository }}/releases/tag/v${{ steps.download-files.outputs.APOLLO_VERSION }}_${{ steps.download-files.outputs.ICA_VERSION }})" >> $GITHUB_STEP_SUMMARY -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Apollo for Reddit Banner 3 |

4 | 5 | [![Platform](http://img.shields.io/badge/platform-iOS/iPadOS/macOS-blue.svg)](https://developer.apple.com/iphone/index.action) 6 | ![Release](https://img.shields.io/github/downloads/Balackburn/Apollo/total) 7 | ![GitHub issues](https://img.shields.io/github/issues-raw/Balackburn/Apollo) 8 | 9 | # Apollo for Reddit with ImprovedCustomAPI 10 | 11 | This AltStore source provides pre-built releases of [Apollo App (Christian Selig)](https://apolloapp.io/) injected with [ImprovedCustomApi (JeffreyCA)](https://github.com/JeffreyCA/Apollo-ImprovedCustomApi). 12 | 13 | It uses version `1.15.11` of the app and the latest release of the tweak. 14 | 15 | Before raising any issues, please check the [ImprovedCustomApi](https://github.com/JeffreyCA/Apollo-ImprovedCustomApi/issues) repo first - as this source only integrates it. 16 | 17 | ## Standard Source 18 | 19 | 20 |   21 | 22 |   23 | 24 |   25 | 26 | 27 | ## No Extensions (Avoid AppID Limit) Source 28 | 29 | 30 |   31 | 32 |   33 | 34 | 35 | ## Website 36 | 37 | 38 | 39 | ---- 40 | 41 | This project is not affiliated with Apollo or Christian Selig. 42 | -------------------------------------------------------------------------------- /apollo_icons/icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_1.webp -------------------------------------------------------------------------------- /apollo_icons/icon_10.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_10.webp -------------------------------------------------------------------------------- /apollo_icons/icon_100.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_100.webp -------------------------------------------------------------------------------- /apollo_icons/icon_101.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_101.webp -------------------------------------------------------------------------------- /apollo_icons/icon_102.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_102.webp -------------------------------------------------------------------------------- /apollo_icons/icon_103.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_103.webp -------------------------------------------------------------------------------- /apollo_icons/icon_104.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_104.webp -------------------------------------------------------------------------------- /apollo_icons/icon_105.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_105.webp -------------------------------------------------------------------------------- /apollo_icons/icon_106.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_106.webp -------------------------------------------------------------------------------- /apollo_icons/icon_107.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_107.webp -------------------------------------------------------------------------------- /apollo_icons/icon_108.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_108.webp -------------------------------------------------------------------------------- /apollo_icons/icon_109.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_109.webp -------------------------------------------------------------------------------- /apollo_icons/icon_11.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_11.webp -------------------------------------------------------------------------------- /apollo_icons/icon_110.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_110.webp -------------------------------------------------------------------------------- /apollo_icons/icon_111.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_111.webp -------------------------------------------------------------------------------- /apollo_icons/icon_112.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_112.webp -------------------------------------------------------------------------------- /apollo_icons/icon_113.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_113.webp -------------------------------------------------------------------------------- /apollo_icons/icon_114.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_114.webp -------------------------------------------------------------------------------- /apollo_icons/icon_115.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_115.webp -------------------------------------------------------------------------------- /apollo_icons/icon_116.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_116.webp -------------------------------------------------------------------------------- /apollo_icons/icon_117.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_117.webp -------------------------------------------------------------------------------- /apollo_icons/icon_118.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_118.webp -------------------------------------------------------------------------------- /apollo_icons/icon_119.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_119.webp -------------------------------------------------------------------------------- /apollo_icons/icon_12.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_12.webp -------------------------------------------------------------------------------- /apollo_icons/icon_120.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_120.webp -------------------------------------------------------------------------------- /apollo_icons/icon_121.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_121.webp -------------------------------------------------------------------------------- /apollo_icons/icon_122.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_122.webp -------------------------------------------------------------------------------- /apollo_icons/icon_123.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_123.webp -------------------------------------------------------------------------------- /apollo_icons/icon_124.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_124.webp -------------------------------------------------------------------------------- /apollo_icons/icon_125.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_125.webp -------------------------------------------------------------------------------- /apollo_icons/icon_126.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_126.webp -------------------------------------------------------------------------------- /apollo_icons/icon_127.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_127.webp -------------------------------------------------------------------------------- /apollo_icons/icon_128.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_128.webp -------------------------------------------------------------------------------- /apollo_icons/icon_129.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_129.webp -------------------------------------------------------------------------------- /apollo_icons/icon_13.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_13.webp -------------------------------------------------------------------------------- /apollo_icons/icon_130.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_130.webp -------------------------------------------------------------------------------- /apollo_icons/icon_131.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_131.webp -------------------------------------------------------------------------------- /apollo_icons/icon_132.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_132.webp -------------------------------------------------------------------------------- /apollo_icons/icon_133.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_133.webp -------------------------------------------------------------------------------- /apollo_icons/icon_134.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_134.webp -------------------------------------------------------------------------------- /apollo_icons/icon_135.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_135.webp -------------------------------------------------------------------------------- /apollo_icons/icon_136.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_136.webp -------------------------------------------------------------------------------- /apollo_icons/icon_137.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_137.webp -------------------------------------------------------------------------------- /apollo_icons/icon_138.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_138.webp -------------------------------------------------------------------------------- /apollo_icons/icon_139.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_139.webp -------------------------------------------------------------------------------- /apollo_icons/icon_14.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_14.webp -------------------------------------------------------------------------------- /apollo_icons/icon_140.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_140.webp -------------------------------------------------------------------------------- /apollo_icons/icon_141.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_141.webp -------------------------------------------------------------------------------- /apollo_icons/icon_142.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_142.webp -------------------------------------------------------------------------------- /apollo_icons/icon_143.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_143.webp -------------------------------------------------------------------------------- /apollo_icons/icon_144.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_144.webp -------------------------------------------------------------------------------- /apollo_icons/icon_145.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_145.webp -------------------------------------------------------------------------------- /apollo_icons/icon_146.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_146.webp -------------------------------------------------------------------------------- /apollo_icons/icon_147.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_147.webp -------------------------------------------------------------------------------- /apollo_icons/icon_148.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_148.webp -------------------------------------------------------------------------------- /apollo_icons/icon_149.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_149.webp -------------------------------------------------------------------------------- /apollo_icons/icon_15.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_15.webp -------------------------------------------------------------------------------- /apollo_icons/icon_150.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_150.webp -------------------------------------------------------------------------------- /apollo_icons/icon_151.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_151.webp -------------------------------------------------------------------------------- /apollo_icons/icon_152.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_152.webp -------------------------------------------------------------------------------- /apollo_icons/icon_153.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_153.webp -------------------------------------------------------------------------------- /apollo_icons/icon_154.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_154.webp -------------------------------------------------------------------------------- /apollo_icons/icon_155.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_155.webp -------------------------------------------------------------------------------- /apollo_icons/icon_156.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_156.webp -------------------------------------------------------------------------------- /apollo_icons/icon_16.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_16.webp -------------------------------------------------------------------------------- /apollo_icons/icon_17.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_17.webp -------------------------------------------------------------------------------- /apollo_icons/icon_18.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_18.webp -------------------------------------------------------------------------------- /apollo_icons/icon_19.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_19.webp -------------------------------------------------------------------------------- /apollo_icons/icon_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_2.webp -------------------------------------------------------------------------------- /apollo_icons/icon_20.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_20.webp -------------------------------------------------------------------------------- /apollo_icons/icon_21.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_21.webp -------------------------------------------------------------------------------- /apollo_icons/icon_22.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_22.webp -------------------------------------------------------------------------------- /apollo_icons/icon_23.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_23.webp -------------------------------------------------------------------------------- /apollo_icons/icon_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_24.webp -------------------------------------------------------------------------------- /apollo_icons/icon_25.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_25.webp -------------------------------------------------------------------------------- /apollo_icons/icon_26.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_26.webp -------------------------------------------------------------------------------- /apollo_icons/icon_27.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_27.webp -------------------------------------------------------------------------------- /apollo_icons/icon_28.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_28.webp -------------------------------------------------------------------------------- /apollo_icons/icon_29.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_29.webp -------------------------------------------------------------------------------- /apollo_icons/icon_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_3.webp -------------------------------------------------------------------------------- /apollo_icons/icon_30.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_30.webp -------------------------------------------------------------------------------- /apollo_icons/icon_31.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_31.webp -------------------------------------------------------------------------------- /apollo_icons/icon_32.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_32.webp -------------------------------------------------------------------------------- /apollo_icons/icon_33.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_33.webp -------------------------------------------------------------------------------- /apollo_icons/icon_34.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_34.webp -------------------------------------------------------------------------------- /apollo_icons/icon_35.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_35.webp -------------------------------------------------------------------------------- /apollo_icons/icon_36.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_36.webp -------------------------------------------------------------------------------- /apollo_icons/icon_37.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_37.webp -------------------------------------------------------------------------------- /apollo_icons/icon_38.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_38.webp -------------------------------------------------------------------------------- /apollo_icons/icon_39.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_39.webp -------------------------------------------------------------------------------- /apollo_icons/icon_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_4.webp -------------------------------------------------------------------------------- /apollo_icons/icon_40.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_40.webp -------------------------------------------------------------------------------- /apollo_icons/icon_41.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_41.webp -------------------------------------------------------------------------------- /apollo_icons/icon_42.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_42.webp -------------------------------------------------------------------------------- /apollo_icons/icon_43.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_43.webp -------------------------------------------------------------------------------- /apollo_icons/icon_44.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_44.webp -------------------------------------------------------------------------------- /apollo_icons/icon_45.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_45.webp -------------------------------------------------------------------------------- /apollo_icons/icon_46.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_46.webp -------------------------------------------------------------------------------- /apollo_icons/icon_47.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_47.webp -------------------------------------------------------------------------------- /apollo_icons/icon_48.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_48.webp -------------------------------------------------------------------------------- /apollo_icons/icon_49.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_49.webp -------------------------------------------------------------------------------- /apollo_icons/icon_5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_5.webp -------------------------------------------------------------------------------- /apollo_icons/icon_50.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_50.webp -------------------------------------------------------------------------------- /apollo_icons/icon_51.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_51.webp -------------------------------------------------------------------------------- /apollo_icons/icon_52.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_52.webp -------------------------------------------------------------------------------- /apollo_icons/icon_53.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_53.webp -------------------------------------------------------------------------------- /apollo_icons/icon_54.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_54.webp -------------------------------------------------------------------------------- /apollo_icons/icon_55.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_55.webp -------------------------------------------------------------------------------- /apollo_icons/icon_56.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_56.webp -------------------------------------------------------------------------------- /apollo_icons/icon_57.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_57.webp -------------------------------------------------------------------------------- /apollo_icons/icon_58.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_58.webp -------------------------------------------------------------------------------- /apollo_icons/icon_59.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_59.webp -------------------------------------------------------------------------------- /apollo_icons/icon_6.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_6.webp -------------------------------------------------------------------------------- /apollo_icons/icon_60.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_60.webp -------------------------------------------------------------------------------- /apollo_icons/icon_61.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_61.webp -------------------------------------------------------------------------------- /apollo_icons/icon_62.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_62.webp -------------------------------------------------------------------------------- /apollo_icons/icon_63.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_63.webp -------------------------------------------------------------------------------- /apollo_icons/icon_64.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_64.webp -------------------------------------------------------------------------------- /apollo_icons/icon_65.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_65.webp -------------------------------------------------------------------------------- /apollo_icons/icon_66.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_66.webp -------------------------------------------------------------------------------- /apollo_icons/icon_67.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_67.webp -------------------------------------------------------------------------------- /apollo_icons/icon_68.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_68.webp -------------------------------------------------------------------------------- /apollo_icons/icon_69.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_69.webp -------------------------------------------------------------------------------- /apollo_icons/icon_7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_7.webp -------------------------------------------------------------------------------- /apollo_icons/icon_70.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_70.webp -------------------------------------------------------------------------------- /apollo_icons/icon_71.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_71.webp -------------------------------------------------------------------------------- /apollo_icons/icon_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_72.webp -------------------------------------------------------------------------------- /apollo_icons/icon_73.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_73.webp -------------------------------------------------------------------------------- /apollo_icons/icon_74.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_74.webp -------------------------------------------------------------------------------- /apollo_icons/icon_75.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_75.webp -------------------------------------------------------------------------------- /apollo_icons/icon_76.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_76.webp -------------------------------------------------------------------------------- /apollo_icons/icon_77.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_77.webp -------------------------------------------------------------------------------- /apollo_icons/icon_78.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_78.webp -------------------------------------------------------------------------------- /apollo_icons/icon_79.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_79.webp -------------------------------------------------------------------------------- /apollo_icons/icon_8.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_8.webp -------------------------------------------------------------------------------- /apollo_icons/icon_80.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_80.webp -------------------------------------------------------------------------------- /apollo_icons/icon_81.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_81.webp -------------------------------------------------------------------------------- /apollo_icons/icon_82.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_82.webp -------------------------------------------------------------------------------- /apollo_icons/icon_83.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_83.webp -------------------------------------------------------------------------------- /apollo_icons/icon_84.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_84.webp -------------------------------------------------------------------------------- /apollo_icons/icon_85.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_85.webp -------------------------------------------------------------------------------- /apollo_icons/icon_86.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_86.webp -------------------------------------------------------------------------------- /apollo_icons/icon_87.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_87.webp -------------------------------------------------------------------------------- /apollo_icons/icon_88.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_88.webp -------------------------------------------------------------------------------- /apollo_icons/icon_89.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_89.webp -------------------------------------------------------------------------------- /apollo_icons/icon_9.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_9.webp -------------------------------------------------------------------------------- /apollo_icons/icon_90.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_90.webp -------------------------------------------------------------------------------- /apollo_icons/icon_91.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_91.webp -------------------------------------------------------------------------------- /apollo_icons/icon_92.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_92.webp -------------------------------------------------------------------------------- /apollo_icons/icon_93.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_93.webp -------------------------------------------------------------------------------- /apollo_icons/icon_94.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_94.webp -------------------------------------------------------------------------------- /apollo_icons/icon_95.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_95.webp -------------------------------------------------------------------------------- /apollo_icons/icon_96.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_96.webp -------------------------------------------------------------------------------- /apollo_icons/icon_97.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_97.webp -------------------------------------------------------------------------------- /apollo_icons/icon_98.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_98.webp -------------------------------------------------------------------------------- /apollo_icons/icon_99.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/apollo_icons/icon_99.webp -------------------------------------------------------------------------------- /apps.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Apollo for Reddit", 3 | "identifier": "com.apollo.source", 4 | "headerURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/header/altstore_header.png", 5 | "website": "https://balackburn.github.io/Apollo", 6 | "iconURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_0.webp", 7 | "subtitle": "Apollo for Reddit unofficial Altstore source.", 8 | "description": "This is an unofficial Altstore source for Apollo for Reddit tweaked with ImprovedCustomApi by @JeffreyCA.\n\nFor full details, check the GitHub repository:\nhttps://github.com/Balackburn/Apollo", 9 | "tintColor": "4453f4", 10 | "apps": [ 11 | { 12 | "beta": false, 13 | "name": "Apollo for Reddit", 14 | "bundleIdentifier": "com.christianselig.Apollo", 15 | "developerName": "Christian Selig (& JeffreyCA)", 16 | "subtitle": "The award-winning Reddit app", 17 | "version": "1.15.11", 18 | "versionDate": "2025-04-09T01:51:05Z", 19 | "versionDescription": "Apollo version: \"v1.15.11\"\nImprovedCustomApi version: \"v1.2.3\"\n\nRelease Notes\n\u2022 Fix issue with Imgur multi\u2022image uploads consistently failing (51). Note that multi\u2022image uploads still fail on the first attempt but should succeed on the next attempt.\r\n\u2022 Update Custom API settings with link to [new GitHub discussion](https://github.com/JeffreyCA/Apollo\u2022ImprovedCustomApi/discussions/60) where you can share your own subreddit sources with others.\nKnown Issues\n\u2022 Apollo Ultra features may cause app to crash\n\u2022 Imgur multi\u2022image upload\n\u2022 Uploads usually fail on the first attempt but subsequent retries should succeed\n\u2022 Share URLs in private messages and long\u2022tapping them still open in the in\u2022app browser\n", 20 | "downloadURL": "https://github.com/Balackburn/Apollo/releases/download/v1.15.11_1.2.3/Apollo-1.15.11_ImprovedCustomApi-1.2.3.ipa", 21 | "localizedDescription": "Apollo is an app for Reddit built for customizability, smoothness, gestures, and taking advantage of everything iOS has to offer. Apollo is a beautiful Reddit app built for fast navigation with an incredibly powerful set of features. Thanks to features like the Jump Bar, fully customizable gestures, and a super-charged Media Viewer, browsing Reddit has never been this amazing. It's created specifically with iOS design guidelines in mind, so it fits right at home on your device, and with input from thousands of Redditors helping sculpt and perfect it over several years before launching:\n\n\u2022 Jump Bar, for super-fast hopping between subreddits\n\u2022 Super-charged Media Viewer for an amazing experience viewing images, GIFs, videos, albums, and more from a variety of sources.\n\u2022 Tabbed interface for easy navigating\n\u2022 Incredibly powerful Markdown composer for writing comments and posts\n\u2022 Full inline Imgur uploading, both images and albums\n\u2022 Large or compact posts depending on your preference\n\u2022 Dark mode (can be automatic)\n\u2022 Fully customizable gestures\n\u2022 Safari View Controller for browsing articles and links\n\u2022 Inline previews of media in comments\n\u2022 3D Touch support\n\u2022 Beautifully organized Inbox\n\u2022 Filtering and blocking\n\u2022 Face ID / Touch ID / Passcode lock\n\u2022 Moderator features\n\u2022 Tons of settings to tweak\n\u2022 GIF scrubbing to go backward and forward in time\n\u2022 Multiple accounts\n\u2022 Powerful search\n\u2022 Full Markdown rendering\n\u2022 Unobtrusive Volume Indicator\n\nAs well as much, much more and it's constantly evolving. If you have anything you'd specifically like to see, come to the ApolloApp subreddit and we'd love to hear it! Apollo is an unofficial app, and side effects may include an incredible browsing experience.", 22 | "iconURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_0.webp", 23 | "tintColor": "4453f4", 24 | "category": "social", 25 | "size": 114651442, 26 | "screenshotURLs": [ 27 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_1.webp", 28 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_2.webp", 29 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_3.webp", 30 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_4.webp", 31 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_5.webp", 32 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_6.webp", 33 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_7.webp", 34 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_8.webp" 35 | ], 36 | "versions": [ 37 | { 38 | "version": "1.15.11", 39 | "date": "2025-04-09T01:51:05Z", 40 | "localizedDescription": "Apollo version: \"v1.15.11\"\nImprovedCustomApi version: \"v1.2.3\"\n\nRelease Notes\n\u2022 Fix issue with Imgur multi\u2022image uploads consistently failing (51). Note that multi\u2022image uploads still fail on the first attempt but should succeed on the next attempt.\r\n\u2022 Update Custom API settings with link to [new GitHub discussion](https://github.com/JeffreyCA/Apollo\u2022ImprovedCustomApi/discussions/60) where you can share your own subreddit sources with others.\nKnown Issues\n\u2022 Apollo Ultra features may cause app to crash\n\u2022 Imgur multi\u2022image upload\n\u2022 Uploads usually fail on the first attempt but subsequent retries should succeed\n\u2022 Share URLs in private messages and long\u2022tapping them still open in the in\u2022app browser\n", 41 | "downloadURL": "https://github.com/Balackburn/Apollo/releases/download/v1.15.11_1.2.3/Apollo-1.15.11_ImprovedCustomApi-1.2.3.ipa", 42 | "size": 114651442 43 | } 44 | ], 45 | "appPermissions": { 46 | "entitlements": [ 47 | { 48 | "name": "com.apple.security.application-groups" 49 | }, 50 | { 51 | "name": "com.apple.developer.associated-domains" 52 | }, 53 | { 54 | "name": "com.apple.developer.group-session" 55 | }, 56 | { 57 | "name": "com.apple.developer.icloud-container-identifiers" 58 | }, 59 | { 60 | "name": "com.apple.developer.ubiquity-kvstore-identifier" 61 | }, 62 | { 63 | "name": "keychain-access-groups" 64 | }, 65 | { 66 | "name": "aps-environment" 67 | }, 68 | { 69 | "name": "com.apple.developer.weatherkit" 70 | } 71 | ], 72 | "privacy": [ 73 | { 74 | "name": "Camera", 75 | "usageDescription": "App needs camera access." 76 | }, 77 | { 78 | "name": "FaceID", 79 | "usageDescription": "App uses Face ID." 80 | }, 81 | { 82 | "name": "LocationWhenInUse", 83 | "usageDescription": "App needs location when in use." 84 | }, 85 | { 86 | "name": "Motion", 87 | "usageDescription": "App uses motion sensors." 88 | }, 89 | { 90 | "name": "PhotoLibraryAdd", 91 | "usageDescription": "App adds photos." 92 | }, 93 | { 94 | "name": "PhotoLibrary", 95 | "usageDescription": "App accesses photo library." 96 | } 97 | ] 98 | } 99 | } 100 | ], 101 | "news": [ 102 | { 103 | "appID": "com.christianselig.Apollo", 104 | "title": "1.15.11_1.2.2 - 06 Mar", 105 | "identifier": "release-1.15.11_1.2.2", 106 | "caption": "Update of Apollo (with ImprovedCustomApi) now available!", 107 | "date": "2025-03-06T08:33:31Z", 108 | "tintColor": "3F91FE", 109 | "imageURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/news/news_2.webp", 110 | "notify": true, 111 | "url": "https://github.com/Balackburn/Apollo/releases/tag/v1.15.11_1.2.2" 112 | }, 113 | { 114 | "appID": "com.christianselig.Apollo", 115 | "title": "1.15.11_1.2.3 - 09 Apr", 116 | "identifier": "release-1.15.11_1.2.3", 117 | "caption": "Update for Apollo now available!", 118 | "date": "2025-04-09T01:51:05Z", 119 | "tintColor": "3F91FE", 120 | "imageURL": "https://raw.githubusercontent.com/Balackburn/Apollo/refs/heads/main/images/news/news_2.webp", 121 | "notify": true, 122 | "url": "https://github.com/Balackburn/Apollo/releases/tag/v1.15.11_1.2.3" 123 | } 124 | ] 125 | } -------------------------------------------------------------------------------- /apps_noext.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Apollo for Reddit", 3 | "identifier": "com.apollo.source", 4 | "headerURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/header/altstore_header.png", 5 | "website": "https://balackburn.github.io/Apollo", 6 | "iconURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_0.webp", 7 | "subtitle": "Apollo for Reddit unofficial Altstore source.", 8 | "description": "This is an unofficial Altstore source for Apollo for Reddit tweaked with ImprovedCustomApi by @JeffreyCA.\n\nFor full details, check the GitHub repository:\nhttps://github.com/Balackburn/Apollo", 9 | "tintColor": "4453f4", 10 | "apps": [ 11 | { 12 | "beta": false, 13 | "name": "Apollo for Reddit", 14 | "bundleIdentifier": "com.christianselig.Apollo", 15 | "developerName": "Christian Selig (& JeffreyCA)", 16 | "subtitle": "The award-winning Reddit app", 17 | "version": "1.15.11", 18 | "versionDate": "2025-04-09T01:51:05Z", 19 | "versionDescription": "Apollo version: \"v1.15.11\"\nImprovedCustomApi version: \"v1.2.3\"\n\nRelease Notes\n\u2022 Fix issue with Imgur multi\u2022image uploads consistently failing (51). Note that multi\u2022image uploads still fail on the first attempt but should succeed on the next attempt.\r\n\u2022 Update Custom API settings with link to [new GitHub discussion](https://github.com/JeffreyCA/Apollo\u2022ImprovedCustomApi/discussions/60) where you can share your own subreddit sources with others.\nKnown Issues\n\u2022 Apollo Ultra features may cause app to crash\n\u2022 Imgur multi\u2022image upload\n\u2022 Uploads usually fail on the first attempt but subsequent retries should succeed\n\u2022 Share URLs in private messages and long\u2022tapping them still open in the in\u2022app browser\n", 20 | "downloadURL": "https://github.com/Balackburn/Apollo/releases/download/v1.15.11_1.2.3/NO-EXTENSIONS_Apollo-1.15.11_ImprovedCustomApi-1.2.3.ipa", 21 | "localizedDescription": "Apollo is an app for Reddit built for customizability, smoothness, gestures, and taking advantage of everything iOS has to offer. Apollo is a beautiful Reddit app built for fast navigation with an incredibly powerful set of features. Thanks to features like the Jump Bar, fully customizable gestures, and a super-charged Media Viewer, browsing Reddit has never been this amazing. It's created specifically with iOS design guidelines in mind, so it fits right at home on your device, and with input from thousands of Redditors helping sculpt and perfect it over several years before launching:\n\n\u2022 Jump Bar, for super-fast hopping between subreddits\n\u2022 Super-charged Media Viewer for an amazing experience viewing images, GIFs, videos, albums, and more from a variety of sources.\n\u2022 Tabbed interface for easy navigating\n\u2022 Incredibly powerful Markdown composer for writing comments and posts\n\u2022 Full inline Imgur uploading, both images and albums\n\u2022 Large or compact posts depending on your preference\n\u2022 Dark mode (can be automatic)\n\u2022 Fully customizable gestures\n\u2022 Safari View Controller for browsing articles and links\n\u2022 Inline previews of media in comments\n\u2022 3D Touch support\n\u2022 Beautifully organized Inbox\n\u2022 Filtering and blocking\n\u2022 Face ID / Touch ID / Passcode lock\n\u2022 Moderator features\n\u2022 Tons of settings to tweak\n\u2022 GIF scrubbing to go backward and forward in time\n\u2022 Multiple accounts\n\u2022 Powerful search\n\u2022 Full Markdown rendering\n\u2022 Unobtrusive Volume Indicator\n\nAs well as much, much more and it's constantly evolving. If you have anything you'd specifically like to see, come to the ApolloApp subreddit and we'd love to hear it! Apollo is an unofficial app, and side effects may include an incredible browsing experience.", 22 | "iconURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_0.webp", 23 | "tintColor": "4453f4", 24 | "category": "social", 25 | "size": 77849856, 26 | "screenshotURLs": [ 27 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_1.webp", 28 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_2.webp", 29 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_3.webp", 30 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_4.webp", 31 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_5.webp", 32 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_6.webp", 33 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_7.webp", 34 | "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/image_8.webp" 35 | ], 36 | "versions": [ 37 | { 38 | "version": "1.15.11", 39 | "date": "2025-04-09T01:51:05Z", 40 | "localizedDescription": "Apollo version: \"v1.15.11\"\nImprovedCustomApi version: \"v1.2.3\"\n\nRelease Notes\n\u2022 Fix issue with Imgur multi\u2022image uploads consistently failing (51). Note that multi\u2022image uploads still fail on the first attempt but should succeed on the next attempt.\r\n\u2022 Update Custom API settings with link to [new GitHub discussion](https://github.com/JeffreyCA/Apollo\u2022ImprovedCustomApi/discussions/60) where you can share your own subreddit sources with others.\nKnown Issues\n\u2022 Apollo Ultra features may cause app to crash\n\u2022 Imgur multi\u2022image upload\n\u2022 Uploads usually fail on the first attempt but subsequent retries should succeed\n\u2022 Share URLs in private messages and long\u2022tapping them still open in the in\u2022app browser\n", 41 | "downloadURL": "https://github.com/Balackburn/Apollo/releases/download/v1.15.11_1.2.3/NO-EXTENSIONS_Apollo-1.15.11_ImprovedCustomApi-1.2.3.ipa", 42 | "size": 77849856 43 | } 44 | ], 45 | "appPermissions": { 46 | "entitlements": [ 47 | { 48 | "name": "com.apple.security.application-groups" 49 | }, 50 | { 51 | "name": "com.apple.developer.associated-domains" 52 | }, 53 | { 54 | "name": "com.apple.developer.group-session" 55 | }, 56 | { 57 | "name": "com.apple.developer.icloud-container-identifiers" 58 | }, 59 | { 60 | "name": "com.apple.developer.ubiquity-kvstore-identifier" 61 | }, 62 | { 63 | "name": "keychain-access-groups" 64 | }, 65 | { 66 | "name": "aps-environment" 67 | }, 68 | { 69 | "name": "com.apple.developer.weatherkit" 70 | } 71 | ], 72 | "privacy": [ 73 | { 74 | "name": "Camera", 75 | "usageDescription": "App needs camera access." 76 | }, 77 | { 78 | "name": "FaceID", 79 | "usageDescription": "App uses Face ID." 80 | }, 81 | { 82 | "name": "LocationWhenInUse", 83 | "usageDescription": "App needs location when in use." 84 | }, 85 | { 86 | "name": "Motion", 87 | "usageDescription": "App uses motion sensors." 88 | }, 89 | { 90 | "name": "PhotoLibraryAdd", 91 | "usageDescription": "App adds photos." 92 | }, 93 | { 94 | "name": "PhotoLibrary", 95 | "usageDescription": "App accesses photo library." 96 | } 97 | ] 98 | } 99 | } 100 | ], 101 | "news": [ 102 | { 103 | "appID": "com.christianselig.Apollo", 104 | "title": "1.15.11_1.2.2 - 06 Mar", 105 | "identifier": "release-1.15.11_1.2.2", 106 | "caption": "Update of Apollo (with ImprovedCustomApi) now available!", 107 | "date": "2025-03-06T08:33:31Z", 108 | "tintColor": "3F91FE", 109 | "imageURL": "https://raw.githubusercontent.com/Balackburn/Apollo/main/images/news/news_2.webp", 110 | "notify": true, 111 | "url": "https://github.com/Balackburn/Apollo/releases/tag/v1.15.11_1.2.2" 112 | }, 113 | { 114 | "appID": "com.christianselig.Apollo", 115 | "title": "1.15.11_1.2.3 - 09 Apr", 116 | "identifier": "release-1.15.11_1.2.3", 117 | "caption": "Update for Apollo now available!", 118 | "date": "2025-04-09T01:51:05Z", 119 | "tintColor": "3F91FE", 120 | "imageURL": "https://raw.githubusercontent.com/Balackburn/Apollo/refs/heads/main/repo/images/news/news_2.webp", 121 | "notify": true, 122 | "url": "https://github.com/Balackburn/Apollo/releases/tag/v1.15.11_1.2.3" 123 | } 124 | ] 125 | } -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "repo_url": "Balackburn/Apollo", 3 | "json_file": "apps.json", 4 | "json_noext_file": "apps_noext.json", 5 | "app_id": "com.christianselig.Apollo", 6 | "app_name": "Apollo for Reddit (with ImprovedCustomApi)", 7 | "caption": "Update for Apollo now available!", 8 | "tint_colour": "3F91FE", 9 | "image_url": "https://raw.githubusercontent.com/Balackburn/Apollo/refs/heads/main/images/news/news_2.webp" 10 | } -------------------------------------------------------------------------------- /images/UI/image_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/UI/image_1.webp -------------------------------------------------------------------------------- /images/UI/image_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/UI/image_2.webp -------------------------------------------------------------------------------- /images/UI/image_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/UI/image_3.webp -------------------------------------------------------------------------------- /images/UI/image_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/UI/image_4.webp -------------------------------------------------------------------------------- /images/UI/image_5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/UI/image_5.webp -------------------------------------------------------------------------------- /images/buttons/altstore_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/buttons/altstore_button.png -------------------------------------------------------------------------------- /images/buttons/feather_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/buttons/feather_button.png -------------------------------------------------------------------------------- /images/buttons/sidestore_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/buttons/sidestore_button.png -------------------------------------------------------------------------------- /images/buttons/url_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/buttons/url_button.png -------------------------------------------------------------------------------- /images/buttons/website_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/buttons/website_button.png -------------------------------------------------------------------------------- /images/header/altstore_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/header/altstore_header.png -------------------------------------------------------------------------------- /images/image_0.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_0.webp -------------------------------------------------------------------------------- /images/image_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_1.webp -------------------------------------------------------------------------------- /images/image_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_2.webp -------------------------------------------------------------------------------- /images/image_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_3.webp -------------------------------------------------------------------------------- /images/image_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_4.webp -------------------------------------------------------------------------------- /images/image_5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_5.webp -------------------------------------------------------------------------------- /images/image_6.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_6.webp -------------------------------------------------------------------------------- /images/image_7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_7.webp -------------------------------------------------------------------------------- /images/image_8.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/image_8.webp -------------------------------------------------------------------------------- /images/news/news_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/news/news_1.webp -------------------------------------------------------------------------------- /images/news/news_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balackburn/Apollo/c88c28b6cd2d74a4b4a089def19cec4d33102e10/images/news/news_2.webp -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Apollo for Reddit - Enhance Your Reddit Experience on iOS 7 | 10 | 11 | 12 | 15 | 16 | 17 | 307 | 613 | 614 | 615 | 616 |
617 |
618 |
619 | 620 |
621 |
622 |

Apollo for Reddit

623 |

The award-winning Reddit app !

624 | 636 |
637 |
638 |
639 | 641 | Add to Altstore 642 | 643 | 644 | See on Github 645 | 646 | 647 | .ipa download 648 | 649 | 650 |
651 |
652 |
653 |

Screenshots

654 |
655 | 683 |
684 |
685 | 686 |

Apollo for Reddit

687 |

688 | Apollo is a beautiful and powerful Reddit app designed for fast navigation, customizability, and a seamless 689 | browsing experience. Built with iOS design guidelines in mind, Apollo fits right at home on your device and 690 | offers a super-charged Media Viewer, fully customizable gestures, and much more. This version of Apollo has 691 | been tweaked with ImprovedCustomApi, which allows the app to use your own Reddit API credentials. 692 |

693 |

ImprovedCustomApi

694 |

695 | ImprovedCustomApi by @JeffreyCA is a tweak that allows you to use your own Reddit API credentials 699 | in Apollo. 700 |

701 | 702 |
703 |
704 |
705 |
706 | 718 |
719 |
720 | 722 | 727 | 769 | 795 | 796 | 797 | -------------------------------------------------------------------------------- /update_json.py: -------------------------------------------------------------------------------- 1 | import json 2 | import re 3 | import requests 4 | from datetime import datetime 5 | from typing import Dict, List, Optional, Any, TypedDict 6 | 7 | 8 | class ReleaseAsset(TypedDict): 9 | browser_download_url: str 10 | name: str 11 | size: int 12 | 13 | 14 | class GitHubRelease(TypedDict): 15 | tag_name: str 16 | published_at: str 17 | body: str 18 | assets: List[ReleaseAsset] 19 | 20 | 21 | class VersionEntry(TypedDict): 22 | version: str 23 | date: str 24 | localizedDescription: str 25 | downloadURL: Optional[str] 26 | size: Optional[int] 27 | 28 | 29 | class AppInfo(TypedDict): 30 | versions: List[VersionEntry] 31 | version: str 32 | versionDate: str 33 | versionDescription: str 34 | downloadURL: Optional[str] 35 | size: Optional[int] 36 | 37 | 38 | class NewsEntry(TypedDict): 39 | appID: str 40 | title: str 41 | identifier: str 42 | caption: str 43 | date: str 44 | tintColor: str 45 | imageURL: str 46 | notify: bool 47 | url: str 48 | 49 | 50 | class AppData(TypedDict): 51 | apps: List[Dict[str, Any]] 52 | news: List[NewsEntry] 53 | 54 | 55 | class AppConfig(TypedDict): 56 | repo_url: str 57 | json_file: str 58 | app_id: str 59 | app_name: str 60 | caption: str 61 | tint_colour: str 62 | image_url: str 63 | 64 | 65 | def load_config(config_path: str) -> AppConfig: 66 | """ 67 | Load repo configuration values. 68 | """ 69 | try: 70 | with open(config_path, "r") as config_file: 71 | config_data = json.load(config_file) 72 | 73 | return { 74 | "repo_url": config_data["repo_url"], 75 | "json_file": config_data["json_file"], 76 | "json_noext_file": config_data["json_noext_file"], 77 | "app_id": config_data["app_id"], 78 | "app_name": config_data["app_name"], 79 | "caption": config_data["caption"], 80 | "tint_colour": config_data["tint_colour"], 81 | "image_url": config_data["image_url"], 82 | } 83 | 84 | except FileNotFoundError: 85 | print(f"Configuration file not found at {config_path}") 86 | raise 87 | except (json.JSONDecodeError, KeyError) as e: 88 | print(f"Error parsing configuration: {e}") 89 | raise 90 | 91 | 92 | def fetch_all_releases(repo_url: str) -> List[GitHubRelease]: 93 | """ 94 | Fetch all GitHub releases for the repository, sorted by published date (oldest first). 95 | 96 | Returns: 97 | List[GitHubRelease]: List of all releases sorted by publication date 98 | """ 99 | api_url: str = f"https://api.github.com/repos/{repo_url}/releases" 100 | headers: Dict[str, str] = {"Accept": "application/vnd.github+json"} 101 | 102 | response = requests.get(api_url, headers=headers) 103 | response.raise_for_status() # Raise exception for HTTP errors 104 | 105 | releases: List[GitHubRelease] = response.json() 106 | sorted_releases = sorted(releases, key=lambda x: x["published_at"], reverse=False) 107 | 108 | return sorted_releases 109 | 110 | 111 | def fetch_latest_release(repo_url: str) -> GitHubRelease: 112 | """ 113 | Fetch the latest GitHub release for the repository. 114 | 115 | Returns: 116 | GitHubRelease: The latest release 117 | 118 | Raises: 119 | ValueError: If no releases are found 120 | """ 121 | api_url: str = f"https://api.github.com/repos/{repo_url}/releases" 122 | headers: Dict[str, str] = {"Accept": "application/vnd.github+json"} 123 | 124 | response = requests.get(api_url, headers=headers) 125 | response.raise_for_status() # Raise exception for HTTP errors 126 | 127 | releases: List[GitHubRelease] = response.json() 128 | sorted_releases = sorted(releases, key=lambda x: x["published_at"], reverse=True) 129 | 130 | if sorted_releases: 131 | return sorted_releases[0] 132 | 133 | raise ValueError("No release found.") 134 | 135 | 136 | def format_description(description: str) -> str: 137 | """ 138 | Format release description by removing HTML tags and replacing certain characters. 139 | 140 | Args: 141 | description: The raw description text 142 | 143 | Returns: 144 | str: Cleaned description text 145 | """ 146 | formatted = re.sub(r"<[^<]+?>", "", description) # HTML tags 147 | formatted = re.sub(r"#{1,6}\s?", "", formatted) # Markdown header tags 148 | formatted = formatted.replace(r"\*{2}", "").replace("-", "•").replace("`", '"') 149 | 150 | return formatted 151 | 152 | 153 | def find_download_url_and_size( 154 | release: GitHubRelease, prefix: Optional[str] 155 | ) -> tuple[Optional[str], Optional[int]]: 156 | """ 157 | Find the download URL and size for a release's IPA file. 158 | 159 | Args: 160 | release: The GitHub release 161 | prefix: Asset name prefix to search for (None or "NO-EXTENSIONS") 162 | 163 | Returns: 164 | tuple: (download_url, size) or (None, None) if not found 165 | """ 166 | target_prefix = "NO-EXTENSIONS" if prefix == "NO-EXTENSIONS" else "Apollo" 167 | 168 | for asset in release["assets"]: 169 | if asset["name"].startswith(target_prefix) and asset["name"].endswith(".ipa"): 170 | return asset["browser_download_url"], asset["size"] 171 | 172 | return None, None 173 | 174 | 175 | def normalize_version(version: str) -> str: 176 | """ 177 | Strip the version tag (e.g., -hotfix) from a version string. 178 | 179 | Args: 180 | version: Version string (e.g., v0.5.2-hotfix, 0.5.2-beta) 181 | 182 | Returns: 183 | Normalized version string without the tag (e.g., 0.5.2) 184 | """ 185 | version = version.lstrip("v") 186 | 187 | match = re.search(r"(\d+\.\d+\.\d+)", version) 188 | if match: 189 | return match.group(1) 190 | return version 191 | 192 | 193 | def process_versions(versions_data: List[VersionEntry]) -> List[VersionEntry]: 194 | """ 195 | Process the versions list to remove duplicate versions, keeping the newest version. 196 | 197 | Args: 198 | versions_data (List[VersionEntry]): List of version dictionaries containing: 199 | version: str 200 | date: str 201 | localizedDescription: str 202 | downloadURL: Optional[str] 203 | size: Optional[int] 204 | 205 | Returns: 206 | List[VersionEntry]: Processed list with only the newest versions. 207 | """ 208 | # Create a list to store unique versions with their details 209 | version_entries: List[VersionEntry] = [] 210 | 211 | # Iterate through the versions in the order they appear 212 | for version in versions_data: 213 | # Parse the date for comparison 214 | current_date = datetime.fromisoformat(version["date"].replace("Z", "+00:00")) 215 | 216 | # Check if this version already exists in unique_versions 217 | existing_version_index = next( 218 | ( 219 | index 220 | for index, v in enumerate(version_entries) 221 | if v["version"] == version["version"] 222 | ), 223 | None, 224 | ) 225 | 226 | if existing_version_index is not None: 227 | # Compare dates and keep the newer version 228 | existing_date = datetime.fromisoformat( 229 | version_entries[existing_version_index]["date"].replace("Z", "+00:00") 230 | ) 231 | 232 | if current_date > existing_date: 233 | version_entries[existing_version_index] = version 234 | else: 235 | # If no duplicate found, add to unique versions 236 | version_entries.append(version) 237 | 238 | return version_entries 239 | 240 | 241 | def update_json_file( 242 | config: AppConfig, 243 | json_file: str, 244 | fetched_data_all: List[GitHubRelease], 245 | fetched_data_latest: GitHubRelease, 246 | prefix: Optional[str], 247 | ) -> None: 248 | """ 249 | Update the apps.json file with the fetched GitHub releases. 250 | 251 | Args: 252 | json_file: Path to the JSON file 253 | fetched_data_all: List of all GitHub releases 254 | fetched_data_latest: The latest GitHub release 255 | prefix: Asset name prefix to search for (None or "NO-EXTENSIONS") 256 | """ 257 | with open(json_file, "r") as file: 258 | data: AppData = json.load(file) 259 | 260 | app = data["apps"][0] 261 | 262 | releases = [] 263 | 264 | # Process all releases 265 | for release in fetched_data_all: 266 | full_version = release["tag_name"].lstrip("v") 267 | version_match = re.search(r"(\d+\.\d+\.\d+)(?:-([a-zA-Z0-9]+))?", full_version) 268 | 269 | if not version_match: 270 | continue 271 | 272 | version_date = release["published_at"] 273 | 274 | # Get base version without tags 275 | base_version = normalize_version(full_version) 276 | 277 | # Clean up description 278 | description = release["body"] 279 | keyword = "{APP_NAME} Release Information" 280 | if keyword in description: 281 | description = description.split(keyword, 1)[1].strip() 282 | description = format_description(description) 283 | 284 | # Find download URL and size 285 | download_url, size = find_download_url_and_size(release, prefix) 286 | 287 | # Skip release entries without a download URL 288 | if not download_url: 289 | continue 290 | 291 | # Create version entry 292 | version_entry: VersionEntry = { 293 | "version": base_version, 294 | "date": version_date, 295 | "localizedDescription": description, 296 | "downloadURL": download_url, 297 | "size": size, 298 | } 299 | 300 | releases.append(version_entry) 301 | 302 | deduplicated_versions = process_versions(releases) 303 | app["versions"] = [] 304 | for i in deduplicated_versions: 305 | app["versions"].insert(0, i) 306 | app["versions"] = sorted( 307 | app["versions"], key=lambda x: x.get("date", ""), reverse=True 308 | ) 309 | 310 | # Update app info with latest release 311 | latest_version = fetched_data_latest["tag_name"].lstrip("v") 312 | tag = fetched_data_latest["tag_name"] 313 | version_match = re.search(r"(\d+\.\d+\.\d+)(?:-([a-zA-Z0-9]+))?", latest_version) 314 | 315 | if not version_match: 316 | raise ValueError("Invalid version format") 317 | 318 | app["version"] = normalize_version(full_version) 319 | app["versionDate"] = fetched_data_latest["published_at"] 320 | app["versionDescription"] = format_description(fetched_data_latest["body"]) 321 | 322 | # Find latest download URL and size 323 | download_url, size = find_download_url_and_size(fetched_data_latest, prefix) 324 | app["downloadURL"] = download_url 325 | app["size"] = size 326 | 327 | if "news" not in data: 328 | data["news"] = [] 329 | 330 | # Add news entry for the latest version if it doesn't exist 331 | news_identifier = f"release-{latest_version}" 332 | if not any(item["identifier"] == news_identifier for item in data["news"]): 333 | formatted_date = datetime.strptime( 334 | fetched_data_latest["published_at"], "%Y-%m-%dT%H:%M:%SZ" 335 | ).strftime("%d %b") 336 | 337 | news_entry: NewsEntry = { 338 | "appID": config["app_id"], 339 | "title": f"{latest_version} - {formatted_date}", 340 | "identifier": news_identifier, 341 | "caption": config["caption"], 342 | "date": fetched_data_latest["published_at"], 343 | "tintColor": config["tint_colour"], 344 | "imageURL": config["image_url"], 345 | "notify": True, 346 | "url": f"https://github.com/{config['repo_url']}/releases/tag/{tag}", 347 | } 348 | data["news"].append(news_entry) 349 | 350 | with open(json_file, "w") as file: 351 | json.dump(data, file, indent=2) 352 | 353 | 354 | def main() -> None: 355 | """ 356 | Entrypoint for GitHub workflow action. 357 | 358 | The script runs two passes to populate both the sources (standard and no-extensions). 359 | """ 360 | try: 361 | config = load_config("config.json") 362 | fetched_data_all = fetch_all_releases(config["repo_url"]) 363 | fetched_data_latest = fetch_latest_release(config["repo_url"]) 364 | update_json_file( 365 | config, 366 | config["json_file"], 367 | fetched_data_all, 368 | fetched_data_latest, 369 | None 370 | ) 371 | update_json_file( 372 | config, 373 | config["json_noext_file"], 374 | fetched_data_all, 375 | fetched_data_latest, 376 | "NO-EXTENSIONS", 377 | ) 378 | print("Successfully updated sources with latest releases.") 379 | except Exception as e: 380 | print(f"Error updating releases: {e}") 381 | 382 | 383 | if __name__ == "__main__": 384 | main() 385 | --------------------------------------------------------------------------------