1 Commits
Author SHA1 Message Date
github-actions[bot] 53557e724f catalog update 2026-10-21 16:44:23 +00:00
4741 changed files with 1 additions and 92147 deletions

No files matched your search

-104
View File
@@ -1,104 +0,0 @@
name: Bug report
description: Something in Overdrive doesn't work as it should.
title: "[Bug] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this. If Overdrive doesn't show up on the home screen
or an update won't install, the [Troubleshooting](https://github.com/MyLuxy/overdrive#troubleshooting)
section may already have the answer.
- type: input
id: version
attributes:
label: Overdrive version
description: It's shown next to the logo at the top of the app.
placeholder: v1.0.1
validations:
required: true
- type: input
id: firmware
attributes:
label: PS5 firmware
placeholder: "4.03"
validations:
required: true
- type: input
id: shadowmount
attributes:
label: ShadowMount+ version
description: If you know it.
placeholder: "1.6"
- type: dropdown
id: location
attributes:
label: Where is Overdrive installed?
options:
- USB drive (homebrew folder)
- Internal storage (/data/homebrew)
- Somewhere else
validations:
required: true
- type: dropdown
id: area
attributes:
label: Which part of the app?
options:
- Installing or starting Overdrive
- Discover, Browse or search
- Game page
- Downloads
- Files
- Updating Overdrive
- Language or text
- Something else
validations:
required: true
- type: textarea
id: what
attributes:
label: What happened?
description: Tell us what went wrong, and what you expected instead.
validations:
required: true
- type: textarea
id: steps
attributes:
label: How can we make it happen again?
placeholder: |
1. Open Overdrive
2. Go to ...
3. Press ...
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots or video
description: Press the Create button on the controller to capture the screen, then drag the file here.
- type: textarea
id: logs
attributes:
label: Log
description: If the app won't install or start, the relevant lines from `/data/shadowmount/debug.log` help a lot.
render: text
- type: checkboxes
id: checks
attributes:
label: Before you send it
options:
- label: I'm on the [latest release](https://github.com/MyLuxy/overdrive/releases/latest).
required: true
- label: I searched the existing issues and this hasn't been reported yet.
required: true
-8
View File
@@ -1,8 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Install guide
url: https://github.com/MyLuxy/overdrive#install-in-four-steps
about: How to install Overdrive with ShadowMount+, step by step.
- name: Troubleshooting
url: https://github.com/MyLuxy/overdrive#troubleshooting
about: Overdrive doesn't show up, an update won't install, and other common problems.
@@ -1,26 +0,0 @@
name: Feature request
description: An idea to make Overdrive better.
title: "[Feature] "
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: What would you like to do?
description: The problem or the moment where Overdrive falls short today.
validations:
required: true
- type: textarea
id: idea
attributes:
label: Your idea
description: How you picture it working in the app.
validations:
required: true
- type: textarea
id: extra
attributes:
label: Anything else
description: Screenshots, sketches, or another app that does it well.
-47
View File
@@ -1,47 +0,0 @@
name: Game report
description: A game in the store has a problem, like a download that fails or wrong details.
title: "[Game] "
labels: ["catalog"]
body:
- type: input
id: game
attributes:
label: Game
description: The name exactly as it appears in Overdrive.
placeholder: Castlevania Dominus Collection
validations:
required: true
- type: dropdown
id: problem
attributes:
label: What's wrong?
options:
- The download fails or never starts
- The game doesn't install or start after downloading
- Wrong name, details, size or cover
- Something else
validations:
required: true
- type: textarea
id: details
attributes:
label: Details
description: What you saw, and any error message the app showed.
validations:
required: true
- type: input
id: version
attributes:
label: Overdrive version
placeholder: v1.0.1
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Press the Create button on the controller to capture the screen, then drag the file here.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

-39
View File
@@ -1,39 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 369" width="1280" height="369" role="img" aria-label="Download Overdrive.exfat, copy it into a homebrew folder, plug the drive in, play">
<rect x="4" y="4" width="295.5" height="361" rx="24.2" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/>
<circle cx="52.4" cy="52.4" r="27.5" fill="#1d1d21" stroke="#2a2a2f" stroke-width="2"/>
<path d="M55.79 41.57L55.79 63.18L53.11 63.18L53.11 44.15L52.99 44.15L47.74 47.97L47.74 45.07L52.56 41.57L55.79 41.57Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.88" stroke-linejoin="round"/>
<g transform="translate(123.15 54.6) scale(2.38)" fill="none" stroke="#f2f2f3" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m7 10 5 5 5-5"/><path d="M12 15V3"/></g>
<path d="M87.06 169L81.26 169L81.26 166.31L86.87 166.31Q89.8 166.31 91.73 165.19Q93.67 164.07 94.62 161.97Q95.57 159.86 95.57 156.95Q95.57 154.06 94.63 151.98Q93.68 149.91 91.82 148.79Q89.96 147.68 87.16 147.68L81.13 147.68L81.13 144.99L87.37 144.99Q90.88 144.99 93.37 146.43Q95.86 147.86 97.19 150.54Q98.52 153.23 98.52 156.95Q98.52 160.7 97.18 163.4Q95.84 166.1 93.28 167.55Q90.72 169 87.06 169ZM82.61 144.99L82.61 169L79.58 169L79.58 144.99L82.61 144.99ZM109.48 169.39Q107.04 169.39 105.21 168.23Q103.38 167.08 102.36 165Q101.34 162.93 101.34 160.17Q101.34 157.4 102.36 155.3Q103.38 153.21 105.21 152.06Q107.04 150.9 109.48 150.9Q111.92 150.9 113.77 152.06Q115.61 153.21 116.64 155.3Q117.66 157.4 117.66 160.17Q117.66 162.93 116.64 165Q115.61 167.08 113.77 168.23Q111.92 169.39 109.48 169.39ZM109.48 166.81Q111.26 166.81 112.44 165.9Q113.62 164.99 114.19 163.48Q114.76 161.97 114.76 160.17Q114.76 158.37 114.19 156.84Q113.62 155.32 112.44 154.4Q111.26 153.48 109.48 153.48Q107.72 153.48 106.56 154.4Q105.4 155.32 104.83 156.83Q104.25 158.35 104.25 160.17Q104.25 161.97 104.83 163.48Q105.4 164.99 106.55 165.9Q107.7 166.81 109.48 166.81ZM125.04 169L119.61 151.15L122.66 151.15L124.85 158.95Q125.3 160.59 125.81 162.59Q126.31 164.58 126.81 167.02L126.33 167.02Q126.81 164.68 127.31 162.68Q127.8 160.67 128.26 158.95L130.42 151.15L133.45 151.15L135.58 158.95Q136.05 160.62 136.53 162.62Q137.01 164.62 137.5 167.02L137 167.02Q137.5 164.65 138 162.65Q138.51 160.65 138.98 158.95L141.17 151.15L144.22 151.15L138.79 169L135.9 169L133.58 160.91Q133.23 159.69 132.9 158.41Q132.57 157.14 132.24 155.81Q131.92 154.48 131.58 153.13L132.24 153.13Q131.92 154.48 131.59 155.81Q131.26 157.14 130.93 158.43Q130.6 159.72 130.25 160.91L127.93 169L125.04 169ZM149.9 158.35L149.9 169L147.04 169L147.04 151.15L149.79 151.15L149.81 155.48L149.34 155.48Q150.18 153.02 151.69 151.96Q153.21 150.9 155.25 150.9Q157.06 150.9 158.44 151.65Q159.81 152.4 160.59 153.91Q161.36 155.42 161.36 157.7L161.36 169L158.49 169L158.49 157.95Q158.49 155.84 157.41 154.67Q156.33 153.5 154.43 153.5Q153.16 153.5 152.13 154.05Q151.1 154.61 150.5 155.69Q149.9 156.77 149.9 158.35ZM168.5 144.99L168.5 169L165.63 169L165.63 144.99L168.5 144.99ZM180.04 169.39Q177.6 169.39 175.78 168.23Q173.95 167.08 172.92 165Q171.9 162.93 171.9 160.17Q171.9 157.4 172.92 155.3Q173.95 153.21 175.78 152.06Q177.6 150.9 180.04 150.9Q182.49 150.9 184.33 152.06Q186.18 153.21 187.2 155.3Q188.22 157.4 188.22 160.17Q188.22 162.93 187.2 165Q186.18 167.08 184.33 168.23Q182.49 169.39 180.04 169.39ZM180.04 166.81Q181.83 166.81 183 165.9Q184.18 164.99 184.75 163.48Q185.32 161.97 185.32 160.17Q185.32 158.37 184.75 156.84Q184.18 155.32 183 154.4Q181.83 153.48 180.04 153.48Q178.28 153.48 177.12 154.4Q175.96 155.32 175.39 156.83Q174.82 158.35 174.82 160.17Q174.82 161.97 175.39 163.48Q175.96 164.99 177.11 165.9Q178.27 166.81 180.04 166.81ZM196.68 169.39Q194.98 169.39 193.59 168.76Q192.2 168.13 191.39 166.91Q190.58 165.68 190.58 163.91Q190.58 162.38 191.18 161.42Q191.79 160.46 192.8 159.91Q193.82 159.36 195.06 159.09Q196.3 158.82 197.55 158.66Q199.16 158.45 200.16 158.33Q201.16 158.22 201.64 157.95Q202.11 157.67 202.11 157.01L202.11 156.92Q202.11 155.82 201.69 155.05Q201.28 154.27 200.44 153.85Q199.6 153.43 198.34 153.43Q197.07 153.43 196.16 153.84Q195.25 154.24 194.68 154.85Q194.11 155.46 193.86 156.14L191.08 155.37Q191.66 153.74 192.78 152.77Q193.91 151.79 195.35 151.35Q196.8 150.9 198.28 150.9Q199.28 150.9 200.44 151.15Q201.6 151.4 202.63 152.06Q203.66 152.73 204.32 153.95Q204.98 155.17 204.98 157.16L204.98 169L202.16 169L202.16 166.55L201.98 166.55Q201.68 167.18 201.02 167.84Q200.36 168.5 199.29 168.94Q198.21 169.39 196.68 169.39ZM197.17 166.84Q198.79 166.84 199.89 166.22Q200.99 165.6 201.55 164.6Q202.11 163.6 202.11 162.51L202.11 160.07Q201.94 160.27 201.37 160.43Q200.81 160.59 200.07 160.72Q199.33 160.85 198.61 160.94Q197.89 161.02 197.42 161.09Q196.38 161.22 195.48 161.53Q194.57 161.85 194.02 162.44Q193.48 163.04 193.48 164.07Q193.48 164.97 193.95 165.59Q194.43 166.21 195.26 166.53Q196.09 166.84 197.17 166.84ZM215.96 169.37Q213.72 169.37 212.01 168.23Q210.3 167.1 209.34 165.02Q208.38 162.94 208.38 160.12Q208.38 157.3 209.34 155.23Q210.3 153.16 212.02 152.03Q213.73 150.9 215.97 150.9Q217.62 150.9 218.65 151.44Q219.68 151.98 220.27 152.7Q220.87 153.42 221.21 153.98L221.4 153.98L221.4 144.99L224.27 144.99L224.27 169L221.5 169L221.5 166.24L221.22 166.24Q220.87 166.82 220.26 167.56Q219.65 168.29 218.61 168.83Q217.58 169.37 215.96 169.37ZM216.39 166.81Q218.02 166.81 219.15 165.95Q220.29 165.1 220.88 163.59Q221.47 162.07 221.47 160.09Q221.47 158.11 220.89 156.62Q220.31 155.14 219.17 154.31Q218.03 153.48 216.39 153.48Q214.71 153.48 213.58 154.34Q212.44 155.21 211.87 156.7Q211.3 158.19 211.3 160.09Q211.3 162.01 211.88 163.53Q212.46 165.05 213.6 165.93Q214.75 166.81 216.39 166.81Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.99" stroke-linejoin="round"/>
<path d="M124.74 208.29L124.74 209.85L118.85 209.85L118.85 208.29L124.74 208.29ZM120.61 205.55L122.43 205.55L122.43 216.7Q122.43 217.44 122.73 217.77Q123.03 218.11 123.74 218.11Q123.93 218.11 124.2 218.07Q124.47 218.04 124.69 218.01L125.01 219.55Q124.72 219.63 124.37 219.68Q124.02 219.72 123.67 219.72Q122.21 219.72 121.41 218.97Q120.61 218.21 120.61 216.84L120.61 205.55ZM128.81 212.85L128.81 219.6L127 219.6L127 204.39L128.81 204.39L128.81 211.04L128.46 211.04Q128.99 209.48 129.95 208.81Q130.91 208.14 132.2 208.14Q133.35 208.14 134.22 208.61Q135.09 209.09 135.59 210.04Q136.08 211 136.08 212.45L136.08 219.6L134.25 219.6L134.25 212.6Q134.25 211.26 133.57 210.52Q132.89 209.78 131.68 209.78Q130.88 209.78 130.22 210.13Q129.57 210.49 129.19 211.17Q128.81 211.85 128.81 212.85ZM143.94 219.84Q142.29 219.84 141.11 219.11Q139.93 218.38 139.29 217.07Q138.65 215.76 138.65 214.03Q138.65 212.29 139.28 210.97Q139.91 209.64 141.06 208.89Q142.2 208.14 143.73 208.14Q144.68 208.14 145.57 208.46Q146.46 208.77 147.16 209.46Q147.87 210.14 148.28 211.22Q148.69 212.3 148.69 213.83L148.69 214.55L139.84 214.55L139.84 213.01L147.71 213.01L146.87 213.57Q146.87 212.46 146.51 211.59Q146.15 210.73 145.45 210.24Q144.75 209.75 143.73 209.75Q142.72 209.75 141.99 210.25Q141.25 210.74 140.87 211.55Q140.48 212.36 140.48 213.32L140.48 214.3Q140.48 215.55 140.91 216.43Q141.34 217.3 142.12 217.76Q142.91 218.22 143.95 218.22Q144.63 218.22 145.19 218.02Q145.74 217.81 146.14 217.42Q146.54 217.02 146.74 216.45L148.51 216.85Q148.25 217.73 147.62 218.41Q146.99 219.09 146.05 219.47Q145.11 219.84 143.94 219.84ZM162.19 208.29L162.19 209.85L155.62 209.85L155.62 208.29L162.19 208.29ZM157.82 219.6L157.82 206.71Q157.82 205.75 158.26 205.11Q158.7 204.47 159.43 204.13Q160.15 203.8 160.99 203.8Q161.59 203.8 162.01 203.89Q162.42 203.98 162.6 204.06L162.17 205.61Q162.04 205.57 161.8 205.52Q161.55 205.47 161.19 205.47Q160.38 205.47 160.01 205.88Q159.63 206.29 159.63 207.1L159.63 219.6L157.82 219.6ZM164.5 219.6L164.5 208.29L166.32 208.29L166.32 219.6L164.5 219.6ZM165.41 206.39Q164.9 206.39 164.53 206.04Q164.15 205.68 164.15 205.18Q164.15 204.67 164.53 204.32Q164.9 203.98 165.41 203.98Q165.93 203.98 166.3 204.32Q166.67 204.67 166.67 205.18Q166.67 205.68 166.3 206.04Q165.93 206.39 165.41 206.39ZM171.26 204.39L171.26 219.6L169.44 219.6L169.44 204.39L171.26 204.39ZM179.11 219.84Q177.47 219.84 176.29 219.11Q175.1 218.38 174.47 217.07Q173.83 215.76 173.83 214.03Q173.83 212.29 174.46 210.97Q175.08 209.64 176.23 208.89Q177.38 208.14 178.91 208.14Q179.86 208.14 180.75 208.46Q181.64 208.77 182.34 209.46Q183.04 210.14 183.46 211.22Q183.87 212.3 183.87 213.83L183.87 214.55L175.01 214.55L175.01 213.01L182.89 213.01L182.04 213.57Q182.04 212.46 181.69 211.59Q181.33 210.73 180.63 210.24Q179.93 209.75 178.91 209.75Q177.9 209.75 177.17 210.25Q176.43 210.74 176.04 211.55Q175.66 212.36 175.66 213.32L175.66 214.3Q175.66 215.55 176.08 216.43Q176.51 217.3 177.3 217.76Q178.08 218.22 179.13 218.22Q179.81 218.22 180.37 218.02Q180.92 217.81 181.32 217.42Q181.72 217.02 181.92 216.45L183.69 216.85Q183.43 217.73 182.8 218.41Q182.17 219.09 181.23 219.47Q180.29 219.84 179.11 219.84Z" fill="#a3a3ab"/>
<rect x="60.85" y="230.6" width="181.79" height="35.2" rx="9.9" fill="#1d1d21" stroke="#2a2a2f" stroke-width="1.5"/>
<path d="M84.22 255.01Q82.26 255.01 80.73 254.06Q79.2 253.1 78.32 251.35Q77.45 249.6 77.45 247.21Q77.45 244.81 78.32 243.05Q79.2 241.3 80.73 240.34Q82.26 239.38 84.22 239.38Q86.18 239.38 87.71 240.34Q89.24 241.3 90.12 243.05Q90.99 244.81 90.99 247.21Q90.99 249.6 90.12 251.35Q89.24 253.1 87.71 254.06Q86.18 255.01 84.22 255.01ZM84.22 253.23Q85.58 253.23 86.69 252.53Q87.79 251.84 88.45 250.5Q89.11 249.16 89.11 247.21Q89.11 245.25 88.45 243.9Q87.79 242.55 86.69 241.86Q85.58 241.17 84.22 241.17Q82.86 241.17 81.74 241.86Q80.63 242.55 79.98 243.9Q79.32 245.25 79.32 247.21Q79.32 249.16 79.98 250.5Q80.63 251.84 81.74 252.53Q82.86 253.23 84.22 253.23ZM97.02 254.8L92.69 243.49L94.68 243.49L97.09 250.17Q97.47 251.18 97.73 252.18Q98 253.18 98.3 254.12L97.66 254.12Q97.95 253.18 98.22 252.18Q98.49 251.18 98.86 250.17L101.26 243.49L103.25 243.49L98.92 254.8L97.02 254.8ZM110.05 255.04Q108.41 255.04 107.23 254.31Q106.04 253.58 105.4 252.27Q104.77 250.96 104.77 249.23Q104.77 247.49 105.39 246.17Q106.02 244.84 107.17 244.09Q108.32 243.34 109.85 243.34Q110.8 243.34 111.68 243.66Q112.57 243.97 113.28 244.66Q113.98 245.34 114.39 246.42Q114.81 247.5 114.81 249.03L114.81 249.75L105.95 249.75L105.95 248.21L113.83 248.21L112.98 248.77Q112.98 247.66 112.62 246.79Q112.27 245.93 111.57 245.44Q110.87 244.95 109.85 244.95Q108.84 244.95 108.1 245.45Q107.37 245.94 106.98 246.75Q106.59 247.56 106.59 248.52L106.59 249.5Q106.59 250.75 107.02 251.63Q107.45 252.5 108.24 252.96Q109.02 253.42 110.06 253.42Q110.75 253.42 111.3 253.22Q111.86 253.01 112.26 252.62Q112.65 252.22 112.86 251.65L114.62 252.05Q114.37 252.93 113.74 253.61Q113.1 254.29 112.16 254.67Q111.23 255.04 110.05 255.04ZM117.34 254.8L117.34 243.49L119.09 243.49L119.09 245.24L119.2 245.24Q119.51 244.38 120.29 243.86Q121.07 243.33 122.09 243.33Q122.31 243.33 122.57 243.34Q122.84 243.36 122.99 243.37L122.99 245.2Q122.91 245.18 122.59 245.14Q122.27 245.09 121.9 245.09Q121.11 245.09 120.49 245.43Q119.87 245.76 119.51 246.35Q119.15 246.94 119.15 247.74L119.15 254.8L117.34 254.8ZM129.26 255.03Q127.84 255.03 126.76 254.32Q125.68 253.6 125.07 252.28Q124.46 250.96 124.46 249.18Q124.46 247.39 125.07 246.08Q125.68 244.77 126.76 244.05Q127.85 243.34 129.27 243.34Q130.31 243.34 130.96 243.68Q131.62 244.02 131.99 244.48Q132.37 244.93 132.58 245.29L132.71 245.29L132.71 239.59L134.52 239.59L134.52 254.8L132.77 254.8L132.77 253.05L132.6 253.05Q132.37 253.42 131.98 253.89Q131.59 254.35 130.94 254.69Q130.29 255.03 129.26 255.03ZM129.53 253.41Q130.56 253.41 131.28 252.87Q132 252.33 132.38 251.37Q132.75 250.41 132.75 249.16Q132.75 247.9 132.38 246.96Q132.01 246.02 131.29 245.5Q130.57 244.97 129.53 244.97Q128.47 244.97 127.75 245.52Q127.03 246.06 126.67 247.01Q126.31 247.95 126.31 249.16Q126.31 250.37 126.68 251.34Q127.04 252.3 127.77 252.86Q128.49 253.41 129.53 253.41ZM137.65 254.8L137.65 243.49L139.4 243.49L139.4 245.24L139.5 245.24Q139.82 244.38 140.6 243.86Q141.38 243.33 142.4 243.33Q142.62 243.33 142.88 243.34Q143.15 243.36 143.3 243.37L143.3 245.2Q143.22 245.18 142.9 245.14Q142.58 245.09 142.21 245.09Q141.42 245.09 140.8 245.43Q140.18 245.76 139.82 246.35Q139.46 246.94 139.46 247.74L139.46 254.8L137.65 254.8ZM145.32 254.8L145.32 243.49L147.14 243.49L147.14 254.8L145.32 254.8ZM146.23 241.59Q145.72 241.59 145.35 241.24Q144.97 240.88 144.97 240.38Q144.97 239.87 145.35 239.52Q145.72 239.18 146.23 239.18Q146.75 239.18 147.12 239.52Q147.49 239.87 147.49 240.38Q147.49 240.88 147.12 241.24Q146.75 241.59 146.23 241.59ZM153.54 254.8L149.21 243.49L151.2 243.49L153.61 250.17Q153.98 251.18 154.25 252.18Q154.52 253.18 154.81 254.12L154.18 254.12Q154.46 253.18 154.73 252.18Q155.01 251.18 155.37 250.17L157.77 243.49L159.76 243.49L155.43 254.8L153.54 254.8ZM166.57 255.04Q164.92 255.04 163.74 254.31Q162.56 253.58 161.92 252.27Q161.28 250.96 161.28 249.23Q161.28 247.49 161.91 246.17Q162.54 244.84 163.68 244.09Q164.83 243.34 166.36 243.34Q167.31 243.34 168.2 243.66Q169.09 243.97 169.79 244.66Q170.5 245.34 170.91 246.42Q171.32 247.5 171.32 249.03L171.32 249.75L162.47 249.75L162.47 248.21L170.34 248.21L169.5 248.77Q169.5 247.66 169.14 246.79Q168.78 245.93 168.08 245.44Q167.38 244.95 166.36 244.95Q165.35 244.95 164.62 245.45Q163.88 245.94 163.5 246.75Q163.11 247.56 163.11 248.52L163.11 249.5Q163.11 250.75 163.54 251.63Q163.97 252.5 164.75 252.96Q165.54 253.42 166.58 253.42Q167.26 253.42 167.82 253.22Q168.37 253.01 168.77 252.62Q169.17 252.22 169.37 251.65L171.14 252.05Q170.88 252.93 170.25 253.61Q169.62 254.29 168.68 254.67Q167.74 255.04 166.57 255.04ZM175.18 254.94Q174.62 254.94 174.22 254.54Q173.82 254.15 173.82 253.58Q173.82 253.01 174.22 252.62Q174.62 252.22 175.18 252.22Q175.75 252.22 176.15 252.62Q176.55 253.01 176.55 253.58Q176.55 254.15 176.15 254.54Q175.75 254.94 175.18 254.94ZM184.38 255.04Q182.73 255.04 181.55 254.31Q180.37 253.58 179.73 252.27Q179.09 250.96 179.09 249.23Q179.09 247.49 179.72 246.17Q180.34 244.84 181.49 244.09Q182.64 243.34 184.17 243.34Q185.12 243.34 186.01 243.66Q186.9 243.97 187.6 244.66Q188.Line truncated
<path d="M88.93 287.49L88.93 289.05L82.36 289.05L82.36 287.49L88.93 287.49ZM84.55 298.8L84.55 285.91Q84.55 284.95 84.99 284.31Q85.44 283.67 86.16 283.33Q86.89 283 87.72 283Q88.33 283 88.74 283.09Q89.15 283.18 89.34 283.26L88.91 284.81Q88.77 284.77 88.53 284.72Q88.28 284.67 87.93 284.67Q87.11 284.67 86.74 285.08Q86.37 285.49 86.37 286.3L86.37 298.8L84.55 298.8ZM91.23 298.8L91.23 287.49L92.99 287.49L92.99 289.24L93.09 289.24Q93.41 288.38 94.19 287.86Q94.97 287.33 95.99 287.33Q96.2 287.33 96.47 287.34Q96.73 287.36 96.89 287.37L96.89 289.2Q96.81 289.18 96.48 289.14Q96.16 289.09 95.8 289.09Q95.01 289.09 94.39 289.43Q93.76 289.76 93.41 290.35Q93.05 290.94 93.05 291.74L93.05 298.8L91.23 298.8ZM103.51 299.04Q101.97 299.04 100.81 298.32Q99.65 297.59 99.01 296.27Q98.36 294.95 98.36 293.21Q98.36 291.45 99.01 290.13Q99.65 288.8 100.81 288.07Q101.97 287.34 103.51 287.34Q105.06 287.34 106.23 288.07Q107.4 288.8 108.05 290.13Q108.69 291.45 108.69 293.21Q108.69 294.95 108.05 296.27Q107.4 297.59 106.23 298.32Q105.06 299.04 103.51 299.04ZM103.51 297.41Q104.64 297.41 105.39 296.84Q106.13 296.26 106.5 295.3Q106.86 294.35 106.86 293.21Q106.86 292.06 106.5 291.1Q106.13 290.14 105.39 289.55Q104.64 288.97 103.51 288.97Q102.4 288.97 101.66 289.55Q100.93 290.14 100.57 291.1Q100.2 292.05 100.2 293.21Q100.2 294.35 100.57 295.3Q100.93 296.26 101.66 296.84Q102.39 297.41 103.51 297.41ZM111.27 298.8L111.27 287.49L113.03 287.49L113.04 289.99L112.89 289.99Q113.13 289.08 113.64 288.49Q114.14 287.89 114.82 287.59Q115.5 287.29 116.24 287.29Q117.48 287.29 118.27 288.05Q119.06 288.81 119.29 290L119.02 290Q119.23 289.19 119.76 288.57Q120.3 287.96 121.06 287.63Q121.83 287.29 122.74 287.29Q123.73 287.29 124.54 287.72Q125.36 288.15 125.84 289.01Q126.33 289.88 126.33 291.21L126.33 298.8L124.5 298.8L124.5 291.26Q124.5 290.01 123.81 289.48Q123.11 288.95 122.2 288.95Q121.43 288.95 120.87 289.27Q120.31 289.6 120.01 290.16Q119.71 290.72 119.71 291.45L119.71 298.8L117.88 298.8L117.88 291.07Q117.88 290.12 117.25 289.53Q116.61 288.95 115.64 288.95Q114.98 288.95 114.39 289.26Q113.8 289.57 113.44 290.19Q113.08 290.81 113.08 291.72L113.08 298.8L111.27 298.8ZM135.43 298.8L135.43 283.59L140.71 283.59Q142.45 283.59 143.6 284.19Q144.75 284.79 145.32 285.85Q145.89 286.91 145.89 288.28Q145.89 289.65 145.32 290.69Q144.74 291.73 143.59 292.31Q142.43 292.89 140.69 292.89L136.5 292.89L136.5 291.18L140.64 291.18Q141.81 291.18 142.55 290.82Q143.28 290.47 143.63 289.82Q143.97 289.17 143.97 288.28Q143.97 287.36 143.63 286.69Q143.28 286.02 142.54 285.66Q141.8 285.29 140.62 285.29L137.35 285.29L137.35 298.8L135.43 298.8ZM144.18 298.8L140.5 291.95L142.68 291.95L146.41 298.8L144.18 298.8ZM153.35 299.04Q151.71 299.04 150.53 298.31Q149.34 297.58 148.7 296.27Q148.07 294.96 148.07 293.23Q148.07 291.49 148.69 290.17Q149.32 288.84 150.47 288.09Q151.62 287.34 153.15 287.34Q154.1 287.34 154.99 287.66Q155.87 287.97 156.58 288.66Q157.28 289.34 157.69 290.42Q158.11 291.5 158.11 293.03L158.11 293.75L149.25 293.75L149.25 292.21L157.13 292.21L156.28 292.77Q156.28 291.66 155.92 290.79Q155.57 289.93 154.87 289.44Q154.17 288.95 153.15 288.95Q152.14 288.95 151.4 289.45Q150.67 289.94 150.28 290.75Q149.89 291.56 149.89 292.52L149.89 293.5Q149.89 294.75 150.32 295.63Q150.75 296.5 151.54 296.96Q152.32 297.42 153.36 297.42Q154.05 297.42 154.6 297.22Q155.16 297.01 155.56 296.62Q155.95 296.22 156.16 295.65L157.92 296.05Q157.67 296.93 157.04 297.61Q156.4 298.29 155.46 298.67Q154.53 299.04 153.35 299.04ZM162.46 283.59L162.46 298.8L160.64 298.8L160.64 283.59L162.46 283.59ZM170.31 299.04Q168.67 299.04 167.49 298.31Q166.3 297.58 165.66 296.27Q165.03 294.96 165.03 293.23Q165.03 291.49 165.65 290.17Q166.28 288.84 167.43 288.09Q168.58 287.34 170.11 287.34Q171.06 287.34 171.95 287.66Q172.83 287.97 173.54 288.66Q174.24 289.34 174.66 290.42Q175.07 291.5 175.07 293.03L175.07 293.75L166.21 293.75L166.21 292.21L174.09 292.21L173.24 292.77Q173.24 291.66 172.88 290.79Q172.53 289.93 171.83 289.44Q171.13 288.95 170.11 288.95Q169.1 288.95 168.36 289.45Q167.63 289.94 167.24 290.75Q166.85 291.56 166.85 292.52L166.85 293.5Q166.85 294.75 167.28 295.63Q167.71 296.5 168.5 296.96Q169.28 297.42 170.32 297.42Q171.01 297.42 171.56 297.22Q172.12 297.01 172.52 296.62Q172.92 296.22 173.12 295.65L174.88 296.05Q174.63 296.93 174 297.61Q173.36 298.29 172.43 298.67Q171.49 299.04 170.31 299.04ZM180.8 299.04Q179.72 299.04 178.84 298.65Q177.97 298.25 177.45 297.47Q176.94 296.7 176.94 295.58Q176.94 294.61 177.32 294Q177.7 293.39 178.34 293.04Q178.99 292.7 179.77 292.52Q180.56 292.35 181.35 292.25Q182.38 292.12 183.01 292.04Q183.64 291.97 183.94 291.8Q184.24 291.63 184.24 291.21L184.24 291.15Q184.24 290.45 183.98 289.96Q183.71 289.47 183.18 289.21Q182.65 288.94 181.85 288.94Q181.05 288.94 180.47 289.2Q179.9 289.45 179.53 289.84Q179.17 290.23 179.02 290.66L177.25 290.17Q177.62 289.14 178.33 288.52Q179.05 287.9 179.96 287.62Q180.88 287.34 181.81 287.34Q182.45 287.34 183.18 287.5Q183.92 287.66 184.57 288.07Q185.22 288.49 185.64 289.27Q186.06 290.Line truncated
<g transform="translate(303.5 173.5) scale(0.92)" fill="none" stroke="#8a8a94" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></g>
<rect x="329.5" y="4" width="295.5" height="361" rx="24.2" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/>
<circle cx="377.9" cy="52.4" r="27.5" fill="#1d1d21" stroke="#2a2a2f" stroke-width="2"/>
<path d="M371.03 63.18L371.03 61.16L378.29 53.51Q379.52 52.2 380.34 51.22Q381.15 50.24 381.55 49.35Q381.96 48.45 381.96 47.43Q381.96 46.27 381.42 45.42Q380.89 44.56 379.96 44.1Q379.03 43.65 377.84 43.65Q376.57 43.65 375.64 44.17Q374.71 44.69 374.2 45.63Q373.69 46.58 373.69 47.85L371.1 47.85Q371.1 45.89 371.98 44.41Q372.87 42.92 374.4 42.09Q375.93 41.27 377.9 41.27Q379.84 41.27 381.34 42.08Q382.83 42.89 383.69 44.28Q384.54 45.66 384.54 47.39Q384.54 48.61 384.11 49.73Q383.67 50.85 382.62 52.23Q381.57 53.61 379.7 55.55L374.78 60.63L374.78 60.77L384.86 60.77L384.86 63.18L371.03 63.18Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.88" stroke-linejoin="round"/>
<g transform="translate(448.65 54.6) scale(2.38)" fill="none" stroke="#f2f2f3" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/></g>
<path d="M449.95 169.34Q446.84 169.34 444.41 167.83Q441.99 166.33 440.61 163.55Q439.23 160.78 439.23 157.01Q439.23 153.23 440.61 150.45Q441.99 147.68 444.41 146.17Q446.84 144.65 449.95 144.65Q451.78 144.65 453.41 145.19Q455.04 145.73 456.33 146.76Q457.62 147.79 458.48 149.26Q459.34 150.73 459.68 152.58L456.63 152.58Q456.36 151.34 455.74 150.39Q455.12 149.44 454.22 148.79Q453.33 148.13 452.24 147.8Q451.15 147.47 449.95 147.47Q447.72 147.47 445.97 148.59Q444.21 149.71 443.2 151.84Q442.19 153.97 442.19 157.01Q442.19 160.04 443.21 162.17Q444.22 164.29 445.98 165.41Q447.74 166.52 449.95 166.52Q451.15 166.52 452.24 166.19Q453.33 165.86 454.22 165.21Q455.12 164.55 455.74 163.6Q456.36 162.65 456.63 161.41L459.68 161.41Q459.36 163.25 458.49 164.71Q457.63 166.16 456.34 167.2Q455.05 168.24 453.43 168.79Q451.8 169.34 449.95 169.34ZM470.47 169.39Q468.04 169.39 466.21 168.23Q464.38 167.08 463.36 165Q462.34 162.93 462.34 160.17Q462.34 157.4 463.36 155.3Q464.38 153.21 466.21 152.06Q468.04 150.9 470.47 150.9Q472.92 150.9 474.77 152.06Q476.61 153.21 477.64 155.3Q478.66 157.4 478.66 160.17Q478.66 162.93 477.64 165Q476.61 167.08 474.77 168.23Q472.92 169.39 470.47 169.39ZM470.47 166.81Q472.26 166.81 473.44 165.9Q474.62 164.99 475.19 163.48Q475.76 161.97 475.76 160.17Q475.76 158.37 475.19 156.84Q474.62 155.32 473.44 154.4Q472.26 153.48 470.47 153.48Q468.72 153.48 467.56 154.4Q466.4 155.32 465.83 156.83Q465.25 158.35 465.25 160.17Q465.25 161.97 465.83 163.48Q466.4 164.99 467.55 165.9Q468.7 166.81 470.47 166.81ZM482.06 175.74L482.06 151.15L484.83 151.15L484.83 153.98L485.11 153.98Q485.46 153.42 486.06 152.7Q486.65 151.98 487.68 151.44Q488.71 150.9 490.36 150.9Q492.61 150.9 494.31 152.03Q496.01 153.16 496.98 155.23Q497.95 157.3 497.95 160.12Q497.95 162.94 496.99 165.02Q496.03 167.1 494.32 168.23Q492.61 169.37 490.37 169.37Q488.76 169.37 487.72 168.83Q486.68 168.29 486.08 167.56Q485.48 166.82 485.12 166.24L484.93 166.24L484.93 175.74L482.06 175.74ZM489.94 166.81Q491.6 166.81 492.74 165.93Q493.87 165.05 494.45 163.53Q495.03 162.01 495.03 160.09Q495.03 158.19 494.45 156.7Q493.87 155.21 492.74 154.34Q491.62 153.48 489.94 153.48Q488.3 153.48 487.16 154.31Q486.02 155.14 485.44 156.62Q484.86 158.11 484.86 160.09Q484.86 162.07 485.45 163.59Q486.04 165.1 487.18 165.95Q488.31 166.81 489.94 166.81ZM501.12 175.56L501.74 173.06L502.28 173.12Q503.1 173.32 503.77 173.2Q504.44 173.08 504.98 172.49Q505.52 171.9 505.94 170.71L506.52 169.05L499.69 151.15L502.83 151.15L506.63 161.68Q507.23 163.28 507.65 164.86Q508.07 166.44 508.52 167.92L507.52 167.92Q507.97 166.44 508.4 164.86Q508.82 163.28 509.41 161.68L513.22 151.15L516.35 151.15L508.44 171.77Q507.91 173.16 507.16 174.06Q506.41 174.96 505.41 175.41Q504.41 175.85 503.17 175.85Q502.46 175.85 501.92 175.75Q501.38 175.65 501.12 175.56Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.99" stroke-linejoin="round"/>
<path d="M411.81 219.6L411.81 208.29L413.63 208.29L413.63 219.6L411.81 219.6ZM412.72 206.39Q412.21 206.39 411.84 206.04Q411.46 205.68 411.46 205.18Q411.46 204.67 411.84 204.32Q412.21 203.98 412.72 203.98Q413.24 203.98 413.61 204.32Q413.98 204.67 413.98 205.18Q413.98 205.68 413.61 206.04Q413.24 206.39 412.72 206.39ZM421.27 208.29L421.27 209.85L415.38 209.85L415.38 208.29L421.27 208.29ZM417.14 205.55L418.95 205.55L418.95 216.7Q418.95 217.44 419.25 217.77Q419.56 218.11 420.27 218.11Q420.45 218.11 420.72 218.07Q420.99 218.04 421.22 218.01L421.54 219.55Q421.25 219.63 420.9 219.68Q420.55 219.72 420.2 219.72Q418.74 219.72 417.94 218.97Q417.14 218.21 417.14 216.84L417.14 205.55ZM429.29 219.6L429.29 208.29L431.11 208.29L431.11 219.6L429.29 219.6ZM430.2 206.39Q429.69 206.39 429.32 206.04Q428.94 205.68 428.94 205.18Q428.94 204.67 429.32 204.32Q429.69 203.98 430.2 203.98Q430.72 203.98 431.09 204.32Q431.46 204.67 431.46 205.18Q431.46 205.68 431.09 206.04Q430.72 206.39 430.2 206.39ZM436.05 212.85L436.05 219.6L434.23 219.6L434.23 208.29L435.98 208.29L435.99 211.04L435.69 211.04Q436.22 209.48 437.18 208.81Q438.14 208.14 439.44 208.14Q440.58 208.14 441.45 208.61Q442.32 209.09 442.81 210.04Q443.3 211 443.3 212.45L443.3 219.6L441.49 219.6L441.49 212.6Q441.49 211.26 440.8 210.52Q440.12 209.78 438.91 209.78Q438.11 209.78 437.46 210.13Q436.8 210.49 436.42 211.17Q436.05 211.85 436.05 212.85ZM450.95 208.29L450.95 209.85L445.06 209.85L445.06 208.29L450.95 208.29ZM446.81 205.55L448.63 205.55L448.63 216.7Q448.63 217.44 448.93 217.77Q449.23 218.11 449.95 218.11Q450.13 218.11 450.4 218.07Q450.67 218.04 450.9 218.01L451.21 219.55Q450.93 219.63 450.57 219.68Q450.22 219.72 449.87 219.72Q448.42 219.72 447.61 218.97Q446.81 218.21 446.81 216.84L446.81 205.55ZM457.8 219.84Q456.26 219.84 455.1 219.12Q453.95 218.39 453.3 217.07Q452.65 215.75 452.65 214.01Q452.65 212.25 453.3 210.93Q453.95 209.6 455.1 208.87Q456.26 208.14 457.8 208.14Q459.36 208.14 460.52 208.87Q461.69 209.6 462.34 210.93Q462.99 212.25 462.99 214.01Q462.99 215.75 462.34 217.07Q461.69 218.39 460.52 219.12Q459.36 219.84 457.8 219.84ZM457.8 218.21Q458.94 218.21 459.68 217.64Q460.43 217.06 460.79 216.1Q461.15 215.15 461.15 214.01Q461.15 212.86 460.79 211.9Q460.43 210.94 459.68 210.35Q458.94 209.77 457.8 209.77Q456.69 209.77 455.96 210.35Q455.22 210.94 454.86 211.9Q454.5 212.85 454.5 214.01Q454.5 215.15 454.86 216.1Q455.22 217.06 455.95 217.64Q456.68 218.21 457.8 218.21ZM474.53 219.84Q473.45 219.84 472.57 219.45Q471.69 219.05 471.18 218.27Q470.66 217.5 470.66 216.38Q470.66 215.41 471.05 214.8Q471.43 214.19 472.07 213.84Q472.71 213.5 473.5 213.32Q474.29 213.15 475.08 213.05Q476.1 212.92 476.73 212.84Q477.37 212.77 477.67 212.6Q477.97 212.43 477.97 212.01L477.97 211.95Q477.97 211.25 477.7 210.76Q477.44 210.27 476.91 210.01Q476.38 209.74 475.58 209.74Q474.78 209.74 474.2 210Q473.62 210.25 473.26 210.64Q472.9 211.03 472.74 211.46L470.98 210.97Q471.35 209.94 472.06 209.32Q472.78 208.7 473.69 208.42Q474.6 208.14 475.54 208.14Q476.17 208.14 476.91 208.3Q477.64 208.46 478.3 208.87Q478.95 209.29 479.37 210.07Q479.79 210.84 479.79 212.1L479.79 219.6L478 219.6L478 218.05L477.89 218.05Q477.69 218.45 477.28 218.87Q476.86 219.28 476.18 219.56Q475.5 219.84 474.53 219.84ZM474.84 218.23Q475.87 218.23 476.56 217.84Q477.26 217.45 477.61 216.81Q477.97 216.18 477.97 215.49L477.97 213.95Q477.86 214.07 477.5 214.17Q477.14 214.27 476.67 214.35Q476.2 214.44 475.75 214.49Q475.3 214.55 475 214.59Q474.34 214.67 473.76 214.87Q473.19 215.07 472.85 215.45Q472.5 215.82 472.5 216.48Q472.5 217.05 472.8 217.44Q473.1 217.83 473.63 218.03Q474.15 218.23 474.84 218.23ZM493.88 208.29L493.88 209.85L487.31 209.85L487.31 208.29L493.88 208.29ZM489.5 219.6L489.5 206.71Q489.5 205.75 489.95 205.11Q490.39 204.47 491.11 204.13Q491.84 203.8 492.67 203.8Q493.28 203.8 493.69 203.89Q494.1 203.98 494.29 204.06L493.86 205.61Q493.73 205.57 493.48 205.52Q493.24 205.47 492.88 205.47Q492.06 205.47 491.69 205.88Q491.32 206.29 491.32 207.1L491.32 219.6L489.5 219.6ZM500.79 219.84Q499.25 219.84 498.09 219.12Q496.93 218.39 496.28 217.07Q495.63 215.75 495.63 214.01Q495.63 212.25 496.28 210.93Q496.93 209.6 498.09 208.87Q499.25 208.14 500.79 208.14Q502.34 208.14 503.51 208.87Q504.68 209.6 505.32 210.93Q505.97 212.25 505.97 214.01Q505.97 215.75 505.32 217.07Q504.68 218.39 503.51 219.12Q502.34 219.84 500.79 219.84ZM500.79 218.21Q501.92 218.21 502.67 217.64Q503.41 217.06 503.77 216.1Q504.14 215.15 504.14 214.01Q504.14 212.86 503.77 211.9Q503.41 210.94 502.67 210.35Q501.92 209.77 500.79 209.77Q499.68 209.77 498.94 210.35Q498.21 210.94 497.84 211.9Q497.48 212.85 497.48 214.01Q497.48 215.15 497.84 216.1Q498.21 217.06 498.94 217.64Q499.67 218.21 500.79 218.21ZM510.36 204.39L510.36 219.6L508.54 219.6L508.54 204.39L510.36 204.39ZM517.73 219.83Q516.31 219.83 515.23 219.12Q514.15 218.4 513.54 217.08Q512.93 215.76 512.93 213.98Q512.93 212.19 513.54 210.88Q514.15 209.57 515.23 208.85Q516.32 208.14 517.74 208.14Q518.78 208.14 519.43 208.48Q520.09 208.82 520.46 2Line truncated
<rect x="409.87" y="230.6" width="134.76" height="35.2" rx="9.9" fill="#1d1d21" stroke="#2a2a2f" stroke-width="1.5"/>
<path d="M428.65 248.05L428.65 254.8L426.83 254.8L426.83 239.59L428.65 239.59L428.65 246.24L428.29 246.24Q428.82 244.68 429.78 244.01Q430.74 243.34 432.04 243.34Q433.18 243.34 434.05 243.81Q434.92 244.29 435.42 245.24Q435.91 246.2 435.91 247.65L435.91 254.8L434.09 254.8L434.09 247.8Q434.09 246.46 433.4 245.72Q432.72 244.98 431.52 244.98Q430.71 244.98 430.06 245.33Q429.4 245.69 429.03 246.37Q428.65 247.05 428.65 248.05ZM443.64 255.04Q442.1 255.04 440.94 254.32Q439.78 253.59 439.13 252.27Q438.49 250.95 438.49 249.21Q438.49 247.45 439.13 246.13Q439.78 244.8 440.94 244.07Q442.1 243.34 443.64 243.34Q445.19 243.34 446.36 244.07Q447.53 244.8 448.18 246.13Q448.82 247.45 448.82 249.21Q448.82 250.95 448.18 252.27Q447.53 253.59 446.36 254.32Q445.19 255.04 443.64 255.04ZM443.64 253.41Q444.77 253.41 445.52 252.84Q446.26 252.26 446.62 251.3Q446.99 250.35 446.99 249.21Q446.99 248.06 446.62 247.1Q446.26 246.14 445.52 245.55Q444.77 244.97 443.64 244.97Q442.53 244.97 441.79 245.55Q441.06 246.14 440.7 247.1Q440.33 248.05 440.33 249.21Q440.33 250.35 440.7 251.3Q441.06 252.26 441.79 252.84Q442.52 253.41 443.64 253.41ZM451.4 254.8L451.4 243.49L453.16 243.49L453.17 245.99L453.02 245.99Q453.26 245.08 453.77 244.49Q454.27 243.89 454.95 243.59Q455.63 243.29 456.37 243.29Q457.61 243.29 458.4 244.05Q459.19 244.81 459.42 246L459.15 246Q459.36 245.19 459.89 244.57Q460.43 243.96 461.19 243.63Q461.96 243.29 462.87 243.29Q463.86 243.29 464.67 243.72Q465.49 244.15 465.97 245.01Q466.46 245.88 466.46 247.21L466.46 254.8L464.63 254.8L464.63 247.26Q464.63 246.01 463.94 245.48Q463.24 244.95 462.33 244.95Q461.56 244.95 461 245.27Q460.44 245.6 460.14 246.16Q459.84 246.72 459.84 247.45L459.84 254.8L458.01 254.8L458.01 247.07Q458.01 246.12 457.38 245.53Q456.74 244.95 455.77 244.95Q455.11 244.95 454.52 245.26Q453.93 245.57 453.57 246.19Q453.21 246.81 453.21 247.72L453.21 254.8L451.4 254.8ZM474.31 255.04Q472.66 255.04 471.48 254.31Q470.3 253.58 469.66 252.27Q469.02 250.96 469.02 249.23Q469.02 247.49 469.65 246.17Q470.27 244.84 471.42 244.09Q472.57 243.34 474.1 243.34Q475.05 243.34 475.94 243.66Q476.83 243.97 477.53 244.66Q478.23 245.34 478.65 246.42Q479.06 247.5 479.06 249.03L479.06 249.75L470.2 249.75L470.2 248.21L478.08 248.21L477.23 248.77Q477.23 247.66 476.88 246.79Q476.52 245.93 475.82 245.44Q475.12 244.95 474.1 244.95Q473.09 244.95 472.36 245.45Q471.62 245.94 471.23 246.75Q470.85 247.56 470.85 248.52L470.85 249.5Q470.85 250.75 471.27 251.63Q471.7 252.5 472.49 252.96Q473.28 253.42 474.32 253.42Q475 253.42 475.56 253.22Q476.11 253.01 476.51 252.62Q476.91 252.22 477.11 251.65L478.88 252.05Q478.62 252.93 477.99 253.61Q477.36 254.29 476.42 254.67Q475.48 255.04 474.31 255.04ZM486.86 255.03Q485.84 255.03 485.18 254.69Q484.52 254.35 484.13 253.89Q483.75 253.42 483.52 253.05L483.35 253.05L483.35 254.8L481.59 254.8L481.59 239.59L483.41 239.59L483.41 245.29L483.53 245.29Q483.75 244.93 484.12 244.48Q484.5 244.02 485.15 243.68Q485.81 243.34 486.85 243.34Q488.28 243.34 489.35 244.05Q490.43 244.77 491.04 246.08Q491.65 247.39 491.65 249.18Q491.65 250.96 491.05 252.28Q490.44 253.6 489.36 254.32Q488.28 255.03 486.86 255.03ZM486.58 253.41Q487.63 253.41 488.35 252.86Q489.07 252.3 489.44 251.34Q489.81 250.37 489.81 249.16Q489.81 247.95 489.44 247.01Q489.07 246.06 488.36 245.52Q487.64 244.97 486.58 244.97Q485.54 244.97 484.82 245.5Q484.1 246.02 483.74 246.96Q483.37 247.9 483.37 249.16Q483.37 250.41 483.74 251.37Q484.11 252.33 484.83 252.87Q485.55 253.41 486.58 253.41ZM494.23 254.8L494.23 243.49L495.98 243.49L495.98 245.24L496.08 245.24Q496.4 244.38 497.18 243.86Q497.96 243.33 498.98 243.33Q499.2 243.33 499.46 243.34Q499.73 243.36 499.88 243.37L499.88 245.2Q499.8 245.18 499.48 245.14Q499.16 245.09 498.79 245.09Q498 245.09 497.38 245.43Q496.76 245.76 496.4 246.35Q496.04 246.94 496.04 247.74L496.04 254.8L494.23 254.8ZM506.64 255.04Q504.99 255.04 503.81 254.31Q502.62 253.58 501.99 252.27Q501.35 250.96 501.35 249.23Q501.35 247.49 501.98 246.17Q502.6 244.84 503.75 244.09Q504.9 243.34 506.43 243.34Q507.38 243.34 508.27 243.66Q509.16 243.97 509.86 244.66Q510.56 245.34 510.98 246.42Q511.39 247.5 511.39 249.03L511.39 249.75L502.53 249.75L502.53 248.21L510.41 248.21L509.56 248.77Q509.56 247.66 509.21 246.79Q508.85 245.93 508.15 245.44Q507.45 244.95 506.43 244.95Q505.42 244.95 504.69 245.45Q503.95 245.94 503.56 246.75Q503.18 247.56 503.18 248.52L503.18 249.5Q503.18 250.75 503.6 251.63Q504.03 252.5 504.82 252.96Q505.6 253.42 506.65 253.42Q507.33 253.42 507.89 253.22Q508.44 253.01 508.84 252.62Q509.24 252.22 509.44 251.65L511.21 252.05Q510.95 252.93 510.32 253.61Q509.69 254.29 508.75 254.67Q507.81 255.04 506.64 255.04ZM516.44 254.8L513 243.49L514.93 243.49L516.32 248.43Q516.61 249.47 516.93 250.74Q517.25 252 517.57 253.54L517.26 253.54Q517.57 252.07 517.88 250.79Q518.19 249.52 518.48 248.43L519.85 243.49L521.77 243.49L523.12 248.43Q523.41 249.49 523.72 250.76Q524.02 252.02 524.33 253.54L524.01 253.54Q524.33 252.04 524.65 250.78Q524.97 249.51 525.27 248.43L526.66 243.49L528.59 243Line truncated
<path d="M411.11 299.04Q409.56 299.04 408.41 298.32Q407.25 297.59 406.6 296.27Q405.95 294.95 405.95 293.21Q405.95 291.45 406.6 290.13Q407.25 288.8 408.41 288.07Q409.56 287.34 411.11 287.34Q412.66 287.34 413.83 288.07Q414.99 288.8 415.64 290.13Q416.29 291.45 416.29 293.21Q416.29 294.95 415.64 296.27Q414.99 297.59 413.83 298.32Q412.66 299.04 411.11 299.04ZM411.11 297.41Q412.24 297.41 412.98 296.84Q413.73 296.26 414.09 295.3Q414.45 294.35 414.45 293.21Q414.45 292.06 414.09 291.1Q413.73 290.14 412.98 289.55Q412.24 288.97 411.11 288.97Q409.99 288.97 409.26 289.55Q408.52 290.14 408.16 291.1Q407.8 292.05 407.8 293.21Q407.8 294.35 408.16 295.3Q408.52 296.26 409.25 296.84Q409.98 297.41 411.11 297.41ZM420.68 292.05L420.68 298.8L418.86 298.8L418.86 287.49L420.61 287.49L420.62 290.24L420.32 290.24Q420.85 288.68 421.81 288.01Q422.77 287.34 424.07 287.34Q425.21 287.34 426.08 287.81Q426.95 288.29 427.44 289.24Q427.93 290.2 427.93 291.65L427.93 298.8L426.12 298.8L426.12 291.8Q426.12 290.46 425.43 289.72Q424.75 288.98 423.55 288.98Q422.74 288.98 422.09 289.33Q421.43 289.69 421.06 290.37Q420.68 291.05 420.68 292.05ZM440.03 299.04Q438.95 299.04 438.07 298.65Q437.19 298.25 436.67 297.47Q436.16 296.7 436.16 295.58Q436.16 294.61 436.54 294Q436.92 293.39 437.57 293.04Q438.21 292.7 439 292.52Q439.78 292.35 440.58 292.25Q441.6 292.12 442.23 292.04Q442.86 291.97 443.17 291.8Q443.47 291.63 443.47 291.21L443.47 291.15Q443.47 290.45 443.2 289.96Q442.94 289.47 442.4 289.21Q441.87 288.94 441.08 288.94Q440.27 288.94 439.7 289.2Q439.12 289.45 438.76 289.84Q438.39 290.23 438.24 290.66L436.48 290.17Q436.84 289.14 437.56 288.52Q438.27 287.9 439.19 287.62Q440.1 287.34 441.04 287.34Q441.67 287.34 442.4 287.5Q443.14 287.66 443.79 288.07Q444.45 288.49 444.86 289.27Q445.28 290.04 445.28 291.3L445.28 298.8L443.5 298.8L443.5 297.25L443.38 297.25Q443.19 297.65 442.77 298.07Q442.35 298.48 441.68 298.76Q441 299.04 440.03 299.04ZM440.33 297.43Q441.36 297.43 442.06 297.04Q442.75 296.65 443.11 296.01Q443.47 295.38 443.47 294.69L443.47 293.15Q443.35 293.27 443 293.37Q442.64 293.47 442.17 293.55Q441.7 293.64 441.25 293.69Q440.79 293.75 440.5 293.79Q439.83 293.87 439.26 294.07Q438.69 294.27 438.34 294.65Q438 295.02 438 295.68Q438 296.25 438.3 296.64Q438.6 297.03 439.12 297.23Q439.65 297.43 440.33 297.43ZM460.32 299.04Q458.53 299.04 457.19 298.34Q455.84 297.64 455.11 296.41Q454.38 295.19 454.38 293.63L454.38 283.59L456.3 283.59L456.3 293.47Q456.3 294.58 456.79 295.43Q457.27 296.28 458.17 296.77Q459.07 297.26 460.32 297.26Q461.57 297.26 462.47 296.77Q463.37 296.28 463.85 295.43Q464.33 294.58 464.33 293.47L464.33 283.59L466.25 283.59L466.25 293.63Q466.25 295.19 465.52 296.41Q464.78 297.64 463.45 298.34Q462.12 299.04 460.32 299.04ZM474.69 299.07Q473.03 299.07 471.81 298.51Q470.59 297.96 469.9 296.98Q469.21 295.99 469.14 294.67L471.11 294.67Q471.17 295.56 471.67 296.16Q472.16 296.75 472.96 297.04Q473.75 297.34 474.69 297.34Q475.73 297.34 476.56 297Q477.38 296.67 477.86 296.05Q478.34 295.44 478.34 294.64Q478.34 293.92 477.94 293.46Q477.55 293 476.87 292.7Q476.19 292.39 475.33 292.16L473.51 291.66Q471.59 291.13 470.57 290.16Q469.55 289.19 469.55 287.67Q469.55 286.38 470.23 285.42Q470.92 284.45 472.1 283.92Q473.29 283.38 474.78 283.38Q476.29 283.38 477.44 283.92Q478.6 284.46 479.27 285.4Q479.93 286.34 479.97 287.54L478.09 287.54Q477.96 286.38 477.03 285.74Q476.1 285.09 474.71 285.09Q473.73 285.09 472.99 285.42Q472.24 285.74 471.83 286.3Q471.42 286.86 471.42 287.57Q471.42 288.34 471.88 288.82Q472.35 289.3 473.03 289.58Q473.7 289.86 474.35 290.03L475.9 290.45Q476.6 290.64 477.35 290.94Q478.1 291.24 478.76 291.72Q479.41 292.2 479.81 292.92Q480.21 293.64 480.21 294.65Q480.21 295.91 479.56 296.91Q478.91 297.91 477.67 298.49Q476.43 299.07 474.69 299.07ZM483.12 298.8L483.12 283.59L488.52 283.59Q490.1 283.59 491.15 284.13Q492.2 284.67 492.72 285.58Q493.24 286.49 493.24 287.63Q493.24 288.58 492.9 289.22Q492.56 289.86 492 290.25Q491.43 290.64 490.75 290.84L490.75 290.96Q491.49 291.01 492.2 291.46Q492.91 291.91 493.37 292.72Q493.84 293.53 493.84 294.71Q493.84 295.88 493.3 296.8Q492.76 297.73 491.62 298.26Q490.48 298.8 488.68 298.8L483.12 298.8ZM485.04 297.1L488.64 297.1Q490.41 297.1 491.19 296.42Q491.97 295.75 491.97 294.71Q491.97 293.93 491.58 293.29Q491.19 292.66 490.47 292.28Q489.75 291.9 488.75 291.9L485.04 291.9L485.04 297.1ZM485.04 290.27L488.45 290.27Q489.29 290.27 489.96 289.95Q490.62 289.64 491.01 289.05Q491.39 288.46 491.39 287.68Q491.39 286.66 490.68 285.98Q489.97 285.3 488.5 285.3L485.04 285.3L485.04 290.27ZM506.52 299.03Q505.1 299.03 504.02 298.32Q502.94 297.6 502.33 296.28Q501.73 294.96 501.73 293.18Q501.73 291.39 502.33 290.08Q502.94 288.77 504.03 288.05Q505.11 287.34 506.53 287.34Q507.57 287.34 508.23 287.68Q508.88 288.02 509.26 288.48Q509.64 288.93 509.85 289.29L509.97 289.29L509.97 283.59L511.79 283.59L511.79 298.8L510.03 298.8L510.03 297.05L509.86 297.05Q509.64 297.42 509.25 297.89Q508.86 298.35 508.21 298.69Q507.55 299.03 506.52 299.03ZM506.8 297.41Q507.83Line truncated
<g transform="translate(629 173.5) scale(0.92)" fill="none" stroke="#8a8a94" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></g>
<rect x="655" y="4" width="295.5" height="361" rx="24.2" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/>
<circle cx="703.4" cy="52.4" r="27.5" fill="#1d1d21" stroke="#2a2a2f" stroke-width="2"/>
<path d="M703.44 63.48Q701.31 63.48 699.66 62.72Q698.01 61.96 697.04 60.62Q696.08 59.28 696.02 57.51L698.77 57.51Q698.85 58.61 699.46 59.42Q700.08 60.22 701.1 60.65Q702.12 61.08 703.4 61.08Q704.79 61.08 705.85 60.6Q706.91 60.12 707.53 59.25Q708.14 58.38 708.14 57.25Q708.14 56.07 707.54 55.19Q706.94 54.3 705.81 53.8Q704.68 53.29 703.07 53.29L701.31 53.29L701.31 50.91L703.07 50.91Q704.36 50.91 705.34 50.46Q706.31 50.01 706.86 49.19Q707.4 48.37 707.4 47.26Q707.4 46.17 706.92 45.36Q706.43 44.54 705.54 44.1Q704.65 43.65 703.44 43.65Q702.3 43.65 701.33 44.07Q700.35 44.49 699.75 45.26Q699.15 46.04 699.12 47.16L696.48 47.16Q696.53 45.42 697.48 44.09Q698.43 42.76 700 42.01Q701.57 41.27 703.5 41.27Q705.5 41.27 706.98 42.08Q708.46 42.89 709.27 44.22Q710.07 45.55 710.07 47.11Q710.07 48.91 709.09 50.19Q708.11 51.46 706.45 51.97L706.45 52.12Q707.82 52.33 708.81 53.04Q709.8 53.75 710.32 54.83Q710.84 55.91 710.84 57.26Q710.84 59.06 709.88 60.46Q708.91 61.86 707.24 62.67Q705.58 63.48 703.44 63.48Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.88" stroke-linejoin="round"/>
<g transform="translate(774.15 54.6) scale(2.38)" fill="none" stroke="#f2f2f3" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12H2"/><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"/><path d="M6 16h.01"/><path d="M10 16h.01"/></g>
<path d="M755.48 169L755.48 144.99L763.76 144.99Q766.52 144.99 768.33 145.99Q770.14 146.99 771.04 148.7Q771.93 150.41 771.93 152.56Q771.93 154.72 771.03 156.45Q770.13 158.17 768.31 159.18Q766.5 160.19 763.75 160.19L757.74 160.19L757.74 157.51L763.63 157.51Q765.5 157.51 766.66 156.87Q767.82 156.24 768.37 155.12Q768.92 154 768.92 152.56Q768.92 151.15 768.37 150.03Q767.82 148.92 766.65 148.29Q765.49 147.67 763.6 147.67L758.51 147.67L758.51 169L755.48 169ZM778.26 144.99L778.26 169L775.4 169L775.4 144.99L778.26 144.99ZM788.66 169.24Q786.85 169.24 785.47 168.49Q784.08 167.74 783.31 166.23Q782.54 164.71 782.54 162.44L782.54 151.15L785.4 151.15L785.4 162.22Q785.4 164.31 786.49 165.48Q787.58 166.65 789.46 166.65Q790.75 166.65 791.78 166.09Q792.8 165.54 793.4 164.46Q793.99 163.38 793.99 161.81L793.99 151.15L796.88 151.15L796.88 169L794.09 169L794.09 164.68L794.54 164.68Q793.7 167.16 792.17 168.2Q790.64 169.24 788.66 169.24ZM808.41 176.09Q806.43 176.09 804.96 175.57Q803.48 175.06 802.52 174.16Q801.55 173.27 801.03 172.17L803.47 170.92Q803.84 171.5 804.41 172.12Q804.98 172.74 805.95 173.16Q806.92 173.58 808.41 173.58Q810.57 173.58 811.95 172.52Q813.33 171.47 813.33 169.26L813.33 165.83L813.1 165.83Q812.73 166.41 812.14 167.11Q811.54 167.81 810.51 168.31Q809.48 168.81 807.83 168.81Q805.67 168.81 803.96 167.77Q802.24 166.73 801.26 164.76Q800.28 162.8 800.28 160.01Q800.28 157.25 801.24 155.21Q802.21 153.16 803.93 152.03Q805.66 150.9 807.9 150.9Q809.53 150.9 810.56 151.44Q811.59 151.97 812.2 152.69Q812.81 153.42 813.17 154L813.39 154L813.39 151.15L816.2 151.15L816.2 169.39Q816.2 171.74 815.15 173.22Q814.1 174.7 812.34 175.4Q810.57 176.09 808.41 176.09ZM808.32 166.26Q809.94 166.26 811.08 165.5Q812.22 164.75 812.8 163.33Q813.39 161.91 813.39 159.96Q813.39 158.04 812.8 156.58Q812.22 155.13 811.09 154.3Q809.96 153.48 808.32 153.48Q806.64 153.48 805.5 154.34Q804.35 155.19 803.77 156.65Q803.19 158.11 803.19 159.96Q803.19 161.85 803.78 163.26Q804.37 164.68 805.51 165.47Q806.66 166.26 808.32 166.26ZM828.91 169L828.91 151.15L831.78 151.15L831.78 169L828.91 169ZM830.35 148.15Q829.54 148.15 828.95 147.59Q828.36 147.02 828.36 146.23Q828.36 145.43 828.95 144.88Q829.54 144.33 830.35 144.33Q831.17 144.33 831.76 144.88Q832.34 145.43 832.34 146.23Q832.34 147.02 831.76 147.59Q831.17 148.15 830.35 148.15ZM838.92 158.35L838.92 169L836.05 169L836.05 151.15L838.81 151.15L838.82 155.48L838.35 155.48Q839.19 153.02 840.71 151.96Q842.22 150.9 844.27 150.9Q846.07 150.9 847.45 151.65Q848.83 152.4 849.6 153.91Q850.37 155.42 850.37 157.7L850.37 169L847.51 169L847.51 157.95Q847.51 155.84 846.43 154.67Q845.35 153.5 843.45 153.5Q842.17 153.5 841.14 154.05Q840.11 154.61 839.51 155.69Q838.92 156.77 838.92 158.35Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.99" stroke-linejoin="round"/>
<path d="M731.96 219.87Q730.3 219.87 729.08 219.31Q727.86 218.76 727.17 217.78Q726.48 216.79 726.41 215.47L728.38 215.47Q728.44 216.36 728.94 216.96Q729.43 217.55 730.23 217.84Q731.02 218.14 731.96 218.14Q733 218.14 733.82 217.8Q734.65 217.47 735.13 216.85Q735.61 216.24 735.61 215.44Q735.61 214.72 735.21 214.26Q734.82 213.8 734.14 213.5Q733.46 213.19 732.6 212.96L730.78 212.46Q728.86 211.93 727.84 210.96Q726.82 209.99 726.82 208.47Q726.82 207.18 727.5 206.22Q728.19 205.25 729.37 204.72Q730.55 204.18 732.04 204.18Q733.55 204.18 734.71 204.72Q735.87 205.26 736.53 206.2Q737.2 207.14 737.24 208.34L735.36 208.34Q735.23 207.18 734.3 206.54Q733.37 205.89 731.98 205.89Q731 205.89 730.26 206.22Q729.51 206.54 729.1 207.1Q728.69 207.66 728.69 208.37Q728.69 209.14 729.15 209.62Q729.62 210.1 730.29 210.38Q730.97 210.66 731.62 210.83L733.17 211.25Q733.87 211.44 734.62 211.74Q735.37 212.04 736.02 212.52Q736.68 213 737.08 213.72Q737.48 214.44 737.48 215.45Q737.48 216.71 736.83 217.71Q736.18 218.71 734.94 219.29Q733.7 219.87 731.96 219.87ZM741.98 212.85L741.98 219.6L740.17 219.6L740.17 204.39L741.98 204.39L741.98 211.04L741.63 211.04Q742.16 209.48 743.12 208.81Q744.08 208.14 745.37 208.14Q746.51 208.14 747.39 208.61Q748.26 209.09 748.75 210.04Q749.25 211 749.25 212.45L749.25 219.6L747.42 219.6L747.42 212.6Q747.42 211.26 746.74 210.52Q746.06 209.78 744.85 209.78Q744.05 209.78 743.39 210.13Q742.74 210.49 742.36 211.17Q741.98 211.85 741.98 212.85ZM755.58 219.84Q754.5 219.84 753.62 219.45Q752.74 219.05 752.22 218.27Q751.71 217.5 751.71 216.38Q751.71 215.41 752.09 214.8Q752.47 214.19 753.12 213.84Q753.76 213.5 754.55 213.32Q755.33 213.15 756.13 213.05Q757.15 212.92 757.78 212.84Q758.41 212.77 758.72 212.6Q759.02 212.43 759.02 212.01L759.02 211.95Q759.02 211.25 758.75 210.76Q758.49 210.27 757.95 210.01Q757.42 209.74 756.63 209.74Q755.82 209.74 755.25 210Q754.67 210.25 754.31 210.64Q753.94 211.03 753.79 211.46L752.03 210.97Q752.39 209.94 753.11 209.32Q753.82 208.7 754.74 208.42Q755.65 208.14 756.59 208.14Q757.22 208.14 757.95 208.3Q758.69 208.46 759.34 208.87Q760 209.29 760.41 210.07Q760.83 210.84 760.83 212.1L760.83 219.6L759.05 219.6L759.05 218.05L758.93 218.05Q758.74 218.45 758.32 218.87Q757.9 219.28 757.23 219.56Q756.55 219.84 755.58 219.84ZM755.88 218.23Q756.91 218.23 757.61 217.84Q758.3 217.45 758.66 216.81Q759.02 216.18 759.02 215.49L759.02 213.95Q758.9 214.07 758.55 214.17Q758.19 214.27 757.72 214.35Q757.25 214.44 756.8 214.49Q756.34 214.55 756.05 214.59Q755.38 214.67 754.81 214.87Q754.24 215.07 753.89 215.45Q753.55 215.82 753.55 216.48Q753.55 217.05 753.85 217.44Q754.15 217.83 754.67 218.03Q755.2 218.23 755.88 218.23ZM768.2 219.83Q766.78 219.83 765.7 219.12Q764.62 218.4 764.01 217.08Q763.4 215.76 763.4 213.98Q763.4 212.19 764.01 210.88Q764.62 209.57 765.71 208.85Q766.79 208.14 768.21 208.14Q769.25 208.14 769.9 208.48Q770.56 208.82 770.94 209.28Q771.31 209.73 771.53 210.09L771.65 210.09L771.65 204.39L773.47 204.39L773.47 219.6L771.71 219.6L771.71 217.85L771.54 217.85Q771.31 218.22 770.93 218.69Q770.54 219.15 769.88 219.49Q769.23 219.83 768.2 219.83ZM768.48 218.21Q769.51 218.21 770.23 217.67Q770.95 217.13 771.32 216.17Q771.69 215.21 771.69 213.96Q771.69 212.7 771.32 211.76Q770.96 210.82 770.24 210.3Q769.52 209.77 768.48 209.77Q767.41 209.77 766.7 210.32Q765.98 210.86 765.61 211.81Q765.25 212.75 765.25 213.96Q765.25 215.17 765.62 216.14Q765.99 217.1 766.71 217.66Q767.44 218.21 768.48 218.21ZM781.19 219.84Q779.65 219.84 778.49 219.12Q777.33 218.39 776.69 217.07Q776.04 215.75 776.04 214.01Q776.04 212.25 776.69 210.93Q777.33 209.6 778.49 208.87Q779.65 208.14 781.19 208.14Q782.74 208.14 783.91 208.87Q785.08 209.6 785.73 210.93Q786.38 212.25 786.38 214.01Q786.38 215.75 785.73 217.07Q785.08 218.39 783.91 219.12Q782.74 219.84 781.19 219.84ZM781.19 218.21Q782.32 218.21 783.07 217.64Q783.81 217.06 784.18 216.1Q784.54 215.15 784.54 214.01Q784.54 212.86 784.18 211.9Q783.81 210.94 783.07 210.35Q782.32 209.77 781.19 209.77Q780.08 209.77 779.34 210.35Q778.61 210.94 778.25 211.9Q777.89 212.85 777.89 214.01Q777.89 215.15 778.25 216.1Q778.61 217.06 779.34 217.64Q780.07 218.21 781.19 218.21ZM791.47 219.6L788.03 208.29L789.96 208.29L791.35 213.23Q791.63 214.27 791.95 215.54Q792.27 216.8 792.59 218.34L792.28 218.34Q792.59 216.87 792.9 215.59Q793.21 214.32 793.51 213.23L794.88 208.29L796.8 208.29L798.14 213.23Q798.44 214.29 798.74 215.56Q799.05 216.82 799.36 218.34L799.04 218.34Q799.36 216.84 799.68 215.58Q800 214.31 800.3 213.23L801.68 208.29L803.61 208.29L800.17 219.6L798.35 219.6L796.88 214.48Q796.65 213.7 796.44 212.9Q796.23 212.09 796.03 211.25Q795.83 210.41 795.61 209.55L796.03 209.55Q795.83 210.41 795.62 211.25Q795.41 212.09 795.2 212.91Q794.99 213.72 794.76 214.48L793.29 219.6L791.47 219.6ZM806.04 219.6L806.04 204.39L808.75 204.39L812.51 214.03Q812.64 214.36 812.82 214.86Q812.99 215.36 813.18 215.94Q813.37 216.52 813.54 217.08Q813.72 217.65 813.84 218.12L813.42 218.12Q813.55 217.68 813.73 217.12Q813.9 216.56 814.09 215.98Q814.28 215.4 8Line truncated
<path d="M719.21 243.49L719.21 245.05L712.63 245.05L712.63 243.49L719.21 243.49ZM714.83 254.8L714.83 241.91Q714.83 240.95 715.27 240.31Q715.72 239.67 716.44 239.33Q717.17 239 718 239Q718.6 239 719.02 239.09Q719.43 239.18 719.61 239.26L719.19 240.81Q719.05 240.77 718.81 240.72Q718.56 240.67 718.21 240.67Q717.39 240.67 717.02 241.08Q716.64 241.49 716.64 242.3L716.64 254.8L714.83 254.8ZM721.51 254.8L721.51 243.49L723.33 243.49L723.33 254.8L721.51 254.8ZM722.42 241.59Q721.91 241.59 721.54 241.24Q721.17 240.88 721.17 240.38Q721.17 239.87 721.54 239.52Q721.91 239.18 722.42 239.18Q722.94 239.18 723.31 239.52Q723.69 239.87 723.69 240.38Q723.69 240.88 723.31 241.24Q722.94 241.59 722.42 241.59ZM728.27 248.05L728.27 254.8L726.45 254.8L726.45 243.49L728.2 243.49L728.21 246.24L727.91 246.24Q728.44 244.68 729.4 244.01Q730.36 243.34 731.66 243.34Q732.8 243.34 733.67 243.81Q734.54 244.29 735.03 245.24Q735.52 246.2 735.52 247.65L735.52 254.8L733.71 254.8L733.71 247.8Q733.71 246.46 733.02 245.72Q732.34 244.98 731.14 244.98Q730.33 244.98 729.68 245.33Q729.02 245.69 728.65 246.37Q728.27 247.05 728.27 248.05ZM742.89 255.03Q741.47 255.03 740.39 254.32Q739.31 253.6 738.7 252.28Q738.1 250.96 738.1 249.18Q738.1 247.39 738.7 246.08Q739.31 244.77 740.4 244.05Q741.48 243.34 742.9 243.34Q743.94 243.34 744.6 243.68Q745.25 244.02 745.63 244.48Q746 244.93 746.22 245.29L746.34 245.29L746.34 239.59L748.16 239.59L748.16 254.8L746.4 254.8L746.4 253.05L746.23 253.05Q746 253.42 745.62 253.89Q745.23 254.35 744.58 254.69Q743.92 255.03 742.89 255.03ZM743.17 253.41Q744.2 253.41 744.92 252.87Q745.64 252.33 746.01 251.37Q746.38 250.41 746.38 249.16Q746.38 247.9 746.01 246.96Q745.65 246.02 744.93 245.5Q744.21 244.97 743.17 244.97Q742.11 244.97 741.39 245.52Q740.67 246.06 740.31 247.01Q739.94 247.95 739.94 249.16Q739.94 250.37 740.31 251.34Q740.68 252.3 741.4 252.86Q742.13 253.41 743.17 253.41ZM755.14 255.04Q753.96 255.04 753.05 254.7Q752.13 254.35 751.54 253.66Q750.94 252.97 750.77 251.95L752.51 251.61Q752.73 252.55 753.4 253Q754.07 253.45 755.11 253.45Q756.29 253.45 756.99 252.95Q757.69 252.44 757.69 251.74Q757.69 251.15 757.27 250.76Q756.85 250.37 756.03 250.18L754.16 249.74Q752.61 249.37 751.85 248.6Q751.1 247.83 751.1 246.64Q751.1 245.67 751.64 244.92Q752.18 244.18 753.12 243.76Q754.07 243.34 755.27 243.34Q756.43 243.34 757.27 243.7Q758.1 244.06 758.62 244.71Q759.14 245.35 759.35 246.21L757.68 246.56Q757.49 245.91 756.93 245.4Q756.37 244.89 755.28 244.89Q754.26 244.89 753.6 245.36Q752.93 245.83 752.93 246.54Q752.93 247.17 753.39 247.55Q753.85 247.93 754.81 248.16L756.54 248.56Q758.09 248.93 758.83 249.7Q759.57 250.46 759.57 251.64Q759.57 252.64 759.01 253.4Q758.44 254.17 757.44 254.61Q756.44 255.04 755.14 255.04ZM771.1 255.04Q770.02 255.04 769.14 254.65Q768.26 254.25 767.75 253.47Q767.23 252.7 767.23 251.58Q767.23 250.61 767.61 250Q768 249.39 768.64 249.04Q769.28 248.7 770.07 248.52Q770.85 248.35 771.65 248.25Q772.67 248.12 773.3 248.04Q773.94 247.97 774.24 247.8Q774.54 247.63 774.54 247.21L774.54 247.15Q774.54 246.45 774.27 245.96Q774.01 245.47 773.48 245.21Q772.95 244.94 772.15 244.94Q771.34 244.94 770.77 245.2Q770.19 245.45 769.83 245.84Q769.47 246.23 769.31 246.66L767.55 246.17Q767.91 245.14 768.63 244.52Q769.34 243.9 770.26 243.62Q771.17 243.34 772.11 243.34Q772.74 243.34 773.48 243.5Q774.21 243.66 774.86 244.07Q775.52 244.49 775.94 245.27Q776.35 246.04 776.35 247.3L776.35 254.8L774.57 254.8L774.57 253.25L774.46 253.25Q774.26 253.65 773.84 254.07Q773.43 254.48 772.75 254.76Q772.07 255.04 771.1 255.04ZM771.41 253.43Q772.44 253.43 773.13 253.04Q773.82 252.65 774.18 252.01Q774.54 251.38 774.54 250.69L774.54 249.15Q774.43 249.27 774.07 249.37Q773.71 249.47 773.24 249.55Q772.77 249.64 772.32 249.69Q771.86 249.75 771.57 249.79Q770.91 249.87 770.33 250.07Q769.76 250.27 769.42 250.65Q769.07 251.02 769.07 251.68Q769.07 252.25 769.37 252.64Q769.67 253.03 770.2 253.23Q770.72 253.43 771.41 253.43ZM781.29 248.05L781.29 254.8L779.48 254.8L779.48 243.49L781.22 243.49L781.23 246.24L780.94 246.24Q781.47 244.68 782.43 244.01Q783.39 243.34 784.68 243.34Q785.82 243.34 786.7 243.81Q787.57 244.29 788.06 245.24Q788.55 246.2 788.55 247.65L788.55 254.8L786.73 254.8L786.73 247.8Q786.73 246.46 786.05 245.72Q785.37 244.98 784.16 244.98Q783.36 244.98 782.7 245.33Q782.05 245.69 781.67 246.37Q781.29 247.05 781.29 248.05ZM795.92 255.03Q794.5 255.03 793.42 254.32Q792.34 253.6 791.73 252.28Q791.12 250.96 791.12 249.18Q791.12 247.39 791.73 246.08Q792.34 244.77 793.42 244.05Q794.51 243.34 795.93 243.34Q796.97 243.34 797.62 243.68Q798.28 244.02 798.65 244.48Q799.03 244.93 799.24 245.29L799.37 245.29L799.37 239.59L801.18 239.59L801.18 254.8L799.43 254.8L799.43 253.05L799.25 253.05Q799.03 253.42 798.64 253.89Q798.25 254.35 797.6 254.69Q796.95 255.03 795.92 255.03ZM796.19 253.41Q797.22 253.41 797.94 252.87Q798.66 252.33 799.04 251.37Q799.41 250.41 799.41 249.16Q799.41 247.9 799.04 246.96Q798.67 246.02 797.95 245.5Q797.23 244.97 796.19 244.97Q795.13 244.97 794.41 245.52Q793.69 246.Line truncated
<path d="M758.88 290.24Q757.34 290.24 756.18 289.52Q755.02 288.79 754.37 287.47Q753.72 286.15 753.72 284.41Q753.72 282.65 754.37 281.33Q755.02 280 756.18 279.27Q757.34 278.54 758.88 278.54Q760.43 278.54 761.6 279.27Q762.77 280 763.41 281.33Q764.06 282.65 764.06 284.41Q764.06 286.15 763.41 287.47Q762.77 288.79 761.6 289.52Q760.43 290.24 758.88 290.24ZM758.88 288.61Q760.01 288.61 760.76 288.04Q761.5 287.46 761.86 286.5Q762.23 285.55 762.23 284.41Q762.23 283.26 761.86 282.3Q761.5 281.34 760.76 280.75Q760.01 280.17 758.88 280.17Q757.77 280.17 757.03 280.75Q756.3 281.34 755.93 282.3Q755.57 283.25 755.57 284.41Q755.57 285.55 755.93 286.5Q756.3 287.46 757.03 288.04Q757.76 288.61 758.88 288.61ZM768.45 283.25L768.45 290L766.63 290L766.63 278.69L768.38 278.69L768.39 281.44L768.09 281.44Q768.62 279.88 769.58 279.21Q770.54 278.54 771.84 278.54Q772.98 278.54 773.85 279.01Q774.73 279.49 775.22 280.44Q775.71 281.4 775.71 282.85L775.71 290L773.89 290L773.89 283Q773.89 281.66 773.21 280.92Q772.52 280.18 771.32 280.18Q770.51 280.18 769.86 280.53Q769.21 280.89 768.83 281.57Q768.45 282.25 768.45 283.25ZM784.6 290L784.6 278.69L786.41 278.69L786.41 290L784.6 290ZM785.5 276.79Q784.99 276.79 784.62 276.44Q784.25 276.08 784.25 275.58Q784.25 275.07 784.62 274.72Q784.99 274.38 785.5 274.38Q786.02 274.38 786.4 274.72Q786.77 275.07 786.77 275.58Q786.77 276.08 786.4 276.44Q786.02 276.79 785.5 276.79ZM794.06 278.69L794.06 280.25L788.17 280.25L788.17 278.69L794.06 278.69ZM789.92 275.95L791.74 275.95L791.74 287.1Q791.74 287.84 792.04 288.17Q792.34 288.51 793.06 288.51Q793.24 288.51 793.51 288.47Q793.78 288.44 794 288.41L794.32 289.95Q794.03 290.03 793.68 290.08Q793.33 290.12 792.98 290.12Q791.52 290.12 790.72 289.37Q789.92 288.61 789.92 287.24L789.92 275.95ZM800.17 290.24Q798.99 290.24 798.08 289.9Q797.16 289.55 796.57 288.86Q795.97 288.17 795.8 287.15L797.54 286.81Q797.76 287.75 798.43 288.2Q799.1 288.65 800.14 288.65Q801.32 288.65 802.02 288.15Q802.72 287.64 802.72 286.94Q802.72 286.35 802.3 285.96Q801.88 285.57 801.06 285.38L799.19 284.94Q797.64 284.57 796.88 283.8Q796.13 283.03 796.13 281.84Q796.13 280.87 796.67 280.12Q797.21 279.38 798.15 278.96Q799.1 278.54 800.3 278.54Q801.46 278.54 802.3 278.9Q803.13 279.26 803.65 279.91Q804.17 280.55 804.38 281.41L802.71 281.76Q802.52 281.11 801.96 280.6Q801.4 280.09 800.31 280.09Q799.29 280.09 798.63 280.56Q797.96 281.03 797.96 281.74Q797.96 282.37 798.42 282.75Q798.88 283.13 799.84 283.36L801.57 283.76Q803.12 284.13 803.86 284.9Q804.6 285.66 804.6 286.84Q804.6 287.84 804.04 288.6Q803.47 289.37 802.47 289.81Q801.47 290.24 800.17 290.24ZM817.53 290.24Q815.99 290.24 814.83 289.52Q813.67 288.79 813.02 287.47Q812.37 286.15 812.37 284.41Q812.37 282.65 813.02 281.33Q813.67 280 814.83 279.27Q815.99 278.54 817.53 278.54Q819.08 278.54 820.25 279.27Q821.42 280 822.06 281.33Q822.71 282.65 822.71 284.41Q822.71 286.15 822.06 287.47Q821.42 288.79 820.25 289.52Q819.08 290.24 817.53 290.24ZM817.53 288.61Q818.66 288.61 819.4 288.04Q820.15 287.46 820.51 286.5Q820.87 285.55 820.87 284.41Q820.87 283.26 820.51 282.3Q820.15 281.34 819.4 280.75Q818.66 280.17 817.53 280.17Q816.41 280.17 815.68 280.75Q814.95 281.34 814.58 282.3Q814.22 283.25 814.22 284.41Q814.22 285.55 814.58 286.5Q814.95 287.46 815.67 288.04Q816.4 288.61 817.53 288.61ZM827.8 290L824.36 278.69L826.29 278.69L827.68 283.63Q827.97 284.67 828.29 285.94Q828.61 287.2 828.93 288.74L828.62 288.74Q828.93 287.27 829.24 285.99Q829.55 284.72 829.84 283.63L831.21 278.69L833.13 278.69L834.48 283.63Q834.77 284.69 835.08 285.96Q835.39 287.22 835.69 288.74L835.38 288.74Q835.69 287.24 836.01 285.98Q836.33 284.71 836.63 283.63L838.02 278.69L839.95 278.69L836.51 290L834.68 290L833.21 284.88Q832.99 284.1 832.78 283.3Q832.57 282.49 832.37 281.65Q832.16 280.81 831.95 279.95L832.37 279.95Q832.16 280.81 831.95 281.65Q831.74 282.49 831.53 283.31Q831.32 284.12 831.1 284.88L829.63 290L827.8 290ZM843.97 283.25L843.97 290L842.15 290L842.15 278.69L843.9 278.69L843.91 281.44L843.61 281.44Q844.14 279.88 845.1 279.21Q846.06 278.54 847.36 278.54Q848.5 278.54 849.37 279.01Q850.24 279.49 850.73 280.44Q851.22 281.4 851.22 282.85L851.22 290L849.41 290L849.41 283Q849.41 281.66 848.72 280.92Q848.04 280.18 846.84 280.18Q846.03 280.18 845.38 280.53Q844.72 280.89 844.35 281.57Q843.97 282.25 843.97 283.25Z" fill="#a3a3ab"/>
<g transform="translate(954.5 173.5) scale(0.92)" fill="none" stroke="#8a8a94" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></g>
<rect x="980.5" y="4" width="295.5" height="361" rx="24.2" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/>
<circle cx="1028.9" cy="52.4" r="27.5" fill="#1d1d21" stroke="#2a2a2f" stroke-width="2"/>
<path d="M1020.96 58.64L1020.96 56.42L1030.56 41.57L1032.21 41.57L1032.21 44.94L1031.13 44.94L1023.9 56.09L1023.9 56.25L1036.87 56.25L1036.87 58.64L1020.96 58.64ZM1031.27 63.18L1031.27 57.99L1031.27 56.93L1031.27 41.57L1033.88 41.57L1033.88 63.18L1031.27 63.18Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.88" stroke-linejoin="round"/>
<g transform="translate(1099.65 54.6) scale(2.38)" fill="none" stroke="#f2f2f3" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3 20 12 6 21Z"/></g>
<path d="M1099.41 169L1099.41 144.99L1107.7 144.99Q1110.45 144.99 1112.26 145.99Q1114.08 146.99 1114.97 148.7Q1115.87 150.41 1115.87 152.56Q1115.87 154.72 1114.96 156.45Q1114.06 158.17 1112.25 159.18Q1110.44 160.19 1107.68 160.19L1101.67 160.19L1101.67 157.51L1107.57 157.51Q1109.44 157.51 1110.6 156.87Q1111.76 156.24 1112.3 155.12Q1112.85 154 1112.85 152.56Q1112.85 151.15 1112.3 150.03Q1111.76 148.92 1110.59 148.29Q1109.42 147.67 1107.54 147.67L1102.44 147.67L1102.44 169L1099.41 169ZM1122.2 144.99L1122.2 169L1119.33 169L1119.33 144.99L1122.2 144.99ZM1131.53 169.39Q1129.82 169.39 1128.44 168.76Q1127.05 168.13 1126.24 166.91Q1125.42 165.68 1125.42 163.91Q1125.42 162.38 1126.03 161.42Q1126.63 160.46 1127.65 159.91Q1128.66 159.36 1129.9 159.09Q1131.14 158.82 1132.4 158.66Q1134.01 158.45 1135.01 158.33Q1136.01 158.22 1136.48 157.95Q1136.96 157.67 1136.96 157.01L1136.96 156.92Q1136.96 155.82 1136.54 155.05Q1136.12 154.27 1135.28 153.85Q1134.45 153.43 1133.19 153.43Q1131.92 153.43 1131.01 153.84Q1130.1 154.24 1129.52 154.85Q1128.95 155.46 1128.71 156.14L1125.92 155.37Q1126.5 153.74 1127.63 152.77Q1128.76 151.79 1130.2 151.35Q1131.64 150.9 1133.12 150.9Q1134.12 150.9 1135.28 151.15Q1136.44 151.4 1137.48 152.06Q1138.51 152.73 1139.17 153.95Q1139.83 155.17 1139.83 157.16L1139.83 169L1137.01 169L1137.01 166.55L1136.83 166.55Q1136.52 167.18 1135.86 167.84Q1135.2 168.5 1134.13 168.94Q1133.06 169.39 1131.53 169.39ZM1132.01 166.84Q1133.64 166.84 1134.74 166.22Q1135.83 165.6 1136.4 164.6Q1136.96 163.6 1136.96 162.51L1136.96 160.07Q1136.78 160.27 1136.22 160.43Q1135.65 160.59 1134.91 160.72Q1134.17 160.85 1133.45 160.94Q1132.74 161.02 1132.27 161.09Q1131.22 161.22 1130.32 161.53Q1129.42 161.85 1128.87 162.44Q1128.32 163.04 1128.32 164.07Q1128.32 164.97 1128.8 165.59Q1129.27 166.21 1130.1 166.53Q1130.93 166.84 1132.01 166.84ZM1143.87 175.56L1144.49 173.06L1145.03 173.12Q1145.85 173.32 1146.52 173.2Q1147.19 173.08 1147.73 172.49Q1148.27 171.9 1148.69 170.71L1149.27 169.05L1142.44 151.15L1145.58 151.15L1149.38 161.68Q1149.98 163.28 1150.4 164.86Q1150.82 166.44 1151.27 167.92L1150.27 167.92Q1150.72 166.44 1151.15 164.86Q1151.57 163.28 1152.16 161.68L1155.97 151.15L1159.1 151.15L1151.19 171.77Q1150.66 173.16 1149.91 174.06Q1149.16 174.96 1148.16 175.41Q1147.16 175.85 1145.92 175.85Q1145.21 175.85 1144.67 175.75Q1144.13 175.65 1143.87 175.56Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.99" stroke-linejoin="round"/>
<path d="M1062.26 219.81Q1060.3 219.81 1058.77 218.86Q1057.24 217.9 1056.37 216.15Q1055.49 214.4 1055.49 212.01Q1055.49 209.61 1056.37 207.85Q1057.24 206.1 1058.77 205.14Q1060.3 204.18 1062.26 204.18Q1064.22 204.18 1065.75 205.14Q1067.28 206.1 1068.16 207.85Q1069.03 209.61 1069.03 212.01Q1069.03 214.4 1068.16 216.15Q1067.28 217.9 1065.75 218.86Q1064.22 219.81 1062.26 219.81ZM1062.26 218.03Q1063.62 218.03 1064.73 217.33Q1065.84 216.64 1066.49 215.3Q1067.15 213.96 1067.15 212.01Q1067.15 210.05 1066.49 208.7Q1065.84 207.35 1064.73 206.66Q1063.62 205.97 1062.26 205.97Q1060.9 205.97 1059.78 206.66Q1058.67 207.35 1058.02 208.7Q1057.37 210.05 1057.37 212.01Q1057.37 213.96 1058.02 215.3Q1058.67 216.64 1059.78 217.33Q1060.9 218.03 1062.26 218.03ZM1075.06 219.6L1070.73 208.29L1072.72 208.29L1075.13 214.97Q1075.51 215.98 1075.78 216.98Q1076.04 217.98 1076.34 218.92L1075.7 218.92Q1075.99 217.98 1076.26 216.98Q1076.53 215.98 1076.9 214.97L1079.3 208.29L1081.29 208.29L1076.96 219.6L1075.06 219.6ZM1088.09 219.84Q1086.45 219.84 1085.27 219.11Q1084.08 218.38 1083.44 217.07Q1082.81 215.76 1082.81 214.03Q1082.81 212.29 1083.43 210.97Q1084.06 209.64 1085.21 208.89Q1086.36 208.14 1087.89 208.14Q1088.84 208.14 1089.73 208.46Q1090.61 208.77 1091.32 209.46Q1092.02 210.14 1092.44 211.22Q1092.85 212.3 1092.85 213.83L1092.85 214.55L1083.99 214.55L1083.99 213.01L1091.87 213.01L1091.02 213.57Q1091.02 212.46 1090.66 211.59Q1090.31 210.73 1089.61 210.24Q1088.91 209.75 1087.89 209.75Q1086.88 209.75 1086.14 210.25Q1085.41 210.74 1085.02 211.55Q1084.63 212.36 1084.63 213.32L1084.63 214.3Q1084.63 215.55 1085.06 216.43Q1085.49 217.3 1086.28 217.76Q1087.06 218.22 1088.1 218.22Q1088.79 218.22 1089.34 218.02Q1089.9 217.81 1090.3 217.42Q1090.7 217.02 1090.9 216.45L1092.66 216.85Q1092.41 217.73 1091.78 218.41Q1091.14 219.09 1090.21 219.47Q1089.27 219.84 1088.09 219.84ZM1095.38 219.6L1095.38 208.29L1097.13 208.29L1097.13 210.04L1097.24 210.04Q1097.55 209.18 1098.33 208.66Q1099.11 208.13 1100.14 208.13Q1100.35 208.13 1100.61 208.14Q1100.88 208.16 1101.03 208.17L1101.03 210Q1100.95 209.98 1100.63 209.94Q1100.31 209.89 1099.94 209.89Q1099.16 209.89 1098.53 210.23Q1097.91 210.56 1097.55 211.15Q1097.2 211.74 1097.2 212.54L1097.2 219.6L1095.38 219.6ZM1107.3 219.83Q1105.88 219.83 1104.8 219.12Q1103.72 218.4 1103.11 217.08Q1102.5 215.76 1102.5 213.98Q1102.5 212.19 1103.11 210.88Q1103.72 209.57 1104.8 208.85Q1105.89 208.14 1107.31 208.14Q1108.35 208.14 1109 208.48Q1109.66 208.82 1110.03 209.28Q1110.41 209.73 1110.63 210.09L1110.75 210.09L1110.75 204.39L1112.56 204.39L1112.56 219.6L1110.81 219.6L1110.81 217.85L1110.64 217.85Q1110.41 218.22 1110.02 218.69Q1109.64 219.15 1108.98 219.49Q1108.33 219.83 1107.3 219.83ZM1107.57 218.21Q1108.61 218.21 1109.32 217.67Q1110.04 217.13 1110.42 216.17Q1110.79 215.21 1110.79 213.96Q1110.79 212.7 1110.42 211.76Q1110.05 210.82 1109.33 210.3Q1108.62 209.77 1107.57 209.77Q1106.51 209.77 1105.79 210.32Q1105.07 210.86 1104.71 211.81Q1104.35 212.75 1104.35 213.96Q1104.35 215.17 1104.72 216.14Q1105.08 217.1 1105.81 217.66Q1106.53 218.21 1107.57 218.21ZM1115.69 219.6L1115.69 208.29L1117.44 208.29L1117.44 210.04L1117.54 210.04Q1117.86 209.18 1118.64 208.66Q1119.42 208.13 1120.44 208.13Q1120.66 208.13 1120.92 208.14Q1121.19 208.16 1121.34 208.17L1121.34 210Q1121.26 209.98 1120.94 209.94Q1120.62 209.89 1120.25 209.89Q1119.46 209.89 1118.84 210.23Q1118.22 210.56 1117.86 211.15Q1117.5 211.74 1117.5 212.54L1117.5 219.6L1115.69 219.6ZM1123.36 219.6L1123.36 208.29L1125.18 208.29L1125.18 219.6L1123.36 219.6ZM1124.27 206.39Q1123.76 206.39 1123.39 206.04Q1123.01 205.68 1123.01 205.18Q1123.01 204.67 1123.39 204.32Q1123.76 203.98 1124.27 203.98Q1124.79 203.98 1125.16 204.32Q1125.54 204.67 1125.54 205.18Q1125.54 205.68 1125.16 206.04Q1124.79 206.39 1124.27 206.39ZM1131.58 219.6L1127.25 208.29L1129.24 208.29L1131.65 214.97Q1132.03 215.98 1132.29 216.98Q1132.56 217.98 1132.85 218.92L1132.22 218.92Q1132.51 217.98 1132.78 216.98Q1133.05 215.98 1133.41 214.97L1135.81 208.29L1137.8 208.29L1133.48 219.6L1131.58 219.6ZM1144.61 219.84Q1142.97 219.84 1141.78 219.11Q1140.6 218.38 1139.96 217.07Q1139.32 215.76 1139.32 214.03Q1139.32 212.29 1139.95 210.97Q1140.58 209.64 1141.73 208.89Q1142.87 208.14 1144.4 208.14Q1145.35 208.14 1146.24 208.46Q1147.13 208.77 1147.83 209.46Q1148.54 210.14 1148.95 211.22Q1149.36 212.3 1149.36 213.83L1149.36 214.55L1140.51 214.55L1140.51 213.01L1148.38 213.01L1147.54 213.57Q1147.54 212.46 1147.18 211.59Q1146.82 210.73 1146.12 210.24Q1145.43 209.75 1144.4 209.75Q1143.39 209.75 1142.66 210.25Q1141.92 210.74 1141.54 211.55Q1141.15 212.36 1141.15 213.32L1141.15 214.3Q1141.15 215.55 1141.58 216.43Q1142.01 217.3 1142.79 217.76Q1143.58 218.22 1144.62 218.22Q1145.3 218.22 1145.86 218.02Q1146.42 217.81 1146.81 217.42Q1147.21 217.02 1147.42 216.45L1149.18 216.85Q1148.93 217.73 1148.29 218.41Q1147.66 219.09 1146.72 219.47Q1145.78 219.84 1144.61 219.84ZM1157.66 219.6L1157.66 208.29L1159.48 208.29L1159.48 219.6L1157.66 219.6ZM1158.57 206.39QLine truncated
<path d="M1038.46 258.95L1038.85 257.37L1039.2 257.41Q1039.72 257.53 1040.14 257.46Q1040.56 257.38 1040.9 257.01Q1041.25 256.64 1041.51 255.88L1041.88 254.83L1037.55 243.49L1039.54 243.49L1041.95 250.17Q1042.33 251.18 1042.59 252.18Q1042.86 253.18 1043.14 254.12L1042.51 254.12Q1042.8 253.18 1043.07 252.18Q1043.34 251.18 1043.71 250.17L1046.12 243.49L1048.1 243.49L1043.09 256.56Q1042.76 257.43 1042.28 258Q1041.81 258.58 1041.18 258.86Q1040.54 259.14 1039.76 259.14Q1039.31 259.14 1038.97 259.08Q1038.62 259.01 1038.46 258.95ZM1054.78 255.04Q1053.24 255.04 1052.08 254.32Q1050.92 253.59 1050.27 252.27Q1049.62 250.95 1049.62 249.21Q1049.62 247.45 1050.27 246.13Q1050.92 244.8 1052.08 244.07Q1053.24 243.34 1054.78 243.34Q1056.33 243.34 1057.5 244.07Q1058.67 244.8 1059.31 246.13Q1059.96 247.45 1059.96 249.21Q1059.96 250.95 1059.31 252.27Q1058.67 253.59 1057.5 254.32Q1056.33 255.04 1054.78 255.04ZM1054.78 253.41Q1055.91 253.41 1056.66 252.84Q1057.4 252.26 1057.76 251.3Q1058.13 250.35 1058.13 249.21Q1058.13 248.06 1057.76 247.1Q1057.4 246.14 1056.66 245.55Q1055.91 244.97 1054.78 244.97Q1053.67 244.97 1052.93 245.55Q1052.2 246.14 1051.83 247.1Q1051.47 248.05 1051.47 249.21Q1051.47 250.35 1051.83 251.3Q1052.2 252.26 1052.93 252.84Q1053.66 253.41 1054.78 253.41ZM1066.41 254.95Q1065.27 254.95 1064.39 254.48Q1063.51 254 1063.02 253.04Q1062.53 252.09 1062.53 250.65L1062.53 243.49L1064.35 243.49L1064.35 250.5Q1064.35 251.83 1065.04 252.57Q1065.73 253.31 1066.92 253.31Q1067.74 253.31 1068.39 252.96Q1069.04 252.61 1069.41 251.92Q1069.79 251.24 1069.79 250.25L1069.79 243.49L1071.62 243.49L1071.62 254.8L1069.85 254.8L1069.85 252.07L1070.14 252.07Q1069.61 253.64 1068.64 254.29Q1067.67 254.95 1066.41 254.95ZM1074.74 254.8L1074.74 243.49L1076.49 243.49L1076.49 245.24L1076.6 245.24Q1076.91 244.38 1077.69 243.86Q1078.47 243.33 1079.5 243.33Q1079.71 243.33 1079.97 243.34Q1080.24 243.36 1080.39 243.37L1080.39 245.2Q1080.31 245.18 1079.99 245.14Q1079.67 245.09 1079.3 245.09Q1078.52 245.09 1077.89 245.43Q1077.27 245.76 1076.91 246.35Q1076.56 246.94 1076.56 247.74L1076.56 254.8L1074.74 254.8ZM1090 248.05L1090 254.8L1088.18 254.8L1088.18 239.59L1090 239.59L1090 246.24L1089.64 246.24Q1090.17 244.68 1091.13 244.01Q1092.09 243.34 1093.38 243.34Q1094.53 243.34 1095.4 243.81Q1096.27 244.29 1096.77 245.24Q1097.26 246.2 1097.26 247.65L1097.26 254.8L1095.44 254.8L1095.44 247.8Q1095.44 246.46 1094.75 245.72Q1094.07 244.98 1092.86 244.98Q1092.06 244.98 1091.4 245.33Q1090.75 245.69 1090.37 246.37Q1090 247.05 1090 248.05ZM1104.99 255.04Q1103.45 255.04 1102.29 254.32Q1101.13 253.59 1100.48 252.27Q1099.83 250.95 1099.83 249.21Q1099.83 247.45 1100.48 246.13Q1101.13 244.8 1102.29 244.07Q1103.45 243.34 1104.99 243.34Q1106.54 243.34 1107.71 244.07Q1108.88 244.8 1109.52 246.13Q1110.17 247.45 1110.17 249.21Q1110.17 250.95 1109.52 252.27Q1108.88 253.59 1107.71 254.32Q1106.54 255.04 1104.99 255.04ZM1104.99 253.41Q1106.12 253.41 1106.87 252.84Q1107.61 252.26 1107.97 251.3Q1108.33 250.35 1108.33 249.21Q1108.33 248.06 1107.97 247.1Q1107.61 246.14 1106.87 245.55Q1106.12 244.97 1104.99 244.97Q1103.88 244.97 1103.14 245.55Q1102.41 246.14 1102.04 247.1Q1101.68 248.05 1101.68 249.21Q1101.68 250.35 1102.04 251.3Q1102.41 252.26 1103.14 252.84Q1103.86 253.41 1104.99 253.41ZM1112.74 254.8L1112.74 243.49L1114.51 243.49L1114.52 245.99L1114.37 245.99Q1114.61 245.08 1115.12 244.49Q1115.62 243.89 1116.3 243.59Q1116.98 243.29 1117.71 243.29Q1118.96 243.29 1119.75 244.05Q1120.54 244.81 1120.76 246L1120.5 246Q1120.7 245.19 1121.24 244.57Q1121.77 243.96 1122.54 243.63Q1123.31 243.29 1124.21 243.29Q1125.2 243.29 1126.02 243.72Q1126.84 244.15 1127.32 245.01Q1127.81 245.88 1127.81 247.21L1127.81 254.8L1125.98 254.8L1125.98 247.26Q1125.98 246.01 1125.29 245.48Q1124.59 244.95 1123.67 244.95Q1122.91 244.95 1122.35 245.27Q1121.79 245.6 1121.48 246.16Q1121.18 246.72 1121.18 247.45L1121.18 254.8L1119.36 254.8L1119.36 247.07Q1119.36 246.12 1118.72 245.53Q1118.09 244.95 1117.12 244.95Q1116.46 244.95 1115.87 245.26Q1115.27 245.57 1114.92 246.19Q1114.56 246.81 1114.56 247.72L1114.56 254.8L1112.74 254.8ZM1135.65 255.04Q1134.01 255.04 1132.83 254.31Q1131.64 253.58 1131.01 252.27Q1130.37 250.96 1130.37 249.23Q1130.37 247.49 1131 246.17Q1131.62 244.84 1132.77 244.09Q1133.92 243.34 1135.45 243.34Q1136.4 243.34 1137.29 243.66Q1138.17 243.97 1138.88 244.66Q1139.58 245.34 1140 246.42Q1140.41 247.5 1140.41 249.03L1140.41 249.75L1131.55 249.75L1131.55 248.21L1139.43 248.21L1138.58 248.77Q1138.58 247.66 1138.23 246.79Q1137.87 245.93 1137.17 245.44Q1136.47 244.95 1135.45 244.95Q1134.44 244.95 1133.7 245.45Q1132.97 245.94 1132.58 246.75Q1132.19 247.56 1132.19 248.52L1132.19 249.5Q1132.19 250.75 1132.62 251.63Q1133.05 252.5 1133.84 252.96Q1134.62 253.42 1135.66 253.42Q1136.35 253.42 1136.9 253.22Q1137.46 253.01 1137.86 252.62Q1138.26 252.22 1138.46 251.65L1140.23 252.05Q1139.97 252.93 1139.34 253.61Q1138.71 254.29 1137.77 254.67Q1136.83 255.04 1135.65 255.04ZM1152.56 255.04Q1151.39 255.04 1150.47 254.7Q1149Line truncated
<path d="M1087.09 276.5L1087.09 274.79L1098.62 274.79L1098.62 276.5L1093.83 276.5L1093.83 290L1091.91 290L1091.91 276.5L1087.09 276.5ZM1102.92 283.25L1102.92 290L1101.1 290L1101.1 274.79L1102.92 274.79L1102.92 281.44L1102.56 281.44Q1103.09 279.88 1104.05 279.21Q1105.01 278.54 1106.31 278.54Q1107.45 278.54 1108.32 279.01Q1109.2 279.49 1109.69 280.44Q1110.19 281.4 1110.19 282.85L1110.19 290L1108.36 290L1108.36 283Q1108.36 281.66 1107.68 280.92Q1106.99 280.18 1105.79 280.18Q1104.98 280.18 1104.33 280.53Q1103.68 280.89 1103.3 281.57Q1102.92 282.25 1102.92 283.25ZM1116.51 290.24Q1115.43 290.24 1114.55 289.85Q1113.68 289.45 1113.16 288.67Q1112.65 287.9 1112.65 286.78Q1112.65 285.81 1113.03 285.2Q1113.41 284.59 1114.05 284.24Q1114.7 283.9 1115.48 283.72Q1116.27 283.55 1117.07 283.45Q1118.09 283.32 1118.72 283.24Q1119.35 283.17 1119.65 283Q1119.95 282.83 1119.95 282.41L1119.95 282.35Q1119.95 281.65 1119.69 281.16Q1119.42 280.67 1118.89 280.41Q1118.36 280.14 1117.57 280.14Q1116.76 280.14 1116.18 280.4Q1115.61 280.65 1115.24 281.04Q1114.88 281.43 1114.73 281.86L1112.96 281.37Q1113.33 280.34 1114.04 279.72Q1114.76 279.1 1115.67 278.82Q1116.59 278.54 1117.52 278.54Q1118.16 278.54 1118.89 278.7Q1119.63 278.86 1120.28 279.27Q1120.93 279.69 1121.35 280.47Q1121.77 281.24 1121.77 282.5L1121.77 290L1119.98 290L1119.98 288.45L1119.87 288.45Q1119.68 288.85 1119.26 289.27Q1118.84 289.68 1118.16 289.96Q1117.48 290.24 1116.51 290.24ZM1116.82 288.63Q1117.85 288.63 1118.54 288.24Q1119.24 287.85 1119.6 287.21Q1119.95 286.58 1119.95 285.89L1119.95 284.35Q1119.84 284.47 1119.48 284.57Q1119.13 284.67 1118.66 284.75Q1118.19 284.84 1117.73 284.89Q1117.28 284.95 1116.98 284.99Q1116.32 285.07 1115.75 285.27Q1115.18 285.47 1114.83 285.85Q1114.48 286.22 1114.48 286.88Q1114.48 287.45 1114.78 287.84Q1115.09 288.23 1115.61 288.43Q1116.14 288.63 1116.82 288.63ZM1129.41 278.69L1129.41 280.25L1123.53 280.25L1123.53 278.69L1129.41 278.69ZM1125.28 275.95L1127.1 275.95L1127.1 287.1Q1127.1 287.84 1127.4 288.17Q1127.7 288.51 1128.41 288.51Q1128.6 288.51 1128.87 288.47Q1129.14 288.44 1129.36 288.41L1129.68 289.95Q1129.39 290.03 1129.04 290.08Q1128.69 290.12 1128.34 290.12Q1126.88 290.12 1126.08 289.37Q1125.28 288.61 1125.28 287.24L1125.28 275.95ZM1132.41 280.48L1132.19 274.79L1134.13 274.79L1133.9 280.48L1132.41 280.48ZM1141.63 290.24Q1140.46 290.24 1139.54 289.9Q1138.62 289.55 1138.03 288.86Q1137.43 288.17 1137.26 287.15L1139 286.81Q1139.22 287.75 1139.89 288.2Q1140.56 288.65 1141.6 288.65Q1142.78 288.65 1143.48 288.15Q1144.18 287.64 1144.18 286.94Q1144.18 286.35 1143.76 285.96Q1143.34 285.57 1142.52 285.38L1140.65 284.94Q1139.1 284.57 1138.34 283.8Q1137.59 283.03 1137.59 281.84Q1137.59 280.87 1138.13 280.12Q1138.67 279.38 1139.61 278.96Q1140.56 278.54 1141.76 278.54Q1142.92 278.54 1143.76 278.9Q1144.59 279.26 1145.11 279.91Q1145.63 280.55 1145.84 281.41L1144.17 281.76Q1143.98 281.11 1143.42 280.6Q1142.86 280.09 1141.77 280.09Q1140.75 280.09 1140.09 280.56Q1139.42 281.03 1139.42 281.74Q1139.42 282.37 1139.88 282.75Q1140.34 283.13 1141.3 283.36L1143.03 283.76Q1144.58 284.13 1145.32 284.9Q1146.06 285.66 1146.06 286.84Q1146.06 287.84 1145.5 288.6Q1144.94 289.37 1143.94 289.81Q1142.94 290.24 1141.63 290.24ZM1154.39 290L1154.39 278.69L1156.2 278.69L1156.2 290L1154.39 290ZM1155.29 276.79Q1154.78 276.79 1154.41 276.44Q1154.04 276.08 1154.04 275.58Q1154.04 275.07 1154.41 274.72Q1154.78 274.38 1155.29 274.38Q1155.81 274.38 1156.19 274.72Q1156.56 275.07 1156.56 275.58Q1156.56 276.08 1156.19 276.44Q1155.81 276.79 1155.29 276.79ZM1163.85 278.69L1163.85 280.25L1157.96 280.25L1157.96 278.69L1163.85 278.69ZM1159.71 275.95L1161.53 275.95L1161.53 287.1Q1161.53 287.84 1161.83 288.17Q1162.13 288.51 1162.85 288.51Q1163.03 288.51 1163.3 288.47Q1163.57 288.44 1163.79 288.41L1164.11 289.95Q1163.82 290.03 1163.47 290.08Q1163.12 290.12 1162.77 290.12Q1161.31 290.12 1160.51 289.37Q1159.71 288.61 1159.71 287.24L1159.71 275.95ZM1167.43 290.14Q1166.87 290.14 1166.47 289.74Q1166.07 289.35 1166.07 288.78Q1166.07 288.21 1166.47 287.82Q1166.87 287.42 1167.43 287.42Q1168 287.42 1168.4 287.82Q1168.79 288.21 1168.79 288.78Q1168.79 289.35 1168.4 289.74Q1168 290.14 1167.43 290.14Z" fill="#a3a3ab"/>
</svg>

Before

Width:  |  Height:  |  Size: 97 KiB

-5
View File
@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 176.16 36" width="2113.89" height="432" role="img" aria-label="Overdrive">
<path d="M26.34 12.24A11 11 0 1 1 19.76 5.66" fill="none" stroke="#f2f2f3" stroke-width="4.5"/>
<path d="M28.4 3.6 17.6 18.1a2.9 2.9 0 1 1-3.7-3.7Z" fill="#f2f2f3"/>
<path d="M55.06 26.5Q52.34 26.5 50.22 25.17Q48.09 23.84 46.87 21.41Q45.66 18.98 45.66 15.66Q45.66 12.34 46.87 9.9Q48.09 7.47 50.22 6.14Q52.34 4.8 55.06 4.8Q57.78 4.8 59.9 6.14Q62.03 7.47 63.24 9.9Q64.45 12.34 64.45 15.66Q64.45 18.98 63.24 21.41Q62.03 23.84 59.9 25.17Q57.78 26.5 55.06 26.5ZM55.06 24.02Q56.94 24.02 58.48 23.06Q60.02 22.09 60.93 20.23Q61.84 18.37 61.84 15.66Q61.84 12.95 60.93 11.08Q60.02 9.21 58.48 8.24Q56.94 7.28 55.06 7.28Q53.16 7.28 51.62 8.24Q50.07 9.21 49.17 11.08Q48.26 12.95 48.26 15.66Q48.26 18.37 49.17 20.23Q50.07 22.09 51.62 23.06Q53.16 24.02 55.06 24.02ZM72.18 26.2L66.17 10.51L68.94 10.51L72.28 19.77Q72.8 21.17 73.17 22.56Q73.54 23.95 73.95 25.25L73.07 25.25Q73.47 23.95 73.84 22.56Q74.22 21.17 74.73 19.77L78.05 10.51L80.82 10.51L74.81 26.2L72.18 26.2ZM89.62 26.54Q87.34 26.54 85.7 25.52Q84.06 24.5 83.17 22.69Q82.29 20.88 82.29 18.47Q82.29 16.06 83.16 14.22Q84.03 12.38 85.62 11.34Q87.22 10.3 89.34 10.3Q90.66 10.3 91.89 10.74Q93.12 11.18 94.1 12.12Q95.07 13.07 95.65 14.57Q96.22 16.08 96.22 18.2L96.22 19.19L83.93 19.19L83.93 17.05L94.86 17.05L93.69 17.83Q93.69 16.29 93.19 15.09Q92.7 13.89 91.73 13.22Q90.76 12.54 89.34 12.54Q87.94 12.54 86.92 13.22Q85.9 13.91 85.36 15.03Q84.82 16.16 84.82 17.49L84.82 18.85Q84.82 20.58 85.42 21.8Q86.01 23.01 87.1 23.65Q88.19 24.29 89.64 24.29Q90.59 24.29 91.36 24.01Q92.13 23.72 92.68 23.17Q93.23 22.62 93.52 21.82L95.97 22.39Q95.61 23.61 94.73 24.55Q93.86 25.49 92.55 26.02Q91.25 26.54 89.62 26.54ZM99.09 26.2L99.09 10.51L101.53 10.51L101.53 12.93L101.67 12.93Q102.11 11.74 103.19 11.01Q104.28 10.28 105.69 10.28Q105.99 10.28 106.36 10.31Q106.73 10.33 106.94 10.34L106.94 12.88Q106.83 12.85 106.38 12.79Q105.93 12.73 105.42 12.73Q104.33 12.73 103.47 13.19Q102.61 13.65 102.11 14.48Q101.62 15.3 101.62 16.4L101.62 26.2L99.09 26.2ZM115 26.53Q113.03 26.53 111.53 25.53Q110.03 24.53 109.18 22.7Q108.34 20.88 108.34 18.4Q108.34 15.92 109.18 14.1Q110.03 12.28 111.53 11.29Q113.04 10.3 115.01 10.3Q116.45 10.3 117.36 10.77Q118.27 11.25 118.79 11.88Q119.31 12.51 119.61 13L119.78 13L119.78 5.1L122.3 5.1L122.3 26.2L119.87 26.2L119.87 23.78L119.63 23.78Q119.31 24.29 118.78 24.93Q118.24 25.58 117.33 26.05Q116.43 26.53 115 26.53ZM115.38 24.27Q116.81 24.27 117.81 23.52Q118.8 22.77 119.32 21.44Q119.84 20.11 119.84 18.37Q119.84 16.63 119.33 15.32Q118.82 14.02 117.82 13.29Q116.82 12.56 115.38 12.56Q113.91 12.56 112.91 13.32Q111.91 14.08 111.41 15.39Q110.9 16.7 110.9 18.37Q110.9 20.05 111.41 21.39Q111.92 22.73 112.93 23.5Q113.93 24.27 115.38 24.27ZM126 26.2L126 10.51L128.43 10.51L128.43 12.93L128.57 12.93Q129.01 11.74 130.1 11.01Q131.18 10.28 132.6 10.28Q132.89 10.28 133.26 10.31Q133.63 10.33 133.84 10.34L133.84 12.88Q133.73 12.85 133.28 12.79Q132.84 12.73 132.33 12.73Q131.24 12.73 130.37 13.19Q129.51 13.65 129.01 14.48Q128.52 15.3 128.52 16.4L128.52 26.2L126 26.2ZM136.01 26.2L136.01 10.51L138.53 10.51L138.53 26.2L136.01 26.2ZM137.27 7.88Q136.56 7.88 136.04 7.38Q135.53 6.89 135.53 6.19Q135.53 5.48 136.04 5Q136.56 4.52 137.27 4.52Q137.99 4.52 138.51 5Q139.02 5.48 139.02 6.19Q139.02 6.89 138.51 7.38Q137.99 7.88 137.27 7.88ZM146.77 26.2L140.76 10.51L143.53 10.51L146.87 19.77Q147.39 21.17 147.76 22.56Q148.13 23.95 148.54 25.25L147.66 25.25Q148.06 23.95 148.43 22.56Q148.81 21.17 149.32 19.77L152.65 10.51L155.41 10.51L149.4 26.2L146.77 26.2ZM164.21 26.54Q161.93 26.54 160.29 25.52Q158.65 24.5 157.76 22.69Q156.88 20.88 156.88 18.47Q156.88 16.06 157.75 14.22Q158.62 12.38 160.21 11.34Q161.81 10.3 163.93 10.3Q165.25 10.3 166.48 10.74Q167.71 11.18 168.69 12.12Q169.67 13.07 170.24 14.57Q170.81 16.08 170.81 18.2L170.81 19.19L158.52 19.19L158.52 17.05L169.45 17.05L168.28 17.83Q168.28 16.29 167.78 15.09Q167.29 13.89 166.32 13.22Q165.35 12.54 163.93 12.54Q162.53 12.54 161.51 13.22Q160.49 13.91 159.95 15.03Q159.41 16.16 159.41 17.49L159.41 18.85Q159.41 20.58 160.01 21.8Q160.6 23.01 161.69 23.65Q162.78 24.29 164.23 24.29Q165.18 24.29 165.95 24.01Q166.72 23.72 167.27 23.17Q167.82 22.62 168.11 21.82L170.56 22.39Q170.2 23.61 169.33 24.55Q168.45 25.49 167.14 26.02Q165.84 26.54 164.21 26.54Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.9" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

-5
View File
@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 176.16 36" width="2113.89" height="432" role="img" aria-label="Overdrive">
<path d="M26.34 12.24A11 11 0 1 1 19.76 5.66" fill="none" stroke="#0b0b0d" stroke-width="4.5"/>
<path d="M28.4 3.6 17.6 18.1a2.9 2.9 0 1 1-3.7-3.7Z" fill="#0b0b0d"/>
<path d="M55.06 26.5Q52.34 26.5 50.22 25.17Q48.09 23.84 46.87 21.41Q45.66 18.98 45.66 15.66Q45.66 12.34 46.87 9.9Q48.09 7.47 50.22 6.14Q52.34 4.8 55.06 4.8Q57.78 4.8 59.9 6.14Q62.03 7.47 63.24 9.9Q64.45 12.34 64.45 15.66Q64.45 18.98 63.24 21.41Q62.03 23.84 59.9 25.17Q57.78 26.5 55.06 26.5ZM55.06 24.02Q56.94 24.02 58.48 23.06Q60.02 22.09 60.93 20.23Q61.84 18.37 61.84 15.66Q61.84 12.95 60.93 11.08Q60.02 9.21 58.48 8.24Q56.94 7.28 55.06 7.28Q53.16 7.28 51.62 8.24Q50.07 9.21 49.17 11.08Q48.26 12.95 48.26 15.66Q48.26 18.37 49.17 20.23Q50.07 22.09 51.62 23.06Q53.16 24.02 55.06 24.02ZM72.18 26.2L66.17 10.51L68.94 10.51L72.28 19.77Q72.8 21.17 73.17 22.56Q73.54 23.95 73.95 25.25L73.07 25.25Q73.47 23.95 73.84 22.56Q74.22 21.17 74.73 19.77L78.05 10.51L80.82 10.51L74.81 26.2L72.18 26.2ZM89.62 26.54Q87.34 26.54 85.7 25.52Q84.06 24.5 83.17 22.69Q82.29 20.88 82.29 18.47Q82.29 16.06 83.16 14.22Q84.03 12.38 85.62 11.34Q87.22 10.3 89.34 10.3Q90.66 10.3 91.89 10.74Q93.12 11.18 94.1 12.12Q95.07 13.07 95.65 14.57Q96.22 16.08 96.22 18.2L96.22 19.19L83.93 19.19L83.93 17.05L94.86 17.05L93.69 17.83Q93.69 16.29 93.19 15.09Q92.7 13.89 91.73 13.22Q90.76 12.54 89.34 12.54Q87.94 12.54 86.92 13.22Q85.9 13.91 85.36 15.03Q84.82 16.16 84.82 17.49L84.82 18.85Q84.82 20.58 85.42 21.8Q86.01 23.01 87.1 23.65Q88.19 24.29 89.64 24.29Q90.59 24.29 91.36 24.01Q92.13 23.72 92.68 23.17Q93.23 22.62 93.52 21.82L95.97 22.39Q95.61 23.61 94.73 24.55Q93.86 25.49 92.55 26.02Q91.25 26.54 89.62 26.54ZM99.09 26.2L99.09 10.51L101.53 10.51L101.53 12.93L101.67 12.93Q102.11 11.74 103.19 11.01Q104.28 10.28 105.69 10.28Q105.99 10.28 106.36 10.31Q106.73 10.33 106.94 10.34L106.94 12.88Q106.83 12.85 106.38 12.79Q105.93 12.73 105.42 12.73Q104.33 12.73 103.47 13.19Q102.61 13.65 102.11 14.48Q101.62 15.3 101.62 16.4L101.62 26.2L99.09 26.2ZM115 26.53Q113.03 26.53 111.53 25.53Q110.03 24.53 109.18 22.7Q108.34 20.88 108.34 18.4Q108.34 15.92 109.18 14.1Q110.03 12.28 111.53 11.29Q113.04 10.3 115.01 10.3Q116.45 10.3 117.36 10.77Q118.27 11.25 118.79 11.88Q119.31 12.51 119.61 13L119.78 13L119.78 5.1L122.3 5.1L122.3 26.2L119.87 26.2L119.87 23.78L119.63 23.78Q119.31 24.29 118.78 24.93Q118.24 25.58 117.33 26.05Q116.43 26.53 115 26.53ZM115.38 24.27Q116.81 24.27 117.81 23.52Q118.8 22.77 119.32 21.44Q119.84 20.11 119.84 18.37Q119.84 16.63 119.33 15.32Q118.82 14.02 117.82 13.29Q116.82 12.56 115.38 12.56Q113.91 12.56 112.91 13.32Q111.91 14.08 111.41 15.39Q110.9 16.7 110.9 18.37Q110.9 20.05 111.41 21.39Q111.92 22.73 112.93 23.5Q113.93 24.27 115.38 24.27ZM126 26.2L126 10.51L128.43 10.51L128.43 12.93L128.57 12.93Q129.01 11.74 130.1 11.01Q131.18 10.28 132.6 10.28Q132.89 10.28 133.26 10.31Q133.63 10.33 133.84 10.34L133.84 12.88Q133.73 12.85 133.28 12.79Q132.84 12.73 132.33 12.73Q131.24 12.73 130.37 13.19Q129.51 13.65 129.01 14.48Q128.52 15.3 128.52 16.4L128.52 26.2L126 26.2ZM136.01 26.2L136.01 10.51L138.53 10.51L138.53 26.2L136.01 26.2ZM137.27 7.88Q136.56 7.88 136.04 7.38Q135.53 6.89 135.53 6.19Q135.53 5.48 136.04 5Q136.56 4.52 137.27 4.52Q137.99 4.52 138.51 5Q139.02 5.48 139.02 6.19Q139.02 6.89 138.51 7.38Q137.99 7.88 137.27 7.88ZM146.77 26.2L140.76 10.51L143.53 10.51L146.87 19.77Q147.39 21.17 147.76 22.56Q148.13 23.95 148.54 25.25L147.66 25.25Q148.06 23.95 148.43 22.56Q148.81 21.17 149.32 19.77L152.65 10.51L155.41 10.51L149.4 26.2L146.77 26.2ZM164.21 26.54Q161.93 26.54 160.29 25.52Q158.65 24.5 157.76 22.69Q156.88 20.88 156.88 18.47Q156.88 16.06 157.75 14.22Q158.62 12.38 160.21 11.34Q161.81 10.3 163.93 10.3Q165.25 10.3 166.48 10.74Q167.71 11.18 168.69 12.12Q169.67 13.07 170.24 14.57Q170.81 16.08 170.81 18.2L170.81 19.19L158.52 19.19L158.52 17.05L169.45 17.05L168.28 17.83Q168.28 16.29 167.78 15.09Q167.29 13.89 166.32 13.22Q165.35 12.54 163.93 12.54Q162.53 12.54 161.51 13.22Q160.49 13.91 159.95 15.03Q159.41 16.16 159.41 17.49L159.41 18.85Q159.41 20.58 160.01 21.8Q160.6 23.01 161.69 23.65Q162.78 24.29 164.23 24.29Q165.18 24.29 165.95 24.01Q166.72 23.72 167.27 23.17Q167.82 22.62 168.11 21.82L170.56 22.39Q170.2 23.61 169.33 24.55Q168.45 25.49 167.14 26.02Q165.84 26.54 164.21 26.54Z" fill="#0b0b0d" stroke="#0b0b0d" stroke-width="0.9" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48" role="img" aria-label="Step 1"><circle cx="24" cy="24" r="22.5" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/><path d="M26.74 15.14L26.74 32.6L24.57 32.6L24.57 17.23L24.48 17.23L20.24 20.31L20.24 17.96L24.13 15.14L26.74 15.14Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.7" stroke-linejoin="round"/></svg>

Before

Width:  |  Height:  |  Size: 398 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48" role="img" aria-label="Step 2"><circle cx="24" cy="24" r="22.5" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/><path d="M18.45 32.6L18.45 30.97L24.32 24.78Q25.31 23.73 25.97 22.94Q26.62 22.15 26.95 21.42Q27.28 20.69 27.28 19.87Q27.28 18.94 26.85 18.24Q26.41 17.55 25.66 17.18Q24.91 16.81 23.95 16.81Q22.92 16.81 22.17 17.24Q21.42 17.66 21.01 18.42Q20.6 19.18 20.6 20.21L18.5 20.21Q18.5 18.63 19.22 17.43Q19.93 16.23 21.17 15.56Q22.41 14.89 24 14.89Q25.57 14.89 26.78 15.55Q27.98 16.21 28.68 17.32Q29.37 18.44 29.37 19.84Q29.37 20.82 29.02 21.73Q28.66 22.64 27.81 23.75Q26.96 24.87 25.45 26.44L21.48 30.54L21.48 30.65L29.62 30.65L29.62 32.6L18.45 32.6Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.7" stroke-linejoin="round"/></svg>

Before

Width:  |  Height:  |  Size: 822 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48" role="img" aria-label="Step 3"><circle cx="24" cy="24" r="22.5" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/><path d="M24.04 32.85Q22.31 32.85 20.98 32.23Q19.64 31.62 18.86 30.53Q18.08 29.45 18.04 28.02L20.26 28.02Q20.32 28.91 20.82 29.56Q21.32 30.21 22.14 30.56Q22.97 30.9 24 30.9Q25.12 30.9 25.98 30.51Q26.84 30.13 27.33 29.42Q27.83 28.72 27.83 27.81Q27.83 26.86 27.35 26.14Q26.86 25.43 25.95 25.02Q25.03 24.61 23.73 24.61L22.31 24.61L22.31 22.69L23.73 22.69Q24.77 22.69 25.56 22.32Q26.36 21.96 26.79 21.3Q27.23 20.64 27.23 19.73Q27.23 18.85 26.84 18.2Q26.45 17.54 25.73 17.18Q25.01 16.81 24.04 16.81Q23.11 16.81 22.32 17.15Q21.54 17.49 21.05 18.12Q20.57 18.75 20.54 19.65L18.41 19.65Q18.45 18.24 19.21 17.17Q19.98 16.1 21.25 15.5Q22.52 14.89 24.08 14.89Q25.7 14.89 26.89 15.55Q28.09 16.21 28.74 17.28Q29.39 18.35 29.39 19.62Q29.39 21.07 28.6 22.1Q27.81 23.13 26.46 23.54L26.46 23.66Q27.57 23.83 28.37 24.41Q29.17 24.98 29.59 25.86Q30.01 26.73 30.01 27.82Q30.01 29.27 29.23 30.4Q28.45 31.53 27.11 32.19Q25.76 32.85 24.04 32.85Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.7" stroke-linejoin="round"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48" role="img" aria-label="Step 4"><circle cx="24" cy="24" r="22.5" fill="#0c0c0e" stroke="#2a2a2f" stroke-width="2"/><path d="M17.58 28.93L17.58 27.14L25.34 15.14L26.68 15.14L26.68 17.86L25.8 17.86L19.96 26.87L19.96 27L30.44 27L30.44 28.93L17.58 28.93ZM25.92 32.6L25.92 28.4L25.92 27.55L25.92 15.14L28.03 15.14L28.03 32.6L25.92 32.6Z" fill="#f2f2f3" stroke="#f2f2f3" stroke-width="0.7" stroke-linejoin="round"/></svg>

Before

Width:  |  Height:  |  Size: 498 B

-111
View File
@@ -1,111 +0,0 @@
name: build
# A push to main checks that the app still builds. A release starts from Run workflow, which
# puts the build in a draft release; publishing that draft creates its tag, and no build runs on
# tags, so players get the very files that were tested.
on:
push:
branches: [main]
# A push that only touches the README, its images or the issue forms has nothing to build.
paths-ignore:
- "README.md"
- ".github/readme/**"
- ".github/ISSUE_TEMPLATE/**"
workflow_dispatch:
permissions:
contents: write
jobs:
ps5:
runs-on: ubuntu-24.04
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
- name: Install the toolchain
run: |
sudo apt-get update
sudo apt-get install -y \
clang-18 llvm-18 llvm-18-dev cmake ninja-build nodejs npm python3-venv \
zlib1g-dev build-essential pkg-config unzip zip curl zstd exfatprogs exfat-fuse
# The build wants unversioned clang and llvm-config in --llvm.
for tool in clang clang++ llvm-config; do
sudo ln -sf "/usr/bin/$tool-18" "/usr/local/bin/$tool"
done
clang --version | head -1
llvm-config --version
- name: Install the Python dependencies
run: |
python3 -m venv "$RUNNER_TEMP/venv"
"$RUNNER_TEMP/venv/bin/pip" install --disable-pip-version-check -r ps5-react/requirements.txt
# The build spawns python3 for its own tools, so the venv goes on PATH.
echo "$RUNNER_TEMP/venv/bin" >> "$GITHUB_PATH"
- name: Check the exfat packaging
run: |
mkdir -p "$RUNNER_TEMP/check/payload"
printf 'eboot' > "$RUNNER_TEMP/check/payload/eboot.bin"
# Big enough that the image gets the same geometry as the real one.
head -c 24000000 /dev/urandom > "$RUNNER_TEMP/check/payload/data.bin"
sudo bash packaging/make-exfat.sh "$RUNNER_TEMP/check/payload" \
"$RUNNER_TEMP/check/check.exfat" CHECK
- name: Cache the downloaded sources
uses: actions/cache@v4
with:
path: ps5-react/.deps
key: deps-${{ hashFiles('ps5-react/dependencies.lock.json') }}
- name: Build
working-directory: ps5-react
run: python3 tools/build_ps5.py --app-dir "$GITHUB_WORKSPACE/app" --llvm /usr/bin
- name: Package
run: |
sudo bash packaging/make-exfat.sh ps5-react/dist/PPSA99058 Overdrive.exfat OVERDRIVE
# The in-app updater fetches one name, for an image install: the image
# alone at the root of update.zip.
zip -q -X -j update.zip Overdrive.exfat
unzip -l update.zip
ls -l Overdrive.exfat update.zip ps5-react/dist/
- name: Upload
uses: actions/upload-artifact@v4
with:
name: Overdrive
path: |
Overdrive.exfat
update.zip
ps5-react/dist/PPSA99058.receipt.json
if-no-files-found: error
- name: Draft release
# Only people with write access see a draft, and the in-app update feed
# (releases/latest) never returns one, so a test build reaches nobody else.
# The draft is named after app/version.js; building again replaces its files
# and moves it to this commit. A version already published is left alone.
if: github.event_name == 'workflow_dispatch'
env:
GH_TOKEN: ${{ github.token }}
run: |
version=$(sed -n 's/.*var VERSION = "\([^"]*\)".*/\1/p' app/version.js)
test -n "$version" || { echo "no VERSION in app/version.js" >&2; exit 1; }
tag="v$version"
assets="Overdrive.exfat update.zip"
draft=$(gh api "repos/$GITHUB_REPOSITORY/releases" --paginate \
--jq ".[] | select(.tag_name == \"$tag\") | .draft")
case "$draft" in
"")
gh release create "$tag" $assets --draft --target "$GITHUB_SHA" \
--title "Overdrive $tag" --notes "Test build of $GITHUB_SHA." ;;
true)
gh release edit "$tag" --target "$GITHUB_SHA" --notes "Test build of $GITHUB_SHA."
gh release upload "$tag" $assets --clobber ;;
*)
echo "$tag is already published: raise the version in app/version.js" >&2
exit 1 ;;
esac
gh release view "$tag" --json isDraft,tagName,assets \
--jq '"\(.tagName) draft=\(.isDraft) " + ([.assets[] | "\(.name) \(.size)"] | join(", "))'
-13
View File
@@ -1,13 +0,0 @@
# Downloaded sources and build output
.deps/
.build/
dist/
node_modules/
# Python
__pycache__/
.venv/
# OS
.DS_Store
Thumbs.db
-274
View File
@@ -1,274 +0,0 @@
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/readme/logo-dark.svg">
<img src=".github/readme/logo-light.svg" alt="Overdrive" width="440">
</picture>
</p>
<p align="center">
<b>Your PS5 game store.</b><br>
Back from the dead, rebuilt from its own binary, with every line of source in the open.
</p>
<p align="center">
<a href="https://github.com/MyLuxy/overdrive/releases/latest"><img src="https://img.shields.io/github/v/release/MyLuxy/overdrive?style=for-the-badge&label=release&labelColor=0b0b0d&color=2a2a2f" alt="Latest release" width="197"></a>
<a href="https://github.com/MyLuxy/overdrive/releases"><img src="https://img.shields.io/github/downloads/MyLuxy/overdrive/total?style=for-the-badge&label=downloads&labelColor=0b0b0d&color=2a2a2f" alt="Downloads" width="183"></a>
<img src="https://img.shields.io/badge/platform-PS5-2a2a2f?style=for-the-badge&labelColor=0b0b0d" alt="Platform: PS5" width="184">
</p>
<p align="center">
<a href="#install-in-four-steps">Install</a> ·
<a href="#features">Features</a> ·
<a href="#updates">Updates</a> ·
<a href="#troubleshooting">Troubleshooting</a> ·
<a href="#build-it-yourself">Build it yourself</a>
</p>
> [!NOTE]
> The original Overdrive project has been shut down so I decompiled the last released build,
> recovered the complete source and rebuilt it.
<p align="center">
<img src=".github/readme/discover.jpg" alt="Overdrive's Discover page, with a featured game and the Popular now row" width="100%">
</p>
<p align="center">
<img src=".github/readme/browse.jpg" alt="Browse library: 1,845 games with filters, sorting, scores and sizes" width="49.5%">
<img src=".github/readme/downloads.jpg" alt="Downloads page with activity and storage for internal storage and a USB drive" width="49.5%">
</p>
## Features
- **1,800+ games** to discover, with **Top rated**, **New releases** and a featured spotlight
- **Browse the whole library** with filters, sorting, scores and download sizes at a glance
- **Downloads straight to the console**, to internal storage or any USB drive, with live speed and storage stats
- **Favorites**, **search** with an on-screen keyboard, and a **Files** page to see and clean up what's on your drives
- **13 languages**: English, Deutsch, Español, Français, Português (Brasil), Русский, Bahasa Indonesia, 日本語, 简体中文, العربية, اردو, हिन्दी, বাংলা
- **Updates itself**: a new version installs from the console, no PC needed
- Made for the controller: <kbd>L1</kbd> <kbd>R1</kbd> to switch sections, <kbd>✕</kbd> to select, <kbd>○</kbd> to go back
## Install in four steps
<p align="center">
<img src=".github/readme/install-steps.svg" alt="1 Download Overdrive.exfat · 2 Copy it into a homebrew folder on a USB drive · 3 Plug it in: ShadowMount+ installs it · 4 Play" width="100%">
</p>
### Before you start
You need a **jailbroken PS5** running **[ShadowMount+](https://github.com/drakmor/ShadowMountPlus)**,
the payload that installs `.exfat` images by itself. If ShadowMount+ shows its notification
when the console starts, you are ready. You also need a **USB drive** and a **PC**.
<p align="center">
<a href="https://github.com/MyLuxy/overdrive/releases/latest/download/Overdrive.exfat"><img src="https://img.shields.io/badge/Download-Overdrive.exfat-f2f2f3?style=for-the-badge&labelColor=0b0b0d" alt="Download Overdrive.exfat" width="347"></a>
</p>
<table>
<tr>
<td width="64" align="center" valign="top"><img src=".github/readme/step-1.svg" alt="1" width="40"></td>
<td>
**Download `Overdrive.exfat`** with the button above, or from the
[latest release](https://github.com/MyLuxy/overdrive/releases/latest). It is the only file you
need. Leave it as it is: don't unzip it and don't change the `.exfat` at the end of its name.
</td>
</tr>
<tr>
<td align="center" valign="top"><img src=".github/readme/step-2.svg" alt="2" width="40"></td>
<td>
**Copy it onto a USB drive, inside a folder called `homebrew`.** Plug the drive into your PC,
create a new folder named exactly `homebrew` (all lowercase) at the top level of the drive, and
copy `Overdrive.exfat` into it:
```text
USB drive
└── homebrew
└── Overdrive.exfat
```
The drive must be formatted as **exFAT**, which is how most drives come and what the PS5 reads.
</td>
</tr>
<tr>
<td align="center" valign="top"><img src=".github/readme/step-3.svg" alt="3" width="40"></td>
<td>
**Plug the drive into the PS5.** ShadowMount+ checks for new files every few seconds: it finds
Overdrive, mounts it and installs it, and a notification tells you when it's done. There is
nothing to click.
</td>
</tr>
<tr>
<td align="center" valign="top"><img src=".github/readme/step-4.svg" alt="4" width="40"></td>
<td>
<img src="app/sce_sys/icon0.png" alt="Overdrive's icon" width="64" align="right">
**Open Overdrive from the home screen.** Look for this icon. Enjoy!
</td>
</tr>
</table>
You can also use **any FTP client** to move the file onto the console's internal storage
instead, again inside a `homebrew` folder: `/data/homebrew/Overdrive.exfat`.
## Updates
You only install Overdrive by hand once. When a new version comes out, the app tells you by
itself a few seconds after it opens:
1. A window shows the new version and what changed. Press **Install**.
2. Overdrive downloads the update, checks it and puts it in place of the old one.
3. When it's done, the app **closes itself**. Open it again and you are on the new version.
The update needs about **600 MB free** on the drive that holds Overdrive. `update.zip` in each
release is the package the app downloads for this; you never need it yourself.
## Troubleshooting
<details>
<summary><b>Overdrive doesn't appear on the home screen</b></summary>
<br>
- Make sure **ShadowMount+ is running**: it shows a notification when it starts.
- Check the folder: it must be called exactly `homebrew` and sit at the **top level** of the
drive, not inside another folder.
- Check the file still ends in **`.exfat`**. Some PCs hide extensions: a file renamed to
`Overdrive.exfat.zip` or unzipped into a folder won't be found.
- Give it a minute: ShadowMount+ waits until the file has finished copying before it installs it.
</details>
<details>
<summary><b>After an update, the app still shows the old version</b></summary>
<br>
The new version is installed but the console still has the old one loaded. **Restart the
console** and open Overdrive again; the app tells you this itself if it happens twice in a row.
</details>
<details>
<summary><b>The update says there isn't enough space</b></summary>
<br>
The update is downloaded next to the installed app, so the drive holding Overdrive needs about
600 MB free. Free some space on that drive and press **Retry**. Nothing has been changed yet
when this happens.
</details>
<details>
<summary><b>The update says it couldn't replace the app</b></summary>
<br>
Install it by hand: download `Overdrive.exfat` from the
[latest release](https://github.com/MyLuxy/overdrive/releases/latest), close Overdrive, and copy
the new file over the old one in the `homebrew` folder.
</details>
<details>
<summary><b>How do I remove Overdrive?</b></summary>
<br>
Delete `Overdrive.exfat` from the `homebrew` folder first, then delete its icon from the home
screen. In the other order ShadowMount+ finds the file again and puts the icon back.
</details>
## Build it yourself
<details>
<summary><b>What's in this repository</b></summary>
<br>
| Path | What it is |
| --- | --- |
| `app/` | The application: JSX sources, state, assets, catalog data, and `app.json` (title id `PPSA99058`, version, capabilities) |
| `ps5-react/` | The framework it runs on, vendored from [half144/ps5-react](https://github.com/half144/ps5-react) |
| `packaging/make-exfat.sh` | Builds the exFAT image ShadowMount+ installs |
| `.github/workflows/build.yml` | The build |
</details>
<details>
<summary><b>How the source was recovered</b></summary>
<br>
Overdrive is a React app running on [ps5-react](https://github.com/half144/ps5-react), and its
whole JavaScript bundle sits in plain text inside `eboot.bin`. A bundler merges every module into
one scope, so imports between modules turn into bare names; since each top-level name stays
unique, the module that declares a name can be worked out again. That split the bundle back into
its 137 original modules with their real `import`/`export` lines, checked against the original
bundle until every import edge matched.
What a bundler throws away could not come back: most comments, the JSX syntax (it reads as
`jsx(View, {…})` calls), and `const`/`let` (now `var`). None of that changes how the app behaves.
</details>
<details>
<summary><b>Building</b></summary>
<br>
Every push builds on `ubuntu-24.04` with clang 18 and uploads `Overdrive.exfat` as a workflow
artifact. **Run workflow** builds the same and puts `Overdrive.exfat` and `update.zip` in a
draft release named after `app/version.js`, which only maintainers can see.
The same build locally, on any Linux with the packages the workflow installs (`clang-18`,
`llvm-18`, `cmake`, `ninja-build`, `nodejs`, `npm`, `zlib1g-dev`, `build-essential`,
`pkg-config`, `unzip`, `curl`, `exfatprogs`, and Pillow from `ps5-react/requirements.txt`):
```sh
cd ps5-react
python3 tools/build_ps5.py --app-dir ../app --llvm /usr/bin
sudo ../packaging/make-exfat.sh dist/PPSA99058 ../Overdrive.exfat
```
The build downloads its pinned dependencies into `ps5-react/.deps` and writes the app folder, a
`.zip` and a `.receipt.json` into `ps5-react/dist`. It verifies the result itself
(`tools/verify.py`), so a green build means the payload structure and signatures check out.
`--llvm /usr/bin` points it at the system clang; upstream defaults to the Homebrew LLVM path
because macOS is its supported development environment.
The image is a plain exFAT volume whose root is the app folder, with 64 KiB clusters and the
label `OVERDRIVE`. To release a new version, raise the version in `app/version.js` and
`app/app.json`, run the workflow, test the draft's image on a console, then publish the draft:
that creates its tag, and installed apps offer exactly the tested files on their next start.
</details>
<details>
<summary><b>Fixes over upstream ps5-react</b></summary>
<br>
Two fixes in the vendored framework, both in the build tooling and both reported by a Linux build:
- `ps5-react/tools/common.py` read the `git apply --summary` line with a fixed space count, which
glued the file mode onto the path (`100644 <path>`) and made every fresh dependency checkout
fail on the first patch that creates a file. It now splits on whitespace.
- `ps5-react/tools/build_ps5.py` opened the pinned LLVM package's `data.tar.zst` with `tarfile`,
which reads zstd only from Python 3.14 while the documented minimum is 3.12. It now falls back
to the `zstd` command.
Nothing else in the framework is changed.
</details>
## Credits
- **[MyLuxy](https://github.com/MyLuxy)**, who decompiled Overdrive, recovered its source and rebuilt it.
- **[ps5-react](https://github.com/half144/ps5-react)**, the framework it runs on.
- **[ShadowMount+](https://github.com/drakmor/ShadowMountPlus)** by drakmor, which installs it.
`ps5-react/` is GPL-3.0-or-later and carries its own `LICENSE`, `LICENSE-ATTRIBUTION` and
`NOTICE`. Every dependency notice is copied into `notices/` inside the built app, and
`ps5-react/docs/DEPENDENCIES.md` lists them with their sources.
<sub>Overdrive is an unofficial homebrew project and is not affiliated with or endorsed by Sony
Interactive Entertainment. PlayStation and PS5 are trademarks of Sony Interactive Entertainment.</sub>
-15
View File
@@ -1,15 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/half144/ps5-react/main/app.schema.json",
"titleId": "PPSA99058",
"contentId": "UP9000-PPSA99058_00-OVERDRIVE0000000",
"name": "Overdrive",
"version": "01.002.000",
"render": { "width": 1920, "height": 1080 },
"surface": { "width": 1920, "height": 1080 },
"refreshRate": 60,
"textFonts": ["chinese", "japanese", "bengali", "devanagari", "arabic"],
"resources": ["data/releases", "data/pages", "i18n/locales"],
"filesystemAccess": "console",
"networking": true,
"timeoutSeconds": 0
}
-10
View File
@@ -1,10 +0,0 @@
// Baked fonts cover printable ASCII by default, and every codepoint outside it
// draws as `?`. The store separates genres and sources with U+00B7 and writes
// em dashes, curly quotes and ellipses, and the shipped locales add accented
// Latin and Cyrillic, so both faces bake the whole European set.
export default {
fonts: {
'Inter-Regular': { glyphs: 'european' },
'JetBrainsMono-Regular': { glyphs: 'european' },
},
};
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-59
View File
@@ -1,59 +0,0 @@
// ../pub-game-store/native/browse/ActiveFilters.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo } from 'react';
import { useT } from '../i18n/index.js';
import { FACETS, facetLabel } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useQuery, useStoreActions, useStoreState } from '../state/store.jsx';
import { Chip } from '../ui/Chip.jsx';
import { FocusRing } from '../ui/FocusRing.jsx';
import { Text, View, useIsFocused } from '@ps5-react/core';
function ClearAll() {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsx)(Text, { focused, style: [{ fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, focused ? { color: "#f2f2f3" } : null], children: t2("filters.clearAll") });
}
var ActiveFilters = (0, memo)(function ActiveFilters2() {
const t2 = useT();
const { filters } = useStoreState();
const query = useQuery();
const { setFilters, toggleFilter, setQuery, clearFilters } = useStoreActions();
const { focusLater } = useNavActions();
const chips = [
query && { label: t2("filters.queryChip", { query }), remove: () => setQuery("") },
filters.wishlist && { label: t2("filters.favorites"), remove: () => setFilters({ ...filters, wishlist: false }) },
...FACETS.flatMap(({ key }) => filters[key].map((value) => ({ label: facetLabel(key, value), remove: () => toggleFilter(key, value) })))
].filter(Boolean);
if (!chips.length) return null;
const remove = (index, action) => {
const neighbour = chips[index + 1] ?? chips[index - 1];
action();
focusLater(neighbour ? `chip:${neighbour.label}` : "catalog:filters");
};
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
chips.map(
(chip, index) => /* @__PURE__ */ (0, jsx)(
Chip,
{
focusKey: `chip:${chip.label}`,
label: chip.label,
onPress: () => remove(index, chip.remove)
},
chip.label
)
),
chips.length > 1 && /* @__PURE__ */ (0, jsxs)(View, { onPress: () => {
clearFilters();
focusLater("catalog:filters");
}, style: (_state) => [{ height: 60, justifyContent: "center", borderRadius: 14999, paddingHorizontal: 24 }, _state.focused ? { backgroundColor: "#2b2b30" } : null], children: [
/* @__PURE__ */ (0, jsx)(FocusRing, { round: "full" }),
/* @__PURE__ */ (0, jsx)(ClearAll, {})
] })
] });
});
export { ActiveFilters };
-81
View File
@@ -1,81 +0,0 @@
// ../pub-game-store/native/browse/BrowsePage.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import '../assets/JetBrainsMono-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo, useState } from 'react';
import { Catalog } from './Catalog.jsx';
import { CdnRail } from './CdnRail.jsx';
import { ContinueRow } from './ContinueRow.jsx';
import { FilterDrawer } from './FilterDrawer.jsx';
import { GenreRail } from './GenreRail.jsx';
import { PageHints } from './PageHints.jsx';
import { PopularRail } from './PopularRail.jsx';
import { RecentRow } from './RecentRow.jsx';
import { Spotlight } from './Spotlight.jsx';
import { TopCharts } from './TopCharts.jsx';
import { useT } from '../i18n/index.js';
import { StoreFreeze } from '../state/store.jsx';
import { useFolderInstall } from '../state/update.js';
import { useFavoriteAction } from '../ui/GameCard.jsx';
import { Icon } from '../ui/Icon.jsx';
import { Logo } from '../ui/Logo.jsx';
import { colors } from '../ui/colors.js';
import { FocusScope, ScrollView, Text, View } from '@ps5-react/core';
function Footer() {
const t2 = useT();
return /* @__PURE__ */ (0, jsxs)(View, { style: { marginHorizontal: -48, marginTop: 120, flexDirection: "row", alignItems: "center", justifyContent: "space-between", borderTopWidth: 2, borderColor: "#2a2a2f", paddingHorizontal: 48, paddingVertical: 48 }, children: [
/* @__PURE__ */ (0, jsx)(Logo, { color: colors.muted }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", lineHeight: 30 }, children: t2("browse.footer") })
] });
}
var MIGRATE_GUIDE = "github.com/MyLuxy/overdrive";
function FolderInstallNotice() {
const t2 = useT();
if (!useFolderInstall()) return null;
return /* @__PURE__ */ (0, jsxs)(View, { style: { flexDirection: "row", alignItems: "center", gap: 18, borderRadius: 18, borderWidth: 2, borderColor: "#2a2a2f", backgroundColor: "#17171a", paddingHorizontal: 30, paddingVertical: 18 }, children: [
/* @__PURE__ */ (0, jsx)(Icon, { name: "alert", size: 18, color: colors.muted }),
/* @__PURE__ */ (0, jsxs)(View, { style: { flex: 1, gap: 3 }, children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("browse.folderInstall") }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "JetBrainsMono-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 }, children: MIGRATE_GUIDE })
] })
] });
}
var Sections = (0, memo)(function Sections2({ onOpenFilters }) {
const onAction = useFavoriteAction();
return /* @__PURE__ */ (0, jsx)(FocusScope, { trap: true, onAction, children: /* @__PURE__ */ (0, jsxs)(ScrollView, { style: { flex: 1, gap: 60, paddingHorizontal: 48 }, children: [
/* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, style: { gap: 24, paddingTop: 36 }, children: [
/* @__PURE__ */ (0, jsx)(FolderInstallNotice, {}),
/* @__PURE__ */ (0, jsx)(Spotlight, {})
] }),
/* @__PURE__ */ (0, jsx)(PopularRail, {}),
/* @__PURE__ */ (0, jsx)(CdnRail, {}),
/* @__PURE__ */ (0, jsx)(ContinueRow, {}),
/* @__PURE__ */ (0, jsx)(RecentRow, {}),
/* @__PURE__ */ (0, jsx)(TopCharts, {}),
/* @__PURE__ */ (0, jsx)(GenreRail, {}),
/* @__PURE__ */ (0, jsx)(Catalog, { onOpenFilters }),
/* @__PURE__ */ (0, jsx)(Footer, {})
] }) });
});
var BrowsePage = (0, memo)(function BrowsePage2() {
const [open, setOpen] = (0, useState)(false);
const [frozen, setFrozen] = (0, useState)(false);
const [drawer] = (0, useState)(() => ({
open: () => {
setOpen(true);
setFrozen(true);
},
close: () => setOpen(false),
closed: () => setFrozen(false)
}));
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(StoreFreeze, { frozen, children: /* @__PURE__ */ (0, jsx)(Sections, { onOpenFilters: drawer.open }) }),
/* @__PURE__ */ (0, jsx)(FilterDrawer, { open, onClose: drawer.close, onClosed: drawer.closed }),
/* @__PURE__ */ (0, jsx)(PageHints, {})
] });
});
export { BrowsePage };
-148
View File
@@ -1,148 +0,0 @@
// ../pub-game-store/native/browse/Catalog.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { ActiveFilters } from './ActiveFilters.jsx';
import { EmptyState } from './EmptyState.jsx';
import { SortSelect } from './SortSelect.jsx';
import { SPAN_MAX, fitBytes } from '../i18n/fit.js';
import { useLocale, useT } from '../i18n/index.js';
import { activeCount, filterGames, sortGames } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useStore } from '../state/store.jsx';
import { ButtonGlyph } from '../ui/ButtonHints.jsx';
import { FocusRing } from '../ui/FocusRing.jsx';
import { DETAILED_CAPTION, GameCard } from '../ui/GameCard.jsx';
import { px } from '../ui/scale.js';
import { FocusScope, Image, Text, View, VirtualList, useIsFocused } from '@ps5-react/core';
var STAGGER = 0.03;
var COLUMNS = 6;
var BATCH = COLUMNS * 8;
var CARD_WIDTH = 182;
var CARD_HEIGHT = 243 + DETAILED_CAPTION;
var FIRST = COLUMNS * 3;
var STEP = 3;
var AHEAD = [2, 5];
var SETTLE_MS2 = 200;
var fetched = /* @__PURE__ */ new Set();
var settle2 = null;
var coverBox = { width: px(CARD_WIDTH), height: px(Math.round(CARD_WIDTH * 4 / 3)), resizeMode: "cover" };
function prefetchBelow(games2, index) {
clearTimeout(settle2);
settle2 = setTimeout(() => prefetchRows(games2, index), SETTLE_MS2);
}
function prefetchRows(games2, index) {
const row = Math.floor(index / COLUMNS);
for (const game of games2.slice((row + AHEAD[0]) * COLUMNS, (row + AHEAD[1]) * COLUMNS)) {
if (!game.art.cover || fetched.has(game.id)) continue;
fetched.add(game.id);
Image.prefetch(game.art.cover, coverBox).catch(() => fetched.delete(game.id));
}
}
var sameGrid = (a, b) => a.signature === b.signature && a.enter === b.enter && a.games.length === b.games.length && a.games.every((game, i) => game === b.games[i]);
var Grid = (0, memo)(function Grid2({ games: games2, enter: enter3 }) {
const { openGame } = useNavActions();
const [limit, setLimit] = (0, useState)(BATCH);
const [filled, setFilled] = (0, useState)(STEP);
const entering = (0, useRef)(enter3);
(0, useEffect)(() => {
if (filled >= FIRST) {
entering.current = false;
return void 0;
}
const id = setTimeout(() => setFilled((count) => count + STEP), 0);
return () => clearTimeout(id);
}, [filled]);
const all = (0, useRef)(games2);
all.current = games2;
const renderItem = (0, useCallback)(
({ item: game, index }) => /* @__PURE__ */ (0, jsx)(
GameCard,
{
game,
width: CARD_WIDTH,
detailed: true,
rowEnd: index % COLUMNS === COLUMNS - 1,
enterDelay: entering.current ? index * STAGGER : void 0,
onFocus: () => prefetchBelow(all.current, index),
onPress: () => openGame(game.id, `card:${game.id}`)
}
),
[openGame]
);
return /* @__PURE__ */ (0, jsx)(
VirtualList,
{
style: { marginTop: 36 },
data: games2.slice(0, filled < FIRST ? filled : limit),
numColumns: COLUMNS,
itemHeight: CARD_HEIGHT,
rowGap: 40,
columnGap: 24,
initialNumRows: 3,
keyExtractor: (game) => game.id,
onEndReached: () => setLimit((count) => count + BATCH),
renderItem
}
);
}, sameGrid);
function FiltersLabel({ count }) {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusRing, {}),
/* @__PURE__ */ (0, jsx)(Text, { focused, style: [{ fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3d9", lineHeight: 30 }, focused ? { color: "#f2f2f3" } : null], children: t2("filters.title") }),
count > 0 && /* @__PURE__ */ (0, jsx)(View, { style: { height: 30, minWidth: 30, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#f2f2f3", paddingHorizontal: 9 }, children: /* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 18, fontWeight: 600, color: "#000000", lineHeight: 24 }, children: String(count) }) }),
/* @__PURE__ */ (0, jsx)(ButtonGlyph, { button: "triangle", size: 18 })
] });
}
function Catalog({ onOpenFilters }) {
const t2 = useT();
const { rtl } = useLocale();
const store = useStore();
const { filters, query } = store;
const results = (0, useMemo)(
() => sortGames(filterGames(store), store.sort),
[filters, query, store.wishlist, store.sort]
);
const settled = (0, useRef)(false);
(0, useEffect)(() => {
settled.current = true;
}, []);
const signature = JSON.stringify([filters, query, store.sort]);
const title = query ? t2("catalog.resultsFor", { query }) : filters.wishlist ? t2("catalog.favorites") : t2("catalog.library");
const filtersCount = activeCount(filters) - Number(filters.wishlist);
const onAction = (action) => {
if (action !== "triangle" && action !== "options") return false;
onOpenFilters();
return true;
};
return /* @__PURE__ */ (0, jsx)(FocusScope, { restoreFocus: false, onAction, children: /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, children: [
/* @__PURE__ */ (0, jsxs)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 30, fontWeight: 600, color: "#f2f2f3", lineHeight: 42, letterSpacing: -0.75 }, children: [
fitBytes(title, SPAN_MAX),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontWeight: 400, color: "#8a8a94" }, children: fitBytes(` ${t2("catalog.gameCount", { count: results.length })}`, SPAN_MAX) })
] }),
/* @__PURE__ */ (0, jsxs)(View, { style: { zIndex: 10, marginTop: 24, flexDirection: "row", flexWrap: "wrap", alignItems: "center", gap: 12 }, children: [
/* @__PURE__ */ (0, jsx)(View, { focusKey: "catalog:filters", onPress: onOpenFilters, style: (_state) => [
{ height: 60, flexDirection: "row", alignItems: "center", gap: 12, borderRadius: 14999, backgroundColor: "#17171a" },
rtl ? { paddingRight: 24, paddingLeft: 18 } : { paddingLeft: 24, paddingRight: 18 },
_state.focused ? { backgroundColor: "#2b2b30" } : null
], children: /* @__PURE__ */ (0, jsx)(FiltersLabel, { count: filtersCount }) }),
/* @__PURE__ */ (0, jsx)(SortSelect, {}),
/* @__PURE__ */ (0, jsx)(ActiveFilters, {})
] }),
results.length > 0 ? /* @__PURE__ */ (0, jsx)(Grid, { games: results, signature, enter: settled.current }, signature) : /* @__PURE__ */ (0, jsx)(
EmptyState,
{
query,
onlyWishlist: filters.wishlist && activeCount(filters) === 1,
onClear: store.clearFilters
}
)
] }) });
}
export { Catalog };
-74
View File
@@ -1,74 +0,0 @@
// ../pub-game-store/native/browse/CdnRail.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import cdnCard from '../assets/cdn-card.png';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo } from 'react';
import { GameRail } from './GameRail.jsx';
import { games } from '../data/catalog.js';
import { useT } from '../i18n/index.js';
import { CDN_HOST, NO_FILTERS, onCdn, sortGames } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useStoreActions } from '../state/store.jsx';
import { FocusFrame } from '../ui/FocusRing.jsx';
import { DETAILED_CAPTION, GameCard } from '../ui/GameCard.jsx';
import { Icon } from '../ui/Icon.jsx';
import { colors } from '../ui/colors.js';
import { EASE_OUT } from '../ui/ease.js';
import { px } from '../ui/scale.js';
import { Image, Text, View, motion, useIsFocused } from '@ps5-react/core';
var WIDTH = 152;
var TILE = { width: px(WIDTH * 2 + 24), height: px(Math.round(WIDTH * 4 / 3)), borderRadius: px(8) };
var CAPTION2 = { width: px(WIDTH * 2 + 24), height: px(DETAILED_CAPTION) };
var SERVED = sortGames(games.filter(onCdn), "relevance");
var lift2 = { type: "tween", duration: 0.3, ease: EASE_OUT };
function CollectionCard() {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsxs)(motion.View, { style: [{ position: "relative" }, TILE], initial: false, animate: { y: focused ? -6 : 0 }, transition: lift2, children: [
/* @__PURE__ */ (0, jsx)(Image, { source: cdnCard, resizeMode: "cover", style: TILE }),
/* @__PURE__ */ (0, jsx)(FocusFrame, { round: "lg" })
] }),
/* @__PURE__ */ (0, jsxs)(View, { style: [{ paddingTop: 15 }, CAPTION2], children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 20, color: "#8a8a94", lineHeight: 24 }, children: t2("catalog.gameCount", { count: SERVED.length }) }),
/* @__PURE__ */ (0, jsx)(Text, { focused, style: [{ marginTop: 6, fontFamily: "Inter-Regular", fontSize: 23, fontWeight: 600, color: "#f2f2f3e6", lineHeight: 30 }, focused ? { color: "#f2f2f3" } : null], children: "Overdrive CDN" }),
/* @__PURE__ */ (0, jsxs)(View, { style: { marginTop: 9, flexDirection: "row", alignItems: "center", gap: 6 }, children: [
/* @__PURE__ */ (0, jsx)(Text, { focused, style: [{ fontFamily: "Inter-Regular", fontSize: 20, color: "#a3a3ab" }, focused ? { color: "#f2f2f3" } : null], children: t2("common.seeAll") }),
/* @__PURE__ */ (0, jsx)(Icon, { name: "chevronRight", size: 14, color: focused ? colors.fg : colors.muted })
] })
] })
] });
}
var CdnRail = (0, memo)(function CdnRail2() {
const { openGame, focusLater } = useNavActions();
const { setFilters, setQuery } = useStoreActions();
if (!SERVED.length) return null;
const browse = () => {
setFilters({ ...NO_FILTERS, provider: [CDN_HOST] });
setQuery("");
focusLater("catalog:filters");
};
return /* @__PURE__ */ (0, jsxs)(GameRail, { title: "Overdrive CDN", onSeeAll: browse, seeAllKey: "cdn:all", children: [
/* @__PURE__ */ (0, jsx)(View, { focusKey: "cdn:card", onPress: browse, children: /* @__PURE__ */ (0, jsx)(CollectionCard, {}) }),
SERVED.map((game, index) => {
const key = `cdn:${game.id}`;
return /* @__PURE__ */ (0, jsx)(
GameCard,
{
game,
width: WIDTH,
detailed: true,
focusKey: key,
rowEnd: index === SERVED.length - 1,
onPress: () => openGame(game.id, key)
},
game.id
);
})
] });
});
export { CdnRail };
-68
View File
@@ -1,68 +0,0 @@
// ../pub-game-store/native/browse/ContinueRow.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo } from 'react';
import { GameRail } from './GameRail.jsx';
import { WAITING, shownState, stateLabel } from '../downloads/labels.js';
import { fractionOf, useJobs, useProgress } from '../downloads/useQueue.js';
import { formatPercent2 } from '../i18n/core.js';
import { useT } from '../i18n/index.js';
import { getGame } from '../state/catalog.js';
import { BUSY } from '../state/download-queue.js';
import { useNavActions } from '../state/nav.jsx';
import { GameCard } from '../ui/GameCard.jsx';
import { ProgressBar } from '../ui/ProgressBar.jsx';
import { ShimmerText } from '../ui/ShimmerText.jsx';
import { Text, View, useIsFocused } from '@ps5-react/core';
var UNFINISHED = [...BUSY, "paused", "failed"];
var WIDTH2 = 152;
var STATE = { fontFamily: "Inter-Regular", fontSize: 21 };
function JobCaption({ job: job2 }) {
const t2 = useT();
const focused = useIsFocused();
const progress = useProgress(job2.id);
const fraction = fractionOf(progress);
const shown = shownState(job2);
const percent = progress?.total && job2.state !== "failed" ? ` \xB7 ${formatPercent2(Math.floor(fraction * 100))}` : "";
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(Text, { focused, style: [{ marginTop: 18, width: 225, fontFamily: "Inter-Regular", fontSize: 23, color: "#f2f2f3d9", numberOfLines: 1, ellipsizeMode: "tail" }, focused ? { color: "#f2f2f3" } : null], children: job2.title }),
/* @__PURE__ */ (0, jsx)(View, { style: { marginTop: 12 }, children: /* @__PURE__ */ (0, jsx)(ProgressBar, { fraction, width: WIDTH2, active: job2.state === "downloading" }) }),
WAITING.includes(shown) ? /* @__PURE__ */ (0, jsx)(View, { style: { marginTop: 9, width: 225 }, children: /* @__PURE__ */ (0, jsx)(ShimmerText, { textStyle: STATE, children: stateLabel(shown) }) }) : /* @__PURE__ */ (0, jsx)(Text, { style: job2.state === "failed" ? { marginTop: 9, width: 225, fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", numberOfLines: 1, ellipsizeMode: "tail" } : { marginTop: 9, width: 225, fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", numberOfLines: 1, ellipsizeMode: "tail" }, children: job2.state === "failed" ? t2("browse.continueFailed") : `${stateLabel(job2.state)}${percent}` })
] });
}
var ContinueRow = (0, memo)(function ContinueRow2() {
const t2 = useT();
const { jobs } = useJobs();
const { push, openGame } = useNavActions();
const entries2 = jobs.filter((job2) => UNFINISHED.includes(job2.state)).map((job2) => ({ job: job2, game: getGame(job2.gameId) })).filter((entry2) => entry2.game);
if (!entries2.length) return null;
return /* @__PURE__ */ (0, jsx)(
GameRail,
{
title: t2("browse.continueDownloading"),
seeAllKey: "continue:all",
onSeeAll: () => push({ name: "downloads" }, "continue:all"),
children: entries2.map(({ job: job2, game }, index) => {
const key = `continue:${job2.id}`;
return /* @__PURE__ */ (0, jsx)(
GameCard,
{
game,
width: WIDTH2,
detailed: true,
focusKey: key,
rowEnd: index === entries2.length - 1,
onPress: () => openGame(game.id, key),
caption: /* @__PURE__ */ (0, jsx)(JobCaption, { job: job2 })
},
job2.id
);
})
}
);
});
export { ContinueRow };
-28
View File
@@ -1,28 +0,0 @@
// ../pub-game-store/native/browse/EmptyState.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { jsx, jsxs } from 'react/jsx-runtime';
import { useT } from '../i18n/index.js';
import { Button2 } from '../ui/Button.jsx';
import { Icon } from '../ui/Icon.jsx';
import { colors } from '../ui/colors.js';
import { Text, View } from '@ps5-react/core';
function copy(t2, query, onlyWishlist) {
if (query) return { title: t2("catalog.empty.queryTitle", { query }), hint: t2("catalog.empty.queryHint") };
if (onlyWishlist) return { title: t2("catalog.empty.wishlistTitle"), hint: t2("catalog.empty.wishlistHint") };
return { title: t2("catalog.empty.filtersTitle"), hint: t2("catalog.empty.filtersHint") };
}
function EmptyState({ query, onlyWishlist, onClear }) {
const t2 = useT();
const { title, hint } = copy(t2, query, onlyWishlist);
return /* @__PURE__ */ (0, jsxs)(View, { style: { marginTop: 36, alignItems: "center", paddingHorizontal: 36, paddingVertical: 120 }, children: [
/* @__PURE__ */ (0, jsx)(Icon, { name: onlyWishlist ? "heart" : "searchX", size: 32, color: colors.subtle }),
/* @__PURE__ */ (0, jsx)(Text, { style: { marginTop: 24, fontFamily: "Inter-Regular", fontSize: 27, fontWeight: 600, color: "#f2f2f3", lineHeight: 42 }, children: title }),
/* @__PURE__ */ (0, jsx)(Text, { style: { marginTop: 6, width: 720, textAlign: "center", fontFamily: "Inter-Regular", fontSize: 24, color: "#a3a3ab", lineHeight: 36 }, children: hint }),
/* @__PURE__ */ (0, jsx)(View, { style: { marginTop: 36 }, children: /* @__PURE__ */ (0, jsx)(Button2, { variant: "outline", label: t2("catalog.empty.browseAll"), focusKey: "catalog:empty", onPress: onClear }) })
] });
}
export { EmptyState };
-165
View File
@@ -1,165 +0,0 @@
// ../pub-game-store/native/browse/FilterDrawer.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo, useRef, useState } from 'react';
import { formatNumber2 } from '../i18n/core.js';
import { useT } from '../i18n/index.js';
import { FACETS, activeCount, facetCounts, facetTitle, filterGames, optionLabel } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useStore } from '../state/store.jsx';
import { Button2 } from '../ui/Button.jsx';
import { CdnAura, CdnSpark } from '../ui/CdnAura.jsx';
import { FocusRing } from '../ui/FocusRing.jsx';
import { useHints } from '../ui/Legend.jsx';
import { PlatformBadge } from '../ui/PlatformBadge.jsx';
import { SheetPanel } from '../ui/SideSheet.jsx';
import { EASE_OUT } from '../ui/ease.js';
import { AnimatePresence, FocusScope, ScrollView, Text, View, useIsFocused } from '@ps5-react/core';
var WIDTH3 = 480;
var slide = { type: "tween", duration: 0.24, ease: EASE_OUT };
var TILE_LIMIT = 3;
var PILL_LIMIT = 12;
function TileFace({ facet, value, label, count, active: active2 }) {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusRing, {}),
facet === "platform" ? /* @__PURE__ */ (0, jsx)(PlatformBadge, { platforms: [value] }) : /* @__PURE__ */ (0, jsx)(Text, { style: active2 ? { fontFamily: "Inter-Regular", fontSize: 23, fontWeight: 600, color: "#000000" } : { fontFamily: "Inter-Regular", fontSize: 23, fontWeight: 600, color: "#f2f2f3" }, children: label }),
/* @__PURE__ */ (0, jsx)(Text, { style: active2 ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#000000b3", lineHeight: 30 } : count === 0 ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a9499", lineHeight: 30 } : focused ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 } : { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", lineHeight: 30 }, children: t2("catalog.gameCount", { count }) })
] });
}
var reachable2 = ({ count, active: active2 }) => count > 0 || active2;
function Tile({ focusKey, autoFocus, ...props }) {
const { active: active2, onPress } = props;
return /* @__PURE__ */ (0, jsx)(View, { focusKey, autoFocus, focusable: reachable2(props), onPress, style: (_state) => active2 ? { height: 108, flex: 1, justifyContent: "center", gap: 9, borderRadius: 12, backgroundColor: "#f2f2f3", paddingHorizontal: 24 } : [{ height: 108, flex: 1, justifyContent: "center", gap: 9, borderRadius: 12, borderWidth: 2, borderColor: "#2a2a2f", paddingHorizontal: 24 }, _state.focused ? { backgroundColor: "#212125" } : null], children: /* @__PURE__ */ (0, jsx)(TileFace, { ...props }) });
}
function PillFace({ label, count, active: active2 }) {
const focused = useIsFocused();
const empty = count === 0 && !active2;
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusRing, { round: "full" }),
/* @__PURE__ */ (0, jsx)(Text, { style: active2 ? { fontFamily: "Inter-Regular", fontSize: 21, fontWeight: 600, color: "#000000", lineHeight: 30 } : empty ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a9499", lineHeight: 30 } : focused ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 } : { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3d9", lineHeight: 30 }, children: label }),
/* @__PURE__ */ (0, jsx)(Text, { style: active2 ? { fontFamily: "Inter-Regular", fontSize: 20, color: "#00000099" } : { fontFamily: "Inter-Regular", fontSize: 20, color: "#8a8a94" }, children: formatNumber2(count) })
] });
}
function Pill({ label, count, active: active2, onPress, focusKey, autoFocus, value }) {
const cdn = value === "overdrive cdn" && !active2;
return /* @__PURE__ */ (0, jsxs)(View, { focusKey, autoFocus, focusable: reachable2({ count, active: active2 }), onPress, style: (_state2) => active2 ? { height: 60, flexDirection: "row", alignItems: "center", gap: 12, borderRadius: 14999, backgroundColor: "#f2f2f3", paddingHorizontal: 24 } : cdn ? { position: "relative", height: 60, flexDirection: "row", alignItems: "center", gap: 12, borderRadius: 14999, backgroundColor: "#17171a", paddingHorizontal: 24 } : [{ height: 60, flexDirection: "row", alignItems: "center", gap: 12, borderRadius: 14999, backgroundColor: "#17171a", paddingHorizontal: 24 }, _state2.focused ? { backgroundColor: "#2b2b30" } : null], children: [
cdn ? /* @__PURE__ */ (0, jsx)(CdnAura, { radius: 20, width: 170 }) : null,
cdn ? /* @__PURE__ */ (0, jsx)(CdnSpark, { size: 14 }) : null,
/* @__PURE__ */ (0, jsx)(PillFace, { label, count, active: active2 })
] });
}
function More({ count, onPress }) {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(View, { onPress, style: (_state3) => [{ height: 60, flexDirection: "row", alignItems: "center", borderRadius: 14999, borderWidth: 2, borderColor: "#2a2a2f", paddingHorizontal: 24 }, _state3.focused ? { backgroundColor: "#2b2b30" } : null], children: [
/* @__PURE__ */ (0, jsx)(FocusRing, { round: "full" }),
/* @__PURE__ */ (0, jsx)(Text, { style: focused ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 } : { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("filters.more", { count }) })
] });
}
function ClearFacet({ onPress }) {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(View, { onPress, style: { borderRadius: 6, paddingHorizontal: 6 }, children: [
/* @__PURE__ */ (0, jsx)(FocusRing, {}),
/* @__PURE__ */ (0, jsx)(Text, { style: focused ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 } : { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("filters.clearFacet") })
] });
}
function Facet({ facet, store, autoFocus }) {
const t2 = useT();
const [expanded, setExpanded] = (0, useState)(false);
const { focusLater } = useNavActions();
const counts = facetCounts(store, facet);
const picked = store.filters[facet.key];
const tiles = facet.options.length <= TILE_LIMIT;
const folded = !tiles && !expanded && facet.options.length > PILL_LIMIT;
const shown = folded ? facet.options.filter((option, index) => index < PILL_LIMIT || picked.includes(option.value)) : facet.options;
return /* @__PURE__ */ (0, jsxs)(View, { style: { gap: 18, borderBottomWidth: 2, borderColor: "#2a2a2f", paddingVertical: 30 }, children: [
/* @__PURE__ */ (0, jsxs)(View, { style: { height: 36, flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 20, fontWeight: 600, color: "#a3a3ab", letterSpacing: 1.6 }, children: facetTitle(facet.key).toUpperCase() }),
picked.length > 0 && /* @__PURE__ */ (0, jsxs)(View, { style: { flexDirection: "row", alignItems: "center", gap: 18 }, children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 }, children: t2("filters.selected", { count: picked.length }) }),
/* @__PURE__ */ (0, jsx)(ClearFacet, { onPress: () => {
store.setFilters({ ...store.filters, [facet.key]: [] });
focusLater(`filters:${facet.key}`);
} })
] })
] }),
/* @__PURE__ */ (0, jsxs)(View, { style: tiles ? { flexDirection: "row", gap: 18 } : { flexDirection: "row", flexWrap: "wrap", gap: 12 }, children: [
shown.map((option, index) => {
const { value } = option;
const props = {
facet: facet.key,
value,
label: optionLabel(option),
count: counts[value],
active: picked.includes(value),
onPress: () => store.toggleFilter(facet.key, value),
focusKey: index === 0 ? `filters:${facet.key}` : `filters:${facet.key}:${value}`,
autoFocus: index === 0 && autoFocus
};
return tiles ? /* @__PURE__ */ (0, jsx)(Tile, { ...props }, value) : /* @__PURE__ */ (0, jsx)(Pill, { value, ...props }, value);
}),
folded && /* @__PURE__ */ (0, jsx)(More, { count: facet.options.length - shown.length, onPress: () => {
setExpanded(true);
focusLater(`filters:${facet.key}:${facet.options[PILL_LIMIT].value}`);
} })
] })
] });
}
var HINTS3 = [{ button: "cross", label: "hints.toggle" }, { button: "circle", label: "hints.close" }];
function Panel({ onClose }) {
useHints(HINTS3);
const t2 = useT();
const store = useStore();
const { filters, clearFilters } = store;
const { focusLater } = useNavActions();
const count = activeCount(filters);
const total = filterGames(store).length;
const opened = (0, useRef)(JSON.stringify(filters));
const close = () => {
if (JSON.stringify(filters) !== opened.current) focusLater("catalog:filters");
onClose();
return true;
};
return (
// A modal: the shoulder buttons would switch the header's section under it, so every action stops here.
/* @__PURE__ */ (0, jsxs)(FocusScope, { trap: true, onBack: close, onAction: (action) => action !== "triangle" && action !== "options" || close(), children: [
/* @__PURE__ */ (0, jsxs)(View, { style: { height: 96, flexDirection: "row", alignItems: "center", gap: 18, borderBottomWidth: 2, borderColor: "#2a2a2f" }, children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 30, fontWeight: 600, color: "#f2f2f3", lineHeight: 42, letterSpacing: -0.75 }, children: t2("filters.title") }),
count > 0 && /* @__PURE__ */ (0, jsx)(View, { style: { height: 36, minWidth: 36, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#f2f2f3", paddingHorizontal: 12 }, children: /* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 20, fontWeight: 600, color: "#000000" }, children: String(count) }) }),
/* @__PURE__ */ (0, jsx)(View, { style: { flex: 1 } }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("catalog.gameCount", { count: total }) })
] }),
/* @__PURE__ */ (0, jsxs)(ScrollView, { style: { marginHorizontal: -24, flex: 1, paddingHorizontal: 24 }, children: [
FACETS.map((facet, index) => /* @__PURE__ */ (0, jsx)(Facet, { facet, store, autoFocus: index === 0 }, facet.key)),
/* @__PURE__ */ (0, jsxs)(View, { style: { flexDirection: "row", gap: 18, paddingBottom: 36, paddingTop: 30 }, children: [
count > 0 && /* @__PURE__ */ (0, jsx)(Button2, { variant: "secondary", size: "lg", label: t2("filters.clearAll"), onPress: () => {
clearFilters();
focusLater(`filters:${FACETS[0].key}`);
} }),
/* @__PURE__ */ (0, jsx)(Button2, { variant: "primary", size: "lg", style: { flex: 1 }, label: t2("filters.show", { count: total }), onPress: close })
] })
] })
] })
);
}
var FilterDrawer = (0, memo)(function FilterDrawer2({ open, onClose, onClosed }) {
return /* @__PURE__ */ (0, jsx)(AnimatePresence, { onExitComplete: onClosed, children: open && /* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", top: 0, right: 0, bottom: 0, left: 0, zIndex: 30 }, children: /* @__PURE__ */ (0, jsx)(
SheetPanel,
{
style: { width: 720, paddingHorizontal: 36 },
initial: { x: WIDTH3 },
animate: { x: 0 },
exit: { x: WIDTH3, transition: { ...slide, duration: 0.16 } },
transition: slide,
children: /* @__PURE__ */ (0, jsx)(Panel, { onClose })
}
) }, "drawer") });
});
export { FilterDrawer };
-34
View File
@@ -1,34 +0,0 @@
// ../pub-game-store/native/browse/GameRail.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { FocusRing } from '../ui/FocusRing.jsx';
import { Icon } from '../ui/Icon.jsx';
import { colors } from '../ui/colors.js';
import { ScrollView, Text, View, useIsFocused } from '@ps5-react/core';
function TitleLink({ title }) {
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusRing, {}),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 30, fontWeight: 600, color: "#f2f2f3", lineHeight: 42, letterSpacing: -0.75 }, children: title }),
/* @__PURE__ */ (0, jsx)(Icon, { name: "chevronRight", size: 16, color: focused ? colors.fg : colors.muted })
] });
}
var Arrow = ({ name }) => /* @__PURE__ */ (0, jsx)(View, { style: { width: 48, height: 48, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#17171a" }, children: /* @__PURE__ */ (0, jsx)(Icon, { name, size: 16, color: colors.muted, fixed: true }) });
var LTR = { direction: "ltr" };
function GameRail({ title, onSeeAll, seeAllKey, children }) {
return /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, children: [
/* @__PURE__ */ (0, jsxs)(View, { style: { marginBottom: 24, flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
onSeeAll ? /* @__PURE__ */ (0, jsx)(View, { onPress: onSeeAll, focusKey: seeAllKey, style: { flexDirection: "row", alignItems: "center", gap: 6, borderRadius: 9 }, children: /* @__PURE__ */ (0, jsx)(TitleLink, { title }) }) : /* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 30, fontWeight: 600, color: "#f2f2f3", lineHeight: 42, letterSpacing: -0.75 }, children: title }),
/* @__PURE__ */ (0, jsxs)(View, { style: [{ flexDirection: "row", gap: 12 }, LTR], children: [
/* @__PURE__ */ (0, jsx)(Arrow, { name: "chevronLeft" }),
/* @__PURE__ */ (0, jsx)(Arrow, { name: "chevronRight" })
] })
] }),
/* @__PURE__ */ (0, jsx)(View, { style: { marginHorizontal: -12, marginVertical: -24 }, children: /* @__PURE__ */ (0, jsx)(ScrollView, { style: [{ flexDirection: "row", gap: 36, paddingHorizontal: 12, paddingVertical: 24 }, LTR], children }) })
] });
}
export { GameRail };
-62
View File
@@ -1,62 +0,0 @@
// ../pub-game-store/native/browse/GenreCard.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { jsx, jsxs } from 'react/jsx-runtime';
import { memo } from 'react';
import { useT } from '../i18n/index.js';
import { genreLabel } from '../state/catalog.js';
import { Cover } from '../ui/Cover.jsx';
import { FocusFrame } from '../ui/FocusRing.jsx';
import { Icon } from '../ui/Icon.jsx';
import { Shine } from '../ui/Shine.jsx';
import { colors } from '../ui/colors.js';
import { EASE_OUT } from '../ui/ease.js';
import { Text, View, motion, useIsFocused } from '@ps5-react/core';
var spread = { type: "tween", duration: 0.3, ease: EASE_OUT };
var cover = { width: 126, height: 168, borderRadius: 12 };
var side = { width: 113, height: 151, borderRadius: 12 };
var front = { position: "absolute", left: 87, top: 24, zIndex: 10 };
var OPEN = [-12.6, 12.6];
function Fan({ covers }) {
const focused = useIsFocused();
return covers.slice(1).map(
(game, index) => /* @__PURE__ */ (0, jsx)(
motion.View,
{
style: index === 0 ? { position: "absolute", left: 18, top: 32 } : { position: "absolute", left: 169, top: 32 },
initial: false,
animate: { x: focused ? OPEN[index] : 0 },
transition: spread,
children: /* @__PURE__ */ (0, jsx)(Cover, { game, style: side, label: false })
},
game.id
)
);
}
var GenreCard = (0, memo)(function GenreCard2({ genre, count, covers, active: active2, onToggle }) {
const t2 = useT();
return /* @__PURE__ */ (0, jsxs)(
motion.View,
{
focusKey: `genre:${genre}`,
onPress: () => onToggle(genre),
selected: active2,
whileFocus: { y: -6 },
transition: spread,
style: (_state) => [{ width: 300, borderRadius: 18, backgroundColor: "#17171a", paddingHorizontal: 24, paddingBottom: 24, paddingTop: 216 }, active2 ? { backgroundColor: "#212125" } : null, _state.focused ? { backgroundColor: "#212125" } : null],
children: [
/* @__PURE__ */ (0, jsx)(Fan, { covers }),
covers[0] && /* @__PURE__ */ (0, jsx)(Cover, { game: covers[0], style: [cover, front], label: false }),
active2 && /* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", right: 18, top: 18, zIndex: 20, width: 36, height: 36, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#f2f2f3" }, children: /* @__PURE__ */ (0, jsx)(Icon, { name: "check", size: 14, strokeWidth: 3, color: colors.canvas }) }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 24, color: "#f2f2f3", lineHeight: 36 }, children: genreLabel(genre) }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", lineHeight: 30 }, children: t2("catalog.gameCount", { count }) }),
/* @__PURE__ */ (0, jsx)(Shine, { width: 200, round: "xl" }),
/* @__PURE__ */ (0, jsx)(FocusFrame, { round: "xl" })
]
}
);
});
export { GenreCard };
-46
View File
@@ -1,46 +0,0 @@
// ../pub-game-store/native/browse/GenreRail.jsx
// reconstructed from the esbuild bundle in eboot.bin
import { jsx, jsxs } from 'react/jsx-runtime';
import { useState } from 'react';
import { GenreCard } from './GenreCard.jsx';
import { games } from '../data/catalog.js';
import { useT } from '../i18n/index.js';
import { genres } from '../state/catalog.js';
import { useStoreActions, useStoreState } from '../state/store.jsx';
import { SectionHeader } from '../ui/SectionHeader.jsx';
import { ScrollView, View } from '@ps5-react/core';
var used = /* @__PURE__ */ new Set();
var RAIL = genres.map((genre) => ({ genre, matches: games.filter((game) => game.genres.includes(genre)).sort((a, b) => b.recommendations - a.recommendations) })).filter(({ matches }) => matches.length >= 3).sort((a, b) => b.matches.length - a.matches.length).map(({ genre, matches }) => {
const covers = [...matches.filter((game) => !used.has(game.id)), ...matches.filter((game) => used.has(game.id))].slice(0, 3);
covers.forEach((game) => used.add(game.id));
return { genre, count: matches.length, covers };
});
function GenreRail() {
const t2 = useT();
const { filters } = useStoreState();
const { toggleFilter } = useStoreActions();
const [toggleGenre] = (0, useState)(() => (genre) => toggleFilter("genre", genre));
return /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, children: [
/* @__PURE__ */ (0, jsx)(SectionHeader, { title: t2("browse.popularGenres") }),
/* @__PURE__ */ (0, jsxs)(View, { style: { position: "relative", marginHorizontal: -9, marginVertical: -30 }, children: [
/* @__PURE__ */ (0, jsx)(ScrollView, { style: [{ flexDirection: "row", gap: 18, paddingHorizontal: 9, paddingVertical: 30 }, { direction: "ltr" }], children: RAIL.map(
({ genre, count, covers }) => /* @__PURE__ */ (0, jsx)(
GenreCard,
{
genre,
count,
covers,
active: filters.genre.includes(genre),
onToggle: toggleGenre
},
genre
)
) }),
/* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", top: 0, bottom: 0, right: 0, width: 96, backgroundGradient: { type: "linear", to: "right", stops: [{ color: "transparent", offset: 0 }, { color: "#000000", offset: 1 }] } } })
] })
] });
}
export { GenreRail };
-22
View File
@@ -1,22 +0,0 @@
// ../pub-game-store/native/browse/PageHints.jsx
// reconstructed from the esbuild bundle in eboot.bin
import { useNavState } from '../state/nav.jsx';
import { HINT, useHints } from '../ui/Legend.jsx';
import { useFocus } from '@ps5-react/core';
var CATALOG = [HINT.select, { button: "triangle", label: "hints.filters" }, HINT.favorite, HINT.top, HINT.sections];
var CARDS = [HINT.select, HINT.favorite, HINT.top, HINT.sections];
function hintsFor(key) {
if (/^(card|catalog|chip):/.test(key)) return CATALOG;
if (/^(popular|recent|continue):/.test(key) && !key.endsWith(":all")) return CARDS;
return null;
}
function PageHints() {
const { focusedKey: focusedKey2 } = useFocus();
const shown = useNavState().top.name === "browse";
useHints(shown ? hintsFor(focusedKey2 ?? "") : null);
return null;
}
export { PageHints };
-44
View File
@@ -1,44 +0,0 @@
// ../pub-game-store/native/browse/PopularRail.jsx
// reconstructed from the esbuild bundle in eboot.bin
import { jsx } from 'react/jsx-runtime';
import { memo } from 'react';
import { GameRail } from './GameRail.jsx';
import { games } from '../data/catalog.js';
import { useT } from '../i18n/index.js';
import { NO_FILTERS, showcase, sortGames } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useStoreActions } from '../state/store.jsx';
import { GameCard } from '../ui/GameCard.jsx';
var WIDTH4 = 152;
var POPULAR = showcase(sortGames(games, "relevance"), 15);
var FIRST_POPULAR = `popular:${POPULAR[0].id}`;
var PopularRail = (0, memo)(function PopularRail2() {
const t2 = useT();
const { openGame, focusLater } = useNavActions();
const { setFilters, setQuery, setSort } = useStoreActions();
const seeAll = () => {
setFilters(NO_FILTERS);
setQuery("");
setSort("relevance");
focusLater("catalog:sort");
};
return /* @__PURE__ */ (0, jsx)(GameRail, { title: t2("browse.popularNow"), onSeeAll: seeAll, seeAllKey: "popular:all", children: POPULAR.map((game, index) => {
const key = `popular:${game.id}`;
return /* @__PURE__ */ (0, jsx)(
GameCard,
{
game,
width: WIDTH4,
detailed: true,
focusKey: key,
rowEnd: index === POPULAR.length - 1,
onPress: () => openGame(game.id, key)
},
game.id
);
}) });
});
export { FIRST_POPULAR, PopularRail };
-41
View File
@@ -1,41 +0,0 @@
// ../pub-game-store/native/browse/RecentRow.jsx
// reconstructed from the esbuild bundle in eboot.bin
import { jsx } from 'react/jsx-runtime';
import { memo, useRef } from 'react';
import { GameRail } from './GameRail.jsx';
import { useT } from '../i18n/index.js';
import { getGame, listedId } from '../state/catalog.js';
import { useNavActions, useNavState } from '../state/nav.jsx';
import { useRecent } from '../state/recent.js';
import { GameCard } from '../ui/GameCard.jsx';
function RecentRow() {
return /* @__PURE__ */ (0, jsx)(Recent, { shown: useNavState().top.name === "browse" });
}
var Recent = (0, memo)(function Recent2({ shown }) {
const t2 = useT();
const recent2 = useRecent();
const kept = (0, useRef)(recent2);
if (shown) kept.current = recent2;
const { openGame } = useNavActions();
const games2 = [...new Set(kept.current.map(listedId))].map(getGame).filter(Boolean);
if (!games2.length) return null;
return /* @__PURE__ */ (0, jsx)(GameRail, { title: t2("browse.recentlyViewed"), children: games2.map((game, index) => {
const key = `recent:${game.id}`;
return /* @__PURE__ */ (0, jsx)(
GameCard,
{
game,
width: 152,
detailed: true,
focusKey: key,
rowEnd: index === games2.length - 1,
onPress: () => openGame(game.id, key)
},
game.id
);
}) });
});
export { RecentRow };
-63
View File
@@ -1,63 +0,0 @@
// ../pub-game-store/native/browse/SortSelect.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { memo, useState } from 'react';
import { SPAN_MAX, fitBytes } from '../i18n/fit.js';
import { useLocale, useT } from '../i18n/index.js';
import { SORTS, sortLabel } from '../state/catalog.js';
import { useStoreActions, useStoreState } from '../state/store.jsx';
import { FocusRing } from '../ui/FocusRing.jsx';
import { Icon } from '../ui/Icon.jsx';
import { Menu, MenuItem } from '../ui/Menu.jsx';
import { colors } from '../ui/colors.js';
import { Text, View, motion, useIsFocused } from '@ps5-react/core';
function Trigger({ sort, open }) {
const t2 = useT();
const focused = useIsFocused();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusRing, { round: "full" }),
/* @__PURE__ */ (0, jsxs)(Text, { focused, style: [{ fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, focused ? { color: "#f2f2f3d9" } : null], children: [
fitBytes(t2("sort.label"), SPAN_MAX),
/* @__PURE__ */ (0, jsx)(Text, { style: { color: "#f2f2f3" }, children: fitBytes(` ${sortLabel(sort)}`, SPAN_MAX) })
] }),
/* @__PURE__ */ (0, jsx)(
motion.View,
{
initial: false,
animate: { rotate: open ? 180 : 0 },
transition: { type: "tween", duration: 0.2, ease: "easeOut" },
children: /* @__PURE__ */ (0, jsx)(Icon, { name: "chevronDown", color: focused ? colors.fg : colors.muted })
}
)
] });
}
var SortSelect = (0, memo)(function SortSelect2() {
const { rtl } = useLocale();
const { sort } = useStoreState();
const { setSort } = useStoreActions();
const [open, setOpen] = (0, useState)(false);
return /* @__PURE__ */ (0, jsxs)(View, { style: { position: "relative", zIndex: 10 }, children: [
/* @__PURE__ */ (0, jsx)(View, { focusKey: "catalog:sort", selected: open, onPress: () => setOpen((value) => !value), style: (_state) => [
{ height: 60, flexDirection: "row", alignItems: "center", gap: 12, borderRadius: 14999, backgroundColor: "#17171a" },
rtl ? { paddingRight: 24, paddingLeft: 18 } : { paddingLeft: 24, paddingRight: 18 },
open ? { backgroundColor: "#2b2b30" } : null,
_state.focused ? { backgroundColor: "#2b2b30" } : null
], children: /* @__PURE__ */ (0, jsx)(Trigger, { sort, open }) }),
/* @__PURE__ */ (0, jsx)(Menu, { open, onClose: () => setOpen(false), align: "left", rows: SORTS.length, children: SORTS.map(
(option) => /* @__PURE__ */ (0, jsx)(
MenuItem,
{
label: sortLabel(option.id),
checked: sort === option.id,
onSelect: () => setSort(option.id)
},
option.id
)
) })
] });
});
export { SortSelect };
-165
View File
@@ -1,165 +0,0 @@
// ../pub-game-store/native/browse/Spotlight.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { jsx, jsxs } from 'react/jsx-runtime';
import { memo, useEffect, useRef, useState } from 'react';
import { FIRST_POPULAR } from './PopularRail.jsx';
import { SpotlightList } from './SpotlightList.jsx';
import { useSlides } from './useSlides.js';
import { games } from '../data/catalog.js';
import { LATIN_IN_RTL, focusEnd, useLocale, useT } from '../i18n/index.js';
import { fromArchive, genreLabel, sortGames, summaryOf } from '../state/catalog.js';
import { useNavActions, useNavState } from '../state/nav.jsx';
import { useStoreActions, useWishlist } from '../state/store.jsx';
import { Button2 } from '../ui/Button.jsx';
import { GameLogo, logoStyle } from '../ui/GameLogo.jsx';
import { WishHeart } from '../ui/WishHeart.jsx';
import { EASE_OUT } from '../ui/ease.js';
import { AnimatePresence, Image, Text, View, motion } from '@ps5-react/core';
var NEWEST = 150;
var shuffle = (list) => {
for (let i = list.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[list[i], list[j]] = [list[j], list[i]];
}
return list;
};
function selectFeatured() {
const eligible = games.filter((game) => game.art.logo && fromArchive(game));
const pool = eligible.length >= 5 ? eligible : games.filter((game) => game.art.logo);
const byFame = [...pool].sort((a, b) => b.recommendations - a.recommendations);
const latest2 = new Set(sortGames(games, "newest").slice(0, NEWEST));
const recent2 = shuffle(byFame.filter((game) => latest2.has(game)).slice(0, 10)).slice(0, 2);
const famous = shuffle(byFame.filter((game) => !recent2.includes(game)).slice(0, 20)).slice(0, 5 - recent2.length);
return shuffle([...famous, ...recent2]);
}
var featured = selectFeatured();
var ART = { width: 1410, height: 660 };
var LOGO2 = [320, 112, 48 * 256];
function prefetchSlides() {
for (const game of featured) {
if (game.art.hero) Image.prefetch(game.art.hero, ART).catch(() => {
});
if (game.art.logo) Image.prefetch(game.art.logo, { ...logoStyle(game, ...LOGO2), resizeMode: "contain" }).catch(() => {
});
}
}
function Art({ game }) {
const [shown, setShown] = (0, useState)(game);
(0, useEffect)(() => {
if (shown === game) return void 0;
const id = setTimeout(() => setShown(game), 20);
return () => clearTimeout(id);
}, [game, shown]);
if (!shown.art.hero) return null;
return /* @__PURE__ */ (0, jsx)(
Image,
{
source: { uri: shown.art.hero },
resizeMode: "cover",
style: [{ position: "absolute", top: 0, right: 0, bottom: 0, left: 0, borderRadius: 18 }, shown.art.tint ? { ...ART, backgroundColor: shown.art.tint } : ART]
}
);
}
function Blurb({ game }) {
useT();
const { rtl } = useLocale();
const [ready, setReady] = (0, useState)(null);
const current = (0, useRef)(game.id);
current.current = game.id;
(0, useEffect)(() => {
const id2 = setTimeout(() => setReady(game.id), 800);
return () => clearTimeout(id2);
}, [game.id]);
const id = game.id;
return /* @__PURE__ */ (0, jsx)(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, jsxs)(
motion.View,
{
style: { gap: 30 },
initial: { opacity: 0, y: 12 },
animate: ready === game.id ? { opacity: 1, y: 0 } : { opacity: 0, y: 12 },
exit: { opacity: 0, y: -6, transition: { type: "tween", duration: 0.15, ease: "easeIn" } },
transition: { type: "tween", duration: 0.45, ease: EASE_OUT },
children: [
/* @__PURE__ */ (0, jsx)(
GameLogo,
{
game,
width: LOGO2[0],
height: LOGO2[1],
area: LOGO2[2],
onReady: () => current.current === id && setReady(id)
}
),
/* @__PURE__ */ (0, jsx)(Text, { style: { marginBottom: -12, fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: game.genres.map(genreLabel).join(" \xB7 ") }),
/* @__PURE__ */ (0, jsx)(Text, { style: [{ width: 552, fontFamily: "Inter-Regular", fontSize: 23, color: "#f2f2f3d9", numberOfLines: 3, ellipsizeMode: "tail", lineHeight: 37 }, rtl ? LATIN_IN_RTL : void 0], children: summaryOf(game) })
]
},
game.id
) });
}
function WishButton({ id, toList }) {
const t2 = useT();
const { rtl } = useLocale();
const wishlist = useWishlist();
const { toggleWish } = useStoreActions();
const wished = wishlist.includes(id);
return /* @__PURE__ */ (0, jsx)(
Button2,
{
variant: "outline",
size: "lg",
label: wished ? t2("browse.favorited") : t2("browse.addToFavorites"),
focusKey: "spotlight:wish",
nextFocusUp: "nav:current",
nextFocusDown: FIRST_POPULAR,
...focusEnd(rtl, toList),
onPress: () => toggleWish(id),
children: /* @__PURE__ */ (0, jsx)(WishHeart, { active: wished })
}
);
}
function Spotlight() {
return /* @__PURE__ */ (0, jsx)(Carousel, { shown: useNavState().top.name === "browse" });
}
var Carousel = (0, memo)(function Carousel2({ shown }) {
const t2 = useT();
const { rtl } = useLocale();
const slides = useSlides(featured.length, shown);
const { openGame } = useNavActions();
const game = featured[slides.active];
(0, useEffect)(() => {
const id = setTimeout(prefetchSlides, 1500);
return () => clearTimeout(id);
}, []);
return /* @__PURE__ */ (0, jsxs)(View, { style: { flexDirection: "row", gap: 24 }, children: [
/* @__PURE__ */ (0, jsxs)(View, { style: { position: "relative", width: 1410, height: 660, overflow: "hidden", borderRadius: 18, backgroundColor: "#212125" }, children: [
/* @__PURE__ */ (0, jsx)(Art, { game }),
/* @__PURE__ */ (0, jsx)(View, { style: rtl ? { position: "absolute", top: 0, right: 0, bottom: 0, left: 0, backgroundGradient: { type: "linear", to: "left", stops: [{ color: "#000000", offset: 0 }, { color: "#000000bf", offset: 0.35 }, { color: "transparent", offset: 0.75 }] } } : { position: "absolute", top: 0, right: 0, bottom: 0, left: 0, backgroundGradient: { type: "linear", to: "right", stops: [{ color: "#000000", offset: 0 }, { color: "#000000bf", offset: 0.35 }, { color: "transparent", offset: 0.75 }] } } }),
/* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", top: 0, right: 0, bottom: 0, left: 0, backgroundGradient: { type: "linear", to: "top", stops: [{ color: "#000000b3", offset: 0 }, { color: "transparent", offset: 0.5 }] } } }),
/* @__PURE__ */ (0, jsxs)(View, { style: rtl ? { position: "absolute", top: 0, bottom: 0, right: 0, width: 672, justifyContent: "flex-end", padding: 60 } : { position: "absolute", top: 0, bottom: 0, left: 0, width: 672, justifyContent: "flex-end", padding: 60 }, children: [
/* @__PURE__ */ (0, jsx)(Blurb, { game }),
/* @__PURE__ */ (0, jsxs)(View, { style: { marginTop: 30, flexDirection: "row", gap: 12 }, children: [
/* @__PURE__ */ (0, jsx)(
Button2,
{
variant: "primary",
size: "lg",
label: t2("browse.viewGame"),
focusKey: "spotlight:cta",
nextFocusUp: "nav:current",
nextFocusDown: FIRST_POPULAR,
onPress: () => openGame(game.id, "spotlight:cta")
}
),
/* @__PURE__ */ (0, jsx)(WishButton, { id: game.id, toList: `spotlight:${slides.active}` })
] })
] })
] }),
/* @__PURE__ */ (0, jsx)(SpotlightList, { games: featured, slides })
] });
});
export { Spotlight };
-86
View File
@@ -1,86 +0,0 @@
// ../pub-game-store/native/browse/SpotlightList.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { jsx, jsxs } from 'react/jsx-runtime';
import { memo, useMemo } from 'react';
import { SLIDE_MS } from './useSlides.js';
import { focusEnd, focusStart, latin, useLocale } from '../i18n/index.js';
import { Cover } from '../ui/Cover.jsx';
import { FocusFrame } from '../ui/FocusRing.jsx';
import { Shine } from '../ui/Shine.jsx';
import { lightGame, unlight } from '../ui/lightBar.js';
import { Text, View, motion, useIsFocused } from '@ps5-react/core';
var TRACK = 240;
var cover2 = { height: "100%", aspectRatio: 0.75, borderRadius: 9 };
function Progress({ left, paused }) {
const { rtl } = useLocale();
const sign = rtl ? -1 : 1;
const x = -TRACK * left / SLIDE_MS * sign;
return /* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", left: 15, right: 15, bottom: 9, height: 3, overflow: "hidden", borderRadius: 14999, backgroundColor: "#ffffff1a" }, children: /* @__PURE__ */ (0, jsx)(
motion.View,
{
style: { position: "absolute", top: 0, bottom: 0, left: 0, width: 360, backgroundColor: "#f2f2f3" },
initial: { x: -TRACK * sign },
animate: { x: paused ? x : 0 },
transition: paused ? { type: "tween", duration: 0 } : { type: "tween", duration: left / 1e3, ease: "linear" }
}
) });
}
function Title2({ title, active: active2 }) {
const focused = useIsFocused();
const { rtl } = useLocale();
return /* @__PURE__ */ (0, jsx)(Text, { selected: active2 || focused, style: [{ width: 264, fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", numberOfLines: 2, ellipsizeMode: "tail", lineHeight: 30 }, active2 || focused ? { color: "#f2f2f3" } : null], children: latin(rtl, title) });
}
var Item = (0, memo)(function Item2({ game, index, active: active2, progress, select, hold }) {
const { rtl } = useLocale();
return /* @__PURE__ */ (0, jsxs)(
View,
{
focusKey: `spotlight:${index}`,
selected: active2,
nextFocusUp: index === 0 ? "nav:current" : void 0,
...focusStart(rtl, "spotlight:wish"),
...focusEnd(rtl, `spotlight:${index}`),
onFocus: () => {
select(index);
hold(true);
lightGame(`spotlight:${index}`, game);
},
onBlur: () => {
hold(false);
unlight(`spotlight:${index}`);
},
onPress: () => select(index),
style: [{ position: "relative", flex: 1, flexDirection: "row", alignItems: "center", gap: 21, borderRadius: 18, padding: 15 }, active2 ? { backgroundColor: "#17171a" } : null],
children: [
/* @__PURE__ */ (0, jsx)(Shine, { width: 260, round: "xl" }),
/* @__PURE__ */ (0, jsx)(FocusFrame, { round: "xl" }),
/* @__PURE__ */ (0, jsx)(Cover, { game, style: cover2, label: false }),
/* @__PURE__ */ (0, jsx)(Title2, { title: game.title, active: active2 }),
progress && /* @__PURE__ */ (0, jsx)(Progress, { left: progress.left, paused: progress.paused })
]
}
);
});
function SpotlightList({ games: games2, slides }) {
const { active: active2, left, paused, select, hold } = slides;
const progress = (0, useMemo)(() => ({ left, paused }), [left, paused]);
return /* @__PURE__ */ (0, jsx)(View, { style: { width: 390, gap: 6 }, children: games2.map(
(game, index) => /* @__PURE__ */ (0, jsx)(
Item,
{
game,
index,
active: index === active2,
progress: index === active2 ? progress : null,
select,
hold
},
game.id
)
) });
}
export { SpotlightList };
-79
View File
@@ -1,79 +0,0 @@
// ../pub-game-store/native/browse/TopCharts.jsx
// reconstructed from the esbuild bundle in eboot.bin
import '../assets/Inter-Regular.ttf';
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
import { games } from '../data/catalog.js';
import { prefetchWhenSettled } from '../game/art.js';
import { latin, useLocale, useT } from '../i18n/index.js';
import { NO_FILTERS, formatCount, formatDate3, showcase, sortGames, sortLabel } from '../state/catalog.js';
import { useNavActions } from '../state/nav.jsx';
import { useStoreActions } from '../state/store.jsx';
import { Cover } from '../ui/Cover.jsx';
import { FocusFrame } from '../ui/FocusRing.jsx';
import { SectionHeader } from '../ui/SectionHeader.jsx';
import { lightGame, unlight } from '../ui/lightBar.js';
import { Text, View } from '@ps5-react/core';
var CHARTS = ["relevance", "newest", "rating"].map((id) => ({ id, games: showcase(sortGames(games, id), 5) }));
var DETAIL = {
relevance: (t2, game) => t2("browse.reviews", { count: formatCount(game.recommendations) }),
newest: (t2, game) => formatDate3(game.releaseDate)
};
var thumb = { width: 66, height: 87, borderRadius: 9 };
function Detail({ chart, game }) {
const t2 = useT();
if (chart !== "rating") return /* @__PURE__ */ (0, jsx)(Text, { style: { marginTop: 6, fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab" }, children: DETAIL[chart](t2, game) });
return /* @__PURE__ */ (0, jsxs)(View, { style: { marginTop: 6, flexDirection: "row", alignItems: "center", gap: 9 }, children: [
/* @__PURE__ */ (0, jsx)(View, { style: { borderRadius: 3, backgroundColor: "#f2f2f3", paddingHorizontal: 9 }, children: /* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, fontWeight: 700, color: "#000000", lineHeight: 30 }, children: String(game.metacritic ?? "\u2014") }) }),
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab" }, children: "Metacritic" })
] });
}
function Row3({ rank, game, chart }) {
const { rtl } = useLocale();
return /* @__PURE__ */ (0, jsxs)(Fragment, { children: [
/* @__PURE__ */ (0, jsx)(FocusFrame, {}),
/* @__PURE__ */ (0, jsx)(Text, { style: { width: 18, fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", lineHeight: 30 }, children: String(rank) }),
/* @__PURE__ */ (0, jsx)(Cover, { game, style: thumb, label: false }),
/* @__PURE__ */ (0, jsxs)(View, { style: { flex: 1 }, children: [
/* @__PURE__ */ (0, jsx)(Text, { style: { width: 444, fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", numberOfLines: 1, ellipsizeMode: "tail", lineHeight: 30 }, children: latin(rtl, game.title) }),
/* @__PURE__ */ (0, jsx)(Detail, { chart, game })
] })
] });
}
function TopCharts() {
useT();
const { openGame, focusLater } = useNavActions();
const { setFilters, setQuery, setSort } = useStoreActions();
const seeAll = (id) => {
setFilters(NO_FILTERS);
setQuery("");
setSort(id);
focusLater("catalog:sort");
};
return /* @__PURE__ */ (0, jsx)(View, { scrollAnchor: true, style: { marginBottom: -18, marginTop: -12, flexDirection: "row", gap: 48 }, children: CHARTS.map(
(chart) => /* @__PURE__ */ (0, jsxs)(View, { style: { flex: 1 }, children: [
/* @__PURE__ */ (0, jsx)(SectionHeader, { title: sortLabel(chart.id), onSeeAll: () => seeAll(chart.id) }),
chart.games.map((game, index) => {
const key = `chart:${chart.id}:${game.id}`;
return /* @__PURE__ */ (0, jsx)(
View,
{
focusKey: key,
onPress: () => openGame(game.id, key),
onFocus: () => {
prefetchWhenSettled(game);
lightGame(key, game);
},
onBlur: () => unlight(key),
style: (_state) => [{ position: "relative", marginHorizontal: -12, flexDirection: "row", alignItems: "center", gap: 21, borderRadius: 12, padding: 12 }, _state.focused ? { backgroundColor: "#17171a" } : null],
children: /* @__PURE__ */ (0, jsx)(Row3, { rank: index + 1, game, chart: chart.id })
},
game.id
);
})
] }, chart.id)
) });
}
export { TopCharts };
-52
View File
@@ -1,52 +0,0 @@
// ../pub-game-store/native/browse/useSlides.js
// reconstructed from the esbuild bundle in eboot.bin
import { useEffect, useRef, useState } from 'react';
var SLIDE_MS = 7e3;
function useSlides(count, enabled) {
const [active2, setActive] = (0, useState)(0);
const [left, setLeft] = (0, useState)(SLIDE_MS);
const [paused, setPaused] = (0, useState)(false);
const startedAt = (0, useRef)(0);
const running = (0, useRef)(false);
const held = (0, useRef)(false);
const ranFor = (0, useRef)(0);
const current = (0, useRef)(active2);
current.current = active2;
(0, useEffect)(() => {
if (paused || !enabled) return void 0;
startedAt.current = Date.now();
running.current = true;
const id = setTimeout(() => {
setActive((index) => (index + 1) % count);
setLeft(SLIDE_MS);
}, left);
return () => {
running.current = false;
ranFor.current = Date.now() - startedAt.current;
clearTimeout(id);
};
}, [active2, left, paused, enabled]);
(0, useEffect)(() => {
if (!enabled && !held.current) setLeft((ms) => Math.max(0, ms - ranFor.current));
}, [enabled]);
const [select] = (0, useState)(() => (index) => {
if (index === current.current) return;
startedAt.current = Date.now();
setActive(index);
setLeft(SLIDE_MS);
});
const [hold] = (0, useState)(() => (on) => {
if (held.current === on) return;
held.current = on;
if (on && running.current) {
const elapsed = Date.now() - startedAt.current;
setLeft((ms) => Math.max(0, ms - elapsed));
}
setPaused(on);
});
return { active: active2, left, paused: paused || !enabled, select, hold };
}
export { SLIDE_MS, useSlides };
-2073
View File
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["It is 1715. Pirates rule the Caribbean, terrorizing navies & humiliating empires. From sinking warships to conquering fortresses, Captain Edward Kenway stopped at nothing to earn his fortune & legend."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENT805ij9Ry6cfqHpcyQh0X/PREVIEW_SCREENSHOT1_49519.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENT805ij9Ry6cfqHpcyQh0X/PREVIEW_SCREENSHOT1_49519.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENTl0nYWhylRX2cMiBdV06t/PREVIEW_SCREENSHOT2_49519.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENTl0nYWhylRX2cMiBdV06t/PREVIEW_SCREENSHOT2_49519.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENTWUrex34ldYZYgeOod1KE/PREVIEW_SCREENSHOT3_49519.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00010_00/FREE_CONTENTWUrex34ldYZYgeOod1KE/PREVIEW_SCREENSHOT3_49519.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Outnumbered and outgunned, but not outmatched.","Call of Duty®: Ghosts is an extraordinary step forward for one of the largest entertainment franchises of all-time.","This new chapter in the Call of Duty® franchise features a new dynamic where players are on the side of a crippled nation fighting not for freedom, or liberty, but simply to survive.","Fueling this all new Call of Duty experience, the franchise's new next-gen engine delivers stunning levels of immersion and performance, all while maintaining the speed and fluidity of 60 frames-per-second across all platforms.","Single Player Campaign Ten years after a devastating mass event, America’s borders and the balance of global power have changed forever.","As what's left of the nation's Special Operations forces, a mysterious group known only as \"Ghosts\" leads the fight back against a newly emerged, technologically-superior global power."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_40eccd8d9da36152496ed7cb625f1b3cde3848ac.1920x1080.jpg?t=1780963043","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_40eccd8d9da36152496ed7cb625f1b3cde3848ac.600x338.jpg?t=1780963043"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_4034e8573255a5cca333b42bb78aea9ec05118dc.1920x1080.jpg?t=1780963043","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_4034e8573255a5cca333b42bb78aea9ec05118dc.600x338.jpg?t=1780963043"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_007e6bb9311b3ebfc9441a6965699abc1f66971c.1920x1080.jpg?t=1780963043","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/209160/ss_007e6bb9311b3ebfc9441a6965699abc1f66971c.600x338.jpg?t=1780963043"}],"summary":"Outnumbered and outgunned, but not outmatched.Call of Duty®: Ghosts is an extraordinary step forward for one of the largest entertainment franchises of all-time. This new chapter in the Call of Duty® franchise features a new dynamic where…"}
-1
View File
@@ -1 +0,0 @@
{"about":["Become Aiden Pearce, a brilliant hacker whose criminal past lead to a violent family tragedy.","While on the hunt for those responsible, you will be able to tap into the city’s omnipresent security cameras, download personal information, control systems such as traffic lights and the electrical grid to stop a chase, and more."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENTGvngmduMg7LudnJNGMr3/PREVIEW_SCREENSHOT1_49381.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENTGvngmduMg7LudnJNGMr3/PREVIEW_SCREENSHOT1_49381.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENThFCaZCv5Xt62o0WVpocm/PREVIEW_SCREENSHOT2_49381.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENThFCaZCv5Xt62o0WVpocm/PREVIEW_SCREENSHOT2_49381.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENTq9wnjHrvtSTFngJUJmZJ/PREVIEW_SCREENSHOT3_49381.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00021_00/FREE_CONTENTq9wnjHrvtSTFngJUJmZJ/PREVIEW_SCREENSHOT3_49381.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["The Glade of Dreams is in trouble once again! During a 100-year nap, the nightmares multiplied and spread, creating new monsters even more terrifying than before! These creatures are the stuff of legend…","Dragons, giant toads, sea monsters, and even evil luchadores. With the help of Murfy, Rayman and Globox awake and must now help fight these nightmares and save the Teensies!"],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENTeYePsbRZLMtlzWsJCBxR/PREVIEW_SCREENSHOT1_51830.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENTeYePsbRZLMtlzWsJCBxR/PREVIEW_SCREENSHOT1_51830.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENTju0yVGMQotNOLaoDaWFk/PREVIEW_SCREENSHOT2_51830.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENTju0yVGMQotNOLaoDaWFk/PREVIEW_SCREENSHOT2_51830.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENT6EnlOwywxB5fpAyFDoHV/PREVIEW_SCREENSHOT3_51830.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00069_00/FREE_CONTENT6EnlOwywxB5fpAyFDoHV/PREVIEW_SCREENSHOT3_51830.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["From Housemarque OY, the creators of the Super Stardust™ series & Dead Nation™ comes RESOGUN™, the next generation of shoot ‘em up, developed exclusively for the PlayStation®4 system.Unleash a diverse array of devastating weapons…","Destroy hordes of enemies in worlds created from millions of individual building blocks (voxels) that break up in real time as you battle to survive as the world is destroyed around you.","• Push yourself to the limits in Arcade and level based Score Attack modes and prove your skills in global leaderboards for each game mode and difficulty setting.• Join forces with your friends online and show off your skills and take down…","an intensive, ultra-responsive, fully HD, 60FPS shoot ‘em up, only on PlayStation®4 system!","This item is being licensed or sublicensed to you by Sony Computer Entertainment America and is subject to the Network Terms of Service and User Agreement, this item’s use restrictions and other applicable terms located at…","If you do not wish to accept all these terms, do not download this item."],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["LEGO® Marvel™ Super Heroes features an original story crossing the entire Marvel Universe.","Players take control of Iron Man, Spider-Man, the Hulk, Captain America, Wolverine and many more Marvel characters as they unite to stop Loki and a host of other Marvel villains from assembling a super-weapon capable of destroying the world."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENT4x8vbqpub2yvKXVCZlJU/PREVIEW_SCREENSHOT1_50146.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENT4x8vbqpub2yvKXVCZlJU/PREVIEW_SCREENSHOT1_50146.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENTXCTuCba8P3U4Iiydrebx/PREVIEW_SCREENSHOT2_50146.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENTXCTuCba8P3U4Iiydrebx/PREVIEW_SCREENSHOT2_50146.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENTRdiNMpLzTYzjQP6hTqR2/PREVIEW_SCREENSHOT3_50146.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1018/CUSA00083_00/FREE_CONTENTRdiNMpLzTYzjQP6hTqR2/PREVIEW_SCREENSHOT3_50146.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Battlefield 4™ Premium Edition gives you new maps, modes, and more in one simple package. Complete challenging assignments to unlock new weapons.","Dominate tactical challenges in a huge interactive environment — demolish buildings shielding your enemies, lead an assault from the back of a gun boat, or make a little C4 go a long way.","In massive 64-player battles, use all your resources and play to your strengths to carve your own path to victory.Key features Dynamic battlefields — Interactive environments react to your actions in real-time, so you can trigger a shipwreck or…","Your opponents won't know what hit 'em.","More vehicles, more freedom — Control the battlefield with dozens of vehicles, from helicopters and stealth jets to gunboats and anti-airs, all designed to give you an edge on massive, chaotic maps.","An intense single-player campaign — With international tensions running high, you’ll need to evacuate critical American VIPs from Shanghai and battle against the odds to get your squad home."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_8cd5ec2e4bf1986bc01265db93f184e38e3b1236.1920x1080.jpg?t=1777391884","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_8cd5ec2e4bf1986bc01265db93f184e38e3b1236.600x338.jpg?t=1777391884"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_03f32767fd67f15723ffcd68c92e425265a0ca3d.1920x1080.jpg?t=1777391884","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_03f32767fd67f15723ffcd68c92e425265a0ca3d.600x338.jpg?t=1777391884"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_006c4f68fb8389d8753bb87ba6a37903591d1ec1.1920x1080.jpg?t=1777391884","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1238860/ss_006c4f68fb8389d8753bb87ba6a37903591d1ec1.600x338.jpg?t=1777391884"}],"summary":"Embrace unrivaled destruction in Battlefield 4™. Revel in the glorious chaos of all-out war packed with rewarding, tactical challenges in an interactive environment."}
-1
View File
@@ -1 +0,0 @@
{"about":["The Order: 1886™ introduces players to a unique vision of Victorian-Era London where Man uses advanced technology to battle a powerful and ancient foe.","As Galahad, a member of an elite order of Knights, join a centuries-old war against a powerful threat that will determine the course of history forever in this intense third-person action-adventure shooter, available exclusively on the…","• Where history and myth collide – Assume the role of Galahad, one of the most experienced Knights of The Order, and enter a unique vision of Victorian-Era London that fuses real historical figures and events with new twists on familiar myths…","Rebels declare all-out war on The Order and the police state they represent, while mankind’s true enemy, a powerful and ancient foe known as Half-breeds grows in strength and numbers in and around the city."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTlfhhSt2Jez0x3rhRlVVO/PREVIEW_SCREENSHOT2_72203.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTlfhhSt2Jez0x3rhRlVVO/PREVIEW_SCREENSHOT2_72203.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTmodukFEa8eRVDhATrhhV/PREVIEW_SCREENSHOT3_72203.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTmodukFEa8eRVDhATrhhV/PREVIEW_SCREENSHOT3_72203.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTlKzQR85ydufdqMCxc1nH/PREVIEW_SCREENSHOT4_72203.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00785_00/FREE_CONTENTlKzQR85ydufdqMCxc1nH/PREVIEW_SCREENSHOT4_72203.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Online features for Sound Shapes will no longer be playable from January 31, 2019 at 12:00 PM PT. Functionality will be affected in the following ways: o You will be able to play the campaign and all DLC purchases as well as create your own levels.","o You will not be able to share your levels with the community or download community created levels.","Now available on PS4™, PS3™, and PS Vita systems.","Part platformer, part music creator, Sound Shapes™ is the award winning & critically acclaimed game from Queasy Games (Everyday Shooter) that combines sight and sound into a truly unique gaming experience.","Play through albums by Beck, deadmau5, and Jim Guthrie all beautifully illustrated by artists from Capy (SUPER TIME FORCE, Might & Magic: COH), Pyramid Attack (Jabbawaki, Guitar Hero), and Superbrothers (Sword & Sworcery).","And when you've completed the Campaign, flip through the Community Milkcrate for a selection of developer and guest curated albums that feature the best of the best from the Sound Shapes community OR check out the Level Editor (a full-on music…"],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Experience award-winning Flower™, now available on PS4™, PS3™, and PS Vita systems. Flower™ lets you take control of the wind as you explore and navigate beautiful, lush environments using the SIXAXIS™ motion controls.","Journey through varied landscapes at your own pace, interacting with and changing the environment as you go, and find balance and harmony in your surroundings.","This is an interactive escape that takes you on an emotional journey like no other game you've ever experienced.","Key Features:• Simple Gameplay Controls – Controlling the game is as simple as tilting the SIXAXIS™ wireless controller in the direction you want to go.• Lush and Interactive Environments – Vast grassy fields, blowing in the breeze…","For one price, get Flower™ on PS4™, PS3™ and PlayStation®Vita systems. Purchase it on your PS4™ system and it will automatically appear for download on your PS3™ and PS Vita systems at no additional cost."],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Pinball Arcade is the most realistic and comprehensive pinball simulation ever created!","Play digital version of real pinball tables like Ghostbusers®, Star Trek®, AC/DC®, and many others! Along with online tournaments and additional modes to challenge yourself and compete against your friends.","Note: The following tables are cross-buy with Stern Pinball Arcade."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTgg4UvCjTajKOxu2NMgN3/PREVIEW_SCREENSHOT1_49280.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTgg4UvCjTajKOxu2NMgN3/PREVIEW_SCREENSHOT1_49280.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTPa4JmykN1Ig9ylPKTgoN/PREVIEW_SCREENSHOT2_49280.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTPa4JmykN1Ig9ylPKTgoN/PREVIEW_SCREENSHOT2_49280.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTZxnXINuBUyWFP378nTj0/PREVIEW_SCREENSHOT3_49280.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2058/CUSA00081_00/FREE_CONTENTZxnXINuBUyWFP378nTj0/PREVIEW_SCREENSHOT3_49280.png?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["The Definitive Edition of the critically acclaimed action-adventure has been rebuilt for next-gen consoles, featuring an obsessively detailed Lara and a stunningly lifelike world.","Endure high-octane combat, customize weapons and gear, and overcome grueling environments to survive Lara’s first adventure.","Additional hardware required for Remote Play."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENT3c61Jniwk7iMtJ88Bqe1/PREVIEW_SCREENSHOT1_51421.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENT3c61Jniwk7iMtJ88Bqe1/PREVIEW_SCREENSHOT1_51421.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENTetEcurvoVxjtBJrZFWTf/PREVIEW_SCREENSHOT2_51421.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENTetEcurvoVxjtBJrZFWTf/PREVIEW_SCREENSHOT2_51421.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENTaWF7SAyAUtA2iSGXqfmS/PREVIEW_SCREENSHOT3_51421.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0082/CUSA00107_00/FREE_CONTENTaWF7SAyAUtA2iSGXqfmS/PREVIEW_SCREENSHOT3_51421.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Batman™: Arkham Knight brings the award-winning Arkham trilogy from Rocksteady Studios to its epic conclusion. Developed exclusively for New-Gen platforms, Batman: Arkham Knight introduces Rocksteady's uniquely designed version of the Batmobile.","The highly anticipated addition of this legendary vehicle, combined with the acclaimed gameplay of the Arkham series, offers gamers the ultimate and complete Batman experience as they tear through the streets and soar across the skyline of the…","In this explosive finale, Batman faces the ultimate threat against the city that he is sworn to protect, as Scarecrow returns to unite the super criminals of Gotham and destroy the Batman forever.Product Features: “Be The Batman” – Live the…","Players will become The World’s Greatest Detective like never before with the introduction of the Batmobile and enhancements to signature features such as FreeFlow Combat, stealth, forensics and navigation.","Introducing the Batmobile – The Batmobile is brought to life with a completely new and original design featuring a distinct visual appearance and a full range of on-board high-tech gadgetry.","Designed to be fully drivable throughout the game world and capable of transformation from high speed pursuit mode to military grade battle mode, this legendary vehicle sits at the heart of the game’s design and allows players to tear through…"],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_90026e46a995760d53bfa2dc1612b73960c84c94.1920x1080.jpg?t=1745534372","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_90026e46a995760d53bfa2dc1612b73960c84c94.600x338.jpg?t=1745534372"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_4c9d5fb849b1a7169184a37db000919b276056fe.1920x1080.jpg?t=1745534372","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_4c9d5fb849b1a7169184a37db000919b276056fe.600x338.jpg?t=1745534372"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_5da3185e4f7da999300555747be6b84b8f16164f.1920x1080.jpg?t=1745534372","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/208650/ss_5da3185e4f7da999300555747be6b84b8f16164f.600x338.jpg?t=1745534372"}],"summary":"Batman™: Arkham Knight brings the award-winning Arkham trilogy from Rocksteady Studios to its epic conclusion. Developed exclusively for New-Gen platforms, Batman: Arkham Knight introduces Rocksteady's uniquely designed version of the Batmobile."}
-1
View File
@@ -1 +0,0 @@
{"about":["Online servers are no longer available.","Welcome to Redview County, where a street-racing rivalry between cops and racers never stops as both sides compete in an all-out war featuring the fastest cars, mods and technology in a gritty open road environment.","Play as either a cop or racer, where each side of the law has its own set of high stakes challenges, rewards and consequences. Risk everything in the ultimate high stakes rivalry."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_973335e826e450b176fdc5e54c003ffbdf48a8c2.1920x1080.jpg?t=1777394510","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_973335e826e450b176fdc5e54c003ffbdf48a8c2.600x338.jpg?t=1777394510"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_25ed9eea91e7d3d582eebc4d3df2a03cbc4ac295.1920x1080.jpg?t=1777394510","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_25ed9eea91e7d3d582eebc4d3df2a03cbc4ac295.600x338.jpg?t=1777394510"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_e8801aa10a3a3089d34672a7e28bcb9d711c8d46.1920x1080.jpg?t=1777394510","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1262600/ss_e8801aa10a3a3089d34672a7e28bcb9d711c8d46.600x338.jpg?t=1777394510"}],"summary":"Erase the line between single player and multiplayer in this street-racing rivalry between Cops and Racers. Seamlessly join a world where your friends are already racing and chasing"}
-1
View File
@@ -1 +0,0 @@
{"about":["Experience award-winning flOw, now available on PS4™, PS3™, and PS Vita systems.flOw is a game about piloting an aquatic organism through a surreal biosphere where players consume other organisms, evolve, and dive into the abyss.","With an embedded design of DDA (dynamic difficulty adjustment), players with differing skill levels can intuitively customize their game experience and enjoy the game at their own pace.You can play as one of 5 creatures, each in a unique environment.","Lose yourself in the crisp “deep blue” in an organic experience that will allow you to glide, flit, and flOw through the universe.Full game key features:-Vibrant environments in full 1080p HD-Gameplay dynamically adjusts to the player's…","For one price, get flOw on PS4™, PS3™ and PlayStation®Vita systems. Purchase it on your PS4™ system and it will automatically appear for download on your PS3™ and PS Vita systems at no additional cost."],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Worms™ Battlegrounds brings friends and families together in the noble pursuit of self‐improvement, world domination and exploding sheep.","Form Clans, Take On The World Join together with friends and other Worms™ Battlegrounds players to form a fearsome team name your clan, design your own emblem, promote other players to act as leaders and officers.","Enter your clan into the league and fight together to make your mark on the leaderboards. Nobody wants an empty trophy cabinet!","Story Mode’ adds a ton of variety by introducing physics based contraptions for the first time ever. A plethora of interesting machinery spices up the gameplay, and makes solo Worms™ much more fun!","The single‐player game isn’t only about dealing death and destruction, it’s also about negotiating tricky swinging rope bridges and rescuing friendlies from death defying traps!","The player spends much more time playing, and much less time waiting for their A.I. opponent to take a shot."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENT7RVXkzgqFvoLSDNNecf5/PREVIEW_SCREENSHOT1_53765.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENT7RVXkzgqFvoLSDNNecf5/PREVIEW_SCREENSHOT1_53765.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENTQZC7oxH749AMbuoAKPaO/PREVIEW_SCREENSHOT2_53765.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENTQZC7oxH749AMbuoAKPaO/PREVIEW_SCREENSHOT2_53765.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENTabV3ViSGhVwUr2oKyW0c/PREVIEW_SCREENSHOT3_53765.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4064/CUSA00192_00/FREE_CONTENTabV3ViSGhVwUr2oKyW0c/PREVIEW_SCREENSHOT3_53765.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["When the sky opens up and rains down chaos, the world needs heroes. Become the savior of Thedas in Dragon Age: Inquisition – Game of the Year Edition. You are the Inquisitor, tasked with saving the world from itself.","But the road ahead is paved with difficult decisions. Thedas is a land of strife. Factions constantly war with each other even as a larger demonic invasion has begun. And you? You and your band of champions are the only ones who can hold it together.","It’s your job to lead them...or fall.","Enthralling, choice-driven narrative — You’re not just deciding who to send into which battle in Inquisition; you’re making important decisions that shape the future of Thedas.","Each choice carries weight, and your actions can lead to a variety of outcomes.","Inquisition is a highly personalized journey, where one wrong move could set in motion a series of events that alters the physical aspects of the world itself, making your Thedas — and your heroes — feel truly unique."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_4c90bdbb1c2567edec0778f2e8956d1a8ff1b4c3.1920x1080.jpg?t=1779987585","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_4c90bdbb1c2567edec0778f2e8956d1a8ff1b4c3.600x338.jpg?t=1779987585"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_a106df995b9051e24ebe5abdec168ea3495bfda4.1920x1080.jpg?t=1779987585","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_a106df995b9051e24ebe5abdec168ea3495bfda4.600x338.jpg?t=1779987585"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_e8e2d622313d983fc9eb3fd824a2e0401c247780.1920x1080.jpg?t=1779987585","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1222690/ss_e8e2d622313d983fc9eb3fd824a2e0401c247780.600x338.jpg?t=1779987585"}],"summary":"Winner of over 130 Game of the Year awards, discover the definitive Dragon Age: Inquisition experience. The Game of the Year Edition includes the critically acclaimed game, all three official add-ons - Jaws of Hakkon, The Descent, and Trespasser…"}
-1
View File
@@ -1 +0,0 @@
{"about":["inFAMOUS Second Son, a PlayStation 4 exclusive , brings you an action adventure game where surrounded by a society that fears them, superhumans are ruthlessly hunted down and caged by the Department of Unified Protection.","Step into a locked-down Seattle as Delsin Rowe, who has recently discovered his superhuman power and is now capable of fighting back against the oppressive DUP.","Enjoy your power as you choose how you will push your awesome abilities to the limit and witness the consequences of your actions as they affect the city and people around you."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTof7RbczFsgnCGBXKzfSY/PREVIEW_SCREENSHOT1_56814.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTof7RbczFsgnCGBXKzfSY/PREVIEW_SCREENSHOT1_56814.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTHai72R3muzyROnkZQhcZ/PREVIEW_SCREENSHOT2_56814.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTHai72R3muzyROnkZQhcZ/PREVIEW_SCREENSHOT2_56814.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTWdqw2fZrc59kYPbaxZCl/PREVIEW_SCREENSHOT3_56814.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00223_00/FREE_CONTENTWdqw2fZrc59kYPbaxZCl/PREVIEW_SCREENSHOT3_56814.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Trine 2: Complete Story is a beautiful, award-winning sidescrolling game of action, puzzles and platforming.","Play as the three Heroes - Amadeus the Wizard, Pontius the Knight, and Zoya the Thief - and join their adventure through dangers untold in a fantastical fairytale world, including physics-based puzzles using fire, water, gravity and magic wicked…","Features: - 20 levels chock-full of adventure, hazards, physics-based puzzles, dangerous enemies and curious contraptions - Travel through breathtaking environments, including a castle by the treacherous sea, a burning desert and snowy ice…","Visit www.us.playstation.com/support/3D for details."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENTZEYzwm1jbvDDpMVjLHUr/PREVIEW_SCREENSHOT1_49341.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENTZEYzwm1jbvDDpMVjLHUr/PREVIEW_SCREENSHOT1_49341.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENTeyvm08XxibwsGiWuhsU5/PREVIEW_SCREENSHOT2_49341.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENTeyvm08XxibwsGiWuhsU5/PREVIEW_SCREENSHOT2_49341.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENT1xKZtIzHmzFOh9N5UCor/PREVIEW_SCREENSHOT3_49341.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4029/CUSA00234_00/FREE_CONTENT1xKZtIzHmzFOh9N5UCor/PREVIEW_SCREENSHOT3_49341.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["DARE YOU ENTER THE CITY OF THE DEAD?Run-and-gun through the zombie apocalypse as hit arcade shooter Dead Nation™ shuffles onto PlayStation®4.Fight for your life alone or with a friend as Jack McReady or Scarlett Blake as you step onto the…"],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Take on an unlimited array of platform-racing challenges in the unreal world of Trials Fusion.","Using your skills to traverse across obstacle-laden, ramp-ridden courses, you must strive to set track records against the best Trials players around the globe.","Whether you’re racing alone, with friends, or in a global tournament, competition is always around you. And racing on official courses is just the beginning.","A rich world of custom courses—built by some of the most creative and skilled content creators in gaming—awaits those who are continually searching for a new, insane track to conquer.","And with long-term support of fresh features and content, the Trials experience will continue to expand and challenge players in new and exhilarating ways."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENTcbHVAc2Y0lGTnaGI5GQJ/PREVIEW_SCREENSHOT1_53228.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENTcbHVAc2Y0lGTnaGI5GQJ/PREVIEW_SCREENSHOT1_53228.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENT1Tg8HFwLQgDr6WZq5FHl/PREVIEW_SCREENSHOT2_53228.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENT1Tg8HFwLQgDr6WZq5FHl/PREVIEW_SCREENSHOT2_53228.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENT2YVAlxbzQeO8TZEnIu4m/PREVIEW_SCREENSHOT3_53228.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00304_00/FREE_CONTENT2YVAlxbzQeO8TZEnIu4m/PREVIEW_SCREENSHOT3_53228.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Guacamelee! Gold Edition is a Metroidvania-style action-platformer set in a magical Mexican-inspired world. The game draws its inspiration from traditional Mexican culture and folklore, and features many interesting and unique characters.","Guacamelee! builds on the classic open-world Metroidvania style of games by adding deep melee combat, a new dimension switching mechanic, and cooperative local multiplayer.","The game also blurs the boundaries between combat and platforming by making many moves useful and necessary for both.","Travel through a mystical and mysterious Mexican world as a luchador using the power of your two fists to battle evil. Uncover hidden wrestling techniques like the Rooster Uppercut, and Dimension Swap to open new areas and secrets.","Key Features Use combat moves for both fighting enemies and platforming challenges Swap between multiple overlapping dimensions (World of the Living and the World of the Dead)","This Gold Edition of Guacamelee! includes the \"El Infierno\" level expansion. Brave the fires of El Infierno and prove yourself in a series of challenges to unlock powerful new costumes for Juan and Tostada Player costumes!"],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_0ae81d50f72066713315c972f5a62c4111a75023.1920x1080.jpg?t=1762522710","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_0ae81d50f72066713315c972f5a62c4111a75023.600x338.jpg?t=1762522710"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_4bc28441486c27a23e82940a31a58a329530d25f.1920x1080.jpg?t=1762522710","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_4bc28441486c27a23e82940a31a58a329530d25f.600x338.jpg?t=1762522710"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_5d7b0cd418905f274202c2778dbb0fe8efa7db83.1920x1080.jpg?t=1762522710","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/214770/ss_5d7b0cd418905f274202c2778dbb0fe8efa7db83.600x338.jpg?t=1762522710"}],"summary":"Guacamelee! is a Metroidvania-style action-platformer set in a magical Mexican-inspired world. The game draws its inspiration from traditional Mexican culture and folklore, and features many interesting and unique characters."}
-1
View File
@@ -1 +0,0 @@
{"about":["Europe 1960. The tide of World War II has been turned using a new mysterious, advanced technology. Using unrelenting force and intimidation, a ruthless world power has brought even the most powerful of nations to their knees.","The regime now dominates the globe with an iron fist. You are the only man capable of rewriting history. In Wolfenstein: The New Order, assume the role of super soldier B.J.","Blazkowicz as he uses elite combat tactics and an arsenal of uber advanced weaponry to take down the most powerful empire the world has ever known.","Join forces with a band of dedicated resistance fighters and launch an offensive battle that spans the globe and beyond, as you seek to uncover the truth behind how this regime conquered the world so quickly.","Take on massive mechs, super soldiers, and an army of seemingly unstoppable might as you fight to free the planet from a nightmare of unimaginable tyranny."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTqIpHjrB7RHBkYVqsQRqc/PREVIEW_SCREENSHOT5_155526.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTqIpHjrB7RHBkYVqsQRqc/PREVIEW_SCREENSHOT5_155526.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTHGW6DhChsk7S0n2PZiQP/PREVIEW_SCREENSHOT4_155526.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTHGW6DhChsk7S0n2PZiQP/PREVIEW_SCREENSHOT4_155526.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTUeptLobo8T3sx9QLQms0/PREVIEW_SCREENSHOT3_155526.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00314_00/FREE_CONTENTUeptLobo8T3sx9QLQms0/PREVIEW_SCREENSHOT3_155526.jpg?w=256&thumb=false"}],"summary":"The Nazis won World War II - rally the resistance and fight back."}
-1
View File
@@ -1 +0,0 @@
{"about":["Explore ancient ruins, dodge carnivorous beasts and avoid trigger-happy hunting parties as Abe, the original Oddworld hero in this lovingly re-crafted take on PlayStation® classic Abe's Oddysee.","Once a happy floor waxer in Oddworld's biggest meat processing plant, Abe stumbles across his boss's secret plan to turn the factory's slave labor force into the latest in the RuptureFarms Tasty Treats line of novelty meat snacks.","Abe now has to save his own skin from the grinders even if simply escaping the flesh farm is only the start of his Oddysee. Many dangers await Abe on his journey to discover his people's heritage.","Built from the ground up, enjoy breathtaking visuals, enhanced audio and improved, deeper gameplay as New 'n' Tasty reignites the original Oddworld game using the latest next-generation technology.","Purchasing this content entitles you to the PS3™ system, PS4™ system, and “PS Vita” system versions!"],"shots":[{"url":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTS9tldzDbfdHrBsQVaJDg/PREVIEW_SCREENSHOT1_55571.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTS9tldzDbfdHrBsQVaJDg/PREVIEW_SCREENSHOT1_55571.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTcviRhNttaTiGskSegRSV/PREVIEW_SCREENSHOT2_55571.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTcviRhNttaTiGskSegRSV/PREVIEW_SCREENSHOT2_55571.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTqOJr66fcsWfKzizyFYxp/PREVIEW_SCREENSHOT3_55571.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4134/CUSA00329_00/FREE_CONTENTqOJr66fcsWfKzizyFYxp/PREVIEW_SCREENSHOT3_55571.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["From Patrick Plourde – Creative Director of Far Cry 3® – and Jeffrey Yohalem – winner of the Writers Guild of America Award – comes Child of Light, a digital title developed under Ubisoft Montreal.","Envisioned as a “Playable Poem” by its creators, Child of Light is a modern reimagining of our childhood fairy tales.","Set in the magical world of Lemuria, Child of Light takes us on the coming-of-age journey of Aurora, a young girl struggling to save a lost kingdom and her ailing father.","“Come, tuck yourself into bed Let me tell a story.","Of Lemuria, a kingdom past And a girl born for glory.”","The daughter of the Duke of Carniola is transported to Lemuria, a mysterious world that needs her help."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENThSonVWFw1ye2mx3wXNY7/PREVIEW_SCREENSHOT1_53412.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENThSonVWFw1ye2mx3wXNY7/PREVIEW_SCREENSHOT1_53412.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENTpJKPly7lJBLS8cZuvbPC/PREVIEW_SCREENSHOT2_53412.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENTpJKPly7lJBLS8cZuvbPC/PREVIEW_SCREENSHOT2_53412.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENTAPXLfh3EBUmTlvvKSSGI/PREVIEW_SCREENSHOT3_53412.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00339_00/FREE_CONTENTAPXLfh3EBUmTlvvKSSGI/PREVIEW_SCREENSHOT3_53412.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Reclaim the Lost Kingdom brick by brick! Join Bilbo Baggins, Gandalf, Thorin and his company of Dwarves in an epic adventure across Middle-earth to recapture the Lonely Mountain in the most expansive LEGO game to date.","• Battle ravenous Trolls, dangerous Orcs and many more!","• Combine the Dwarves' unique abilities to solve puzzles - often with hilarious results!","• Explore iconic locations in Middle-earth, from the Shire to Goblin-town and beyond."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_7ebfb4755a1baddacdba1921b9e08806f0cb5430.1920x1080.jpg?t=1780599886","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_7ebfb4755a1baddacdba1921b9e08806f0cb5430.600x338.jpg?t=1780599886"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_3dcdbb8755ba30d4cc66917a2953ff876b12b3e1.1920x1080.jpg?t=1780599886","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_3dcdbb8755ba30d4cc66917a2953ff876b12b3e1.600x338.jpg?t=1780599886"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_082ebcfb372b3c63aa1769919b5b8052eee9e7bb.1920x1080.jpg?t=1780599886","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/285160/ss_082ebcfb372b3c63aa1769919b5b8052eee9e7bb.600x338.jpg?t=1780599886"}],"summary":"Reclaim the Lost Kingdom brick by brick! Join Bilbo Baggins, Gandalf, Thorin and his company of Dwarves in an epic adventure across Middle-earth to recapture the Lonely Mountain in the most expansive LEGO game to date."}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Hotline Miami 2: Wrong Number is the brutal conclusion to the Hotline Miami saga, set against a backdrop of escalating violence and retribution over spilled blood in the original game.","Follow the paths of several distinct factions – each with their own questionable methods and uncertain motivations – as unforeseen consequences intersect and reality once again slips back into a brilliant haze of neon and bloodshed.","Purchasing this content entitles you to the PS3™, PS4™, and “PS Vita” versions!"],"shots":[{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTXnl5uwGoCa1n0Kxssi6L/PREVIEW_SCREENSHOT1_74133.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTXnl5uwGoCa1n0Kxssi6L/PREVIEW_SCREENSHOT1_74133.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTFq1xaV3F9DuOnjM0ozXJ/PREVIEW_SCREENSHOT2_74133.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTFq1xaV3F9DuOnjM0ozXJ/PREVIEW_SCREENSHOT2_74133.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTtXWNFhVeHGTwb3Rd5OJz/PREVIEW_SCREENSHOT3_74133.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00368_00/FREE_CONTENTtXWNFhVeHGTwb3Rd5OJz/PREVIEW_SCREENSHOT3_74133.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Developed by Shinji Mikami and the talented team at Tango Gameworks, The Evil Within embodies the meaning of pure survival horror.","Highly-crafted environments, horrifying anxiety, and an intricate story are combined to create an immersive world that will bring you to the height of tension.","With limited resources at your disposal, you’ll fight for survival and experience profound fear in this perfect blend of horror and action."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTLzVQXbY0cXX9QJ32aMum/PREVIEW_SCREENSHOT10_62544.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTLzVQXbY0cXX9QJ32aMum/PREVIEW_SCREENSHOT10_62544.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTHr3U2SkSd9mAgbsxOE7k/PREVIEW_SCREENSHOT9_62544.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTHr3U2SkSd9mAgbsxOE7k/PREVIEW_SCREENSHOT9_62544.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTx9HZlrUwZJ1yxSW2TQsb/PREVIEW_SCREENSHOT8_62544.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP1003/CUSA00203_00/FREE_CONTENTx9HZlrUwZJ1yxSW2TQsb/PREVIEW_SCREENSHOT8_62544.jpg?w=256&thumb=false"}],"summary":"Defeat insurmountable terror and discover The Evil Within."}
-1
View File
@@ -1 +0,0 @@
{"about":["Gomez is a 2D creature living in a 2D world. Or is he? When the existence of a mysterious 3rd dimension is revealed to him, Gomez is sent out on a journey that will take him to the very end of time and space.","Use your ability to navigate 3D structures from 4 distinct classic 2D perspectives. Explore a serene and beautiful open-ended world full of secrets, puzzles and hidden treasures.","Unearth the mysteries of the past and discover the truth about reality and perception. Change your perspective and look at the world in a different way.","Purchasing this content entitles you to both the PS3™, PS4™, and PS Vita versions!","3D display with compatible 3D active glasses (sold separately) required for 3D features. Visit www.us.playstation.com/support/3D for details."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTNbznh5o4o3tUPLZRUmSR/PREVIEW_SCREENSHOT1_52621.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTNbznh5o4o3tUPLZRUmSR/PREVIEW_SCREENSHOT1_52621.png?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTys8520jZcvu6OdYRzNH0/PREVIEW_SCREENSHOT2_52621.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTys8520jZcvu6OdYRzNH0/PREVIEW_SCREENSHOT2_52621.png?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTycXNTLDq2j6Ypax855HB/PREVIEW_SCREENSHOT3_52621.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4427/CUSA00383_00/FREE_CONTENTycXNTLDq2j6Ypax855HB/PREVIEW_SCREENSHOT3_52621.png?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["When a young street hustler, a retired bank robber, and a terrifying psychopath find themselves entangled with some of the most frightening and deranged elements of the criminal underworld, the U.S.","government, and the entertainment industry, they must pull off a series of dangerous heists to survive in a ruthless city in which they can trust nobody — least of all each other.","Experience GTA Online, a dynamic and ever-evolving online universe for up to 30 players, where you can rise from street-level hustler to become a kingpin of your own criminal empire."],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["When a young street hustler, a retired bank robber, and a terrifying psychopath find themselves entangled with some of the most frightening and deranged elements of the criminal underworld, the U.S.","government, and the entertainment industry, they must pull off a series of dangerous heists to survive in a ruthless city in which they can trust nobody — least of all each other.","Experience GTA Online, a dynamic and ever-evolving online universe for up to 30 players, where you can rise from street-level hustler to become a kingpin of your own criminal empire."],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["PlayStation Plus Extra/Deluxe/Premium subscribers: This title is available in the PlayStation Plus Game Catalogue, and you may redeem it from your PS4 or PS5 console. (Redemption from web/mobile is currently unavailable.)","TowerFall Ascension is the definitive version of the hit archery combat game. Inspired by classics from the golden age of couch multiplayer, it's a local party game centering around hilarious, intense versus matches.","The core mechanics are simple and accessible, but hard to master and combat is fierce. Loot treasure chests for game-changing power-ups, master the art of catching arrows out of the air, or descend on your foes and stomp them into submission.","TowerFall is best played competitively with friends, cross-legged on the floor within punching distance of each other.","New in Ascension is the 1- or 2-player co-op Quest mode. Players work together, fighting off a variety of monsters and enemy archers across the land of TowerFall.","It's a new adventure to explore when you don't have more friends handy to square off against."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTsbaihRbDjG5OCXo2jjhK/PREVIEW_SCREENSHOT1_52746.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTsbaihRbDjG5OCXo2jjhK/PREVIEW_SCREENSHOT1_52746.png?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTpdJQvqr2TiukNTuchG8q/PREVIEW_SCREENSHOT2_52746.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTpdJQvqr2TiukNTuchG8q/PREVIEW_SCREENSHOT2_52746.png?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTGyYTM3Sea3vj6NidPwlP/PREVIEW_SCREENSHOT3_52746.png?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP2120/CUSA00466_00/FREE_CONTENTGyYTM3Sea3vj6NidPwlP/PREVIEW_SCREENSHOT3_52746.png?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["This is the story of crossed destinies and broken love in a world torn apart. Of people who will try to survive the horror of the trenches, following their faithful canine companion.","In Valiant Hearts, the lives of these characters are inextricably drawn together over the course of the game. Friendship, love, sacrifice and tragedy befall each one, as they help each other retain their humanity against the horrors of war.","Video output in Full HD 1080p requires 1080p native display.","1 player 1080p HD Video Output Offline Play Enabled This item is being licensed or sublicensed to you by Sony Computer Entertainment America and is subject to the Network Terms of Service and User Agreement, this item’s use restrictions and…","If you do not wish to accept all these terms, do not download this item. One-time license fee for play on purchasing account’s designated, primary PS4™ system and other PS4 systems when signed in with purchasing account.","©2014 Ubisoft Entertainment. All Rights Reserved. Valiant Hearts: The Great War Logo, Ubisoft and the Ubisoft logo are trademarks of Ubisoft Entertainment in the U.S. and/or other countries."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTJe5r0cRkb2Glm2MdufYE/PREVIEW_SCREENSHOT1_54646.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTJe5r0cRkb2Glm2MdufYE/PREVIEW_SCREENSHOT1_54646.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTuhpRitaWGBiOMnr86KLR/PREVIEW_SCREENSHOT2_54646.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTuhpRitaWGBiOMnr86KLR/PREVIEW_SCREENSHOT2_54646.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTsRG2UKZZ9mRnVZDVwlQi/PREVIEW_SCREENSHOT3_54646.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00478_00/FREE_CONTENTsRG2UKZZ9mRnVZDVwlQi/PREVIEW_SCREENSHOT3_54646.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Hotline Miami is a high-octane action game overflowing with raw brutality, hard-boiled gunplay and skull crushing close combat.","Set in an alternative 1989 Miami, you will assume the role of a mysterious antihero on a murderous rampage against the shady underworld at the behest of voices on your answering machine.","Soon you'll find yourself struggling to get a grip of what is going on and why you are prone to these acts of violence.","Purchasing this content entitles you to both the PS3™, PS4™, and “PS Vita” versions!"],"shots":[{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENTnFiZPOIfLJpWsElK39Q5/PREVIEW_SCREENSHOT1_57064.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENTnFiZPOIfLJpWsElK39Q5/PREVIEW_SCREENSHOT1_57064.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENT4aG75WF2VM0QEUGtGDsP/PREVIEW_SCREENSHOT2_57064.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENT4aG75WF2VM0QEUGtGDsP/PREVIEW_SCREENSHOT2_57064.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENTeXakbFq5TNt9BnDanfKQ/PREVIEW_SCREENSHOT3_57064.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP3643/CUSA00486_00/FREE_CONTENTeXakbFq5TNt9BnDanfKQ/PREVIEW_SCREENSHOT3_57064.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Spelunky is a unique platformer with randomized levels that offer a challenging new experience each time you play. Journey deep underground and explore fantastic places filled with all manner of monsters, traps, and treasure.","Go solo or bring up to three friends to join you in cooperative play or frantic deathmatch!","Purchasing this content entitles you to both the PS3™, PS4™, and “PS Vita” versions!","Additional hardware required for Interconnectivity."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTFO3HJLWXBjanzTyPa2lW/PREVIEW_SCREENSHOT1_64617.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTFO3HJLWXBjanzTyPa2lW/PREVIEW_SCREENSHOT1_64617.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTedqlpxteJLn2jMpknqm3/PREVIEW_SCREENSHOT2_64617.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTedqlpxteJLn2jMpknqm3/PREVIEW_SCREENSHOT2_64617.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTAKBIFvnP3AUVN1qpvy47/PREVIEW_SCREENSHOT3_64617.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP4407/CUSA00493_00/FREE_CONTENTAKBIFvnP3AUVN1qpvy47/PREVIEW_SCREENSHOT3_64617.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Download the demo to play 2 hours of coop mode.","SEQUEL TO THE 1 RATED SHOOTER OF 2012*","2014 Winner Best Shooter - the Game Awards In Far Cry 4, players find themselves in Kyrat, a breathtaking, perilous and wild region of the Himalayas struggling under the regime of a despotic self-appointed king.","Using a vast array of weapons, vehicles, and animals, players will write their own story across an exotic open-world landscape."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTlpIzm82yTvTdwdGPtqAz/PREVIEW_SCREENSHOT1_54899.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTlpIzm82yTvTdwdGPtqAz/PREVIEW_SCREENSHOT1_54899.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTwWvRELkeqHqDRR1EKL2b/PREVIEW_SCREENSHOT2_54899.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTwWvRELkeqHqDRR1EKL2b/PREVIEW_SCREENSHOT2_54899.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTRVNZKWvZqfok5tgmPUbL/PREVIEW_SCREENSHOT3_54899.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP0001/CUSA00496_00/FREE_CONTENTRVNZKWvZqfok5tgmPUbL/PREVIEW_SCREENSHOT3_54899.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":[],"shots":[],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["Locked up in a prison for super powered humans, Fetch is forced to relive tragedies from her past. Unravel her dark secret in Seattle while battling to escape snowy Curdon Cay and seek vengeance for those who wronged her."],"shots":[{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTYGbHZVKYgILz3xkEXrz1/PREVIEW_SCREENSHOT1_62521.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTYGbHZVKYgILz3xkEXrz1/PREVIEW_SCREENSHOT1_62521.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTkNedeeCFX3BJ46kVpIps/PREVIEW_SCREENSHOT2_62521.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTkNedeeCFX3BJ46kVpIps/PREVIEW_SCREENSHOT2_62521.jpg?w=256&thumb=false"},{"url":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTkqlDEqFve9ymp9BLuC5e/PREVIEW_SCREENSHOT3_62521.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/cdn/UP9000/CUSA00575_00/FREE_CONTENTkqlDEqFve9ymp9BLuC5e/PREVIEW_SCREENSHOT3_62521.jpg?w=256&thumb=false"}],"summary":""}
-1
View File
@@ -1 +0,0 @@
{"about":["The best-selling LEGO Batman videogame franchise returns in an out-of-this-world, action-packed adventure!","In LEGO Batman™ 3: Beyond Gotham, the Caped Crusader joins forces with the super heroes of the DC Comics universe and blasts off to outer space to stop the evil Brainiac from destroying Earth.","Using the power of the Lantern Rings, Brainiac shrinks worlds to add to his twisted collection of miniature cities from across the universe.","Now the greatest super heroes and the most cunning villains must unite and journey to different Lantern Worlds to collect the Lantern Rings and stop Brainiac before it’s too late.","• Exciting space combat - For the first time ever, battle with Batman and his allies in outer space and the various Lantern worlds including Zamaron and Odym.","• Robust roster of DC Comics heroes and villains - Play and unlock more than 150 unique characters with amazing powers and abilities, including members of the Justice League, and BIG LEGO Figures such as Cyborg, Solomon Grundy and more."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_67bb5a7afd535cfe43dd382a342a5964d6fc74e0.1920x1080.jpg?t=1780597097","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_67bb5a7afd535cfe43dd382a342a5964d6fc74e0.600x338.jpg?t=1780597097"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_d533f45ea1cab37689710e5125af10e70855cc5c.1920x1080.jpg?t=1780597097","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_d533f45ea1cab37689710e5125af10e70855cc5c.600x338.jpg?t=1780597097"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_08f80367bea3ea25c76b507bd3b2fd83602e0c36.1920x1080.jpg?t=1780597097","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/313690/ss_08f80367bea3ea25c76b507bd3b2fd83602e0c36.600x338.jpg?t=1780597097"}],"summary":"The Caped Crusader joins forces with the super heroes of the DC Comics universe and blasts off to outer space to stop the evil Brainiac from destroying Earth."}
-1
View File
@@ -1 +0,0 @@
{"about":["It was an average day for Steve the intern, until he gets a strange call late at night telling him to go back to work.","When he arrives, Steve gets lost in his own paranoid delusions until tragedy strikes.","Left with no way out, Steve decides to end it all. But instead, he finds himself in..","..another world...","Another_World is a Silent Hill/P.T. inspired psychological horror game. This is my first independently developed game made with Unreal Engine 4.","Featuring an original story and music written by me."],"shots":[{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_a0f69f7e66b16830ef8caf7666f22b4f31c15d23.1920x1080.jpg?t=1583482121","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_a0f69f7e66b16830ef8caf7666f22b4f31c15d23.600x338.jpg?t=1583482121"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_3a2e86281cdcb15f988abe3f945a3e2914278e75.1920x1080.jpg?t=1583482121","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_3a2e86281cdcb15f988abe3f945a3e2914278e75.600x338.jpg?t=1583482121"},{"url":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_6a1d69282302e06443fc44aebda8816bd3e47842.1920x1080.jpg?t=1583482121","thumb":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1246390/ss_6a1d69282302e06443fc44aebda8816bd3e47842.600x338.jpg?t=1583482121"}],"summary":"Another_World is a Silent Hill/P.T. inspired psychological horror game. This is the first act for my first independently developed game made with Unreal Engine 4. Featuring an original soundtrack and story-line."}
Loaded 100 of 4741 files, more files were not shown because too many files have changed in this diff. Show more