Add files via upload

This commit is contained in:
Bouletmarc 2022-04-21 07:28:47 -04:00 committed by GitHub
parent a919b97265
commit 03e283b380
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 25379 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

14
App.config Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.115.5" newVersion="1.0.115.5" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

198
Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,198 @@
namespace Youtube2MP3
{
partial class Form1
{
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
/// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.chromiumWebBrowser1 = new CefSharp.WinForms.ChromiumWebBrowser();
this.textBox2 = new System.Windows.Forms.TextBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.textBoxURL = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.chromiumWebBrowser2 = new CefSharp.WinForms.ChromiumWebBrowser();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 109);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(75, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Save location:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(93, 106);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(369, 20);
this.textBox1.TabIndex = 1;
//
// chromiumWebBrowser1
//
this.chromiumWebBrowser1.ActivateBrowserOnCreation = false;
// TODO: Échec de la génération du code de '' en raison de l'exception 'Type Primitive non valide : System.IntPtr. Utilisez CodeObjectCreateExpression à la place.'.
this.chromiumWebBrowser1.Location = new System.Drawing.Point(12, 301);
this.chromiumWebBrowser1.Name = "chromiumWebBrowser1";
this.chromiumWebBrowser1.Size = new System.Drawing.Size(470, 245);
this.chromiumWebBrowser1.TabIndex = 2;
this.chromiumWebBrowser1.LoadingStateChanged += new System.EventHandler<CefSharp.LoadingStateChangedEventArgs>(this.chromiumWebBrowser1_LoadingStateChanged);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(12, 132);
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(470, 163);
this.textBox2.TabIndex = 3;
//
// comboBox1
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] {
"Gatter Firefox History",
"Load Playlist URL"});
this.comboBox1.Location = new System.Drawing.Point(61, 51);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(219, 21);
this.comboBox1.TabIndex = 4;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 54);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(37, 13);
this.label2.TabIndex = 5;
this.label2.Text = "Mode:";
//
// textBoxURL
//
this.textBoxURL.Location = new System.Drawing.Point(61, 78);
this.textBoxURL.Name = "textBoxURL";
this.textBoxURL.Size = new System.Drawing.Size(343, 20);
this.textBoxURL.TabIndex = 7;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 81);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(32, 13);
this.label3.TabIndex = 6;
this.label3.Text = "URL:";
//
// button1
//
this.button1.Location = new System.Drawing.Point(410, 76);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(52, 23);
this.button1.TabIndex = 8;
this.button1.Text = "Load";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// chromiumWebBrowser2
//
this.chromiumWebBrowser2.ActivateBrowserOnCreation = false;
// TODO: Échec de la génération du code de '' en raison de l'exception 'Type Primitive non valide : System.IntPtr. Utilisez CodeObjectCreateExpression à la place.'.
this.chromiumWebBrowser2.Location = new System.Drawing.Point(488, 301);
this.chromiumWebBrowser2.Name = "chromiumWebBrowser2";
this.chromiumWebBrowser2.Size = new System.Drawing.Size(470, 245);
this.chromiumWebBrowser2.TabIndex = 9;
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(487, 3);
this.textBox3.Multiline = true;
this.textBox3.Name = "textBox3";
this.textBox3.ReadOnly = true;
this.textBox3.Size = new System.Drawing.Size(470, 292);
this.textBox3.TabIndex = 10;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(298, 54);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(70, 13);
this.label4.TabIndex = 11;
this.label4.Text = "Downloaded:";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(969, 558);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.chromiumWebBrowser2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBoxURL);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.chromiumWebBrowser1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Form1";
this.Text = "Youtube2MP3 - Bot by Bouletmarc";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private CefSharp.WinForms.ChromiumWebBrowser chromiumWebBrowser1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBoxURL;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button button1;
private CefSharp.WinForms.ChromiumWebBrowser chromiumWebBrowser2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label4;
}
}

579
Form1.cs Normal file
View File

@ -0,0 +1,579 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Timers;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using BrowserHistoryGatherer;
using Microsoft.Win32;
using CefSharp;
//using CefSharp.Example.Handlers;
namespace Youtube2MP3
{
public partial class Form1 : Form
{
string YoutubeSearchString = "tube.com/watch";
List<string> URL_List = new List<string>();
List<string> URL_Done_List = new List<string>();
string LastDoneURL = "";
string YT2MP3 = "https://mp3y.download/fr/your-mp3-convert";
bool IsDownloading = false;
string DownloadedFilename = "";
string DownloadsDirectoryPath = "C:\\Users\\" + Environment.UserName + "\\Downloads\\";
int DownloadCountToday = 0;
int DownloadCountFailed = 0;
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern short VkKeyScan(char ch);
public Form1()
{
InitializeComponent();
if (Directory.Exists(@"C:\Users\boule\Desktop\Musique 2022\"))
{
textBox1.Text = "C:\\Users\\boule\\Desktop\\Musique 2022\\";
}
myTimer.Tick += new EventHandler(TimerEventProcessor);
myTimer.Interval = 10000;
comboBox1.SelectedIndex = 0;
//Load URL done
string ThisFileCheck = Application.StartupPath + "\\URLDone.txt";
if (File.Exists(ThisFileCheck))
{
string[] AllLines = File.ReadAllLines(ThisFileCheck);
foreach (string Line in AllLines)
{
URL_Done_List.Add(Line);
}
if (URL_Done_List.Count >= 1)
{
textBoxURL.Text = URL_Done_List[URL_Done_List.Count - 1];
comboBox1.SelectedIndex = 1;
}
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
}
else
{
File.Create(ThisFileCheck).Dispose();
}
//########
chromiumWebBrowser1.LoadUrl(YT2MP3);
chromiumWebBrowser1.DownloadHandler = new MyCustomDownloadHandler();
myTimer.Start();
}
private void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
{
myTimer.Stop();
if (comboBox1.SelectedIndex == 0)
{
GetURLList();
}
else if (comboBox1.SelectedIndex == 1)
{
textBox2.Text = "";
URL_List.Clear();
if (chromiumWebBrowser2.GetMainFrame().Url.Contains(YoutubeSearchString))
{
URL_List.Add(chromiumWebBrowser2.GetMainFrame().Url);
AddText("URL: " + chromiumWebBrowser2.GetMainFrame().Url);
}
else
{
AddText("Nothing found...");
}
}
CheckThoseURL();
//Perform Next Click
if (comboBox1.SelectedIndex == 1)
{
SendShiftKeyEvent();
Thread.Sleep(1000);
textBoxURL.Text = chromiumWebBrowser2.GetMainFrame().Url;
}
myTimer.Start();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
SaveURLDone();
}
void SaveURLDone()
{
string[] AllLines = new string[URL_Done_List.Count];
int i = 0;
foreach (string Line in URL_Done_List)
{
AllLines[i] = Line;
i++;
}
string ThisFileCheck = Application.StartupPath + "\\URLDone.txt";
File.Create(ThisFileCheck).Dispose();
File.WriteAllLines(ThisFileCheck, AllLines);
}
private void CheckThoseURL()
{
foreach (string Line in URL_List)
{
if (!IsURLDone(Line))
{
//Downloading This URL
AddText("Downloading: " + Line);
chromiumWebBrowser1.LoadUrl(YT2MP3);
Thread.Sleep(1000);
while (chromiumWebBrowser1.IsLoading)
{
Thread.Sleep(1);
Application.DoEvents();
}
LastDoneURL = Line;
textBox2.Focus();
chromiumWebBrowser1.Focus();
chromiumWebBrowser1.GetBrowser().GetHost().SetFocus(true);
chromiumWebBrowser1.GetBrowser().GetHost().SendFocusEvent(true);
Thread.Sleep(50);
SendKeyEvent(Keys.Tab);
SendKeyEvent(Keys.Tab);
SendKeyEvent(Keys.Tab);
foreach (char ThisChar in LastDoneURL)
{
SendKeyCharEvent((Keys)ThisChar);
}
SendKeyEvent(Keys.Enter);
textBox2.AppendText("Waiting til ready");
int WaitingTime = 0;
while ((BrowserWidth() == 1338 || BrowserWidth() <= 720) && WaitingTime < 120)
{
textBox2.AppendText(".");
Thread.Sleep(1000);
Application.DoEvents();
WaitingTime++;
}
textBox2.AppendText(Environment.NewLine);
if (WaitingTime == 120)
{
AddText("Retrying file conversion...");
DownloadCountFailed++;
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
return;
}
//Click the download button
IsDownloading = true;
DownloadedFilename = "";
IEnumerable<Process> childfirst = ParentProcessUtilities.GetChildProcesses();
int ProcessChildCount = GetProcChildCount();
var script = @"
document.getElementsByClassName('btn-primary')[0].click();
";
chromiumWebBrowser1.ExecuteScriptAsyncWhenPageLoaded(script);
//Thread.Sleep(1000);
//Check for ads and close then, retry
textBox2.AppendText("Waiting til opened");
int SecondsWaited = 0;
while (GetProcChildCount() == ProcessChildCount && SecondsWaited < 6)
{
textBox2.AppendText(".");
Thread.Sleep(1000);
Application.DoEvents();
SecondsWaited++;
}
textBox2.AppendText(Environment.NewLine);
//Close Process
IEnumerable<Process> childnew = ParentProcessUtilities.GetChildProcesses();
AddText("Closing new processes..");
bool ClosedAds = false;
foreach (Process procnew in childnew)
{
bool found = false;
foreach (Process procfirst in childfirst)
{
if (procfirst.Id == procnew.Id) found = true;
}
if (!found && !ClosedAds)
{
//if (procnew.ProcessName != Process.GetCurrentProcess().ProcessName)
//{
Process.GetProcessById(procnew.Id).CloseMainWindow();
Process.GetProcessById(procnew.Id).Dispose();
Process.GetProcessById(procnew.Id).Close();
Process.GetProcessById(procnew.Id).Kill();
Process.GetCurrentProcess().CloseMainWindow();
AddText("Closed process PID: " + procnew.Id);
Console.WriteLine("Closed process PID: " + procnew.Id);
ClosedAds = true;
//}
}
}
//Restart Download
chromiumWebBrowser1.ExecuteScriptAsyncWhenPageLoaded(script);
int SecondsWaitedDownload = 0;
while (IsDownloading && SecondsWaitedDownload < 1200)
{
LoadLogs();
Thread.Sleep(100);
Application.DoEvents();
}
if (SecondsWaitedDownload >= 1200)
{
AddText("ERROR: Download not detected after 2mins!");
DownloadCountFailed++;
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
return;
}
if (DownloadedFilename != "")
{
//Cut and Paste the file to 'music' folder
byte[] AllByte = File.ReadAllBytes(DownloadsDirectoryPath + DownloadedFilename);
File.Create(@textBox1.Text + DownloadedFilename).Dispose();
File.WriteAllBytes(@textBox1.Text + DownloadedFilename, AllByte);
File.Delete(DownloadsDirectoryPath + DownloadedFilename);
AddText("File transfered!");
textBox3.AppendText(DownloadedFilename + Environment.NewLine);
}
else
{
AddText("ERROR: Downloaded filename is Null!");
DownloadCountFailed++;
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
return;
}
//Finished, add to Done list
URL_Done_List.Add(Line);
DownloadCountToday++;
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
SaveURLDone();
}
}
URL_List.Clear();
}
void LoadLogs()
{
try
{
string SavePath = Application.StartupPath + "\\DownloadLogs.txt";
if (File.Exists(SavePath))
{
string[] AllText = File.ReadAllLines(SavePath);
foreach (string Line in AllText)
{
if (Line != string.Empty)
{
AddText(Line);
}
if (Line.Contains("Suggested FileName"))
{
DownloadedFilename = Line.Split(' ')[2];
}
if (Line.Contains("download has been finished"))
{
IsDownloading = false;
}
if (Line.Contains("(100%)")) //Current Download Speed: 0 mB/s (100%)
{
IsDownloading = false;
Thread.Sleep(1000);
}
}
File.WriteAllText(SavePath, "");
}
}
catch
{
//AddText("Unable to read download logs. Retrying..");
}
}
public int GetProcChildCount()
{
IEnumerable<Process> child = ParentProcessUtilities.GetChildProcesses();
int ProcessChildCount = 0;
foreach (Process proc in child)
{
ProcessChildCount++;
}
return ProcessChildCount;
}
public int BrowserWidth()
{
var task = chromiumWebBrowser1.EvaluateScriptAsync("(function() { var body = document.body, html = document.documentElement; return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); })();");
task.ContinueWith(t =>
{
if (!t.IsFaulted)
{
var response = t.Result;
var EvaluateJavaScriptResult = response.Success ? (response.Result ?? "null") : response.Message;
}
});
if (task.Result.Result == null) { return 0; }
return Convert.ToInt32(task.Result.Result.ToString());
}
private bool IsURLDone(string ThisURL)
{
if (ThisURL.Contains("&"))
{
ThisURL = ThisURL.Split('&')[0];
}
foreach (string Line in URL_Done_List)
{
string CheckLine = Line;
if (CheckLine.Contains("&"))
{
CheckLine = CheckLine.Split('&')[0];
}
if (ThisURL == CheckLine) return true;
}
return false;
}
void SendKeyEvent(Keys ThisKey)
{
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = (int)ThisKey;
k.FocusOnEditableField = true;
k.IsSystemKey = false;
k.Type = KeyEventType.KeyDown;
chromiumWebBrowser1.GetBrowser().GetHost().SendKeyEvent(k);
Thread.Sleep(10);
k.Type = KeyEventType.KeyUp;
chromiumWebBrowser1.GetBrowser().GetHost().SendKeyEvent(k);
Thread.Sleep(10);
}
void SendKeyCharEvent(Keys ThisKey)
{
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = (int)ThisKey;
k.FocusOnEditableField = true;
k.IsSystemKey = false;
k.Type = KeyEventType.Char;
chromiumWebBrowser1.GetBrowser().GetHost().SendKeyEvent(k);
Thread.Sleep(10);
}
void SendShiftKeyEvent()
{
AddText("Next video...");
chromiumWebBrowser2.Focus();
chromiumWebBrowser2.GetBrowser().GetHost().SetFocus(true);
chromiumWebBrowser2.GetBrowser().GetHost().SendFocusEvent(true);
SendKeys.Send("+{n}");
Thread.Sleep(10);
}
private void chromiumWebBrowser1_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
//Console.WriteLine(chromiumWebBrowser1.IsLoading);
if (!chromiumWebBrowser1.IsLoading)
{
//Console.WriteLine("performed tab key");
/*chromiumWebBrowser1.GetBrowser().GetHost().SendFocusEvent(true);
Thread.Sleep(50);
SendKeyEvent(Keys.Tab);
SendKeyEvent(Keys.Tab);
SendKeyEvent(Keys.Tab);
SendKeyCharEvent(Keys.T);*/
}
}
void AddText(string ThisText)
{
textBox2.AppendText(ThisText + Environment.NewLine);
}
void GetURLList()
{
URL_List.Clear();
textBox2.Text = "";
//1Minute ago
DateTime TestDt = DateTime.Now - new TimeSpan(0, 5, 0);
var history = BrowserHistory.GetHistory(Browser.Firefox, TestDt);
int donecount = 0;
foreach (var entry in history)
{
if (entry.Uri.ToString().Contains(YoutubeSearchString))
{
URL_List.Add(entry.Uri.ToString());
AddText("Found URL: " + entry.Uri.ToString());
}
//Console.WriteLine(entry.Uri);
//Console.WriteLine(entry.Title);
//Console.WriteLine(entry.LastVisitTime);
donecount++;
if (donecount > 20) return;
}
if (history.Count == 0)
{
AddText("Nothing found...");
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox2.Text = "";
AddText("Chanded mode: " + comboBox1.Text);
if (comboBox1.SelectedIndex == 0)
{
myTimer.Stop();
textBoxURL.Enabled = false;
this.Size = new Size(512, 597);
chromiumWebBrowser2.Visible = false;
textBox3.Visible = false;
myTimer.Start();
}
else if (comboBox1.SelectedIndex == 1)
{
myTimer.Stop();
textBoxURL.Enabled = true;
this.Size = new Size(982, 597);
chromiumWebBrowser2.Visible = true;
textBox3.Visible = true;
if (textBoxURL.Text != string.Empty)
{
chromiumWebBrowser2.LoadUrl(textBoxURL.Text);
}
else
{
chromiumWebBrowser2.LoadUrl("https://www.youtube.com/");
}
myTimer.Start();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (textBoxURL.Text != string.Empty)
{
chromiumWebBrowser2.LoadUrl(textBoxURL.Text);
}
}
//#######################################################
class MyCustomDownloadHandler : IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
void SaveLogs(string ThisText)
{
string SavePath = Application.StartupPath + "\\DownloadLogs.txt";
bool Done = false;
while (!Done)
{
try
{
if (!File.Exists(SavePath)) File.Create(SavePath).Dispose();
File.AppendAllText(SavePath, ThisText + Environment.NewLine);
Done = true;
}
catch { }
}
}
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (downloadItem.IsValid)
{
SaveLogs("== File information ========================");
SaveLogs("File URL: " + downloadItem.Url);
SaveLogs("Suggested FileName: " + downloadItem.SuggestedFileName);
//SaveLogs("MimeType: " + downloadItem.MimeType);
//SaveLogs("Content Disposition: " + downloadItem.ContentDisposition);
SaveLogs("Total Size: " + (downloadItem.TotalBytes / 1000000));
SaveLogs("============================================");
}
OnBeforeDownloadFired?.Invoke(this, downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
string DownloadsDirectoryPath = "C:\\Users\\" + Environment.UserName + "\\Downloads\\";
callback.Continue(
Path.Combine(
DownloadsDirectoryPath,
downloadItem.SuggestedFileName
),
showDialog: false
);
}
}
}
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
if (downloadItem.IsValid)
{
// Show progress of the download
if (downloadItem.IsInProgress && (downloadItem.PercentComplete != 0))
{
SaveLogs("Current Download Speed: " + (downloadItem.CurrentSpeed / 1000000) + " mB/s (" + downloadItem.PercentComplete + "%)");
}
if (downloadItem.IsComplete)
{
SaveLogs("The download has been finished !");
}
}
}
}
}
}

537
Form1.resx Normal file
View File

@ -0,0 +1,537 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
IACoJQAA7h4AAAAAAAABACAA3hsAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAABAAAAAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/wYAAv8SAAL/EgAC/wYAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/EQAC/2IAAv+vAAL/0AAC/9EAAv+wAAL/YgAC
/xEAAv8AAAL/AAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/IgAC/7EAAv/7AAL//wAC//8AAv//AAL//wAC
//sAAv+xAAL/IgAC/wAAAv8AAAAAAAAAAAAAAv8AAAL/EAAC/7AAAv//AAH//wAA//8AAP//AAD//wAA
//8AAf//AAL//wAC/7EAAv8RAAL/AAAAAAAAAv8AAAL/AAAC/2IAAv/7AAL//xMU//8qLP//LzH//y8x
//8qLP//ExT//wAC//8AAv/7AAL/YgAC/wAAAv8AAAL/AAAC/wUAAv+vAAH//wwO//+srP//7Oz//+vr
///v7///7Oz//6ys//8MDv//AAH//wAC/68AAv8FAAL/AAAC/wAAAv8SAAL/0AAA//8cHf//3d3/////
//+dnv//trf////////d3f//HB3//wAA//8AAv/QAAL/EgAC/wAAAv8AAAL/EgAC/9AAAP//HB3//93d
////////nJ3//7a2////////3d3//xwd//8AAP//AAL/0AAC/xIAAv8AAAL/AAAC/wUAAv+vAAH//wwO
//+srP//7Oz//+vr///v7///7Oz//6ys//8MDv//AAH//wAC/68AAv8FAAL/AAAC/wAAAv8AAAL/YgAC
//sAAv//ExT//yos//8vMf//LzH//yos//8TFP//AAL//wAC//sAAv9iAAL/AAAC/wAAAAAAAAL/AAAC
/xEAAv+xAAL//wAB//8AAP//AAD//wAA//8AAP//AAH//wAC//8AAv+wAAL/EAAC/wAAAAAAAAAAAAAC
/wAAAv8AAAL/IgAC/7EAAv/7AAL//wAC//8AAv//AAL//wAC//sAAv+xAAL/IgAC/wAAAv8AAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv8RAAL/YgAC/7AAAv/RAAL/0AAC/68AAv9iAAL/EQAC/wAAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv8GAAL/EgAC/xIAAv8GAAL/AAAC/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//AAD8PwAA8A8AAOAHAADAAwAAwAMAAIABAACAAQAAgAEAAIABAADAAwAAwAMAAOAH
AADwDwAA/D8AAP//AAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/wcAAv8QAAL/EAAC
/wcAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAv8AAAL/AAAC/wcAAv88AAL/hQAC/7cAAv/MAAL/zAAC/7cAAv+FAAL/PAAC/wcAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/JwAC/58AAv/vAAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/7wAC/58AAv8nAAL/AAAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv86AAL/0AAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv/QAAL/OgAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/ygAAv/PAAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/0AAC/ygAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/BgAC/58AAv//AAL//wAC//8AAf//AAD//wAA//8AAP//AAD//wAA
//8AAP//AAH//wAC//8AAv//AAL//wAC/58AAv8GAAL/AAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/PAAC
/+4AAv//AAL//wED//8ZG///LjD//zY3//85Ov//OTr//zY3//8uMP//GRv//wED//8AAv//AAL//wAC
/+4AAv88AAL/AAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/hQAC//8AAv//AAD//zQ1///P0P//7e3///Hx
///09P//8/P///Hx///t7f//z9D//zQ1//8AAP//AAL//wAC//8AAv+EAAL/AAAC/wAAAAAAAAAAAAAC
/wAAAv8HAAL/tgAC//8AAv//AAD//2ts//////////////n5///h4f///Pz//////////////////2ts
//8AAP//AAL//wAC//8AAv+2AAL/BwAC/wAAAAAAAAAAAAAC/wAAAv8QAAL/zAAC//8AAv//AAD//3t8
/////////////+zs//9HSP//eXr//+3t/////////////3t8//8AAP//AAL//wAC//8AAv/MAAL/EAAC
/wAAAAAAAAAAAAAC/wAAAv8QAAL/zAAC//8AAv//AAD//3t8/////////////+zs//9GR///eHn//+zs
/////////////3t8//8AAP//AAL//wAC//8AAv/MAAL/EAAC/wAAAAAAAAAAAAAC/wAAAv8HAAL/tgAC
//8AAv//AAD//2ts//////////////n5///g4P///Pz//////////////////2ts//8AAP//AAL//wAC
//8AAv+2AAL/BwAC/wAAAAAAAAAAAAAC/wAAAv8AAAL/hAAC//8AAv//AAD//zQ1///P0P//7e3///Hx
///09P//8/P///Hx///t7f//z9D//zQ1//8AAP//AAL//wAC//8AAv+FAAL/AAAC/wAAAAAAAAAAAAAA
AAAAAv8AAAL/PAAC/+4AAv//AAL//wED//8ZG///LjD//zY3//85Ov//OTr//zY3//8uMP//GRv//wED
//8AAv//AAL//wAC/+4AAv88AAL/AAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/BgAC/58AAv//AAL//wAC
//8AAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAH//wAC//8AAv//AAL//wAC/58AAv8GAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/ygAAv/QAAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/zwAC/ygAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wAAAv86AAL/0AAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/QAAL/OgAC
/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/JwAC/58AAv/vAAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/7wAC/58AAv8nAAL/AAAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/wcAAv88AAL/hQAC/7cAAv/MAAL/zAAC/7cAAv+FAAL/PAAC
/wcAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAv8AAAL/AAAC/wcAAv8QAAL/EAAC/wcAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AP///wD/w/8A/gB/APwAPwD4AB8A8AAPAOAABwDgAAcA4AAHAMAA
AwDAAAMAwAADAMAAAwDgAAcA4AAHAOAABwDwAA8A+AAfAPwAPwD+AH8A/8P/AP///wD///8AKAAAACAA
AABAAAAAAQAgAAAAAAAAEAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8BAAL/BwAC
/w0AAv8NAAL/BwAC/wEAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wEAAv8dAAL/WQAC
/5IAAv+2AAL/xgAC/8YAAv+3AAL/kgAC/1kAAv8dAAL/AQAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv8cAAL/fgAC
/9cAAv/7AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/+wAC/9cAAv9+AAL/HAAC/wAAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8BAAL/RQAC
/8oAAv/+AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//4AAv/KAAL/RQAC
/wEAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/AQAC
/1cAAv/mAAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv/mAAL/VwAC/wEAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wAAAv9FAAL/5QAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv/lAAL/RQAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAv8AAAL/HAAC/8kAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/JAAL/HQAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv9+AAL//wAC//8AAv//AAL//wAC//8AAP//AAD//wAA//8AAP//AAD//wAA
//8AAP//AAD//wAA//8AAP//AAL//wAC//8AAv//AAL//wAC//8AAv9+AAL/AAAC/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/HgAC/9YAAv//AAL//wAC//8AAv//BAX//x4g//8yM///PD3//0JD
//9DRf//Q0X//0JD//88Pf//MjP//x4g//8EBf//AAL//wAC//8AAv//AAL//wAC/9YAAv8dAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv9ZAAL/+wAC//8AAv//AAL//wAB//9kZf//3d7//+7u
///z8///9vb///f3///39///9vb///Pz///u7v//3d7//2Rl//8AAf//AAL//wAC//8AAv//AAL/+wAC
/1gAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/5IAAv//AAL//wAC//8AAf//DA3//8HB
////////////////////////////////////////////////////////wMH//wsN//8AAf//AAL//wAC
//8AAv//AAL/kQAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8HAAL/tgAC//8AAv//AAL//wAB
//8XGf//1tb//////////////////9fY//+kpf//8PD////////////////////////W1v//Fxn//wAB
//8AAv//AAL//wAC//8AAv+2AAL/BwAC/wAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/w0AAv/GAAL//wAC
//8AAv//AAD//x0e///d3f//////////////////vr///w8R//9DRf//wMH//////////////////93d
//8dHv//AAD//wAC//8AAv//AAL//wAC/8YAAv8NAAL/AAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/DQAC
/8YAAv//AAL//wAC//8AAP//HR7//93d//////////////////++vv//DxD//0JD//+/wP//////////
////////3d3//x0e//8AAP//AAL//wAC//8AAv//AAL/xgAC/w0AAv8AAAAAAAAAAAAAAAAAAAAAAAAC
/wAAAv8HAAL/tgAC//8AAv//AAL//wAB//8XGf//1tb//////////////////9bW//+io///7+//////
///////////////////W1v//Fxn//wAB//8AAv//AAL//wAC//8AAv+2AAL/BwAC/wAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv+RAAL//wAC//8AAv//AAH//wwN///Bwf//////////////////////////
/////////////////////////////8DB//8LDf//AAH//wAC//8AAv//AAL//wAC/5IAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/AAAC/1gAAv/7AAL//wAC//8AAv//AAH//2Rl///d3v//7u7///Pz
///29v//9/f///f3///29v//8/P//+7u///d3v//ZGX//wAB//8AAv//AAL//wAC//8AAv/7AAL/WQAC
/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/HQAC/9YAAv//AAL//wAC//8AAv//BAX//x4g
//8yM///PD3//0JD//9DRf//Q0X//0JD//88Pf//MjP//x4g//8EBf//AAL//wAC//8AAv//AAL//wAC
/9YAAv8eAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/fgAC//8AAv//AAL//wAC
//8AAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAC//8AAv//AAL//wAC
//8AAv//AAL/fgAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8dAAL/yQAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC/8kAAv8cAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wAAAv9FAAL/5QAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv/lAAL/RQAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wEAAv9XAAL/5gAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/5gAC/1cAAv8BAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wEAAv9FAAL/ygAC//4AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//gAC/8oAAv9FAAL/AQAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv8cAAL/fgAC/9cAAv/7AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/+wAC/9cAAv9+AAL/HAAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8BAAL/HQAC
/1kAAv+SAAL/twAC/8YAAv/GAAL/tgAC/5IAAv9ZAAL/HQAC/wEAAv8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wEAAv8HAAL/DQAC/w0AAv8HAAL/AQAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
////+B///8AD//+AAf/+AAB//AAAP/wAAD/4AAAf+AAAH/AAAA/wAAAP8AAAD+AAAAfgAAAH4AAAB+AA
AAfwAAAP8AAAD/AAAA/4AAAf+AAAH/wAAD/8AAA//gAAf/+AAf//wAP///gf/////////////////ygA
AAAwAAAAYAAAAAEAIAAAAAAAACQAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
/wAAAv8BAAL/BAAC/wgAAv8IAAL/BQAC/wEAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wEAAv8WAAL/QQAC/3AAAv+WAAL/rgAC/7kAAv+5AAL/rwAC/5cAAv9xAAL/QgAC/xYAAv8BAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
/wAAAv8FAAL/NQAC/4kAAv/PAAL/8wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/9AAC
/9AAAv+KAAL/NQAC/wUAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAv8AAAL/AQAC/ysAAv+XAAL/6QAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/6QAC/5YAAv8rAAL/AQAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAC/wAAAv8IAAL/YgAC/9sAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/bAAL/YgAC/wgAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/xAAAv+KAAL/9QAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/9QAC
/4oAAv8PAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/DwAC/5gAAv/7AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//sAAv+YAAL/EAAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8HAAL/igAC//sAAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/8AAL/igAC/wcAAv8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv9iAAL/9QAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/9QAC/2MAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/ysAAv/aAAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
/9oAAv8sAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAv8AAAL/BAAC/5YAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv+XAAL/BAAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/NgAC/+kAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAH//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAH//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/pAAL/NgAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8AAAL/iQAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAf//Cw3//ycp//86O///Rkj//09R//9WV///Wlv//1pb//9aW///Wlv//1ZX//9PUf//Rkj//zo7
//8nKf//Cw3//wAB//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/iQAC/wAAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8XAAL/zwAC//8AAv//AAL//wAC
//8AAv//AAL//wAA//8iI///q6z//+bm///x8f//9/f///r6///8/P///f3///39///9/f///f3///z8
///6+v//9/f///Hx///m5v//q6z//yIj//8AAP//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/zwAC
/xYAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv9CAAL/8wAC
//8AAv//AAL//wAC//8AAv//AAL//wAB//+HiP//////////////////////////////////////////
/////////////////////////////////////////////4eI//8AAf//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL/8wAC/0EAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wAAAv9xAAL//wAC//8AAv//AAL//wAC//8AAv//AAH//wkL//+5uv//////////////////////////
/////////////////////////////////////////////////////////////7m6//8JC///AAH//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC/3AAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv+XAAL//wAC//8AAv//AAL//wAC//8AAv//AAH//xIU///Nzv//////////
///////////////////4+P//trb//+Pj/////////////////////////////////////////////83O
//8SFP//AAH//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC/5YAAv8AAAL/AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wUAAv+vAAL//wAC//8AAv//AAL//wAC//8AAv//AAD//xkb
///Y2P/////////////////////////////09P//Q0X//zI0//+jpP//8vL/////////////////////
/////////////9jY//8ZG///AAD//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC/64AAv8FAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wgAAv+5AAL//wAC//8AAv//AAL//wAC
//8AAv//AAD//x0e///c3P/////////////////////////////19f//QUL//wAA//8ICf//S0z//8fH
/////////////////////////////9zc//8dHv//AAD//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
/7kAAv8IAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wgAAv+5AAL//wAC
//8AAv//AAL//wAC//8AAv//AAD//x0e///c3P/////////////////////////////09P//QEH//wAA
//8HCP//SEn//8XG/////////////////////////////9zc//8dHv//AAD//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC/7kAAv8IAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wUAAv+uAAL//wAC//8AAv//AAL//wAC//8AAv//AAD//xkb///Y2P//////////////////////////
///09P//QUP//zEy//+hov//8fH//////////////////////////////////9jY//8ZG///AAD//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC/68AAv8FAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAL/AAAC/wAAAv+WAAL//wAC//8AAv//AAL//wAC//8AAv//AAH//xIU///Nzv//////////
///////////////////39///s7P//+Li/////////////////////////////////////////////83O
//8SFP//AAH//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC/5cAAv8AAAL/AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/wAAAv9wAAL//wAC//8AAv//AAL//wAC//8AAv//AAH//wkL
//+5uv//////////////////////////////////////////////////////////////////////////
/////////////7m6//8JC///AAH//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC/3EAAv8AAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv9BAAL/8wAC//8AAv//AAL//wAC
//8AAv//AAL//wAB//+HiP//////////////////////////////////////////////////////////
/////////////////////////////4eI//8AAf//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/8wAC
/0IAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8WAAL/zwAC
//8AAv//AAL//wAC//8AAv//AAL//wAA//8iI///q6z//+bm///x8f//9/f///r6///8/P///f3///39
///9/f///f3///z8///6+v//9/f///Hx///m5v//q6z//yIj//8AAP//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL/zwAC/xcAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
/wAAAv8AAAL/iQAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAf//Cw3//ycp//86O///Rkj//09R
//9WV///Wlv//1pb//9aW///Wlv//1ZX//9PUf//Rkj//zo7//8nKf//Cw3//wAB//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/iQAC/wAAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/NgAC/+kAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAH//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAH//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/pAAL/NgAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/BAAC/5cAAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv+WAAL/BAAC/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/ywAAv/aAAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC/9oAAv8rAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wAAAv9jAAL/9QAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/9QAC
/2IAAv8AAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAC/wAAAv8HAAL/igAC//wAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv/7AAL/igAC/wcAAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv8AAAL/EAAC/5gAAv/7AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//sAAv+YAAL/DwAC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC/w8AAv+KAAL/9QAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL/9QAC/4oAAv8QAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
/wAAAv8IAAL/YgAC/9sAAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv/bAAL/YgAC/wgAAv8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAv8AAAL/AQAC/ysAAv+WAAL/6QAC//8AAv//AAL//wAC//8AAv//AAL//wAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/6QAC/5cAAv8rAAL/AQAC/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8FAAL/NQAC/4oAAv/QAAL/9AAC
//8AAv//AAL//wAC//8AAv//AAL//wAC//8AAv//AAL/8wAC/88AAv+JAAL/NQAC/wUAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL/AAAC
/wEAAv8WAAL/QgAC/3EAAv+XAAL/rwAC/7kAAv+5AAL/rgAC/5YAAv9wAAL/QQAC/xYAAv8BAAL/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/wAAAv8BAAL/BQAC/wgAAv8IAAL/BAAC/wEAAv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
</value>
</data>
</root>

34
ParentProcessUtilities.cs Normal file
View File

@ -0,0 +1,34 @@
using System;
using System.Management;
using System.ComponentModel;
using System.Diagnostics;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Youtube2MP3
{
static class ParentProcessUtilities
{
public static IEnumerable<Process> GetChildProcesses()
{
Process process = Process.GetCurrentProcess();
List<Process> children = new List<Process>();
ManagementObjectSearcher mos = new ManagementObjectSearcher(String.Format("Select * From Win32_Process Where ParentProcessID={0}", process.Id));
foreach (ManagementObject mo in mos.Get())
{
try
{
children.Add(Process.GetProcessById(Convert.ToInt32(mo["ProcessID"])));
}
catch { }
}
return children;
}
}
}

22
Program.cs Normal file
View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Youtube2MP3
{
static class Program
{
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Les informations générales relatives à un assembly dépendent de
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
// associées à un assembly.
[assembly: AssemblyTitle("Youtube2MP3")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Youtube2MP3")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
[assembly: ComVisible(false)]
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
[assembly: Guid("54b102ee-58f2-4552-8673-b6ae53415cee")]
// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
//
// Version principale
// Version secondaire
// Numéro de build
// Révision
//
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

63
Properties/Resources.Designer.cs generated Normal file
View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Ce code a été généré par un outil.
// Version du runtime :4.0.30319.42000
//
// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
// le code est régénéré.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Youtube2MP3.Properties {
using System;
/// <summary>
/// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
/// </summary>
// Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
// à l'aide d'un outil, tel que ResGen ou Visual Studio.
// Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
// avec l'option /str ou régénérez votre projet VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Youtube2MP3.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Remplace la propriété CurrentUICulture du thread actuel pour toutes
/// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

117
Properties/Resources.resx Normal file
View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

26
Properties/Settings.Designer.cs generated Normal file
View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Ce code a été généré par un outil.
// Version du runtime :4.0.30319.42000
//
// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
// le code est régénéré.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Youtube2MP3.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

140
Youtube2MP3.csproj Normal file
View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props" Condition="Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props')" />
<Import Project="packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props" Condition="Exists('packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props')" />
<Import Project="packages\SQLite.3.13.0\build\net45\SQLite.props" Condition="Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{54B102EE-58F2-4552-8673-B6AE53415CEE}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Youtube2MP3</RootNamespace>
<AssemblyName>Youtube2MP3</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>371903520_social_icons_youtube_MBb_icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="BrowserHistoryGatherer">
<HintPath>dlls\BrowserHistoryGatherer.dll</HintPath>
</Reference>
<Reference Include="CefSharp, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.Common.98.1.210\lib\net452\CefSharp.dll</HintPath>
</Reference>
<Reference Include="CefSharp.Core, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.Common.98.1.210\lib\net452\CefSharp.Core.dll</HintPath>
</Reference>
<Reference Include="CefSharp.WinForms, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.WinForms.98.1.210\lib\net452\CefSharp.WinForms.dll</HintPath>
</Reference>
<Reference Include="plist-cil">
<HintPath>dlls\plist-cil.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\lib\net45\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="UrlHistoryLibrary, Version=1.0.8084.13620, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>dlls\UrlHistoryLibrary.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="ParentProcessUtilities.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="371903520_social_icons_youtube_MBb_icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\SQLite.3.13.0\build\net45\SQLite.props'))" />
<Error Condition="!Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
<Error Condition="!Exists('packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets'))" />
</Target>
<Import Project="packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Import Project="packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets" Condition="Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets')" />
</Project>

25
Youtube2MP3.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29418.71
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Youtube2MP3", "Youtube2MP3.csproj", "{54B102EE-58F2-4552-8673-B6AE53415CEE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{54B102EE-58F2-4552-8673-B6AE53415CEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54B102EE-58F2-4552-8673-B6AE53415CEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54B102EE-58F2-4552-8673-B6AE53415CEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54B102EE-58F2-4552-8673-B6AE53415CEE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4461F9E0-B1CF-4170-AD5D-F7D8AA9EE05F}
EndGlobalSection
EndGlobal

76
app.manifest Normal file
View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- Options du manifeste de contrôle de compte d'utilisateur
Si vous souhaitez modifier le niveau du contrôle de compte d'utilisateur Windows, remplacez le
nœud requestedExecutionLevel par l'une des propositions suivantes.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
La spécification de l'élément requestedExecutionLevel désactive la virtualisation de fichiers et du Registre.
Supprimez cet élément si votre application a besoin de la virtualisation pour des
raisons de compatibilité descendante.
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Liste des versions de Windows pour lesquelles cette application a été testée,
et sur lesquelles elle doit fonctionner. Décommentez éléments appropriés,
et Windows va automatiquement sélectionner l'environnement le plus compatible. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- Indique que l'application prend en charge DPI et qu'elle n'est pas automatiquement mise à l'échelle par Windows à un niveau de
DPI plus élevé. Les applications Windows Presentation Foundation (WPF) prennent automatiquement en charge DPI et n'ont pas besoin
d'opter pour ce choix. Les applications Windows Forms qui ciblent .NET Framework 4.6 et qui optent pour ce paramètre, doivent
également affecter la valeur 'true' au paramètre 'EnableWindowsFormsHighDpiAutoResizing' dans leur fichier app.config. -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
-->
<!-- Activer les thèmes pour les contrôles et boîtes de dialogue communes de Windows (Windows XP et version ultérieure) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

Binary file not shown.

Binary file not shown.

BIN
dlls/System.Data.SQLite.dll Normal file

Binary file not shown.

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.config -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
</configuration>

20022
dlls/System.Data.SQLite.xml Normal file

File diff suppressed because it is too large Load Diff

BIN
dlls/UrlHistoryLibrary.dll Normal file

Binary file not shown.

BIN
dlls/UrlHistoryLibrary.pdb Normal file

Binary file not shown.

BIN
dlls/plist-cil.dll Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>ASSIST_Extensions</name>
</assembly>
<members>
<member name="T:ASSIST_Extensions.CreateEventsLogger">
<summary>
Creates an event logger using the specified
</summary>
</member>
<member name="M:ASSIST_Extensions.CreateEventsLogger.CreaterEventLogger(System.String,System.String)">
<summary>
Creates the event logger of Log name and Source datasource if the Log doesn't exist. Otherwise uses the exist event log with the same name.
If no log is specified, it uses the default Application Log.
</summary>
<param name="source">The source. This goes into the DataSource column</param>
<param name="log">The log. This is the name of the log the events are written to.</param>
<returns></returns>
</member>
<member name="M:ASSIST_Extensions.CreateEventsLogger.GetEvents``1(System.String,System.Diagnostics.EventLogEntryType,System.Boolean)">
<summary>
Accepts an Event Log Name and log level. Returns all log entries for that Event Log and level
The default log (if none is specified) is the Application log and default log level is FailueAudit
</summary>
<param name="eventLogName">Name of the event log.</param>
<param name="logType">Type of the log.</param>
<param name="onlyEventsEqualTo"></param>
<returns>List<EvengLogEntry/> EventList</returns>
</member>
</members>
</doc>

BIN
dlls/unused/NDde.dll Normal file

Binary file not shown.

3316
dlls/unused/NDde.xml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,106 @@
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csprojAssemblyReference.cache
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.Form1.resources
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.Properties.Resources.resources
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.GenerateResource.cache
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.exe.config
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.exe
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.exe
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\UrlHistoryLibrary.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.CopyComplete
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\BrowserHistoryGatherer.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\plist-cil.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\System.Data.SQLite.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\BrowserHistoryGatherer.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\System.Data.SQLite.xml
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\UrlHistoryLibrary.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\x86\sqlite3.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\x64\sqlite3.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_100_percent.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_200_percent.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_elf.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\d3dcompiler_47.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\icudtl.dat
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libcef.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libEGL.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libGLESv2.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\LICENSE.txt
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\am.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ar.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\bg.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\bn.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ca.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\cs.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\da.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\de.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\el.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\en-GB.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\en-US.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\es-419.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\es.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\et.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fa.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fi.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fil.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fr.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\gu.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\he.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hi.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hr.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hu.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\id.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\it.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ja.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\kn.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ko.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\lt.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\lv.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ml.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\mr.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ms.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\nb.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\nl.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pl.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pt-BR.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pt-PT.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ro.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ru.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sk.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sl.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sr.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sv.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sw.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ta.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\te.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\th.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\tr.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\uk.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\vi.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\zh-CN.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\zh-TW.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\README.txt
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\resources.pak
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\snapshot_blob.bin
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\swiftshader\libEGL.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\swiftshader\libGLESv2.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\v8_context_snapshot.bin
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader_icd.json
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vulkan-1.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.Core.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.Core.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.exe
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.xml
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.dll
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.xml
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.xml
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.pdb
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.xml

Binary file not shown.

Binary file not shown.

BIN
obj/Debug/Youtube2MP3.exe Normal file

Binary file not shown.

BIN
obj/Debug/Youtube2MP3.pdb Normal file

Binary file not shown.

9
packages.config Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cef.redist.x86" version="98.1.21" targetFramework="net45" />
<package id="CefSharp.Common" version="98.1.210" targetFramework="net452" />
<package id="CefSharp.WinForms" version="98.1.210" targetFramework="net452" />
<package id="SQLite" version="3.13.0" targetFramework="net45" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.5" targetFramework="net45" requireReinstallation="true" />
<package id="System.Data.SQLite.Core" version="1.0.115.5" targetFramework="net45" />
</packages>