├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── SpotifyPatcher.sln └── SpotifyPatcher ├── App.config ├── Main.Designer.cs ├── Main.cs ├── Main.resx ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── ReadMe.txt ├── Resources ├── Batch │ ├── ModifyHosts.bat │ ├── NoAds.bat │ ├── NoUpdates.bat │ ├── Regedit.bat │ └── hosts ├── Exe │ └── Spotify.exe ├── Extra │ ├── PatchedSpotify.lnk │ └── ShortCut.bat └── Logo.png ├── SpotifyPatcher.csproj └── s.ico /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Build results 17 | [Dd]ebug/ 18 | [Dd]ebugPublic/ 19 | [Rr]elease/ 20 | [Rr]eleases/ 21 | x64/ 22 | x86/ 23 | [Aa][Rr][Mm]/ 24 | [Aa][Rr][Mm]64/ 25 | bld/ 26 | [Bb]in/ 27 | [Oo]bj/ 28 | [Ll]og/ 29 | 30 | # Visual Studio 2015/2017 cache/options directory 31 | .vs/ 32 | # Uncomment if you have tasks that create the project's static files in wwwroot 33 | #wwwroot/ 34 | 35 | # Visual Studio 2017 auto generated files 36 | Generated\ Files/ 37 | 38 | # MSTest test Results 39 | [Tt]est[Rr]esult*/ 40 | [Bb]uild[Ll]og.* 41 | 42 | # NUNIT 43 | *.VisualState.xml 44 | TestResult.xml 45 | 46 | # Build Results of an ATL Project 47 | [Dd]ebugPS/ 48 | [Rr]eleasePS/ 49 | dlldata.c 50 | 51 | # Benchmark Results 52 | BenchmarkDotNet.Artifacts/ 53 | 54 | # .NET Core 55 | project.lock.json 56 | project.fragment.lock.json 57 | artifacts/ 58 | 59 | # StyleCop 60 | StyleCopReport.xml 61 | 62 | # Files built by Visual Studio 63 | *_i.c 64 | *_p.c 65 | *_h.h 66 | *.ilk 67 | *.meta 68 | *.obj 69 | *.iobj 70 | *.pch 71 | *.pdb 72 | *.ipdb 73 | *.pgc 74 | *.pgd 75 | *.rsp 76 | *.sbr 77 | *.tlb 78 | *.tli 79 | *.tlh 80 | *.tmp 81 | *.tmp_proj 82 | *_wpftmp.csproj 83 | *.log 84 | *.vspscc 85 | *.vssscc 86 | .builds 87 | *.pidb 88 | *.svclog 89 | *.scc 90 | 91 | # Chutzpah Test files 92 | _Chutzpah* 93 | 94 | # Visual C++ cache files 95 | ipch/ 96 | *.aps 97 | *.ncb 98 | *.opendb 99 | *.opensdf 100 | *.sdf 101 | *.cachefile 102 | *.VC.db 103 | *.VC.VC.opendb 104 | 105 | # Visual Studio profiler 106 | *.psess 107 | *.vsp 108 | *.vspx 109 | *.sap 110 | 111 | # Visual Studio Trace Files 112 | *.e2e 113 | 114 | # TFS 2012 Local Workspace 115 | $tf/ 116 | 117 | # Guidance Automation Toolkit 118 | *.gpState 119 | 120 | # ReSharper is a .NET coding add-in 121 | _ReSharper*/ 122 | *.[Rr]e[Ss]harper 123 | *.DotSettings.user 124 | 125 | # JustCode is a .NET coding add-in 126 | .JustCode 127 | 128 | # TeamCity is a build add-in 129 | _TeamCity* 130 | 131 | # DotCover is a Code Coverage Tool 132 | *.dotCover 133 | 134 | # AxoCover is a Code Coverage Tool 135 | .axoCover/* 136 | !.axoCover/settings.json 137 | 138 | # Visual Studio code coverage results 139 | *.coverage 140 | *.coveragexml 141 | 142 | # NCrunch 143 | _NCrunch_* 144 | .*crunch*.local.xml 145 | nCrunchTemp_* 146 | 147 | # MightyMoose 148 | *.mm.* 149 | AutoTest.Net/ 150 | 151 | # Web workbench (sass) 152 | .sass-cache/ 153 | 154 | # Installshield output folder 155 | [Ee]xpress/ 156 | 157 | # DocProject is a documentation generator add-in 158 | DocProject/buildhelp/ 159 | DocProject/Help/*.HxT 160 | DocProject/Help/*.HxC 161 | DocProject/Help/*.hhc 162 | DocProject/Help/*.hhk 163 | DocProject/Help/*.hhp 164 | DocProject/Help/Html2 165 | DocProject/Help/html 166 | 167 | # Click-Once directory 168 | publish/ 169 | 170 | # Publish Web Output 171 | *.[Pp]ublish.xml 172 | *.azurePubxml 173 | # Note: Comment the next line if you want to checkin your web deploy settings, 174 | # but database connection strings (with potential passwords) will be unencrypted 175 | *.pubxml 176 | *.publishproj 177 | 178 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 179 | # checkin your Azure Web App publish settings, but sensitive information contained 180 | # in these scripts will be unencrypted 181 | PublishScripts/ 182 | 183 | # NuGet Packages 184 | *.nupkg 185 | # The packages folder can be ignored because of Package Restore 186 | **/[Pp]ackages/* 187 | # except build/, which is used as an MSBuild target. 188 | !**/[Pp]ackages/build/ 189 | # Uncomment if necessary however generally it will be regenerated when needed 190 | #!**/[Pp]ackages/repositories.config 191 | # NuGet v3's project.json files produces more ignorable files 192 | *.nuget.props 193 | *.nuget.targets 194 | 195 | # Microsoft Azure Build Output 196 | csx/ 197 | *.build.csdef 198 | 199 | # Microsoft Azure Emulator 200 | ecf/ 201 | rcf/ 202 | 203 | # Windows Store app package directories and files 204 | AppPackages/ 205 | BundleArtifacts/ 206 | Package.StoreAssociation.xml 207 | _pkginfo.txt 208 | *.appx 209 | 210 | # Visual Studio cache files 211 | # files ending in .cache can be ignored 212 | *.[Cc]ache 213 | # but keep track of directories ending in .cache 214 | !?*.[Cc]ache/ 215 | 216 | # Others 217 | ClientBin/ 218 | ~$* 219 | *~ 220 | *.dbmdl 221 | *.dbproj.schemaview 222 | *.jfm 223 | *.pfx 224 | *.publishsettings 225 | orleans.codegen.cs 226 | 227 | # Including strong name files can present a security risk 228 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 229 | #*.snk 230 | 231 | # Since there are multiple workflows, uncomment next line to ignore bower_components 232 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 233 | #bower_components/ 234 | 235 | # RIA/Silverlight projects 236 | Generated_Code/ 237 | 238 | # Backup & report files from converting an old project file 239 | # to a newer Visual Studio version. Backup files are not needed, 240 | # because we have git ;-) 241 | _UpgradeReport_Files/ 242 | Backup*/ 243 | UpgradeLog*.XML 244 | UpgradeLog*.htm 245 | ServiceFabricBackup/ 246 | *.rptproj.bak 247 | 248 | # SQL Server files 249 | *.mdf 250 | *.ldf 251 | *.ndf 252 | 253 | # Business Intelligence projects 254 | *.rdl.data 255 | *.bim.layout 256 | *.bim_*.settings 257 | *.rptproj.rsuser 258 | *- Backup*.rdl 259 | 260 | # Microsoft Fakes 261 | FakesAssemblies/ 262 | 263 | # GhostDoc plugin setting file 264 | *.GhostDoc.xml 265 | 266 | # Node.js Tools for Visual Studio 267 | .ntvs_analysis.dat 268 | node_modules/ 269 | 270 | # Visual Studio 6 build log 271 | *.plg 272 | 273 | # Visual Studio 6 workspace options file 274 | *.opt 275 | 276 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 277 | *.vbw 278 | 279 | # Visual Studio LightSwitch build output 280 | **/*.HTMLClient/GeneratedArtifacts 281 | **/*.DesktopClient/GeneratedArtifacts 282 | **/*.DesktopClient/ModelManifest.xml 283 | **/*.Server/GeneratedArtifacts 284 | **/*.Server/ModelManifest.xml 285 | _Pvt_Extensions 286 | 287 | # Paket dependency manager 288 | .paket/paket.exe 289 | paket-files/ 290 | 291 | # FAKE - F# Make 292 | .fake/ 293 | 294 | # JetBrains Rider 295 | .idea/ 296 | *.sln.iml 297 | 298 | # CodeRush personal settings 299 | .cr/personal 300 | 301 | # Python Tools for Visual Studio (PTVS) 302 | __pycache__/ 303 | *.pyc 304 | 305 | # Cake - Uncomment if you are using it 306 | # tools/** 307 | # !tools/packages.config 308 | 309 | # Tabs Studio 310 | *.tss 311 | 312 | # Telerik's JustMock configuration file 313 | *.jmconfig 314 | 315 | # BizTalk build output 316 | *.btp.cs 317 | *.btm.cs 318 | *.odx.cs 319 | *.xsd.cs 320 | 321 | # OpenCover UI analysis results 322 | OpenCover/ 323 | 324 | # Azure Stream Analytics local run output 325 | ASALocalRun/ 326 | 327 | # MSBuild Binary and Structured Log 328 | *.binlog 329 | 330 | # NVidia Nsight GPU debugger configuration file 331 | *.nvuser 332 | 333 | # MFractors (Xamarin productivity tool) working folder 334 | .mfractor/ 335 | 336 | # Local History for Visual Studio 337 | .localhistory/ 338 | 339 | # BeatPulse healthcheck temp database 340 | healthchecksdb -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SpotifyPatcher 2 | 3 | ###### More simple version -> [ShutUpSpotify](https://github.com/Takaovi/ShutUpSpotify) 4 | ### SpotifyPatcher bypasses Spotify's ads and auto-update on Windows. 5 | Version | Status | Status update date | Contributors | Project at risk 6 | ------------ | ------------- | ------------- | ------------- | ------------- 7 | V1.0.1 | Working | 17.9.2022 | 0 | No | Yes 8 | 9 | # Important 10 | 11 | ⚠️ This program is for the [Desktop release](https://www.spotify.com/download/windows/) of Spotify on Windows and not the Microsoft Store version. 12 | 13 | # Uninstallation 14 | 15 | 1. Click the "Uninstall Spotify" button on the program 16 | 17 | 2. Remove the program itself (Whole folder) 18 | 19 | 3. Go to Regedit HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run and remove "SpotifyStopUpdate" 20 | * If it doesn't exist, continue to the next step... 21 | 22 | 4. Go to c:\windows\system32\drivers\etc\hosts and remove everything inside the hosts file 23 | 24 | # Legal 25 | 26 | None of the authors, contributors, or anyone else connected with this open source project, in any way whatsoever, can be responsible for your use of the information or the application contained in or linked from this repository. 27 | 28 | Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use. 29 | 30 | If you don't agree with any of our disclaimers above, do not read the code or download anything from our repository as you have no permission to read and explore our repository till you agree. 31 | -------------------------------------------------------------------------------- /SpotifyPatcher.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30503.244 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpotifyPatcher", "SpotifyPatcher\SpotifyPatcher.csproj", "{E20FDF92-ABE3-4BEE-83D8-84854B83394D}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {E20FDF92-ABE3-4BEE-83D8-84854B83394D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {E20FDF92-ABE3-4BEE-83D8-84854B83394D}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {E20FDF92-ABE3-4BEE-83D8-84854B83394D}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {E20FDF92-ABE3-4BEE-83D8-84854B83394D}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {F10567E7-5645-4738-9DF8-B6681C064C67} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /SpotifyPatcher/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SpotifyPatcher/Main.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SpotifyPatcher 2 | { 3 | partial class Main 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); 32 | this.PatchUpdateButton = new System.Windows.Forms.Button(); 33 | this.InstallSpotifyButton = new System.Windows.Forms.Button(); 34 | this.PatchAdsButton = new System.Windows.Forms.Button(); 35 | this.DoEverythingButton = new System.Windows.Forms.Button(); 36 | this.UninstallSpotifyButton = new System.Windows.Forms.Button(); 37 | this.Worker = new System.ComponentModel.BackgroundWorker(); 38 | this.DragBar = new System.Windows.Forms.Panel(); 39 | this.CloseButton = new System.Windows.Forms.Label(); 40 | this.GithubButton = new System.Windows.Forms.Button(); 41 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 42 | this.panel1 = new System.Windows.Forms.Panel(); 43 | this.SecondWorker = new System.ComponentModel.BackgroundWorker(); 44 | this.panel4 = new System.Windows.Forms.Panel(); 45 | this.DragBar.SuspendLayout(); 46 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 47 | this.SuspendLayout(); 48 | // 49 | // PatchUpdateButton 50 | // 51 | this.PatchUpdateButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); 52 | this.PatchUpdateButton.FlatAppearance.BorderSize = 0; 53 | this.PatchUpdateButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 54 | this.PatchUpdateButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 55 | this.PatchUpdateButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 56 | this.PatchUpdateButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 57 | this.PatchUpdateButton.ForeColor = System.Drawing.Color.White; 58 | this.PatchUpdateButton.Location = new System.Drawing.Point(610, 46); 59 | this.PatchUpdateButton.Name = "PatchUpdateButton"; 60 | this.PatchUpdateButton.Size = new System.Drawing.Size(124, 35); 61 | this.PatchUpdateButton.TabIndex = 0; 62 | this.PatchUpdateButton.TabStop = false; 63 | this.PatchUpdateButton.Text = "Disable update"; 64 | this.PatchUpdateButton.UseVisualStyleBackColor = false; 65 | this.PatchUpdateButton.Click += new System.EventHandler(this.PatchUpdateButton_Click); 66 | // 67 | // InstallSpotifyButton 68 | // 69 | this.InstallSpotifyButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); 70 | this.InstallSpotifyButton.FlatAppearance.BorderSize = 0; 71 | this.InstallSpotifyButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 72 | this.InstallSpotifyButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 73 | this.InstallSpotifyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 74 | this.InstallSpotifyButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 75 | this.InstallSpotifyButton.ForeColor = System.Drawing.Color.White; 76 | this.InstallSpotifyButton.Location = new System.Drawing.Point(220, 46); 77 | this.InstallSpotifyButton.Name = "InstallSpotifyButton"; 78 | this.InstallSpotifyButton.Size = new System.Drawing.Size(124, 35); 79 | this.InstallSpotifyButton.TabIndex = 1; 80 | this.InstallSpotifyButton.TabStop = false; 81 | this.InstallSpotifyButton.Text = "Install old Spotify"; 82 | this.InstallSpotifyButton.UseVisualStyleBackColor = false; 83 | this.InstallSpotifyButton.Click += new System.EventHandler(this.InstallSpotifyButton_Click); 84 | // 85 | // PatchAdsButton 86 | // 87 | this.PatchAdsButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); 88 | this.PatchAdsButton.FlatAppearance.BorderSize = 0; 89 | this.PatchAdsButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 90 | this.PatchAdsButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 91 | this.PatchAdsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 92 | this.PatchAdsButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 93 | this.PatchAdsButton.ForeColor = System.Drawing.Color.White; 94 | this.PatchAdsButton.Location = new System.Drawing.Point(480, 46); 95 | this.PatchAdsButton.Name = "PatchAdsButton"; 96 | this.PatchAdsButton.Size = new System.Drawing.Size(124, 35); 97 | this.PatchAdsButton.TabIndex = 2; 98 | this.PatchAdsButton.TabStop = false; 99 | this.PatchAdsButton.Text = "Disable ads"; 100 | this.PatchAdsButton.UseVisualStyleBackColor = false; 101 | this.PatchAdsButton.Click += new System.EventHandler(this.PatchAdsButton_Click); 102 | // 103 | // DoEverythingButton 104 | // 105 | this.DoEverythingButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); 106 | this.DoEverythingButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(53)))), ((int)(((byte)(53))))); 107 | this.DoEverythingButton.FlatAppearance.BorderSize = 0; 108 | this.DoEverythingButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 109 | this.DoEverythingButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 110 | this.DoEverythingButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 111 | this.DoEverythingButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 112 | this.DoEverythingButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(129)))), ((int)(((byte)(246))))); 113 | this.DoEverythingButton.Location = new System.Drawing.Point(13, 46); 114 | this.DoEverythingButton.Name = "DoEverythingButton"; 115 | this.DoEverythingButton.Size = new System.Drawing.Size(201, 35); 116 | this.DoEverythingButton.TabIndex = 3; 117 | this.DoEverythingButton.TabStop = false; 118 | this.DoEverythingButton.Text = "Patch All"; 119 | this.DoEverythingButton.UseVisualStyleBackColor = false; 120 | this.DoEverythingButton.Click += new System.EventHandler(this.DoEverythingButton_Click); 121 | // 122 | // UninstallSpotifyButton 123 | // 124 | this.UninstallSpotifyButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); 125 | this.UninstallSpotifyButton.FlatAppearance.BorderSize = 0; 126 | this.UninstallSpotifyButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 127 | this.UninstallSpotifyButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 128 | this.UninstallSpotifyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 129 | this.UninstallSpotifyButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 130 | this.UninstallSpotifyButton.ForeColor = System.Drawing.Color.White; 131 | this.UninstallSpotifyButton.Location = new System.Drawing.Point(350, 46); 132 | this.UninstallSpotifyButton.Name = "UninstallSpotifyButton"; 133 | this.UninstallSpotifyButton.Size = new System.Drawing.Size(124, 35); 134 | this.UninstallSpotifyButton.TabIndex = 4; 135 | this.UninstallSpotifyButton.TabStop = false; 136 | this.UninstallSpotifyButton.Text = "Uninstall Spotify"; 137 | this.UninstallSpotifyButton.UseVisualStyleBackColor = false; 138 | this.UninstallSpotifyButton.Click += new System.EventHandler(this.UninstallSpotifyButton_Click); 139 | // 140 | // Worker 141 | // 142 | this.Worker.WorkerSupportsCancellation = true; 143 | this.Worker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.Worker_DoWork); 144 | // 145 | // DragBar 146 | // 147 | this.DragBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(43)))), ((int)(((byte)(43))))); 148 | this.DragBar.Controls.Add(this.CloseButton); 149 | this.DragBar.Controls.Add(this.GithubButton); 150 | this.DragBar.Controls.Add(this.pictureBox1); 151 | this.DragBar.Location = new System.Drawing.Point(-5, -2); 152 | this.DragBar.Name = "DragBar"; 153 | this.DragBar.Size = new System.Drawing.Size(759, 38); 154 | this.DragBar.TabIndex = 5; 155 | this.DragBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragBar_MouseDown); 156 | // 157 | // CloseButton 158 | // 159 | this.CloseButton.AutoSize = true; 160 | this.CloseButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 161 | this.CloseButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(129)))), ((int)(((byte)(246))))); 162 | this.CloseButton.Location = new System.Drawing.Point(723, 8); 163 | this.CloseButton.Name = "CloseButton"; 164 | this.CloseButton.Size = new System.Drawing.Size(26, 25); 165 | this.CloseButton.TabIndex = 7; 166 | this.CloseButton.Text = "✕"; 167 | this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); 168 | // 169 | // GithubButton 170 | // 171 | this.GithubButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(43)))), ((int)(((byte)(43))))); 172 | this.GithubButton.FlatAppearance.BorderSize = 0; 173 | this.GithubButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(43)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); 174 | this.GithubButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); 175 | this.GithubButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 176 | this.GithubButton.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 177 | this.GithubButton.ForeColor = System.Drawing.Color.White; 178 | this.GithubButton.Location = new System.Drawing.Point(659, 6); 179 | this.GithubButton.Name = "GithubButton"; 180 | this.GithubButton.Size = new System.Drawing.Size(58, 27); 181 | this.GithubButton.TabIndex = 8; 182 | this.GithubButton.TabStop = false; 183 | this.GithubButton.Text = "Github"; 184 | this.GithubButton.UseVisualStyleBackColor = false; 185 | this.GithubButton.Click += new System.EventHandler(this.GithubButton_Click); 186 | // 187 | // pictureBox1 188 | // 189 | this.pictureBox1.BackgroundImage = global::SpotifyPatcher.Properties.Resources.Logo; 190 | this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 191 | this.pictureBox1.ErrorImage = null; 192 | this.pictureBox1.InitialImage = null; 193 | this.pictureBox1.Location = new System.Drawing.Point(9, 2); 194 | this.pictureBox1.Name = "pictureBox1"; 195 | this.pictureBox1.Size = new System.Drawing.Size(158, 35); 196 | this.pictureBox1.TabIndex = 6; 197 | this.pictureBox1.TabStop = false; 198 | this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown); 199 | // 200 | // panel1 201 | // 202 | this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28))))); 203 | this.panel1.Location = new System.Drawing.Point(-7, 29); 204 | this.panel1.Name = "panel1"; 205 | this.panel1.Size = new System.Drawing.Size(763, 10); 206 | this.panel1.TabIndex = 6; 207 | // 208 | // SecondWorker 209 | // 210 | this.SecondWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.SecondWorker_DoWork); 211 | // 212 | // panel4 213 | // 214 | this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(129)))), ((int)(((byte)(246))))); 215 | this.panel4.ForeColor = System.Drawing.SystemColors.ControlText; 216 | this.panel4.Location = new System.Drawing.Point(-3, 89); 217 | this.panel4.Name = "panel4"; 218 | this.panel4.Size = new System.Drawing.Size(757, 10); 219 | this.panel4.TabIndex = 7; 220 | // 221 | // Main 222 | // 223 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 224 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 225 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(36)))), ((int)(((byte)(36)))), ((int)(((byte)(36))))); 226 | this.ClientSize = new System.Drawing.Size(747, 91); 227 | this.Controls.Add(this.PatchUpdateButton); 228 | this.Controls.Add(this.panel4); 229 | this.Controls.Add(this.DragBar); 230 | this.Controls.Add(this.panel1); 231 | this.Controls.Add(this.UninstallSpotifyButton); 232 | this.Controls.Add(this.DoEverythingButton); 233 | this.Controls.Add(this.PatchAdsButton); 234 | this.Controls.Add(this.InstallSpotifyButton); 235 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 236 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 237 | this.Name = "Main"; 238 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 239 | this.Text = "Form1"; 240 | this.TopMost = true; 241 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing); 242 | this.DragBar.ResumeLayout(false); 243 | this.DragBar.PerformLayout(); 244 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 245 | this.ResumeLayout(false); 246 | 247 | } 248 | 249 | #endregion 250 | 251 | private System.Windows.Forms.Button PatchUpdateButton; 252 | private System.Windows.Forms.Button InstallSpotifyButton; 253 | private System.Windows.Forms.Button PatchAdsButton; 254 | private System.Windows.Forms.Button DoEverythingButton; 255 | private System.Windows.Forms.Button UninstallSpotifyButton; 256 | private System.ComponentModel.BackgroundWorker Worker; 257 | private System.Windows.Forms.Panel DragBar; 258 | private System.Windows.Forms.PictureBox pictureBox1; 259 | private System.Windows.Forms.Panel panel1; 260 | private System.Windows.Forms.Button GithubButton; 261 | private System.Windows.Forms.Label CloseButton; 262 | private System.ComponentModel.BackgroundWorker SecondWorker; 263 | private System.Windows.Forms.Panel panel4; 264 | } 265 | } 266 | 267 | -------------------------------------------------------------------------------- /SpotifyPatcher/Main.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.ComponentModel; 4 | using System.Diagnostics; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Runtime.InteropServices; 8 | using System.Windows.Forms; 9 | /* 10 | SPOTIFYPATCHER 11 | AUTHOR - TAKAOVI 12 | GITHUB - https://github.com/Takaovi/SpotifyPatcher 13 | */ 14 | namespace SpotifyPatcher 15 | { 16 | public partial class Main : Form 17 | { 18 | public Main() 19 | { 20 | InitializeComponent(); 21 | NoButtonBorders(); 22 | EditRegedit(); 23 | 24 | foreach (var scrn in Screen.AllScreens) 25 | { 26 | if (scrn.Bounds.Contains(Location)) 27 | { 28 | Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - Width) / 2, scrn.Bounds.Top); 29 | return; 30 | } 31 | } 32 | } 33 | 34 | // Movable form 35 | public const int WM_NCLBUTTONDOWN = 0xA1; 36 | public const int HT_CAPTION = 0x2; 37 | 38 | [DllImport("user32.dll")] 39 | public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); 40 | 41 | [DllImport("user32.dll")] 42 | public static extern bool ReleaseCapture(); 43 | 44 | // Panel moves form 45 | void DragBar_MouseDown(object sender, MouseEventArgs e) 46 | { 47 | if (e.Button == MouseButtons.Left) 48 | { 49 | ReleaseCapture(); 50 | SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); 51 | } 52 | } 53 | 54 | void pictureBox1_MouseDown(object sender, MouseEventArgs e) 55 | { 56 | if (e.Button == MouseButtons.Left) 57 | { 58 | ReleaseCapture(); 59 | SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); 60 | } 61 | } 62 | 63 | void NoButtonBorders() 64 | { 65 | DoEverythingButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 66 | InstallSpotifyButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 67 | UninstallSpotifyButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 68 | PatchAdsButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 69 | PatchUpdateButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 70 | GithubButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); 71 | } 72 | 73 | void EditRegedit() 74 | { 75 | // Add program to startup 76 | try 77 | { 78 | var rk = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); 79 | rk.SetValue("SpotifyStopUpdate", AppDomain.CurrentDomain.BaseDirectory + @"Resources\Batch\Regedit.bat"); 80 | } 81 | catch (Exception ex) { MessageBox.Show(ex.Message, "Critical error!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); this.Close(); } 82 | } 83 | 84 | // 1 85 | void InstallSpotify(bool i) 86 | { 87 | Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"\Resources\Exe\Spotify.exe"); 88 | 89 | if (i) Worker.RunWorkerAsync(); 90 | } 91 | 92 | // 2 93 | void PatchAds(bool i, bool c) 94 | { 95 | if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify")) 96 | { 97 | // Start NoAds batch file 98 | var p = Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Resources\Batch\NoAds.bat"); 99 | p.EnableRaisingEvents = true; 100 | p.Exited += new EventHandler(p_Exited); 101 | p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 102 | 103 | if (c) 104 | { 105 | Worker.CancelAsync(); 106 | } 107 | 108 | // Batch file exited 109 | void p_Exited(object sender, EventArgs e) 110 | { 111 | // If user wanted to patch all 112 | if (i) 113 | { 114 | PatchUpdate(true); 115 | } 116 | // If user simply used the patch ads button only 117 | if (!i) 118 | { 119 | MessageBox.Show("If the patch is not working, please create a bug report to the Github page", "Patched successfully", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 120 | } 121 | } 122 | } 123 | else 124 | { 125 | MessageBox.Show("Please make sure Spotify has been installed successfully", "Patch failed", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 126 | } 127 | } 128 | 129 | // 3 130 | void PatchUpdate(bool i) 131 | { 132 | if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify")) 133 | { 134 | SecondWorker.RunWorkerAsync(); 135 | 136 | var proc = Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify\Spotify.exe"); 137 | proc.EnableRaisingEvents = true; 138 | proc.Exited += new EventHandler(proc_Exited); 139 | proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 140 | proc.Start(); 141 | 142 | void proc_Exited(object sndr, EventArgs x) 143 | { 144 | Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Resources\Batch\NoUpdates.bat"); 145 | 146 | Worker.CancelAsync(); 147 | var p = Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Resources\Batch\ModifyHosts.bat"); 148 | p.EnableRaisingEvents = true; 149 | p.Exited += new EventHandler(p_Exited); 150 | p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 151 | 152 | // Batch file exited 153 | void p_Exited(object sender, EventArgs e) 154 | { 155 | // If user wanted to patch all 156 | // Patch all is done, inform the user 157 | if (i) 158 | { 159 | MessageBox.Show("To make sure it works, reboot your pc and check if you get ads. \n\nVisit my Github @Takaovi if you want to contribute or report bugs. \n\nSpotify will now automatically start after you close this window...", "Spotify Patch Success", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 160 | Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify\Spotify.exe"); 161 | } 162 | // If user simply used the patch update button only 163 | else if (!i) 164 | { 165 | MessageBox.Show("If the patch is not working, please create a bug report to the Github page.", "Patched successfully", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 166 | } 167 | } 168 | } 169 | } 170 | else MessageBox.Show("Spotify is not installed", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 171 | } 172 | 173 | // Part of 1 and 2 174 | void Worker_DoWork(object sender, DoWorkEventArgs e) 175 | { 176 | bool c = true; 177 | 178 | if (Worker.CancellationPending) 179 | { 180 | e.Cancel = true; 181 | return; 182 | } 183 | 184 | while (c) 185 | if (Process.GetProcessesByName("Spotify").Length > 3) 186 | { 187 | c = false; 188 | PatchAds(true, true); 189 | } 190 | } 191 | 192 | void SecondWorker_DoWork(object sender, DoWorkEventArgs e) 193 | { 194 | bool c = true; 195 | 196 | if (Worker.CancellationPending) 197 | { 198 | e.Cancel = true; 199 | return; 200 | } 201 | 202 | while (c) 203 | if (Process.GetProcessesByName("Spotify").Length > 3) 204 | { 205 | c = false; 206 | Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Resources\Batch\Regedit.bat"); 207 | } 208 | } 209 | 210 | // 1' Button 211 | void InstallSpotifyButton_Click(object sender, EventArgs e) 212 | { 213 | try { InstallSpotify(false); } 214 | catch (Exception ex) { MessageBox.Show(ex.Message + " \n\nYou are most likely missing a file from the Resources folder. Are the exe and the Resource folder in the same directory?", "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); } 215 | } 216 | 217 | // 2' Buttom 218 | void PatchAdsButton_Click(object sender, EventArgs e) 219 | { 220 | try { PatchAds(false, false); } 221 | catch (Exception ex) { MessageBox.Show(ex.Message + " \n\nYou are most likely missing a file from the Resources folder. Are the exe and the Resource folder in the same directory?", "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); } 222 | } 223 | 224 | // 3' Button 225 | void PatchUpdateButton_Click(object sender, EventArgs e) 226 | { 227 | try { PatchUpdate(false); } 228 | catch (Exception ex) { MessageBox.Show(ex.Message + " \n\nYou are most likely missing a file from the Resources folder. Are the exe and the Resource folder in the same directory?", "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); } 229 | } 230 | 231 | // Do every patch 232 | void DoEverythingButton_Click(object sender, EventArgs e) 233 | { 234 | if (!Directory.Exists(Application.StartupPath + @"\Resources")) 235 | { 236 | MessageBox.Show("You're missing the resources folder, the patcher can not continue.", "Critical error!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); 237 | } 238 | else 239 | { 240 | try 241 | { 242 | foreach (Process p in Process.GetProcessesByName("Spotify")) 243 | // This currently kills every process other than SpotifyWebHelper.exe 244 | p.Kill(); 245 | 246 | Start: 247 | if (Process.GetProcessesByName("Spotify").Length < 2) 248 | InstallSpotify(true); 249 | else goto Start; 250 | } 251 | catch { /*Do Nothing*/ } 252 | } 253 | } 254 | 255 | void UninstallSpotifyButton_Click(object sender, EventArgs e) 256 | { 257 | try { Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify\Spotify.exe", "/uninstall"); } 258 | catch { MessageBox.Show(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Spotify\Spotify.exe" + " was not found. Have you installed Spotify?", "Fatal error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); } 259 | } 260 | 261 | void GithubButton_Click(object sender, EventArgs e) 262 | { 263 | Process.Start("https://github.com/Takaovi/SpotifyPatcher"); 264 | } 265 | 266 | void CloseButton_Click(object sender, EventArgs e) 267 | { 268 | Application.Exit(); 269 | } 270 | 271 | private void Main_FormClosing(object sender, FormClosingEventArgs e) 272 | { 273 | if (Worker.IsBusy) 274 | { 275 | Worker.CancelAsync(); 276 | } 277 | 278 | if (SecondWorker.IsBusy) 279 | { 280 | SecondWorker.CancelAsync(); 281 | } 282 | } 283 | } 284 | } -------------------------------------------------------------------------------- /SpotifyPatcher/Main.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 108, 17 125 | 126 | 127 | 128 | 129 | AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA 130 | IACoJQAA7h4AAAAAAAABACAAxTIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAA 131 | AAAAAAAAAAAAAAAAAAD2gf8A9oH/AvaB/zL2gf+L9oH/y/aB/+f2gf/n9oH/yvaB/4n2gf8w9oH/AvaB 132 | /wAAAAAAAAAAAAAAAAD2gf8A9oH/DvaB/3j2gf/i9oH//vaB///2gf//9oH///aB///2gf/+9oH/4faB 133 | /3X2gf8N9oH/AAAAAAD2gf8A9oH/DvaB/5j2gf/79oH///aB///2gf//9oH///aB///2gf//9oH///aB 134 | ///2gf/79oH/lPaB/wz2gf8A9oH/AfaB/3r2gf/89oH///aB///2gf//9oH///aB///2gf//9oH///aB 135 | ///2gf/+9oH///aB//v2gf919oH/APaB/zT2gf/h9oH///aB//f2gf/19oH//vaB///2gf//9oH/+vaB 136 | /972gf+M9oH/nfaB///2gf//9oH/3/aB/zD2gf+N9oH///aB///2gf+e9oH/SfaB/2L2gf9v9oH/avaB 137 | /1P2gf899oH/XfaB/8v2gf//9oH///aB//72gf+H9oH/zfaB///2gf//9oH/6faB/7z2gf+f9oH/kfaB 138 | /5b2gf+v9oH/1vaB/+D2gf+T9oH/qfaB///2gf//9oH/yPaB/+n2gf//9oH/9/aB/4j2gf+F9oH/rvaB 139 | /7v2gf+09oH/mfaB/2X2gf8r9oH/KPaB/6f2gf//9oH///aB/+T2gf/p9oH///aB//n2gf+K9oH/P/aB 140 | /yv2gf8m9oH/KPaB/zX2gf9Z9oH/nfaB/+H2gf/d9oH/3vaB///2gf/l9oH/zvaB///2gf/t9oH/y/aB 141 | /9v2gf/c9oH/2faB/9z2gf/i9oH/3vaB/732gf9z9oH/HfaB/2T2gf//9oH/yPaB/472gf//9oH/pPaB 142 | /xH2gf8i9oH/OfaB/0X2gf9C9oH/M/aB/x32gf8M9oH/HPaB/2L2gf/P9oH///aB/4j2gf819oH/4/aB 143 | /+z2gf+j9oH/c/aB/1j2gf9M9oH/T/aB/172gf999oH/q/aB/9z2gf/79oH///aB/9/2gf8x9oH/AfaB 144 | /3v2gf/89oH///aB///2gf/+9oH/+/aB//z2gf/+9oH///aB///2gf//9oH///aB//v2gf929oH/APaB 145 | /wD2gf8O9oH/mvaB//z2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB//v2gf+W9oH/DfaB 146 | /wD2gf8A9oH/APaB/w72gf969oH/4/aB//72gf//9oH///aB///2gf//9oH//vaB/+L2gf939oH/DfaB 147 | /wAAAAAAAAAAAAAAAAD2gf8A9oH/A/aB/zT2gf+N9oH/zfaB/+n2gf/o9oH/zPaB/4v2gf8y9oH/AvaB 148 | /wAAAAAAAAAAAOAHAADAAwAAgAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB 149 | AACAAQAAwAMAAOAHAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 150 | AAAAAAAAAAAAAAAAAAD2gf8A9oH/AfaB/x72gf9g9oH/ofaB/8r2gf/d9oH/3PaB/8n2gf+f9oH/XvaB 151 | /xz2gf8B9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8a9oH/efaB 152 | /9P2gf/59oH///aB///2gf//9oH///aB///2gf//9oH/+PaB/9H2gf919oH/F/aB/wD2gf8AAAAAAAAA 153 | AAAAAAAAAAAAAAAAAAD2gf8A9oH/AfaB/0H2gf/H9oH//faB///2gf//9oH///aB///2gf//9oH///aB 154 | ///2gf//9oH///aB///2gf/99oH/w/aB/z32gf8A9oH/AAAAAAAAAAAAAAAAAPaB/wD2gf8A9oH/U/aB 155 | /+T2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 156 | /+H2gf9O9oH/APaB/wAAAAAA9oH/APaB/wD2gf9D9oH/5PaB///2gf//9oH///aB///2gf//9oH///aB 157 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/g9oH/PfaB/wD2gf8A9oH/APaB 158 | /xv2gf/I9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 159 | ///2gf//9oH///aB///2gf//9oH/wvaB/xf2gf8A9oH/APaB/3z2gf//9oH///aB///2gf//9oH///aB 160 | ///2gf//9oH///aB///2gf//9oH///aB///2gf/+9oH/3PaB/4n2gf/G9oH///aB///2gf//9oH//vaB 161 | /3T2gf8A9oH/IfaB/9T2gf//9oH///aB//32gf/C9oH/uPaB/9n2gf/q9oH/8faB//L2gf/s9oH/2/aB 162 | /7T2gf9v9oH/IPaB/xH2gf+m9oH///aB///2gf//9oH///aB/8/2gf8c9oH/ZPaB//n2gf//9oH///aB 163 | //X2gf9O9oH/CvaB/xf2gf8n9oH/M/aB/zT2gf8q9oH/GfaB/wz2gf8e9oH/YvaB/8T2gf/89oH///aB 164 | ///2gf//9oH///aB//f2gf9c9oH/pfaB///2gf//9oH///aB///2gf/g9oH/r/aB/4r2gf9u9oH/X/aB 165 | /132gf9p9oH/hfaB/7D2gf/h9oH//faB//f2gf+19oH/s/aB//v2gf//9oH///aB///2gf+b9oH/zvaB 166 | ///2gf//9oH///aB//z2gf/u9oH/+/aB///2gf//9oH///aB///2gf//9oH///aB//z2gf/j9oH/qPaB 167 | /0/2gf8H9oH/MPaB/+v2gf//9oH///aB///2gf/G9oH/4faB///2gf//9oH///aB/732gf8u9oH/SfaB 168 | /3b2gf+S9oH/oPaB/6D2gf+S9oH/dvaB/072gf8g9oH/A/aB/wX2gf879oH/r/aB//32gf//9oH///aB 169 | ///2gf/Z9oH/4faB///2gf//9oH///aB/8X2gf8x9oH/CvaB/wD2gf8AAAAAAAAAAAD2gf8A9oH/APaB 170 | /wn2gf8n9oH/X/aB/632gf/v9oH///aB//n2gf/+9oH///aB///2gf/a9oH/z/aB///2gf//9oH///aB 171 | ///2gf/u9oH/yvaB/6b2gf+N9oH/gPaB/4D2gf+N9oH/pfaB/8b2gf/p9oH//faB///2gf/o9oH/lvaB 172 | /0z2gf+w9oH///aB///2gf/G9oH/pfaB///2gf//9oH/+/aB/8L2gf++9oH/5vaB//n2gf//9oH///aB 173 | ///2gf//9oH//faB//P2gf/b9oH/svaB/3P2gf8t9oH/BPaB/wD2gf9z9oH///aB///2gf+c9oH/ZfaB 174 | //n2gf//9oH/0vaB/xj2gf8I9oH/I/aB/z72gf9T9oH/X/aB/2H2gf9a9oH/S/aB/zT2gf8a9oH/BfaB 175 | /wD2gf8B9oH/GvaB/272gf/f9oH///aB//f2gf9c9oH/IfaB/9X2gf//9oH/5vaB/1L2gf8V9oH/A/aB 176 | /wD2gf8AAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8H9oH/HvaB/0n2gf+M9oH/1faB//z2gf//9oH///aB 177 | /9D2gf8d9oH/APaB/332gf//9oH///aB//T2gf/U9oH/sPaB/5H2gf989oH/cPaB/272gf919oH/hfaB 178 | /532gf+99oH/3vaB//f2gf//9oH///aB///2gf//9oH//vaB/3b2gf8A9oH/APaB/xz2gf/J9oH///aB 179 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 180 | ///2gf//9oH/w/aB/xj2gf8A9oH/APaB/wD2gf9E9oH/5faB///2gf//9oH///aB///2gf//9oH///aB 181 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/h9oH/PvaB/wD2gf8AAAAAAPaB 182 | /wD2gf8A9oH/VfaB/+X2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 183 | ///2gf//9oH///aB/+L2gf9Q9oH/APaB/wAAAAAAAAAAAAAAAAD2gf8A9oH/AfaB/0T2gf/K9oH//vaB 184 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/99oH/xvaB/z/2gf8A9oH/AAAA 185 | AAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8b9oH/fPaB/9X2gf/69oH///aB///2gf//9oH///aB 186 | ///2gf//9oH/+faB/9P2gf949oH/GfaB/wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 187 | AAD2gf8A9oH/AfaB/yD2gf9k9oH/pPaB/832gf/g9oH/4PaB/8z2gf+i9oH/YfaB/x72gf8B9oH/AAAA 188 | AAAAAAAAAAAAAAAAAAAAAAAA/AA/APgAHwDgAA8A4AAHAMAAAwCAAAEAgAABAAAAAAAAAAAAAAAAAAAA 189 | AAAAAAAAAfgAAAAAAAAAABAAAACAAAH8AACAAAEAgAABAMAAAwDgAAcA4AAPAPgAHwD8AD8AKAAAACAA 190 | AABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 191 | AAAAAAAA9oH/APaB/wD2gf8N9oH/OvaB/3T2gf+k9oH/w/aB/9H2gf/R9oH/wfaB/6L2gf9x9oH/OPaB 192 | /wz2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 193 | AAAAAAAA9oH/APaB/wD2gf8X9oH/ZfaB/7r2gf/r9oH//faB///2gf//9oH///aB///2gf//9oH///aB 194 | //z2gf/q9oH/t/aB/2H2gf8U9oH/APaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 195 | AAAAAAAAAAAAAPaB/wD2gf8H9oH/V/aB/8r2gf/89oH///aB///2gf//9oH///aB///2gf//9oH///aB 196 | ///2gf//9oH///aB///2gf//9oH/+/aB/8X2gf9R9oH/BvaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 197 | AAAAAAAAAAAAAPaB/wD2gf8A9oH/FvaB/5P2gf/09oH///aB///2gf//9oH///aB///2gf//9oH///aB 198 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB//L2gf+M9oH/E/aB/wD2gf8AAAAAAAAA 199 | AAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB/x72gf+x9oH//vaB///2gf//9oH///aB///2gf//9oH///aB 200 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB//32gf+p9oH/GvaB 201 | /wD2gf8AAAAAAAAAAAAAAAAAAAAAAPaB/wD2gf8X9oH/sfaB///2gf//9oH///aB///2gf//9oH///aB 202 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 203 | ///2gf+p9oH/E/aB/wAAAAAAAAAAAAAAAAD2gf8A9oH/B/aB/5T2gf//9oH///aB///2gf//9oH///aB 204 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 205 | ///2gf//9oH///aB//32gf+L9oH/BfaB/wAAAAAA9oH/APaB/wD2gf9a9oH/9faB///2gf//9oH///aB 206 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 207 | ///2gf//9oH///aB///2gf//9oH///aB//H2gf9Q9oH/APaB/wD2gf8A9oH/GfaB/8v2gf//9oH///aB 208 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 209 | //32gf/N9oH/ofaB/+z2gf//9oH///aB///2gf//9oH///aB/8P2gf8U9oH/APaB/wD2gf9p9oH//faB 210 | ///2gf//9oH///aB///2gf/69oH//PaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 211 | //P2gf/H9oH/cPaB/xn2gf8G9oH/svaB///2gf//9oH///aB///2gf//9oH/+/aB/1/2gf8A9oH/D/aB 212 | /732gf//9oH///aB///2gf//9oH/5PaB/132gf9Z9oH/hfaB/6f2gf++9oH/y/aB/8/2gf/L9oH/vfaB 213 | /6L2gf929oH/P/aB/w/2gf8A9oH/E/aB/2z2gf/o9oH///aB///2gf//9oH///aB///2gf//9oH/tPaB 214 | /wv2gf8/9oH/7faB///2gf//9oH///aB///2gf/T9oH/IPaB/wD2gf8A9oH/APaB/wX2gf8M9oH/D/aB 215 | /wz2gf8F9oH/APaB/wD2gf8F9oH/KPaB/2/2gf/I9oH/+vaB///2gf//9oH///aB///2gf//9oH///aB 216 | ///2gf/o9oH/NfaB/3n2gf/+9oH///aB///2gf//9oH///aB//z2gf/S9oH/ovaB/3v2gf9b9oH/RfaB 217 | /zj2gf809oH/OPaB/0X2gf9e9oH/hfaB/7b2gf/l9oH//faB///2gf/89oH/0vaB/8r2gf/79oH///aB 218 | ///2gf//9oH///aB//z2gf9t9oH/qvaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 219 | //32gf/49oH/8vaB//D2gf/y9oH/9/aB//72gf//9oH///aB///2gf/69oH/0faB/3X2gf8a9oH/F/aB 220 | /8P2gf//9oH///aB///2gf//9oH///aB/532gf/J9oH///aB///2gf//9oH///aB///2gf/h9oH/uPaB 221 | /9r2gf/09oH//vaB///2gf//9oH///aB///2gf//9oH//PaB/+/2gf/T9oH/n/aB/1j2gf8Z9oH/APaB 222 | /wD2gf8a9oH/x/aB///2gf//9oH///aB///2gf//9oH/vfaB/9j2gf//9oH///aB///2gf//9oH/+PaB 223 | /1b2gf8E9oH/HPaB/z72gf9f9oH/d/aB/4X2gf+I9oH/gfaB/2/2gf9V9oH/NfaB/xb2gf8D9oH/APaB 224 | /wD2gf8P9oH/VvaB/8P2gf/99oH///aB///2gf//9oH///aB///2gf/N9oH/2PaB///2gf//9oH///aB 225 | ///2gf/69oH/ZfaB/wX2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB 226 | /wr2gf8t9oH/b/aB/8L2gf/39oH///aB///2gf//9oH///aB///2gf//9oH///aB/832gf/J9oH///aB 227 | ///2gf//9oH///aB///2gf/t9oH/tfaB/4D2gf9V9oH/OfaB/yj2gf8g9oH/HvaB/yL2gf8t9oH/QPaB 228 | /1/2gf+K9oH/vPaB/+j2gf/99oH///aB///2gf/z9oH/s/aB/632gf/09oH///aB///2gf//9oH/vvaB 229 | /6v2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB//z2gf/y9oH/6PaB/+H2gf/f9oH/4/aB 230 | /+v2gf/19oH//faB///2gf//9oH///aB//72gf/p9oH/qvaB/0r2gf8I9oH/BvaB/532gf//9oH///aB 231 | ///2gf+e9oH/evaB//72gf//9oH///aB///2gf/Y9oH/mPaB/7j2gf/g9oH/9PaB//32gf//9oH///aB 232 | ///2gf//9oH///aB//72gf/59oH/7PaB/9P2gf+p9oH/bfaB/y/2gf8H9oH/APaB/wD2gf8B9oH/kvaB 233 | ///2gf//9oH//PaB/272gf9A9oH/7faB///2gf//9oH/9PaB/0v2gf8A9oH/CfaB/yD2gf899oH/V/aB 234 | /2z2gf949oH/ffaB/3v2gf9x9oH/YPaB/0n2gf8v9oH/FfaB/wT2gf8A9oH/APaB/wD2gf8B9oH/HvaB 235 | /372gf/t9oH///aB///2gf/o9oH/NvaB/xD2gf++9oH///aB///2gf/z9oH/RPaB/wD2gf8AAAAAAAAA 236 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APeB/wD2gf8M9oH/NvaB 237 | /4P2gf/X9oH//faB///2gf//9oH///aB/7X2gf8L9oH/APaB/2r2gf/99oH///aB///2gf/Q9oH/dPaB 238 | /z/2gf8e9oH/DfaB/wT2gf8A9oH/AAAAAAD2gf8A9oH/APaB/wL2gf8I9oH/FfaB/yv2gf9Q9oH/hfaB 239 | /7/2gf/t9oH///aB///2gf//9oH///aB///2gf/79oH/YPaB/wD2gf8A9oH/GvaB/8z2gf//9oH///aB 240 | ///2gf/+9oH/9PaB/972gf/F9oH/rvaB/532gf+R9oH/jfaB/4/2gf+Y9oH/p/aB/7v2gf/T9oH/6faB 241 | //r2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB/8T2gf8V9oH/APaB/wD2gf8A9oH/XPaB 242 | //b2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 243 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/y9oH/U/aB/wD2gf8AAAAAAPaB 244 | /wD2gf8I9oH/l/aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 245 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH//vaB/432gf8G9oH/AAAA 246 | AAAAAAAAAAAAAPaB/wD2gf8Y9oH/tPaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 247 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf+s9oH/FPaB 248 | /wAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8g9oH/tPaB//72gf//9oH///aB///2gf//9oH///aB 249 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/99oH/rPaB 250 | /xv2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8Y9oH/lvaB//X2gf//9oH///aB 251 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8/aB 252 | /4/2gf8V9oH/APaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPaB/wD2gf8I9oH/WvaB 253 | /8z2gf/89oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/+/aB 254 | /8j2gf9V9oH/B/aB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPaB 255 | /wD1gf8A9oH/GfaB/2n2gf+99oH/7faB//32gf//9oH///aB///2gf//9oH///aB///2gf/99oH/7PaB 256 | /7r2gf9k9oH/FvaB/wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 257 | AAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB/w/2gf8+9oH/ePaB/6j2gf/H9oH/1vaB/9b2gf/F9oH/pvaB 258 | /3X2gf879oH/DfaB/wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAP//wAA//wA 259 | AD/4AAAf8AAAD+AAAAfAAAADwAAAA4AAAAGAAAABAAAIAADgwAAAAAAAAAAAAAAAAwAAAAwAAP/gAAAA 260 | AAAAAAAAAAAAwAIABwAD//wAgB8AAYAAAAHAAAADwAAAA+AAAAfwAAAP+AAAH/wAAD//AAD//8AD/ygA 261 | AAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 262 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A8oH/APaB/wr2gf8o9oH/UfaB 263 | /3j2gf+Y9oH/rfaB/7f2gf+39oH/q/aB/5b2gf929oH/TvaB/yX2gf8I9oH/APaB/wAAAAAAAAAAAAAA 264 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 265 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB/wb2gf8w9oH/dPaB 266 | /7X2gf/g9oH/9faB//72gf//9oH///aB///2gf//9oH///aB///2gf/99oH/9PaB/932gf+x9oH/b/aB 267 | /yv2gf8F9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 268 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8J9oH/R/aB 269 | /6b2gf/p9oH//vaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 270 | ///2gf//9oH//vaB/+X2gf+g9oH/QPaB/wf2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 271 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/AvaB 272 | /zb2gf+n9oH/8vaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 273 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/7/aB/5/2gf8v9oH/AfaB/wAAAAAAAAAAAAAA 274 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB 275 | /wD2gf8P9oH/dvaB/+X2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 276 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/g9oH/bPaB 277 | /wv2gf8A9YH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 278 | AAD2gf8A9oH/APaB/yL2gf+o9oH/+vaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 279 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 280 | ///2gf//9oH/+PaB/572gf8b9oH/APaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 281 | AAAAAAAAAAAAAPaB/wD2gf8A9oH/L/aB/8P2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 282 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 283 | ///2gf//9oH///aB///2gf//9oH///aB///2gf+59oH/J/aB/wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAA 284 | AAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8v9oH/y/aB///2gf//9oH///aB///2gf//9oH///aB 285 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 286 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/wvaB/yf2gf8A9oH/AAAA 287 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/yP2gf/E9oH///aB///2gf//9oH///aB 288 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 289 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 290 | /7n2gf8b9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/EPaB/6n2gf//9oH///aB 291 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 292 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 293 | ///2gf//9oH///aB///2gf+c9oH/C/aB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAPaB/wD2gf8B9oH/efaB 294 | //v2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 295 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 296 | ///2gf//9oH///aB///2gf//9oH///aB///2gf/49oH/avaB/wD2gf8AAAAAAAAAAAAAAAAA9oH/APaB 297 | /wD2gf869oH/5vaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 298 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 299 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/3vaB/y72gf8A9oH/AAAA 300 | AAAAAAAA9oH/APaB/wr2gf+q9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 301 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 302 | ///2gf//9oH///aB//D2gf/P9oH/7faB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 303 | /5z2gf8G9oH/AAAAAAD2gf8A9oH/APaB/0z2gf/z9oH///aB///2gf//9oH///aB///2gf//9oH///aB 304 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 305 | ///2gf//9oH///aB///2gf/29oH/t/aB/0r2gf8Q9oH/W/aB//P2gf//9oH///aB///2gf//9oH///aB 306 | ///2gf//9oH///aB/+32gf8+9oH/AAAAAAD2gf8A9oH/B/aB/6v2gf//9oH///aB///2gf//9oH///aB 307 | ///2gf//9oH///aB//32gf/+9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 308 | ///2gf//9oH///aB///2gf/99oH/5faB/6f2gf9P9oH/DfaB/wD2gf8A9oH/JfaB/+P2gf//9oH///aB 309 | ///2gf//9oH///aB///2gf//9oH///aB///2gf+c9oH/A/aB/wD2gf8A9oH/NfaB/+v2gf//9oH///aB 310 | ///2gf//9oH///aB///2gf//9oH/xPaB/2D2gf9y9oH/oPaB/8T2gf/d9oH/7faB//b2gf/79oH//faB 311 | //32gf/89oH/+faB//H2gf/i9oH/yPaB/532gf9j9oH/KfaB/wb2gf8A9oH/APWB/wD2gf8e9oH/lvaB 312 | //z2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/j9oH/KfaB/wD2gf8A9oH/e/aB 313 | ///2gf//9oH///aB///2gf//9oH///aB///2gf/59oH/UPaB/wD2gf8A9oH/AvaB/w32gf8e9oH/MfaB 314 | /0P2gf9R9oH/WvaB/1z2gf9X9oH/SvaB/zn2gf8k9oH/D/aB/wL2gf8A9oH/APaB/wD2gf8B9oH/HPaB 315 | /2/2gf/T9oH//vaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/+9oH/a/aB 316 | /wD2gf8N9oH/u/aB///2gf//9oH///aB///2gf//9oH///aB///2gf/99oH/ePaB/wf2gf8A9oH/AAAA 317 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPaB/wD2gf8B9oH/D/aB 318 | /zv2gf+G9oH/1faB//z2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 319 | ///2gf//9oH/rfaB/wf2gf8u9oH/5PaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8faB 320 | /7j2gf+I9oH/XvaB/zz2gf8l9oH/FfaB/wz2gf8H9oH/BfaB/wT2gf8F9oH/CfaB/xD2gf8e9oH/NvaB 321 | /1v2gf+O9oH/xfaB//D2gf//9oH///aB///2gf//9oH///aB//b2gf/z9oH//vaB///2gf//9oH///aB 322 | ///2gf//9oH///aB///2gf//9oH/2vaB/yL2gf9Z9oH/9/aB///2gf//9oH///aB///2gf//9oH///aB 323 | ///2gf//9oH///aB///2gf//9oH//faB//P2gf/k9oH/0/aB/8P2gf+39oH/r/aB/632gf+x9oH/u/aB 324 | /8r2gf/d9oH/7/aB//z2gf//9oH///aB///2gf//9oH///aB///2gf/39oH/tfaB/072gf899oH/rfaB 325 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8vaB/0n2gf+C9oH///aB///2gf//9oH///aB 326 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 327 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8vaB/7j2gf9X9oH/DvaB 328 | /wD2gf8A9oH/M/aB/+v2gf//9oH///aB///2gf//9oH///aB///2gf//9oH//PaB/3D2gf+i9oH///aB 329 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8vaB/+/2gf/99oH///aB///2gf//9oH///aB 330 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8/aB/872gf+O9oH/QfaB 331 | /wz2gf8A9oH/APaB/wD2gf8A9oH/OfaB/+72gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 332 | /5D2gf+49oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/C9oH/QfaB/zX2gf9o9oH/nfaB 333 | /8X2gf/f9oH/7vaB//b2gf/69oH//PaB//z2gf/69oH/9faB/+32gf/e9oH/xvaB/6L2gf9y9oH/PvaB 334 | /xX2gf8B9oH/AAAAAAAAAAAA9oH/APaB/wP2gf839oH/uvaB///2gf//9oH///aB///2gf//9oH///aB 335 | ///2gf//9oH///aB/6X2gf/D9oH///aB///2gf//9oH///aB///2gf//9oH///aB//v2gf9V9oH/APWB 336 | /wD2gf8A9oH/AvaB/w32gf8f9oH/M/aB/0P2gf9P9oH/VvaB/1X2gf9P9oH/QvaB/zL2gf8f9oH/DvaB 337 | /wL2gf8A9oH/AAAAAAAAAAAAAAAAAPaB/wD2gf8E9oH/LvaB/472gf/n9oH///aB///2gf//9oH///aB 338 | ///2gf//9oH///aB///2gf//9oH///aB/7H2gf/D9oH///aB///2gf//9oH///aB///2gf//9oH///aB 339 | //z2gf9h9oH/APaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 340 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPaB/wD2gf8B9oH/EvaB/0f2gf+b9oH/5faB///2gf//9oH///aB 341 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB/7H2gf+49oH///aB///2gf//9oH///aB 342 | ///2gf//9oH///aB///2gf/X9oH/Y/aB/yj2gf8L9oH/AfaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 343 | AAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8I9oH/H/aB/0r2gf+I9oH/yfaB//T2gf//9oH///aB 344 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB/6X2gf+i9oH///aB 345 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/+/aB/+X2gf+/9oH/lPaB/232gf9O9oH/OPaB 346 | /yv2gf8i9oH/HvaB/x72gf8i9oH/KvaB/zj2gf9N9oH/avaB/4/2gf+49oH/3faB//f2gf//9oH///aB 347 | ///2gf//9oH///aB///2gf/+9oH/1PaB/4H2gf939oH/zPaB///2gf//9oH///aB///2gf//9oH///aB 348 | /5D2gf+D9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 349 | ///2gf/69oH/8faB/+n2gf/i9oH/3vaB/972gf/i9oH/6faB//H2gf/59oH//vaB///2gf//9oH///aB 350 | ///2gf//9oH///aB///2gf//9oH/+/aB/9X2gf999oH/IPaB/wD2gf8A9oH/LvaB/932gf//9oH///aB 351 | ///2gf//9oH//faB/3H2gf9a9oH/9/aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 352 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 353 | ///2gf//9oH///aB///2gf//9oH//PaB/+X2gf+v9oH/YvaB/x32gf8B9oH/AAAAAAD2gf8A9oH/BfaB 354 | /7H2gf//9oH///aB///2gf//9oH/8/aB/0r2gf8v9oH/5PaB///2gf//9oH///aB///2gf//9oH//vaB 355 | /7z2gf9p9oH/dvaB/6/2gf/Y9oH/8PaB//z2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 356 | ///2gf//9oH///aB//32gf/09oH/4vaB/8P2gf+V9oH/XfaB/yn2gf8H9oH/APaB/wAAAAAAAAAAAAAA 357 | AAD2gf8A9oH/HPaB/9D2gf//9oH///aB///2gf//9oH/2/aB/yP2gf8N9oH/vPaB///2gf//9oH///aB 358 | ///2gf//9oH/zvaB/x/2gf8A9oH/APaB/wb2gf8b9oH/OPaB/1f2gf909oH/jPaB/572gf+p9oH/sPaB 359 | /7P2gf+w9oH/qfaB/572gf+N9oH/d/aB/1z2gf8/9oH/I/aB/w32gf8B9oH/AAAAAAAAAAAAAAAAAAAA 360 | AAAAAAAA9oH/APaB/wL2gf8x9oH/q/aB//32gf//9oH///aB///2gf//9oH/rvaB/wf2gf8A9oH/fPaB 361 | ///2gf//9oH///aB///2gf//9oH/oPaB/wH2gf8AAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB 362 | /wH2gf8D9oH/BfaB/wb2gf8F9oH/A/aB/wH2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 363 | AAAAAAAA9oH/APaB/wD2gf8F9oH/MfaB/432gf/k9oH///aB///2gf//9oH///aB///2gf//9oH/bfaB 364 | /wD2gf8A9oH/NvaB/+z2gf//9oH///aB///2gf//9oH/xvaB/xf2gf8A9oH/AAAAAAAAAAAAAAAAAAAA 365 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 366 | AAAAAAAAAAAAAPaB/wD2gf8C9oH/GvaB/1P2gf+k9oH/5/aB///2gf//9oH///aB///2gf//9oH///aB 367 | ///2gf/k9oH/KvaB/wD2gf8A9oH/CPaB/632gf//9oH///aB///2gf//9oH//PaB/6n2gf9I9oH/HPaB 368 | /wbzgf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 369 | AAD3gv8A9oH/APaB/wP2gf8R9oH/L/aB/172gf+c9oH/1faB//j2gf//9oH///aB///2gf//9oH///aB 370 | ///2gf//9oH///aB///2gf+e9oH/BPaB/wD2gf8A9oH/APaB/072gf/09oH///aB///2gf//9oH///aB 371 | ///2gf/29oH/2faB/7H2gf+G9oH/YPaB/0P2gf8u9oH/IPaB/xf2gf8R9oH/DvaB/w32gf8O9oH/EfaB 372 | /xf2gf8g9oH/LfaB/0D2gf9b9oH/ffaB/6T2gf/K9oH/6vaB//z2gf//9oH///aB///2gf//9oH///aB 373 | ///2gf//9oH///aB///2gf//9oH///aB/+72gf9B9oH/AAAAAAAAAAAA9oH/APaB/wv2gf+t9oH///aB 374 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH//faB//b2gf/r9oH/4PaB/9X2gf/M9oH/x/aB 375 | /8b2gf/H9oH/zPaB/9X2gf/f9oH/6vaB//X2gf/99oH///aB///2gf//9oH///aB///2gf//9oH///aB 376 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB/5/2gf8G9oH/AAAAAAAAAAAA9oH/APaB 377 | /wD2gf889oH/6PaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 378 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 379 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/4PaB/zH2gf8A9oH/AAAA 380 | AAAAAAAAAAAAAPaB/wD2gf8C9oH/fPaB//z2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 381 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 382 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/59oH/bveB 383 | /wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/EfaB/632gf//9oH///aB///2gf//9oH///aB 384 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 385 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 386 | ///2gf+g9oH/DPaB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB/yX2gf/H9oH///aB 387 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 388 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 389 | ///2gf//9oH///aB/7z2gf8d9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB 390 | /wD2gf8y9oH/z/aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 391 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 392 | ///2gf//9oH///aB///2gf//9oH/xfaB/yr2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 393 | AAAAAAAAAAAAAPaB/wD2gf8A9oH/MvaB/8f2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 394 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 395 | ///2gf//9oH///aB///2gf//9oH///aB///2gf++9oH/KvaB/wD2gf8AAAAAAAAAAAAAAAAAAAAAAAAA 396 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2gf8A9oH/APaB/yX2gf+t9oH/+/aB///2gf//9oH///aB 397 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 398 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/+faB/6L2gf8e9oH/APaB/wAAAAAAAAAAAAAA 399 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8R9oH/e/aB 400 | /+j2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 401 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf/j9oH/cfaB/w32gf8A9oH/AAAA 402 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 403 | AAD2gf8A9oH/A/aB/zv2gf+s9oH/9PaB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB 404 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH/8faB/6T2gf8z9oH/AfaB 405 | /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 406 | AAAAAAAAAAAAAAAAAAAAAAAA9oH/APaB/wD2gf8K9oH/TPaB/6z2gf/r9oH///aB///2gf//9oH///aB 407 | ///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH///aB///2gf//9oH//vaB/+j2gf+l9oH/RfaB 408 | /wj2gf8A9oH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 409 | 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 638 | Uy52AAAAAElFTkSuQmCC 639 | 640 | 641 | -------------------------------------------------------------------------------- /SpotifyPatcher/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace SpotifyPatcher 8 | { 9 | static class Program 10 | { 11 | 12 | /// 13 | /// The main entry point for the application. 14 | /// 15 | [STAThread] 16 | static void Main() 17 | { 18 | Application.EnableVisualStyles(); 19 | Application.SetCompatibleTextRenderingDefault(false); 20 | Application.Run(new Main()); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SpotifyPatcher/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SpotifyPatcher")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Takaovi")] 12 | [assembly: AssemblyProduct("SpotifyPatcher")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("e20fdf92-abe3-4bee-83d8-84854b83394d")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SpotifyPatcher/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SpotifyPatcher.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SpotifyPatcher.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap Logo { 67 | get { 68 | object obj = ResourceManager.GetObject("Logo", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /SpotifyPatcher/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | -------------------------------------------------------------------------------- /SpotifyPatcher/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SpotifyPatcher.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SpotifyPatcher/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SpotifyPatcher/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Welcome, first of all, thanks for using my little patcher! 2 | 3 | * If you get ads after reboot your antivirus has probably modified the hosts file or Spotify has managed to update itself. 4 | 5 | For any further assistance reach me out on Github, github.com/Takaovi. 6 | -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Batch/ModifyHosts.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | IF NOT "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b) 3 | SETLOCAL 4 | CD /d %~dp0 5 | COPY /v /y "%CD%\hosts" "%WinDir%\system32\drivers\etc\hosts" -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Batch/NoAds.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Takaovi/SpotifyPatcher/16e63acf04663c7c5f415d40a9eb2c0835495a49/SpotifyPatcher/Resources/Batch/NoAds.bat -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Batch/NoUpdates.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | TASKKILL /IM Spotify.exe /F 3 | TASKKILL /IM SpotifyWebHelper.exe /F 4 | TASKKILL /IM SpotifyStartupTask.exe /F 5 | TASKKILL /IM SpotifyMigrator.exe /F 6 | 7 | rmdir /s /q %localappdata%\Spotify\Update 8 | mkdir %localappdata%\Spotify\Update 9 | attrib -A +R %localappdata%\Spotify\Update 10 | 11 | del %appdata%\Spotify\Spotify_new.exe 12 | type NUL > %appdata%\Spotify\Spotify_new.txt 13 | ren %appdata%\Spotify\*.txt *.exe 14 | attrib -A +R %appdata%\Spotify\Spotify_new.exe 15 | del %appdata%\Spotify\Spotify_new.txt 16 | 17 | del %appdata%\Spotify\SpotifyWebHelper.exe 18 | type NUL > %appdata%\Spotify\SpotifyWebHelper.txt 19 | ren %appdata%\Spotify\*.txt *.exe 20 | attrib -A +R %appdata%\Spotify\SpotifyWebHelper.exe 21 | del %appdata%\Spotify\SpotifyWebHelper.txt 22 | 23 | del %appdata%\Spotify\SpotifyStartupTask.exe 24 | type NUL > %appdata%\Spotify\SpotifyStartupTask.txt 25 | ren %appdata%\Spotify\*.txt *.exe 26 | attrib -A +R %appdata%\Spotify\SpotifyStartupTask.exe 27 | del %appdata%\Spotify\SpotifyStartupTask.txt 28 | 29 | del %appdata%\Spotify\SpotifyMigrator.exe 30 | type NUL > %appdata%\Spotify\SpotifyMigrator.txt 31 | ren %appdata%\Spotify\*.txt *.exe 32 | attrib -A +R %appdata%\Spotify\SpotifyMigrator.exe 33 | del %appdata%\Spotify\SpotifyMigrator.txt 34 | -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Batch/Regedit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store" /v %appdata%\Spotify\Spotify.exe /f 3 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v Spotify /f 4 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v "Spotify Web Helper" /f 5 | reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Spotify" /v Version /t REG_SZ /d 1.1.48.625.g1c87c7f7 /F 6 | reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Spotify" /v DisplayVersion /t REG_SZ /d 1.1.48.625.g1c87c7f7 /F 7 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v Spotify /f 8 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "Spotify Web Helper" /f -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Batch/hosts: -------------------------------------------------------------------------------- 1 | # This is a modified HOSTS file by SpotifyPatcher 2 | # Please make sure your file is clean. The original Github repo is github.com/Takaovi/SpotifyPatcher. 3 | ####################################################### 4 | 127.0.0.1 1435575.fls.doubleclick.net 5 | 127.0.0.1 2542116.fls.doubleclick.net 6 | 127.0.0.1 2mdn.net 7 | 127.0.0.1 3642305.fls.doubleclick.net 8 | 127.0.0.1 3765329.fls.doubleclick.net 9 | 127.0.0.1 3ad.doubleclick.net 10 | 127.0.0.1 4.afs.googleadservices.com 11 | 127.0.0.1 4053494.fls.doubleclick.net 12 | 127.0.0.1 4236808.fls.doubleclick.net 13 | 127.0.0.1 4360661.fls.doubleclick.net 14 | 127.0.0.1 4488352.fls.doubleclick.net 15 | 127.0.0.1 4514783.fls.doubleclick.net 16 | 127.0.0.1 4684100.fls.doubleclick.net 17 | 127.0.0.1 5362399.fls.doubleclick.net 18 | 127.0.0.1 ad-ace.doubleclick.net 19 | 127.0.0.1 ad-apac.doubleclick.net 20 | 127.0.0.1 ad-emea.doubleclick.net 21 | 127.0.0.1 ad-g.doubleclick.net 22 | 127.0.0.1 ad-yt-bfp.doubleclick.net 23 | 127.0.0.1 ad.3au.doubleclick.net 24 | 127.0.0.1 ad.ae.doubleclick.net 25 | 127.0.0.1 ad.ar.doubleclick.net 26 | 127.0.0.1 ad.at.doubleclick.net 27 | 127.0.0.1 ad.au.doubleclick.net 28 | 127.0.0.1 ad.be.doubleclick.net 29 | 127.0.0.1 ad.bg.doubleclick.net 30 | 127.0.0.1 ad.br.doubleclick.net 31 | 127.0.0.1 ad.ca.doubleclick.net 32 | 127.0.0.1 ad.ch.doubleclick.net 33 | 127.0.0.1 ad.cl.doubleclick.net 34 | 127.0.0.1 ad.cn.doubleclick.net 35 | 127.0.0.1 ad.de.doubleclick.net 36 | 127.0.0.1 ad.dk.doubleclick.net 37 | 127.0.0.1 ad.doubleclick.net 38 | 127.0.0.1 ad.es.doubleclick.net 39 | 127.0.0.1 ad.fi.doubleclick.net 40 | 127.0.0.1 ad.fr.doubleclick.net 41 | 127.0.0.1 ad.gr.doubleclick.net 42 | 127.0.0.1 ad.hk.doubleclick.net 43 | 127.0.0.1 ad.hr.doubleclick.net 44 | 127.0.0.1 ad.hu.doubleclick.net 45 | 127.0.0.1 ad.ie.doubleclick.net 46 | 127.0.0.1 ad.in.doubleclick.net 47 | 127.0.0.1 ad.it.doubleclick.net 48 | 127.0.0.1 ad.jp.doubleclick.net 49 | 127.0.0.1 ad.kr.doubleclick.net 50 | 127.0.0.1 ad.mo.doubleclick.net 51 | 127.0.0.1 ad.my.doubleclick.net 52 | 127.0.0.1 ad.n2434.doubleclick.net 53 | 127.0.0.1 ad.nl.doubleclick.net 54 | 127.0.0.1 ad.no.doubleclick.net 55 | 127.0.0.1 ad.nz.doubleclick.net 56 | 127.0.0.1 ad.pl.doubleclick.net 57 | 127.0.0.1 ad.pt.doubleclick.net 58 | 127.0.0.1 ad.ro.doubleclick.net 59 | 127.0.0.1 ad.rs.doubleclick.net 60 | 127.0.0.1 ad.ru.doubleclick.net 61 | 127.0.0.1 ad.se.doubleclick.net 62 | 127.0.0.1 ad.sg.doubleclick.net 63 | 127.0.0.1 ad.si.doubleclick.net 64 | 127.0.0.1 ad.terra.doubleclick.net 65 | 127.0.0.1 ad.th.doubleclick.net 66 | 127.0.0.1 ad.tw.doubleclick.net 67 | 127.0.0.1 ad.uk.doubleclick.net 68 | 127.0.0.1 ad.us.doubleclick.net 69 | 127.0.0.1 ad.ve.doubleclick.net 70 | 127.0.0.1 ad.za.doubleclick.net 71 | 127.0.0.1 ad2.doubleclick.net 72 | 127.0.0.1 adclick.g.doublecklick.net 73 | 127.0.0.1 adclick.g.doubleclick.net 74 | 127.0.0.1 adeventtracker.spotify.com 75 | 127.0.0.1 adnxs.com 76 | 127.0.0.1 ads-fa.spotify.com 77 | 127.0.0.1 ads.cc-dt.com 78 | 127.0.0.1 ads.pubmatic.com 79 | 127.0.0.1 ads.yahoo.com 80 | 127.0.0.1 adservices.google.com 81 | 127.0.0.1 adwords.google.lloymlincs.com 82 | 127.0.0.1 affiliate.2mdn.net 83 | 127.0.0.1 affiliate.googleusercontent.com 84 | 127.0.0.1 agkn.com 85 | 127.0.0.1 aktrack.pubmatic.com 86 | 127.0.0.1 amn.doubleclick.net 87 | 127.0.0.1 analytic-google.com 88 | 127.0.0.1 analytics-api-samples.googlecode.com 89 | 127.0.0.1 analytics.google.com 90 | 127.0.0.1 analytics.spotify.com 91 | 127.0.0.1 anon.doubleclick.speedera.net 92 | 127.0.0.1 aud.pubmatic.com 93 | 127.0.0.1 audio-ec.spotify.com 94 | 127.0.0.1 audio-fa.spotify.com 95 | 127.0.0.1 audio-sp-ash.spotify.com 96 | 127.0.0.1 audio-sp-tyo.spotify.com 97 | 127.0.0.1 audio-sp.spotify.com 98 | 127.0.0.1 audio2.spotify.com 99 | 127.0.0.1 b.scorecardresearch.com 100 | 127.0.0.1 bid.g.doubleclick.net 101 | 127.0.0.1 bid.pubmatic.com 102 | 127.0.0.1 bounceexchange.com 103 | 127.0.0.1 bs.serving-sys.com 104 | 127.0.0.1 buttons.googlesyndication.com 105 | 127.0.0.1 cc-dt.com 106 | 127.0.0.1 clickserve.cc-dt.com 107 | 127.0.0.1 clientmetrics-pa.googleapis.com 108 | 127.0.0.1 cloudfront.net 109 | 127.0.0.1 cm.g.doubleclick.net 110 | 127.0.0.1 content.bitsontherun.com 111 | 127.0.0.1 core.insightexpressai.com 112 | 127.0.0.1 crashdump.spotify.com 113 | 127.0.0.1 creative.cc-dt.com 114 | 127.0.0.1 creatives.doubleclick.net 115 | 127.0.0.1 d2gi7ultltnc2u.cloudfront.net 116 | 127.0.0.1 d3rt1990lpmkn.cloudfront.net 117 | 127.0.0.1 desktop.spotify.com 118 | 127.0.0.1 dfp.doubleclick.net 119 | 127.0.0.1 domains.googlesyndication.com 120 | 127.0.0.1 doubleclick.com 121 | 127.0.0.1 doubleclick.de 122 | 127.0.0.1 doubleclick.ne.jp 123 | 127.0.0.1 doubleclick.net 124 | 127.0.0.1 dp.g.doubleclick.net 125 | 127.0.0.1 ds.serving-sys.com 126 | 127.0.0.1 ebaycn.doubleclick.net 127 | 127.0.0.1 ebaytw.doubleclick.net 128 | 127.0.0.1 exnjadgda1.doubleclick.net 129 | 127.0.0.1 exnjadgda2.doubleclick.net 130 | 127.0.0.1 exnjadgds1.doubleclick.net 131 | 127.0.0.1 exnjmdgda1.doubleclick.net 132 | 127.0.0.1 exnjmdgds1.doubleclick.net 133 | 127.0.0.1 fastclick.net 134 | 127.0.0.1 feedads.g.doubleclick.net 135 | 127.0.0.1 feedads.googleadservices.com 136 | 127.0.0.1 fgoogle.com 137 | 127.0.0.1 fls.au.doubleclick.net 138 | 127.0.0.1 fls.doubleclick.net 139 | 127.0.0.1 fls.uk.doubleclick.net 140 | 127.0.0.1 gads.pubmatic.com 141 | 127.0.0.1 gan.doubleclick.net 142 | 127.0.0.1 gcdn.2mdn.net 143 | 127.0.0.1 gd1.doubleclick.net 144 | 127.0.0.1 gd10.doubleclick.net 145 | 127.0.0.1 gd11.doubleclick.net 146 | 127.0.0.1 gd12.doubleclick.net 147 | 127.0.0.1 gd13.doubleclick.net 148 | 127.0.0.1 gd14.doubleclick.net 149 | 127.0.0.1 gd15.doubleclick.net 150 | 127.0.0.1 gd16.doubleclick.net 151 | 127.0.0.1 gd17.doubleclick.net 152 | 127.0.0.1 gd18.doubleclick.net 153 | 127.0.0.1 gd19.doubleclick.net 154 | 127.0.0.1 gd2.doubleclick.net 155 | 127.0.0.1 gd20.doubleclick.net 156 | 127.0.0.1 gd21.doubleclick.net 157 | 127.0.0.1 gd22.doubleclick.net 158 | 127.0.0.1 gd23.doubleclick.net 159 | 127.0.0.1 gd24.doubleclick.net 160 | 127.0.0.1 gd25.doubleclick.net 161 | 127.0.0.1 gd26.doubleclick.net 162 | 127.0.0.1 gd27.doubleclick.net 163 | 127.0.0.1 gd28.doubleclick.net 164 | 127.0.0.1 gd29.doubleclick.net 165 | 127.0.0.1 gd3.doubleclick.net 166 | 127.0.0.1 gd30.doubleclick.net 167 | 127.0.0.1 gd31.doubleclick.net 168 | 127.0.0.1 gd4.doubleclick.net 169 | 127.0.0.1 gd5.doubleclick.net 170 | 127.0.0.1 gd7.doubleclick.net 171 | 127.0.0.1 gd8.doubleclick.net 172 | 127.0.0.1 gd9.doubleclick.net 173 | 127.0.0.1 google-analytics.com 174 | 127.0.0.1 googleads.g.doubleclick.net 175 | 127.0.0.1 googleads2.g.doubleclick.net 176 | 127.0.0.1 googleads4.g.doubleclick.net 177 | 127.0.0.1 googleadservices.com 178 | 127.0.0.1 googlepositions.com 179 | 127.0.0.1 googlesyndication.com 180 | 127.0.0.1 googletagservices.com 181 | 127.0.0.1 gtssl2-ocsp.geotrust.com 182 | 127.0.0.1 gvt1.com 183 | 127.0.0.1 haso.pubmatic.com 184 | 127.0.0.1 heads-fab.spotify.com 185 | 127.0.0.1 image2.pubmatic.com 186 | 127.0.0.1 ir.doubleclick.net 187 | 127.0.0.1 iv.doubleclick.net 188 | 127.0.0.1 js.moatads.com 189 | 127.0.0.1 ln.doubleclick.net 190 | 127.0.0.1 log.spotify.com 191 | 127.0.0.1 m.2mdn.net 192 | 127.0.0.1 m.de.2mdn.net 193 | 127.0.0.1 m.doubleclick.net 194 | 127.0.0.1 m.fr.2mdn.net 195 | 127.0.0.1 m.uk.2mdn.net 196 | 127.0.0.1 m1.2mdn.net 197 | 127.0.0.1 m1.ae.2mdn.net 198 | 127.0.0.1 m1.au.2mdn.net 199 | 127.0.0.1 m1.be.2mdn.net 200 | 127.0.0.1 m1.br.2mdn.net 201 | 127.0.0.1 m1.ca.2mdn.net 202 | 127.0.0.1 m1.cn.2mdn.net 203 | 127.0.0.1 m1.de.2mdn.net 204 | 127.0.0.1 m1.dk.2mdn.net 205 | 127.0.0.1 m1.doubleclick.net 206 | 127.0.0.1 m1.emea.2mdn.net 207 | 127.0.0.1 m1.emea.2mdn.net.edgesuite.net 208 | 127.0.0.1 m1.es.2mdn.net 209 | 127.0.0.1 m1.fi.2mdn.net 210 | 127.0.0.1 m1.fr.2mdn.net 211 | 127.0.0.1 m1.it.2mdn.net 212 | 127.0.0.1 m1.jp.2mdn.net 213 | 127.0.0.1 m1.nl.2mdn.net 214 | 127.0.0.1 m1.no.2mdn.net 215 | 127.0.0.1 m1.nz.2mdn.net 216 | 127.0.0.1 m1.pl.2mdn.net 217 | 127.0.0.1 m1.se.2mdn.net 218 | 127.0.0.1 m1.sg.2mdn.net 219 | 127.0.0.1 m1.uk.2mdn.net 220 | 127.0.0.1 m1.ve.2mdn.net 221 | 127.0.0.1 m1.za.2mdn.net 222 | 127.0.0.1 m2.ae.2mdn.net 223 | 127.0.0.1 m2.au.2mdn.net 224 | 127.0.0.1 m2.be.2mdn.net 225 | 127.0.0.1 m2.br.2mdn.net 226 | 127.0.0.1 m2.ca.2mdn.net 227 | 127.0.0.1 m2.cn.2mdn.net 228 | 127.0.0.1 m2.cn.doubleclick.net 229 | 127.0.0.1 m2.de.2mdn.net 230 | 127.0.0.1 m2.dk.2mdn.net 231 | 127.0.0.1 m2.doubleclick.net 232 | 127.0.0.1 m2.es.2mdn.net 233 | 127.0.0.1 m2.fi.2mdn.net 234 | 127.0.0.1 m2.fr.2mdn.net 235 | 127.0.0.1 m2.it.2mdn.net 236 | 127.0.0.1 m2.jp.2mdn.net 237 | 127.0.0.1 m2.nl.2mdn.net 238 | 127.0.0.1 m2.no.2mdn.net 239 | 127.0.0.1 m2.nz.2mdn.net 240 | 127.0.0.1 m2.pl.2mdn.net 241 | 127.0.0.1 m2.se.2mdn.net 242 | 127.0.0.1 m2.sg.2mdn.net 243 | 127.0.0.1 m2.uk.2mdn.net 244 | 127.0.0.1 m2.ve.2mdn.net 245 | 127.0.0.1 m2.za.2mdn.net 246 | 127.0.0.1 m3.2mdn.net 247 | 127.0.0.1 m3.ae.2mdn.net 248 | 127.0.0.1 m3.au.2mdn.net 249 | 127.0.0.1 m3.be.2mdn.net 250 | 127.0.0.1 m3.br.2mdn.net 251 | 127.0.0.1 m3.ca.2mdn.net 252 | 127.0.0.1 m3.cn.2mdn.net 253 | 127.0.0.1 m3.de.2mdn.net 254 | 127.0.0.1 m3.dk.2mdn.net 255 | 127.0.0.1 m3.doubleclick.net 256 | 127.0.0.1 m3.es.2mdn.net 257 | 127.0.0.1 m3.fi.2mdn.net 258 | 127.0.0.1 m3.fr.2mdn.net 259 | 127.0.0.1 m3.it.2mdn.net 260 | 127.0.0.1 m3.jp.2mdn.net 261 | 127.0.0.1 m3.nl.2mdn.net 262 | 127.0.0.1 m3.no.2mdn.net 263 | 127.0.0.1 m3.nz.2mdn.net 264 | 127.0.0.1 m3.pl.2mdn.net 265 | 127.0.0.1 m3.se.2mdn.net 266 | 127.0.0.1 m3.sg.2mdn.net 267 | 127.0.0.1 m3.uk.2mdn.net 268 | 127.0.0.1 m3.ve.2mdn.net 269 | 127.0.0.1 m3.za.2mdn.net 270 | 127.0.0.1 m4.ae.2mdn.net 271 | 127.0.0.1 m4.afs.googleadservices.com 272 | 127.0.0.1 m4.au.2mdn.net 273 | 127.0.0.1 m4.be.2mdn.net 274 | 127.0.0.1 m4.br.2mdn.net 275 | 127.0.0.1 m4.ca.2mdn.net 276 | 127.0.0.1 m4.cn.2mdn.net 277 | 127.0.0.1 m4.de.2mdn.net 278 | 127.0.0.1 m4.dk.2mdn.net 279 | 127.0.0.1 m4.doubleclick.net 280 | 127.0.0.1 m4.es.2mdn.net 281 | 127.0.0.1 m4.fi.2mdn.net 282 | 127.0.0.1 m4.fr.2mdn.net 283 | 127.0.0.1 m4.it.2mdn.net 284 | 127.0.0.1 m4.jp.2mdn.net 285 | 127.0.0.1 m4.nl.2mdn.net 286 | 127.0.0.1 m4.no.2mdn.net 287 | 127.0.0.1 m4.nz.2mdn.net 288 | 127.0.0.1 m4.pl.2mdn.net 289 | 127.0.0.1 m4.se.2mdn.net 290 | 127.0.0.1 m4.sg.2mdn.net 291 | 127.0.0.1 m4.uk.2mdn.net 292 | 127.0.0.1 m4.ve.2mdn.net 293 | 127.0.0.1 m4.za.2mdn.net 294 | 127.0.0.1 m5.ae.2mdn.net 295 | 127.0.0.1 m5.au.2mdn.net 296 | 127.0.0.1 m5.be.2mdn.net 297 | 127.0.0.1 m5.br.2mdn.net 298 | 127.0.0.1 m5.ca.2mdn.net 299 | 127.0.0.1 m5.cn.2mdn.net 300 | 127.0.0.1 m5.de.2mdn.net 301 | 127.0.0.1 m5.dk.2mdn.net 302 | 127.0.0.1 m5.doubleclick.net 303 | 127.0.0.1 m5.es.2mdn.net 304 | 127.0.0.1 m5.fi.2mdn.net 305 | 127.0.0.1 m5.fr.2mdn.net 306 | 127.0.0.1 m5.it.2mdn.net 307 | 127.0.0.1 m5.jp.2mdn.net 308 | 127.0.0.1 m5.nl.2mdn.net 309 | 127.0.0.1 m5.no.2mdn.net 310 | 127.0.0.1 m5.nz.2mdn.net 311 | 127.0.0.1 m5.pl.2mdn.net 312 | 127.0.0.1 m5.se.2mdn.net 313 | 127.0.0.1 m5.sg.2mdn.net 314 | 127.0.0.1 m5.uk.2mdn.net 315 | 127.0.0.1 m5.ve.2mdn.net 316 | 127.0.0.1 m5.za.2mdn.net 317 | 127.0.0.1 m6.ae.2mdn.net 318 | 127.0.0.1 m6.au.2mdn.net 319 | 127.0.0.1 m6.be.2mdn.net 320 | 127.0.0.1 m6.br.2mdn.net 321 | 127.0.0.1 m6.ca.2mdn.net 322 | 127.0.0.1 m6.cn.2mdn.net 323 | 127.0.0.1 m6.de.2mdn.net 324 | 127.0.0.1 m6.dk.2mdn.net 325 | 127.0.0.1 m6.doubleclick.net 326 | 127.0.0.1 m6.es.2mdn.net 327 | 127.0.0.1 m6.fi.2mdn.net 328 | 127.0.0.1 m6.fr.2mdn.net 329 | 127.0.0.1 m6.it.2mdn.net 330 | 127.0.0.1 m6.jp.2mdn.net 331 | 127.0.0.1 m6.nl.2mdn.net 332 | 127.0.0.1 m6.no.2mdn.net 333 | 127.0.0.1 m6.nz.2mdn.net 334 | 127.0.0.1 m6.pl.2mdn.net 335 | 127.0.0.1 m6.se.2mdn.net 336 | 127.0.0.1 m6.sg.2mdn.net 337 | 127.0.0.1 m6.uk.2mdn.net 338 | 127.0.0.1 m6.ve.2mdn.net 339 | 127.0.0.1 m6.za.2mdn.net 340 | 127.0.0.1 m7.ae.2mdn.net 341 | 127.0.0.1 m7.au.2mdn.net 342 | 127.0.0.1 m7.be.2mdn.net 343 | 127.0.0.1 m7.br.2mdn.net 344 | 127.0.0.1 m7.ca.2mdn.net 345 | 127.0.0.1 m7.cn.2mdn.net 346 | 127.0.0.1 m7.de.2mdn.net 347 | 127.0.0.1 m7.dk.2mdn.net 348 | 127.0.0.1 m7.doubleclick.net 349 | 127.0.0.1 m7.es.2mdn.net 350 | 127.0.0.1 m7.fi.2mdn.net 351 | 127.0.0.1 m7.fr.2mdn.net 352 | 127.0.0.1 m7.it.2mdn.net 353 | 127.0.0.1 m7.jp.2mdn.net 354 | 127.0.0.1 m7.nl.2mdn.net 355 | 127.0.0.1 m7.no.2mdn.net 356 | 127.0.0.1 m7.nz.2mdn.net 357 | 127.0.0.1 m7.pl.2mdn.net 358 | 127.0.0.1 m7.se.2mdn.net 359 | 127.0.0.1 m7.sg.2mdn.net 360 | 127.0.0.1 m7.uk.2mdn.net 361 | 127.0.0.1 m7.ve.2mdn.net 362 | 127.0.0.1 m7.za.2mdn.net 363 | 127.0.0.1 m8.ae.2mdn.net 364 | 127.0.0.1 m8.au.2mdn.net 365 | 127.0.0.1 m8.be.2mdn.net 366 | 127.0.0.1 m8.br.2mdn.net 367 | 127.0.0.1 m8.ca.2mdn.net 368 | 127.0.0.1 m8.cn.2mdn.net 369 | 127.0.0.1 m8.de.2mdn.net 370 | 127.0.0.1 m8.dk.2mdn.net 371 | 127.0.0.1 m8.doubleclick.net 372 | 127.0.0.1 m8.es.2mdn.net 373 | 127.0.0.1 m8.fi.2mdn.net 374 | 127.0.0.1 m8.fr.2mdn.net 375 | 127.0.0.1 m8.it.2mdn.net 376 | 127.0.0.1 m8.jp.2mdn.net 377 | 127.0.0.1 m8.nl.2mdn.net 378 | 127.0.0.1 m8.no.2mdn.net 379 | 127.0.0.1 m8.nz.2mdn.net 380 | 127.0.0.1 m8.pl.2mdn.net 381 | 127.0.0.1 m8.se.2mdn.net 382 | 127.0.0.1 m8.sg.2mdn.net 383 | 127.0.0.1 m8.uk.2mdn.net 384 | 127.0.0.1 m8.ve.2mdn.net 385 | 127.0.0.1 m8.za.2mdn.net 386 | 127.0.0.1 m9.ae.2mdn.net 387 | 127.0.0.1 m9.au.2mdn.net 388 | 127.0.0.1 m9.be.2mdn.net 389 | 127.0.0.1 m9.br.2mdn.net 390 | 127.0.0.1 m9.ca.2mdn.net 391 | 127.0.0.1 m9.cn.2mdn.net 392 | 127.0.0.1 m9.de.2mdn.net 393 | 127.0.0.1 m9.dk.2mdn.net 394 | 127.0.0.1 m9.doubleclick.net 395 | 127.0.0.1 m9.es.2mdn.net 396 | 127.0.0.1 m9.fi.2mdn.net 397 | 127.0.0.1 m9.fr.2mdn.net 398 | 127.0.0.1 m9.it.2mdn.net 399 | 127.0.0.1 m9.jp.2mdn.net 400 | 127.0.0.1 m9.nl.2mdn.net 401 | 127.0.0.1 m9.no.2mdn.net 402 | 127.0.0.1 m9.nz.2mdn.net 403 | 127.0.0.1 m9.pl.2mdn.net 404 | 127.0.0.1 m9.se.2mdn.net 405 | 127.0.0.1 m9.sg.2mdn.net 406 | 127.0.0.1 m9.uk.2mdn.net 407 | 127.0.0.1 m9.ve.2mdn.net 408 | 127.0.0.1 m9.za.2mdn.net 409 | 127.0.0.1 marketing.doubleclickindustries.com 410 | 127.0.0.1 media-match.com 411 | 127.0.0.1 mimageads.googleadservices.com 412 | 127.0.0.1 mimageads1.googleadservices.com 413 | 127.0.0.1 mimageads2.googleadservices.com 414 | 127.0.0.1 mimageads3.googleadservices.com 415 | 127.0.0.1 mimageads4.googleadservices.com 416 | 127.0.0.1 mimageads5.googleadservices.com 417 | 127.0.0.1 mimageads6.googleadservices.com 418 | 127.0.0.1 mimageads7.googleadservices.com 419 | 127.0.0.1 mimageads8.googleadservices.com 420 | 127.0.0.1 mimageads9.googleadservices.com 421 | 127.0.0.1 motifcdn.doubleclick.net 422 | 127.0.0.1 motifcdn2.doubleclick.net 423 | 127.0.0.1 mpartner.googleadservices.com 424 | 127.0.0.1 n3302ad.doubleclick.net 425 | 127.0.0.1 n3349ad.doubleclick.net 426 | 127.0.0.1 n4052ad.doubleclick.net 427 | 127.0.0.1 n4061ad.doubleclick.net 428 | 127.0.0.1 n4061ad.hk.doubleclick.net 429 | 127.0.0.1 n4403ad.doubleclick.net 430 | 127.0.0.1 n479ad.doubleclick.net 431 | 127.0.0.1 omaze.com 432 | 127.0.0.1 optimize.doubleclick.net 433 | 127.0.0.1 pagead-googlehosted.l.google.com 434 | 127.0.0.1 pagead.googlesyndication.com 435 | 127.0.0.1 pagead.l.doubleclick.net 436 | 127.0.0.1 pagead.l.google.com 437 | 127.0.0.1 pagead1.googlesyndication.com 438 | 127.0.0.1 pagead2.googleadservices.com 439 | 127.0.0.1 pagead2.googlesyndication.com 440 | 127.0.0.1 pagead3.googlesyndication.com 441 | 127.0.0.1 pagead46.l.doubleclick.net 442 | 127.0.0.1 partner.googleadservices.com 443 | 127.0.0.1 partnerad.l.doubleclick.net 444 | 127.0.0.1 partnerad.l.google.com 445 | 127.0.0.1 paypalssl.doubleclick.net 446 | 127.0.0.1 pubads.g.doubleclick.net 447 | 127.0.0.1 pubmatic.com 448 | 127.0.0.1 ravenjs.com 449 | 127.0.0.1 rd.intl.doubleclick.net 450 | 127.0.0.1 redirector.gvt1.com 451 | 127.0.0.1 rlcdn.com 452 | 127.0.0.1 rmcdn.2mdn.net 453 | 127.0.0.1 rmcdn.f.2mdn.net 454 | 127.0.0.1 router.googlecom.biz 455 | 127.0.0.1 s0.2mdn.net 456 | 127.0.0.1 s1.2mdn.net 457 | 127.0.0.1 127.0.0.1 s2.video.doubleclick.net 458 | 127.0.0.1 securepubads.g.doubleclick.net 459 | 127.0.0.1 showads.pubmatic.com 460 | 127.0.0.1 showads1000.pubmatic.com 461 | 127.0.0.1 showadsak.pubmatic.com 462 | 127.0.0.1 so.2mdn.net 463 | 127.0.0.1 spclient.wg.spotify.com 464 | 127.0.0.1 ssl.google-analytics.com 465 | 127.0.0.1 static.2mdn.net 466 | 127.0.0.1 static.doubleclick.net 467 | 127.0.0.1 stats.g.doubleclick.net 468 | 127.0.0.1 survey.g.doubleclick.net 469 | 127.0.0.1 tpc.googlesyndication.com 470 | 127.0.0.1 track.pubmatic.com 471 | 127.0.0.1 twx.2mdn.net 472 | 127.0.0.1 twx.doubleclick.net 473 | 127.0.0.1 uunyadgda1.doubleclick.net 474 | 127.0.0.1 uunyadgds1.doubleclick.net 475 | 127.0.0.1 v.jwpcdn.com 476 | 127.0.0.1 video-ad-stats.googlesyndication.com 477 | 127.0.0.1 video-stats.video.google.com 478 | 127.0.0.1 weblb-wg.gslb.spotify.com 479 | 127.0.0.1 wintricksbanner.googlepages.com 480 | 127.0.0.1 www-google-analytics.l.google.com 481 | 127.0.0.1 www-google.nl 482 | 127.0.0.1 www.adwords.google.lloymlincs.com 483 | 127.0.0.1 www.analytic-google.com 484 | 127.0.0.1 www.doubleclick.com 485 | 127.0.0.1 www.doubleclick.net 486 | 127.0.0.1 www.doubleclickbygoogle.com 487 | 127.0.0.1 www.google-analytics.com 488 | 127.0.0.1 www.google-docs.info 489 | 127.0.0.1 www.google-docs.org 490 | 127.0.0.1 www.google-tour.com 491 | 127.0.0.1 www.google.ienet.pl 492 | 127.0.0.1 www.google.xweb24.pl 493 | 127.0.0.1 www.googleadservices.com 494 | 127.0.0.1 www.googleapps-espana.com 495 | 127.0.0.1 www.googleapps-jobs.com 496 | 127.0.0.1 www.googleapps-spain.com 497 | 127.0.0.1 www.googlechrome2013.com 498 | 127.0.0.1 www.googletagmanager.com 499 | 127.0.0.1 www.googletagservices.com 500 | 127.0.0.1 www.googlew.com 501 | 127.0.0.1 www.googlewordpad.info 502 | 127.0.0.1 www.partner.googleadservices.com 503 | 127.0.0.1 www.www-google.nl 504 | 127.0.0.1 www.wwwgoogles.com 505 | 127.0.0.1 www2.doubleclick.com 506 | 127.0.0.1 www3.doubleclick.com 507 | 127.0.0.1 www3.doubleclick.net 508 | 127.0.0.1 video-ad-stats.googlesyndication.com 509 | 127.0.0.1 weblb-wg.dual-gslb.spotify.com 510 | 127.0.0.1 weblb-wg.gslb.spotify.com 511 | 127.0.0.1 ds.serving-sys.com 512 | 127.0.0.1 bs.serving-sys.com 513 | 0.0.0.0 upgrade.spotify.com 514 | 0.0.0.0 www.spotify-desktop.com 515 | 0.0.0.0 sto3-accesspoint-a88.sto3.spotify.net 516 | 0.0.0.0 upgrade.scdn.co 517 | 0.0.0.0 prod.spotify.map.fastlylb.net 518 | -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Exe/Spotify.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Takaovi/SpotifyPatcher/16e63acf04663c7c5f415d40a9eb2c0835495a49/SpotifyPatcher/Resources/Exe/Spotify.exe -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Extra/PatchedSpotify.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Takaovi/SpotifyPatcher/16e63acf04663c7c5f415d40a9eb2c0835495a49/SpotifyPatcher/Resources/Extra/PatchedSpotify.lnk -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Extra/ShortCut.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | START %Appdata%\Spotify\Spotify.exe 3 | SETLOCAL EnableExtensions 4 | set EXE=Spotify.exe 5 | :LOOPSTART 6 | FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND 7 | TIMEOUT /T 2 8 | goto LOOPSTART 9 | :FOUND 10 | TIMEOUT /T 3 11 | SETLOCAL 12 | CD /d %~dp0 13 | 14 | rmdir /s /q %localappdata%\Spotify\Update 15 | mkdir %localappdata%\Spotify\Update 16 | attrib -A +R %localappdata%\Spotify\Update 17 | 18 | del %appdata%\Spotify\Spotify_new.exe 19 | type NUL > %appdata%\Spotify\Spotify_new.txt 20 | ren %appdata%\Spotify\*.txt *.exe 21 | attrib -A +R %appdata%\Spotify\Spotify_new.exe 22 | del %appdata%\Spotify\Spotify_new.txt 23 | 24 | del %appdata%\Spotify\SpotifyWebHelper.exe 25 | type NUL > %appdata%\Spotify\SpotifyWebHelper.txt 26 | ren %appdata%\Spotify\*.txt *.exe 27 | attrib -A +R %appdata%\Spotify\SpotifyWebHelper.exe 28 | del %appdata%\Spotify\SpotifyWebHelper.txt 29 | 30 | del %appdata%\Spotify\SpotifyStartupTask.exe 31 | type NUL > %appdata%\Spotify\SpotifyStartupTask.txt 32 | ren %appdata%\Spotify\*.txt *.exe 33 | attrib -A +R %appdata%\Spotify\SpotifyStartupTask.exe 34 | del %appdata%\Spotify\SpotifyStartupTask.txt 35 | 36 | del %appdata%\Spotify\SpotifyMigrator.exe 37 | type NUL > %appdata%\Spotify\SpotifyMigrator.txt 38 | ren %appdata%\Spotify\*.txt *.exe 39 | attrib -A +R %appdata%\Spotify\SpotifyMigrator.exe 40 | del %appdata%\Spotify\SpotifyMigrator.txt 41 | 42 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store" /v %appdata%\Spotify\Spotify.exe /f 43 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v Spotify /f 44 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v "Spotify Web Helper" /f 45 | reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Spotify" /v Version /t REG_SZ /d 1.1.48.625.g1c87c7f7 /F 46 | reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Spotify" /v DisplayVersion /t REG_SZ /d 1.1.48.625.g1c87c7f7 /F 47 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v Spotify /f 48 | reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "Spotify Web Helper" /f 49 | 50 | exit 51 | -------------------------------------------------------------------------------- /SpotifyPatcher/Resources/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Takaovi/SpotifyPatcher/16e63acf04663c7c5f415d40a9eb2c0835495a49/SpotifyPatcher/Resources/Logo.png -------------------------------------------------------------------------------- /SpotifyPatcher/SpotifyPatcher.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {E20FDF92-ABE3-4BEE-83D8-84854B83394D} 8 | WinExe 9 | SpotifyPatcher 10 | SpotifyPatcher 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | false 16 | publish\ 17 | true 18 | Disk 19 | false 20 | Foreground 21 | 7 22 | Days 23 | false 24 | false 25 | true 26 | 0 27 | 1.0.0.%2a 28 | false 29 | true 30 | 31 | 32 | AnyCPU 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | DEBUG;TRACE 38 | prompt 39 | 4 40 | 41 | 42 | AnyCPU 43 | pdbonly 44 | true 45 | bin\Release\ 46 | TRACE 47 | prompt 48 | 4 49 | 50 | 51 | 52 | 53 | s.ico 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | Form 73 | 74 | 75 | Main.cs 76 | 77 | 78 | 79 | 80 | Main.cs 81 | 82 | 83 | ResXFileCodeGenerator 84 | Designer 85 | Resources.Designer.cs 86 | 87 | 88 | Always 89 | 90 | 91 | SettingsSingleFileGenerator 92 | Settings.Designer.cs 93 | 94 | 95 | True 96 | True 97 | Resources.resx 98 | 99 | 100 | True 101 | Settings.settings 102 | True 103 | 104 | 105 | Always 106 | 107 | 108 | Always 109 | 110 | 111 | Always 112 | 113 | 114 | Always 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | False 123 | Microsoft .NET Framework 4.7.2 %28x86 and x64%29 124 | true 125 | 126 | 127 | False 128 | .NET Framework 3.5 SP1 129 | false 130 | 131 | 132 | 133 | 134 | Always 135 | 136 | 137 | Always 138 | 139 | 140 | 141 | Always 142 | 143 | 144 | Always 145 | 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /SpotifyPatcher/s.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Takaovi/SpotifyPatcher/16e63acf04663c7c5f415d40a9eb2c0835495a49/SpotifyPatcher/s.ico --------------------------------------------------------------------------------