commit b3a2803c5d03d05889b01adbccee668490127fb0 Author: Gitea Date: Sun May 21 22:51:32 2023 +0900 Git リポジトリ化 diff --git a/MedianCut.js b/MedianCut.js new file mode 100644 index 0000000..e3b91cf --- /dev/null +++ b/MedianCut.js @@ -0,0 +1,287 @@ +/**************************************************/ +/* */ +/* MedianCut.js */ +/* v0.88 */ +/* */ +/* Copyright 2016 Takeshi Okamoto (Japan) */ +/* */ +/* Released under the MIT license */ +/* https://github.com/TakeshiOkamoto/ */ +/* */ +/* Date: 2016-12-14 */ +/**************************************************/ + +//////////////////////////////////////////////////////////////////////////////// +// Generic Function +//////////////////////////////////////////////////////////////////////////////// + +// 画像のカラー情報の取得 +function getColorInfo(imagedata){ + var height = imagedata.height; + var width = imagedata.width; + var raw = imagedata.data; + + // 使用色/使用回数(面積)を取得 + var cnt = 0; + var uses_colors = new Object; + + for(var i = 0; i< height;i++){ + for(var j = 0; j< width;j++){ + var key = raw[cnt] + ',' + + raw[cnt+1] + ',' + + raw[cnt+2] ; + if (!uses_colors[key]) + uses_colors[key] = 1; + else + uses_colors[key] += 1; + + cnt = cnt + 4; + } + } + + // 連想配列を配列へ設定 + var rgb; + var colors = new Array(); + for (var key in uses_colors) { + rgb = key.split(","); + colors[colors.length] = {'r':parseInt(rgb[0],10), + 'g':parseInt(rgb[1],10), + 'b':parseInt(rgb[2],10), + 'uses':uses_colors[key]}; // 使用数 + } + return colors; +} + +//////////////////////////////////////////////////////////////////////////////// +// Generic Class +//////////////////////////////////////////////////////////////////////////////// + +// --------------------- +// TMedianCut +// --------------------- +// imagedata : 減色するImageDataオブジェクト +// colors : getColorInfo()で取得したカラー情報 +function TMedianCut(imagedata,colors) { + + this.raw = imagedata.data; + this.width = imagedata.width; + this.height = imagedata.height; + this.msg = ''; + this.colors = colors; +} + +// --------------------- +// TMedianCut.Method +// --------------------- +TMedianCut.prototype = { + + // プロパティの設定 + _setProperty : function (color){ + var total = 0; + var maxR = 0, maxG = 0, maxB = 0; + var minR = 255, minG = 255, minB = 255; + + // 立方体の1辺の長さ + for(var i = 0; i < color.length;i++){ + + if (color[i].rgb.r > maxR) maxR = color[i].rgb.r ; + if (color[i].rgb.g > maxG) maxG = color[i].rgb.g ; + if (color[i].rgb.b > maxB) maxB = color[i].rgb.b ; + + if (color[i].rgb.r < minR) minR = color[i].rgb.r ; + if (color[i].rgb.g < minG) minG = color[i].rgb.g ; + if (color[i].rgb.b < minB) minB = color[i].rgb.b ; + + // キューブで使用している面積 + total += color[i].rgb.uses; + } + + var dr = (maxR - minR)*1.2; + var dg = (maxG - minG)*1.2; + var db = (maxB - minB); + + // 同一の場合はrを優先する + var colortype = 'r'; + + // r + if (dr > dg && dr > db){ + colortype = 'r'; + } + + // g + if (dg > dr && dg > db){ + colortype = 'g'; + } + + // b + if (db > dr && db > dg){ + colortype = 'b'; + } + + return { 'color' : color, // キューブの各色情報 + 'total' : total, // キューブの総面積(総色数) + 'type' : colortype,// キューブの種類(R/G/B) + // キューブの体積用 'volume': dr * dg * db + }; + }, + + // メディアンカット + _MedianCut : function(cubes,colorsize){ + var count = 0; + var index = 0; + + // 面積(色数)が最大のキューブを選択 + for(var i = 0; i < cubes.length;i++){ + if(cubes[i].total > count){ + // 1点は除く + if (cubes[i].color.length != 1){ + index = i; + count = cubes[i].total; + } + } + } + + // 体積が最大のキューブを選択 + //if(cubes[index].color.length == 1){ + // + // count =0; index =0; + // + // for(var i = 0; i < cubes.length;i++){ + // if(cubes[i].volume > count){ + // index = i; + // count = cubes[i].volume; + // } + // } + //} + + + if (cubes[index].total == 1){ + // Cube could not be split. + this.msg += colorsize + '色までキューブを分割できませんでした。\n'; + return cubes; + } + + if(cubes[index].color.length == 1){ + // Cube could not be split. + this.msg += colorsize + '色までキューブを分割できませんでした。\n'; + return cubes; + } + + // メディアン由来の中央値を算出する + var colortype = cubes[index].type; + cubes[index].color.sort(function(a,b){ + if(a.rgb[colortype] < b.rgb[colortype] ) return -1; + if(a.rgb[colortype] > b.rgb[colortype] ) return 1; + return 0; + }); + split_border = Math.floor((cubes[index].color.length+1)/2); + + // 分割の開始 + var split1 = new Array; + var split2 = new Array; + for(var i = 0; i < cubes[index].color.length;i++){ + if (i < split_border){ + split1[split1.length] = cubes[index].color[i]; + }else{ + split2[split2.length] = cubes[index].color[i]; + } + } + + // プロパティの設定 + split1 = this._setProperty(split1); + split2 = this._setProperty(split2); + + // キューブ配列の再編成 + var result = new Array(); + for(var i = 0; i < cubes.length;i++){ + if (i != index){ + result[result.length] = cubes[i]; + } + } + result[result.length] = split1; + result[result.length] = split2; + + if (result.length < colorsize){ + return this._MedianCut(result,colorsize); + }else{ + return result; + } + }, + + // 減色の実行 + // colorsize : 最大何色まで減色するかの色数(2- 256) + // update : true ピクセルデータを更新 false 更新しない + run : function(colorsize,update){ + + if (this.colors.length <= colorsize){ + // It has already been reduced color. + this.msg = '既に'+ this.colors.length +'色に減色されています。\n'; + //return; + } + + // 1個目のキューブの作成 + var plane = new Array; + for(var i = 0; i < this.colors.length;i++){ + plane[plane.length] = {'rgb': this.colors[i]}; + } + + var dummy = new Array(); + dummy[0] = this._setProperty(plane); + + // キューブの分割 + var cubes = this._MedianCut(dummy,colorsize); + + // キューブ毎に代表色(重み係数による平均)を算出する + var rep_color = new Array(); + for(var i = 0; i < cubes.length;i++){ + var count = 0; + var r =0,g=0,b=0; + for(var j = 0; j < cubes[i].color.length;j++){ + r += cubes[i].color[j].rgb.r * cubes[i].color[j].rgb.uses; + g += cubes[i].color[j].rgb.g * cubes[i].color[j].rgb.uses; + b += cubes[i].color[j].rgb.b * cubes[i].color[j].rgb.uses; + count += cubes[i].color[j].rgb.uses; + } + rep_color[i] = {'r': Math.round(r/count), + 'g': Math.round(g/count), + 'b': Math.round(b/count)}; + } + + // 代表色の保存 + this.rep_color = rep_color; + + // ピクセルデータの更新 + if (update) { + + // ピクセルデータ設定用の連想配列(高速化用) + var pixels = new Object; + for(var i = 0; i < cubes.length;i++){ + for(var j = 0; j < cubes[i].color.length;j++){ + pixels[cubes[i].color[j].rgb.r + ',' + + cubes[i].color[j].rgb.g + ',' + + cubes[i].color[j].rgb.b] = {'r': rep_color[i].r, + 'g': rep_color[i].g, + 'b': rep_color[i].b}; + } + } + + // データの設定 + var key,cnt =0; + for(var i = 0; i< this.height;i++){ + for(var j = 0; j< this.width;j++){ + + key = this.raw[cnt] + ',' + + this.raw[cnt+1] + ',' + + this.raw[cnt+2]; + + this.raw[cnt] = pixels[key].r; + this.raw[cnt+1] = pixels[key].g; + this.raw[cnt+2] = pixels[key].b; + + cnt = cnt + 4; + } + } + } + } +} + diff --git a/backup.php b/backup.php new file mode 100644 index 0000000..bc7fe68 --- /dev/null +++ b/backup.php @@ -0,0 +1,48 @@ + $status, + "result" => $data]); +} +?> + diff --git a/delete.php b/delete.php new file mode 100644 index 0000000..998a168 --- /dev/null +++ b/delete.php @@ -0,0 +1,38 @@ + set_charset ('utf8'); + +$thread = $_GET['thread']; +$id = $_GET['id']; +$pass = $_GET['pass']; + +if ($result = $mysqli -> query (" + SELECT + pass, image + FROM + responses + WHERE + (thread_id = {$_GET['thread']}) AND (response_id = {$_GET['id']})")): + $row = $result -> fetch_assoc (); + + if ($_GET['pass'] == $row['pass']): + $mysqli -> query (" + UPDATE + responses + SET + deleted = 1 + WHERE + (thread_id = $thread) AND (response_id = $id)"); + + echo "消しましたぁ!!

"; + else: + echo '残念.
削除用パスワードが違います.'; + endif; + + echo "

5 秒後に元のページに戻ります.

戻らない場合はこちら"; +endif; + diff --git a/delete.php~ b/delete.php~ new file mode 100644 index 0000000..1b120c2 --- /dev/null +++ b/delete.php~ @@ -0,0 +1,27 @@ + set_charset ('utf8'); + +$thread = $_GET['thread']; +$id = $_GET['id']; +$pass = $_GET['pass']; + +if ($result = $mysqli -> query (" + SELECT + pass + FROM + responses + WHERE + (thread_id = {$_GET['thread']}) AND (response_id = {$_GET['id']})")): + $row = $result -> fetch_assoc (); + + if ($_GET['pass'] == $row['pass']): + else: + echo "残念.\n削除用パスワードが違います."; + endif; +endif; + diff --git a/draft/18740f98be0fc.png b/draft/18740f98be0fc.png new file mode 100644 index 0000000..dfbefb5 Binary files /dev/null and b/draft/18740f98be0fc.png differ diff --git a/draft/18761363b022a.png b/draft/18761363b022a.png new file mode 100644 index 0000000..38a906d Binary files /dev/null and b/draft/18761363b022a.png differ diff --git a/draft/187896cd0f2124.png b/draft/187896cd0f2124.png new file mode 100644 index 0000000..bba6c30 Binary files /dev/null and b/draft/187896cd0f2124.png differ diff --git a/draft/187953cd987f3.png b/draft/187953cd987f3.png new file mode 100644 index 0000000..37fb557 Binary files /dev/null and b/draft/187953cd987f3.png differ diff --git a/image/60141525e1c1e.png b/image/60141525e1c1e.png new file mode 100644 index 0000000..eb9ad63 Binary files /dev/null and b/image/60141525e1c1e.png differ diff --git a/image/612369f1658b6.png b/image/612369f1658b6.png new file mode 100644 index 0000000..ecd7261 Binary files /dev/null and b/image/612369f1658b6.png differ diff --git a/image/621e5e551a396.png b/image/621e5e551a396.png new file mode 100644 index 0000000..4d2cf02 Binary files /dev/null and b/image/621e5e551a396.png differ diff --git a/image/621e5f02643f9.png b/image/621e5f02643f9.png new file mode 100644 index 0000000..2493586 Binary files /dev/null and b/image/621e5f02643f9.png differ diff --git a/image/621e5f48322cb.png b/image/621e5f48322cb.png new file mode 100644 index 0000000..35fea38 Binary files /dev/null and b/image/621e5f48322cb.png differ diff --git a/image/621e5f69ea69b.png b/image/621e5f69ea69b.png new file mode 100644 index 0000000..1e13312 Binary files /dev/null and b/image/621e5f69ea69b.png differ diff --git a/image/621e609166934.png b/image/621e609166934.png new file mode 100644 index 0000000..6065f52 Binary files /dev/null and b/image/621e609166934.png differ diff --git a/image/622501a5a88eb.png b/image/622501a5a88eb.png new file mode 100644 index 0000000..1e7031d Binary files /dev/null and b/image/622501a5a88eb.png differ diff --git a/image/622501b1b588d.png b/image/622501b1b588d.png new file mode 100644 index 0000000..275d5ad Binary files /dev/null and b/image/622501b1b588d.png differ diff --git a/image/62250260d5153.png b/image/62250260d5153.png new file mode 100644 index 0000000..3cf2ee0 Binary files /dev/null and b/image/62250260d5153.png differ diff --git a/image/622503b54cafd.png b/image/622503b54cafd.png new file mode 100644 index 0000000..49d542f Binary files /dev/null and b/image/622503b54cafd.png differ diff --git a/image/62250414400ac.png b/image/62250414400ac.png new file mode 100644 index 0000000..3e895e3 Binary files /dev/null and b/image/62250414400ac.png differ diff --git a/image/6225043f94292.png b/image/6225043f94292.png new file mode 100644 index 0000000..11d2adf Binary files /dev/null and b/image/6225043f94292.png differ diff --git a/image/62250457d3b68.png b/image/62250457d3b68.png new file mode 100644 index 0000000..384580b Binary files /dev/null and b/image/62250457d3b68.png differ diff --git a/image/622504680ff65.png b/image/622504680ff65.png new file mode 100644 index 0000000..9b2389f Binary files /dev/null and b/image/622504680ff65.png differ diff --git a/image/62250546e8794.png b/image/62250546e8794.png new file mode 100644 index 0000000..3f44155 Binary files /dev/null and b/image/62250546e8794.png differ diff --git a/image/62250585858bc.png b/image/62250585858bc.png new file mode 100644 index 0000000..f7d6144 Binary files /dev/null and b/image/62250585858bc.png differ diff --git a/image/622505c631462.png b/image/622505c631462.png new file mode 100644 index 0000000..f49d89a Binary files /dev/null and b/image/622505c631462.png differ diff --git a/image/6225063c68159.png b/image/6225063c68159.png new file mode 100644 index 0000000..c4f12fa Binary files /dev/null and b/image/6225063c68159.png differ diff --git a/image/6225064f00234.png b/image/6225064f00234.png new file mode 100644 index 0000000..3a69829 Binary files /dev/null and b/image/6225064f00234.png differ diff --git a/image/622507b175343.png b/image/622507b175343.png new file mode 100644 index 0000000..4bc2cc1 Binary files /dev/null and b/image/622507b175343.png differ diff --git a/image/622507c27d11e.png b/image/622507c27d11e.png new file mode 100644 index 0000000..da30945 Binary files /dev/null and b/image/622507c27d11e.png differ diff --git a/image/622507c952dab.png b/image/622507c952dab.png new file mode 100644 index 0000000..d508a05 Binary files /dev/null and b/image/622507c952dab.png differ diff --git a/image/622508093c97a.png b/image/622508093c97a.png new file mode 100644 index 0000000..aa7a424 Binary files /dev/null and b/image/622508093c97a.png differ diff --git a/image/6225083aa730a.png b/image/6225083aa730a.png new file mode 100644 index 0000000..50c9086 Binary files /dev/null and b/image/6225083aa730a.png differ diff --git a/image/622508c48f343.png b/image/622508c48f343.png new file mode 100644 index 0000000..30ab1d8 Binary files /dev/null and b/image/622508c48f343.png differ diff --git a/image/622508d41b48f.png b/image/622508d41b48f.png new file mode 100644 index 0000000..eda3368 Binary files /dev/null and b/image/622508d41b48f.png differ diff --git a/image/62250939d5e16.png b/image/62250939d5e16.png new file mode 100644 index 0000000..bd72e5a Binary files /dev/null and b/image/62250939d5e16.png differ diff --git a/image/622509b1282d7.png b/image/622509b1282d7.png new file mode 100644 index 0000000..5ca2b79 Binary files /dev/null and b/image/622509b1282d7.png differ diff --git a/image/62250a05211d1.png b/image/62250a05211d1.png new file mode 100644 index 0000000..47a33b9 Binary files /dev/null and b/image/62250a05211d1.png differ diff --git a/image/62250a28d3727.png b/image/62250a28d3727.png new file mode 100644 index 0000000..d89e127 Binary files /dev/null and b/image/62250a28d3727.png differ diff --git a/image/62250a56945b5.png b/image/62250a56945b5.png new file mode 100644 index 0000000..b9fe381 Binary files /dev/null and b/image/62250a56945b5.png differ diff --git a/image/62250a8a665f9.png b/image/62250a8a665f9.png new file mode 100644 index 0000000..ad02388 Binary files /dev/null and b/image/62250a8a665f9.png differ diff --git a/image/62250ab671407.png b/image/62250ab671407.png new file mode 100644 index 0000000..b4adc4b Binary files /dev/null and b/image/62250ab671407.png differ diff --git a/image/62250ad197e92.png b/image/62250ad197e92.png new file mode 100644 index 0000000..1a94d69 Binary files /dev/null and b/image/62250ad197e92.png differ diff --git a/image/62250ae33e1f1.png b/image/62250ae33e1f1.png new file mode 100644 index 0000000..a6781b4 Binary files /dev/null and b/image/62250ae33e1f1.png differ diff --git a/image/62250b5033790.png b/image/62250b5033790.png new file mode 100644 index 0000000..945418b Binary files /dev/null and b/image/62250b5033790.png differ diff --git a/image/62250b6197615.png b/image/62250b6197615.png new file mode 100644 index 0000000..7d7d32b Binary files /dev/null and b/image/62250b6197615.png differ diff --git a/image/62250c5ba68f6.png b/image/62250c5ba68f6.png new file mode 100644 index 0000000..0bcd938 Binary files /dev/null and b/image/62250c5ba68f6.png differ diff --git a/image/62250d23736ba.png b/image/62250d23736ba.png new file mode 100644 index 0000000..dca12cb Binary files /dev/null and b/image/62250d23736ba.png differ diff --git a/image/62250e49b21a1.png b/image/62250e49b21a1.png new file mode 100644 index 0000000..61f5bf3 Binary files /dev/null and b/image/62250e49b21a1.png differ diff --git a/image/62250f2d82393.png b/image/62250f2d82393.png new file mode 100644 index 0000000..c4dcd89 Binary files /dev/null and b/image/62250f2d82393.png differ diff --git a/image/6225116559fdb.png b/image/6225116559fdb.png new file mode 100644 index 0000000..2e08b55 Binary files /dev/null and b/image/6225116559fdb.png differ diff --git a/image/622512b817e6d.png b/image/622512b817e6d.png new file mode 100644 index 0000000..6235f82 Binary files /dev/null and b/image/622512b817e6d.png differ diff --git a/image/622512c25e7d8.png b/image/622512c25e7d8.png new file mode 100644 index 0000000..56b53ad Binary files /dev/null and b/image/622512c25e7d8.png differ diff --git a/image/6225151fa0168.png b/image/6225151fa0168.png new file mode 100644 index 0000000..6f9c476 Binary files /dev/null and b/image/6225151fa0168.png differ diff --git a/image/622515bcf412a.png b/image/622515bcf412a.png new file mode 100644 index 0000000..b660453 Binary files /dev/null and b/image/622515bcf412a.png differ diff --git a/image/622516fc4dd34.png b/image/622516fc4dd34.png new file mode 100644 index 0000000..73d00df Binary files /dev/null and b/image/622516fc4dd34.png differ diff --git a/image/622517298756b.png b/image/622517298756b.png new file mode 100644 index 0000000..da0b8a7 Binary files /dev/null and b/image/622517298756b.png differ diff --git a/image/62251764f36f1.png b/image/62251764f36f1.png new file mode 100644 index 0000000..de2aa04 Binary files /dev/null and b/image/62251764f36f1.png differ diff --git a/image/622517b1c0670.png b/image/622517b1c0670.png new file mode 100644 index 0000000..d6aa5cb Binary files /dev/null and b/image/622517b1c0670.png differ diff --git a/image/6225181766a15.png b/image/6225181766a15.png new file mode 100644 index 0000000..c2a7ff5 Binary files /dev/null and b/image/6225181766a15.png differ diff --git a/image/622518ceaf768.png b/image/622518ceaf768.png new file mode 100644 index 0000000..3ad8353 Binary files /dev/null and b/image/622518ceaf768.png differ diff --git a/image/62251a0b12ba8.png b/image/62251a0b12ba8.png new file mode 100644 index 0000000..24abdcf Binary files /dev/null and b/image/62251a0b12ba8.png differ diff --git a/image/6225311505081.png b/image/6225311505081.png new file mode 100644 index 0000000..a4dbdec Binary files /dev/null and b/image/6225311505081.png differ diff --git a/image/62258d4551dc0.png b/image/62258d4551dc0.png new file mode 100644 index 0000000..cef349f Binary files /dev/null and b/image/62258d4551dc0.png differ diff --git a/image/6225d1fb073d7.png b/image/6225d1fb073d7.png new file mode 100644 index 0000000..2455381 Binary files /dev/null and b/image/6225d1fb073d7.png differ diff --git a/image/6225d2c4079ea.png b/image/6225d2c4079ea.png new file mode 100644 index 0000000..c8fa59f Binary files /dev/null and b/image/6225d2c4079ea.png differ diff --git a/image/6225d35c44a36.png b/image/6225d35c44a36.png new file mode 100644 index 0000000..64cf73a Binary files /dev/null and b/image/6225d35c44a36.png differ diff --git a/image/6225d3e327c25.png b/image/6225d3e327c25.png new file mode 100644 index 0000000..af5b6e8 Binary files /dev/null and b/image/6225d3e327c25.png differ diff --git a/image/6225f1668d8d3.png b/image/6225f1668d8d3.png new file mode 100644 index 0000000..77a4153 Binary files /dev/null and b/image/6225f1668d8d3.png differ diff --git a/image/6225f1e52a947.png b/image/6225f1e52a947.png new file mode 100644 index 0000000..3a3338c Binary files /dev/null and b/image/6225f1e52a947.png differ diff --git a/image/6226300459af3.png b/image/6226300459af3.png new file mode 100644 index 0000000..68a9eac Binary files /dev/null and b/image/6226300459af3.png differ diff --git a/image/622640414abd9.png b/image/622640414abd9.png new file mode 100644 index 0000000..9d5a26d Binary files /dev/null and b/image/622640414abd9.png differ diff --git a/image/622640656a1a3.png b/image/622640656a1a3.png new file mode 100644 index 0000000..4ef4a30 Binary files /dev/null and b/image/622640656a1a3.png differ diff --git a/image/6226407a9ee74.png b/image/6226407a9ee74.png new file mode 100644 index 0000000..5787940 Binary files /dev/null and b/image/6226407a9ee74.png differ diff --git a/image/6227a08c631f1.png b/image/6227a08c631f1.png new file mode 100644 index 0000000..285ff66 Binary files /dev/null and b/image/6227a08c631f1.png differ diff --git a/image/6228429c29b49.png b/image/6228429c29b49.png new file mode 100644 index 0000000..4669eb7 Binary files /dev/null and b/image/6228429c29b49.png differ diff --git a/image/6228833c10d2c.png b/image/6228833c10d2c.png new file mode 100644 index 0000000..cc882f3 Binary files /dev/null and b/image/6228833c10d2c.png differ diff --git a/image/622884345920c.png b/image/622884345920c.png new file mode 100644 index 0000000..cbb8ddf Binary files /dev/null and b/image/622884345920c.png differ diff --git a/image/62288fcb03d70.png b/image/62288fcb03d70.png new file mode 100644 index 0000000..1c12716 Binary files /dev/null and b/image/62288fcb03d70.png differ diff --git a/image/62289060e4ab9.png b/image/62289060e4ab9.png new file mode 100644 index 0000000..0d9671e Binary files /dev/null and b/image/62289060e4ab9.png differ diff --git a/image/6228d5443daa3.png b/image/6228d5443daa3.png new file mode 100644 index 0000000..7907bc9 Binary files /dev/null and b/image/6228d5443daa3.png differ diff --git a/image/622962031018b.png b/image/622962031018b.png new file mode 100644 index 0000000..a28629a Binary files /dev/null and b/image/622962031018b.png differ diff --git a/image/6229bba94fec2.png b/image/6229bba94fec2.png new file mode 100644 index 0000000..3d110a8 Binary files /dev/null and b/image/6229bba94fec2.png differ diff --git a/image/6229bbb9e524e.png b/image/6229bbb9e524e.png new file mode 100644 index 0000000..98c33b6 Binary files /dev/null and b/image/6229bbb9e524e.png differ diff --git a/image/6229bbc69d67e.png b/image/6229bbc69d67e.png new file mode 100644 index 0000000..5410995 Binary files /dev/null and b/image/6229bbc69d67e.png differ diff --git a/image/6229bbd15144d.png b/image/6229bbd15144d.png new file mode 100644 index 0000000..527289b Binary files /dev/null and b/image/6229bbd15144d.png differ diff --git a/image/6229bbdec8f08.png b/image/6229bbdec8f08.png new file mode 100644 index 0000000..c90b797 Binary files /dev/null and b/image/6229bbdec8f08.png differ diff --git a/image/6229bbe7d4329.png b/image/6229bbe7d4329.png new file mode 100644 index 0000000..627b228 Binary files /dev/null and b/image/6229bbe7d4329.png differ diff --git a/image/622b1fa2c7b67.png b/image/622b1fa2c7b67.png new file mode 100644 index 0000000..a5ced4f Binary files /dev/null and b/image/622b1fa2c7b67.png differ diff --git a/image/622b23370e524.png b/image/622b23370e524.png new file mode 100644 index 0000000..73fab8f Binary files /dev/null and b/image/622b23370e524.png differ diff --git a/image/622b247dc5b4c.png b/image/622b247dc5b4c.png new file mode 100644 index 0000000..6e24455 Binary files /dev/null and b/image/622b247dc5b4c.png differ diff --git a/image/622b2d544fb86.png b/image/622b2d544fb86.png new file mode 100644 index 0000000..9b82037 Binary files /dev/null and b/image/622b2d544fb86.png differ diff --git a/image/622b2eafddaac.png b/image/622b2eafddaac.png new file mode 100644 index 0000000..d5d027e Binary files /dev/null and b/image/622b2eafddaac.png differ diff --git a/image/622b35520e491.png b/image/622b35520e491.png new file mode 100644 index 0000000..e1def46 Binary files /dev/null and b/image/622b35520e491.png differ diff --git a/image/622b3c1a97814.png b/image/622b3c1a97814.png new file mode 100644 index 0000000..8fca343 Binary files /dev/null and b/image/622b3c1a97814.png differ diff --git a/image/622b3c229d251.png b/image/622b3c229d251.png new file mode 100644 index 0000000..02640ba Binary files /dev/null and b/image/622b3c229d251.png differ diff --git a/image/622b6cc7c8a2a.png b/image/622b6cc7c8a2a.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cc7c8a2a.png differ diff --git a/image/622b6cca54301.png b/image/622b6cca54301.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cca54301.png differ diff --git a/image/622b6ccf9a073.png b/image/622b6ccf9a073.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6ccf9a073.png differ diff --git a/image/622b6cd10653d.png b/image/622b6cd10653d.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cd10653d.png differ diff --git a/image/622b6cd718a83.png b/image/622b6cd718a83.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cd718a83.png differ diff --git a/image/622b6cd9887b3.png b/image/622b6cd9887b3.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cd9887b3.png differ diff --git a/image/622b6cdbb8570.png b/image/622b6cdbb8570.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cdbb8570.png differ diff --git a/image/622b6cef84a4b.png b/image/622b6cef84a4b.png new file mode 100644 index 0000000..5fd9ebb Binary files /dev/null and b/image/622b6cef84a4b.png differ diff --git a/image/622b6d1126825.png b/image/622b6d1126825.png new file mode 100644 index 0000000..26d9e94 Binary files /dev/null and b/image/622b6d1126825.png differ diff --git a/image/622b6d12e4363.png b/image/622b6d12e4363.png new file mode 100644 index 0000000..6f64087 Binary files /dev/null and b/image/622b6d12e4363.png differ diff --git a/image/622b6d1391f03.png b/image/622b6d1391f03.png new file mode 100644 index 0000000..26d9e94 Binary files /dev/null and b/image/622b6d1391f03.png differ diff --git a/image/622b6e3d132cd.png b/image/622b6e3d132cd.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/622b6e3d132cd.png differ diff --git a/image/622b6e54834ee.png b/image/622b6e54834ee.png new file mode 100644 index 0000000..65c943f Binary files /dev/null and b/image/622b6e54834ee.png differ diff --git a/image/622b6e5502a5c.png b/image/622b6e5502a5c.png new file mode 100644 index 0000000..8446c89 Binary files /dev/null and b/image/622b6e5502a5c.png differ diff --git a/image/622b6e5561dd2.png b/image/622b6e5561dd2.png new file mode 100644 index 0000000..65c943f Binary files /dev/null and b/image/622b6e5561dd2.png differ diff --git a/image/622b6e624fd65.png b/image/622b6e624fd65.png new file mode 100644 index 0000000..65e4c90 Binary files /dev/null and b/image/622b6e624fd65.png differ diff --git a/image/622b6fc64f3ba.png b/image/622b6fc64f3ba.png new file mode 100644 index 0000000..5809e57 Binary files /dev/null and b/image/622b6fc64f3ba.png differ diff --git a/image/622b75f450f6e.png b/image/622b75f450f6e.png new file mode 100644 index 0000000..733c3c1 Binary files /dev/null and b/image/622b75f450f6e.png differ diff --git a/image/622b77ac75f94.png b/image/622b77ac75f94.png new file mode 100644 index 0000000..2e771bc Binary files /dev/null and b/image/622b77ac75f94.png differ diff --git a/image/622b787184414.png b/image/622b787184414.png new file mode 100644 index 0000000..8c94e12 Binary files /dev/null and b/image/622b787184414.png differ diff --git a/image/622c56f4e6a98.png b/image/622c56f4e6a98.png new file mode 100644 index 0000000..461c86e Binary files /dev/null and b/image/622c56f4e6a98.png differ diff --git a/image/622cda06e0d2d.png b/image/622cda06e0d2d.png new file mode 100644 index 0000000..c77c431 Binary files /dev/null and b/image/622cda06e0d2d.png differ diff --git a/image/622cde60c96bf.png b/image/622cde60c96bf.png new file mode 100644 index 0000000..53a53bb Binary files /dev/null and b/image/622cde60c96bf.png differ diff --git a/image/622cea0d71705.png b/image/622cea0d71705.png new file mode 100644 index 0000000..6253b22 Binary files /dev/null and b/image/622cea0d71705.png differ diff --git a/image/622dc8adcc300.png b/image/622dc8adcc300.png new file mode 100644 index 0000000..4ac1aeb Binary files /dev/null and b/image/622dc8adcc300.png differ diff --git a/image/622dc8f2709ad.png b/image/622dc8f2709ad.png new file mode 100644 index 0000000..166cde3 Binary files /dev/null and b/image/622dc8f2709ad.png differ diff --git a/image/622dc9537491d.png b/image/622dc9537491d.png new file mode 100644 index 0000000..7b783c1 Binary files /dev/null and b/image/622dc9537491d.png differ diff --git a/image/622dc9ded9d4d.png b/image/622dc9ded9d4d.png new file mode 100644 index 0000000..f90278c Binary files /dev/null and b/image/622dc9ded9d4d.png differ diff --git a/image/622dca3d06f12.png b/image/622dca3d06f12.png new file mode 100644 index 0000000..7f12e04 Binary files /dev/null and b/image/622dca3d06f12.png differ diff --git a/image/622f114c9ab08.png b/image/622f114c9ab08.png new file mode 100644 index 0000000..451298c Binary files /dev/null and b/image/622f114c9ab08.png differ diff --git a/image/622f29ebf2d59.png b/image/622f29ebf2d59.png new file mode 100644 index 0000000..0b8606b Binary files /dev/null and b/image/622f29ebf2d59.png differ diff --git a/image/62309e76a0e97.png b/image/62309e76a0e97.png new file mode 100644 index 0000000..343f266 Binary files /dev/null and b/image/62309e76a0e97.png differ diff --git a/image/6230b8a54fe2e.png b/image/6230b8a54fe2e.png new file mode 100644 index 0000000..024773e Binary files /dev/null and b/image/6230b8a54fe2e.png differ diff --git a/image/6230bc05b8dc5.png b/image/6230bc05b8dc5.png new file mode 100644 index 0000000..c190cdd Binary files /dev/null and b/image/6230bc05b8dc5.png differ diff --git a/image/6230bd70b940f.png b/image/6230bd70b940f.png new file mode 100644 index 0000000..de94e83 Binary files /dev/null and b/image/6230bd70b940f.png differ diff --git a/image/6230be89139e3.png b/image/6230be89139e3.png new file mode 100644 index 0000000..f18c2f0 Binary files /dev/null and b/image/6230be89139e3.png differ diff --git a/image/6230bfec80df9.png b/image/6230bfec80df9.png new file mode 100644 index 0000000..565128f Binary files /dev/null and b/image/6230bfec80df9.png differ diff --git a/image/6230c08dbd6e8.png b/image/6230c08dbd6e8.png new file mode 100644 index 0000000..3f37dbb Binary files /dev/null and b/image/6230c08dbd6e8.png differ diff --git a/image/6230d43e81b23.png b/image/6230d43e81b23.png new file mode 100644 index 0000000..6d101ea Binary files /dev/null and b/image/6230d43e81b23.png differ diff --git a/image/6230d4c601cb5.png b/image/6230d4c601cb5.png new file mode 100644 index 0000000..a58cb1f Binary files /dev/null and b/image/6230d4c601cb5.png differ diff --git a/image/6230d56e72f43.png b/image/6230d56e72f43.png new file mode 100644 index 0000000..61c9017 Binary files /dev/null and b/image/6230d56e72f43.png differ diff --git a/image/6230d57f3f0d2.png b/image/6230d57f3f0d2.png new file mode 100644 index 0000000..44201b1 Binary files /dev/null and b/image/6230d57f3f0d2.png differ diff --git a/image/6230d5d179160.png b/image/6230d5d179160.png new file mode 100644 index 0000000..6fbb117 Binary files /dev/null and b/image/6230d5d179160.png differ diff --git a/image/6230d6307ff87.png b/image/6230d6307ff87.png new file mode 100644 index 0000000..4e89819 Binary files /dev/null and b/image/6230d6307ff87.png differ diff --git a/image/6230d6406a0c2.png b/image/6230d6406a0c2.png new file mode 100644 index 0000000..03d2d3b Binary files /dev/null and b/image/6230d6406a0c2.png differ diff --git a/image/6230d6b63dfad.png b/image/6230d6b63dfad.png new file mode 100644 index 0000000..4c472a8 Binary files /dev/null and b/image/6230d6b63dfad.png differ diff --git a/image/6230d6de6cbbf.png b/image/6230d6de6cbbf.png new file mode 100644 index 0000000..b4f33bb Binary files /dev/null and b/image/6230d6de6cbbf.png differ diff --git a/image/6230d6eac4e83.png b/image/6230d6eac4e83.png new file mode 100644 index 0000000..fb1f5fe Binary files /dev/null and b/image/6230d6eac4e83.png differ diff --git a/image/6231804a58a74.png b/image/6231804a58a74.png new file mode 100644 index 0000000..1c7c4c5 Binary files /dev/null and b/image/6231804a58a74.png differ diff --git a/image/6231825407c05.png b/image/6231825407c05.png new file mode 100644 index 0000000..7b3898b Binary files /dev/null and b/image/6231825407c05.png differ diff --git a/image/62319fb2da511.png b/image/62319fb2da511.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/62319fb2da511.png differ diff --git a/image/6231a03e9db74.png b/image/6231a03e9db74.png new file mode 100644 index 0000000..cd269db Binary files /dev/null and b/image/6231a03e9db74.png differ diff --git a/image/6232111a435ab.png b/image/6232111a435ab.png new file mode 100644 index 0000000..922284a Binary files /dev/null and b/image/6232111a435ab.png differ diff --git a/image/6232122976bbd.png b/image/6232122976bbd.png new file mode 100644 index 0000000..051bae2 Binary files /dev/null and b/image/6232122976bbd.png differ diff --git a/image/623214f95d21c.png b/image/623214f95d21c.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/623214f95d21c.png differ diff --git a/image/6232154116107.png b/image/6232154116107.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/6232154116107.png differ diff --git a/image/623215d58de94.png b/image/623215d58de94.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/623215d58de94.png differ diff --git a/image/6232167d45ebd.png b/image/6232167d45ebd.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/6232167d45ebd.png differ diff --git a/image/623216909708d.png b/image/623216909708d.png new file mode 100644 index 0000000..1c3db40 Binary files /dev/null and b/image/623216909708d.png differ diff --git a/image/623216a952c03.png b/image/623216a952c03.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/623216a952c03.png differ diff --git a/image/623216e41180f.png b/image/623216e41180f.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/623216e41180f.png differ diff --git a/image/623218c3e3bbc.png b/image/623218c3e3bbc.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/623218c3e3bbc.png differ diff --git a/image/62321a162a804.png b/image/62321a162a804.png new file mode 100644 index 0000000..5216234 Binary files /dev/null and b/image/62321a162a804.png differ diff --git a/image/62321a498c8f8.png b/image/62321a498c8f8.png new file mode 100644 index 0000000..a2a1af3 Binary files /dev/null and b/image/62321a498c8f8.png differ diff --git a/image/62321bef841ad.png b/image/62321bef841ad.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321bef841ad.png differ diff --git a/image/62321c273b47b.png b/image/62321c273b47b.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321c273b47b.png differ diff --git a/image/62321c4d33d3b.png b/image/62321c4d33d3b.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321c4d33d3b.png differ diff --git a/image/62321c8e98dca.png b/image/62321c8e98dca.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321c8e98dca.png differ diff --git a/image/62321d05457cf.png b/image/62321d05457cf.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321d05457cf.png differ diff --git a/image/62321d8cbada3.png b/image/62321d8cbada3.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321d8cbada3.png differ diff --git a/image/62321d8dc4602.png b/image/62321d8dc4602.png new file mode 100644 index 0000000..c85d543 Binary files /dev/null and b/image/62321d8dc4602.png differ diff --git a/image/62321da863895.png b/image/62321da863895.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321da863895.png differ diff --git a/image/62321dde73d08.png b/image/62321dde73d08.png new file mode 100644 index 0000000..83d5703 Binary files /dev/null and b/image/62321dde73d08.png differ diff --git a/image/62321dee15a09.png b/image/62321dee15a09.png new file mode 100644 index 0000000..da530ae Binary files /dev/null and b/image/62321dee15a09.png differ diff --git a/image/62321e111d0ec.png b/image/62321e111d0ec.png new file mode 100644 index 0000000..8e3392a Binary files /dev/null and b/image/62321e111d0ec.png differ diff --git a/image/62321e255c5ae.png b/image/62321e255c5ae.png new file mode 100644 index 0000000..24ca2ee Binary files /dev/null and b/image/62321e255c5ae.png differ diff --git a/image/62321e82bc977.png b/image/62321e82bc977.png new file mode 100644 index 0000000..ea60e97 Binary files /dev/null and b/image/62321e82bc977.png differ diff --git a/image/62321f27760ed.png b/image/62321f27760ed.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321f27760ed.png differ diff --git a/image/62321f386e0dd.png b/image/62321f386e0dd.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321f386e0dd.png differ diff --git a/image/62321f4ea21f9.png b/image/62321f4ea21f9.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321f4ea21f9.png differ diff --git a/image/62321f5fb3445.png b/image/62321f5fb3445.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321f5fb3445.png differ diff --git a/image/62321f9def466.png b/image/62321f9def466.png new file mode 100644 index 0000000..052ef83 Binary files /dev/null and b/image/62321f9def466.png differ diff --git a/image/62321fbc59386.png b/image/62321fbc59386.png new file mode 100644 index 0000000..3ef99a2 Binary files /dev/null and b/image/62321fbc59386.png differ diff --git a/image/62321fd4dbe9d.png b/image/62321fd4dbe9d.png new file mode 100644 index 0000000..687fccd Binary files /dev/null and b/image/62321fd4dbe9d.png differ diff --git a/image/62321feaddef7.png b/image/62321feaddef7.png new file mode 100644 index 0000000..eb0682c Binary files /dev/null and b/image/62321feaddef7.png differ diff --git a/image/6232224c13f77.png b/image/6232224c13f77.png new file mode 100644 index 0000000..e88746b Binary files /dev/null and b/image/6232224c13f77.png differ diff --git a/image/623222762cffd.png b/image/623222762cffd.png new file mode 100644 index 0000000..69a7393 Binary files /dev/null and b/image/623222762cffd.png differ diff --git a/image/623222d935d99.png b/image/623222d935d99.png new file mode 100644 index 0000000..7a23b48 Binary files /dev/null and b/image/623222d935d99.png differ diff --git a/image/623222eb58546.png b/image/623222eb58546.png new file mode 100644 index 0000000..20c248d Binary files /dev/null and b/image/623222eb58546.png differ diff --git a/image/6233497272759.png b/image/6233497272759.png new file mode 100644 index 0000000..3d9ce14 Binary files /dev/null and b/image/6233497272759.png differ diff --git a/image/62334afca09a8.png b/image/62334afca09a8.png new file mode 100644 index 0000000..f3701e7 Binary files /dev/null and b/image/62334afca09a8.png differ diff --git a/image/62338b4781704.png b/image/62338b4781704.png new file mode 100644 index 0000000..d98eea4 Binary files /dev/null and b/image/62338b4781704.png differ diff --git a/image/62338d4be4739.png b/image/62338d4be4739.png new file mode 100644 index 0000000..5bc92a0 Binary files /dev/null and b/image/62338d4be4739.png differ diff --git a/image/6235f838805e6.png b/image/6235f838805e6.png new file mode 100644 index 0000000..2084fa6 Binary files /dev/null and b/image/6235f838805e6.png differ diff --git a/image/623d0576438be.png b/image/623d0576438be.png new file mode 100644 index 0000000..a78993d Binary files /dev/null and b/image/623d0576438be.png differ diff --git a/image/623d05fdcf206.png b/image/623d05fdcf206.png new file mode 100644 index 0000000..aaa3ea5 Binary files /dev/null and b/image/623d05fdcf206.png differ diff --git a/image/623d0c7f0e88c.png b/image/623d0c7f0e88c.png new file mode 100644 index 0000000..e2cf115 Binary files /dev/null and b/image/623d0c7f0e88c.png differ diff --git a/image/623e151c58d83.png b/image/623e151c58d83.png new file mode 100644 index 0000000..9a31458 Binary files /dev/null and b/image/623e151c58d83.png differ diff --git a/image/623e155e3eec7.png b/image/623e155e3eec7.png new file mode 100644 index 0000000..0f6bbed Binary files /dev/null and b/image/623e155e3eec7.png differ diff --git a/image/623e156834b39.png b/image/623e156834b39.png new file mode 100644 index 0000000..3dfaa40 Binary files /dev/null and b/image/623e156834b39.png differ diff --git a/image/623e15834db04.png b/image/623e15834db04.png new file mode 100644 index 0000000..31b1b23 Binary files /dev/null and b/image/623e15834db04.png differ diff --git a/image/623e15ceb0cc4.png b/image/623e15ceb0cc4.png new file mode 100644 index 0000000..c8eb9d4 Binary files /dev/null and b/image/623e15ceb0cc4.png differ diff --git a/image/623e81ccdb0d4.png b/image/623e81ccdb0d4.png new file mode 100644 index 0000000..eaee58b Binary files /dev/null and b/image/623e81ccdb0d4.png differ diff --git a/image/623e823783bc3.png b/image/623e823783bc3.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/623e823783bc3.png differ diff --git a/image/6277dd0ae104d.png b/image/6277dd0ae104d.png new file mode 100644 index 0000000..f7e1003 Binary files /dev/null and b/image/6277dd0ae104d.png differ diff --git a/image/629d07988a94a.png b/image/629d07988a94a.png new file mode 100644 index 0000000..8063922 Binary files /dev/null and b/image/629d07988a94a.png differ diff --git a/image/629d0c086c2aa.png b/image/629d0c086c2aa.png new file mode 100644 index 0000000..73998fd Binary files /dev/null and b/image/629d0c086c2aa.png differ diff --git a/image/629d0c94863c9.png b/image/629d0c94863c9.png new file mode 100644 index 0000000..1c484ec Binary files /dev/null and b/image/629d0c94863c9.png differ diff --git a/image/629d0df6281e1.png b/image/629d0df6281e1.png new file mode 100644 index 0000000..05de880 Binary files /dev/null and b/image/629d0df6281e1.png differ diff --git a/image/629d0f2d0b4c2.png b/image/629d0f2d0b4c2.png new file mode 100644 index 0000000..8a7b75c Binary files /dev/null and b/image/629d0f2d0b4c2.png differ diff --git a/image/629d0fd12d027.png b/image/629d0fd12d027.png new file mode 100644 index 0000000..f7c7791 Binary files /dev/null and b/image/629d0fd12d027.png differ diff --git a/image/629d104c0bf18.png b/image/629d104c0bf18.png new file mode 100644 index 0000000..c327235 Binary files /dev/null and b/image/629d104c0bf18.png differ diff --git a/image/629d1099c6763.png b/image/629d1099c6763.png new file mode 100644 index 0000000..983be02 Binary files /dev/null and b/image/629d1099c6763.png differ diff --git a/image/629d5ec2d0015.png b/image/629d5ec2d0015.png new file mode 100644 index 0000000..980ec14 Binary files /dev/null and b/image/629d5ec2d0015.png differ diff --git a/image/629d5ef568e3b.png b/image/629d5ef568e3b.png new file mode 100644 index 0000000..49a1542 Binary files /dev/null and b/image/629d5ef568e3b.png differ diff --git a/image/629d635a293ca.png b/image/629d635a293ca.png new file mode 100644 index 0000000..28c01f7 Binary files /dev/null and b/image/629d635a293ca.png differ diff --git a/image/629d63d35b2c6.png b/image/629d63d35b2c6.png new file mode 100644 index 0000000..4e33aab Binary files /dev/null and b/image/629d63d35b2c6.png differ diff --git a/image/629d66e889cf6.png b/image/629d66e889cf6.png new file mode 100644 index 0000000..6647e20 Binary files /dev/null and b/image/629d66e889cf6.png differ diff --git a/image/629d67a63763d.png b/image/629d67a63763d.png new file mode 100644 index 0000000..5c65d06 Binary files /dev/null and b/image/629d67a63763d.png differ diff --git a/image/629d67f39f63e.png b/image/629d67f39f63e.png new file mode 100644 index 0000000..8279d4f Binary files /dev/null and b/image/629d67f39f63e.png differ diff --git a/image/629d68c3afe78.png b/image/629d68c3afe78.png new file mode 100644 index 0000000..558696f Binary files /dev/null and b/image/629d68c3afe78.png differ diff --git a/image/629d68e81191e.png b/image/629d68e81191e.png new file mode 100644 index 0000000..e0a6c02 Binary files /dev/null and b/image/629d68e81191e.png differ diff --git a/image/629d69f804fc1.png b/image/629d69f804fc1.png new file mode 100644 index 0000000..9c1c14a Binary files /dev/null and b/image/629d69f804fc1.png differ diff --git a/image/629d6a935c61a.png b/image/629d6a935c61a.png new file mode 100644 index 0000000..f94c939 Binary files /dev/null and b/image/629d6a935c61a.png differ diff --git a/image/629d6ac3dd31e.png b/image/629d6ac3dd31e.png new file mode 100644 index 0000000..6930716 Binary files /dev/null and b/image/629d6ac3dd31e.png differ diff --git a/image/629d6af750ba3.png b/image/629d6af750ba3.png new file mode 100644 index 0000000..001ca3a Binary files /dev/null and b/image/629d6af750ba3.png differ diff --git a/image/629d6ca1e582e.png b/image/629d6ca1e582e.png new file mode 100644 index 0000000..0dc841c Binary files /dev/null and b/image/629d6ca1e582e.png differ diff --git a/image/629d6cd66e4a1.png b/image/629d6cd66e4a1.png new file mode 100644 index 0000000..fc0853b Binary files /dev/null and b/image/629d6cd66e4a1.png differ diff --git a/image/629d6ceee9e65.png b/image/629d6ceee9e65.png new file mode 100644 index 0000000..eb223b4 Binary files /dev/null and b/image/629d6ceee9e65.png differ diff --git a/image/629d6d98c4961.png b/image/629d6d98c4961.png new file mode 100644 index 0000000..9244a6d Binary files /dev/null and b/image/629d6d98c4961.png differ diff --git a/image/629d6da3c1722.png b/image/629d6da3c1722.png new file mode 100644 index 0000000..c79117b Binary files /dev/null and b/image/629d6da3c1722.png differ diff --git a/image/629d6dacd9a4d.png b/image/629d6dacd9a4d.png new file mode 100644 index 0000000..46049db Binary files /dev/null and b/image/629d6dacd9a4d.png differ diff --git a/image/629d6df3c3e3f.png b/image/629d6df3c3e3f.png new file mode 100644 index 0000000..598f267 Binary files /dev/null and b/image/629d6df3c3e3f.png differ diff --git a/image/629d6dfa393dc.png b/image/629d6dfa393dc.png new file mode 100644 index 0000000..a5a14b5 Binary files /dev/null and b/image/629d6dfa393dc.png differ diff --git a/image/629d6e0152685.png b/image/629d6e0152685.png new file mode 100644 index 0000000..9ca8a64 Binary files /dev/null and b/image/629d6e0152685.png differ diff --git a/image/629d6e07b50f7.png b/image/629d6e07b50f7.png new file mode 100644 index 0000000..a7de395 Binary files /dev/null and b/image/629d6e07b50f7.png differ diff --git a/image/629d6e907f0a8.png b/image/629d6e907f0a8.png new file mode 100644 index 0000000..821efe5 Binary files /dev/null and b/image/629d6e907f0a8.png differ diff --git a/image/629d6e9b79f2c.png b/image/629d6e9b79f2c.png new file mode 100644 index 0000000..d37b745 Binary files /dev/null and b/image/629d6e9b79f2c.png differ diff --git a/image/629d6ea42f44c.png b/image/629d6ea42f44c.png new file mode 100644 index 0000000..85754e8 Binary files /dev/null and b/image/629d6ea42f44c.png differ diff --git a/image/629d6f4b35a51.png b/image/629d6f4b35a51.png new file mode 100644 index 0000000..8984848 Binary files /dev/null and b/image/629d6f4b35a51.png differ diff --git a/image/629d6f67ab68a.png b/image/629d6f67ab68a.png new file mode 100644 index 0000000..71f7c7c Binary files /dev/null and b/image/629d6f67ab68a.png differ diff --git a/image/629d6f716ea61.png b/image/629d6f716ea61.png new file mode 100644 index 0000000..32e5229 Binary files /dev/null and b/image/629d6f716ea61.png differ diff --git a/image/629d71619aaad.png b/image/629d71619aaad.png new file mode 100644 index 0000000..cff5758 Binary files /dev/null and b/image/629d71619aaad.png differ diff --git a/image/629d71684f3fe.png b/image/629d71684f3fe.png new file mode 100644 index 0000000..02c3074 Binary files /dev/null and b/image/629d71684f3fe.png differ diff --git a/image/629d719f02c1f.png b/image/629d719f02c1f.png new file mode 100644 index 0000000..43f5ea5 Binary files /dev/null and b/image/629d719f02c1f.png differ diff --git a/image/629d71f54dbbe.png b/image/629d71f54dbbe.png new file mode 100644 index 0000000..96752a1 Binary files /dev/null and b/image/629d71f54dbbe.png differ diff --git a/image/629d720f6b995.png b/image/629d720f6b995.png new file mode 100644 index 0000000..98462be Binary files /dev/null and b/image/629d720f6b995.png differ diff --git a/image/629d731c5442e.png b/image/629d731c5442e.png new file mode 100644 index 0000000..d658603 Binary files /dev/null and b/image/629d731c5442e.png differ diff --git a/image/629d75cadf996.png b/image/629d75cadf996.png new file mode 100644 index 0000000..1a82ae1 Binary files /dev/null and b/image/629d75cadf996.png differ diff --git a/image/629d77e95d336.png b/image/629d77e95d336.png new file mode 100644 index 0000000..83ef32f Binary files /dev/null and b/image/629d77e95d336.png differ diff --git a/image/629d78aad473a.png b/image/629d78aad473a.png new file mode 100644 index 0000000..c494b68 Binary files /dev/null and b/image/629d78aad473a.png differ diff --git a/image/629d78b941866.png b/image/629d78b941866.png new file mode 100644 index 0000000..ea71ae5 Binary files /dev/null and b/image/629d78b941866.png differ diff --git a/image/629d78f48bed1.png b/image/629d78f48bed1.png new file mode 100644 index 0000000..0201f33 Binary files /dev/null and b/image/629d78f48bed1.png differ diff --git a/image/629d796f01e0a.png b/image/629d796f01e0a.png new file mode 100644 index 0000000..b67d5be Binary files /dev/null and b/image/629d796f01e0a.png differ diff --git a/image/629d7995df6fa.png b/image/629d7995df6fa.png new file mode 100644 index 0000000..f402a80 Binary files /dev/null and b/image/629d7995df6fa.png differ diff --git a/image/629d79aa2ff5c.png b/image/629d79aa2ff5c.png new file mode 100644 index 0000000..fca2134 Binary files /dev/null and b/image/629d79aa2ff5c.png differ diff --git a/image/629d83c694451.png b/image/629d83c694451.png new file mode 100644 index 0000000..341cecd Binary files /dev/null and b/image/629d83c694451.png differ diff --git a/image/629d83df6866d.png b/image/629d83df6866d.png new file mode 100644 index 0000000..fd54533 Binary files /dev/null and b/image/629d83df6866d.png differ diff --git a/image/629d844e4fd7f.png b/image/629d844e4fd7f.png new file mode 100644 index 0000000..0d10204 Binary files /dev/null and b/image/629d844e4fd7f.png differ diff --git a/image/629d8455abe81.png b/image/629d8455abe81.png new file mode 100644 index 0000000..3981b4a Binary files /dev/null and b/image/629d8455abe81.png differ diff --git a/image/629d8461d10de.png b/image/629d8461d10de.png new file mode 100644 index 0000000..fd54533 Binary files /dev/null and b/image/629d8461d10de.png differ diff --git a/image/629d86285a584.png b/image/629d86285a584.png new file mode 100644 index 0000000..098ea93 Binary files /dev/null and b/image/629d86285a584.png differ diff --git a/image/629ecfedb599e.png b/image/629ecfedb599e.png new file mode 100644 index 0000000..109e031 Binary files /dev/null and b/image/629ecfedb599e.png differ diff --git a/image/62b7cfdf7d8ac.png b/image/62b7cfdf7d8ac.png new file mode 100644 index 0000000..a278a4d Binary files /dev/null and b/image/62b7cfdf7d8ac.png differ diff --git a/image/62c20eba3bdb5.png b/image/62c20eba3bdb5.png new file mode 100644 index 0000000..f129dfc Binary files /dev/null and b/image/62c20eba3bdb5.png differ diff --git a/image/62c20f8d88329.png b/image/62c20f8d88329.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/62c20f8d88329.png differ diff --git a/image/6359dfd8c7453.png b/image/6359dfd8c7453.png new file mode 100644 index 0000000..36822c8 Binary files /dev/null and b/image/6359dfd8c7453.png differ diff --git a/image/636a16b241f32.png b/image/636a16b241f32.png new file mode 100644 index 0000000..f731db5 Binary files /dev/null and b/image/636a16b241f32.png differ diff --git a/image/63732721b947a.png b/image/63732721b947a.png new file mode 100644 index 0000000..f982aad Binary files /dev/null and b/image/63732721b947a.png differ diff --git a/image/63846d5686f8f.png b/image/63846d5686f8f.png new file mode 100644 index 0000000..e1c1c9c Binary files /dev/null and b/image/63846d5686f8f.png differ diff --git a/image/63879914b8e68.png b/image/63879914b8e68.png new file mode 100644 index 0000000..836b729 Binary files /dev/null and b/image/63879914b8e68.png differ diff --git a/image/63d67b31b9c8e.png b/image/63d67b31b9c8e.png new file mode 100644 index 0000000..d03e946 Binary files /dev/null and b/image/63d67b31b9c8e.png differ diff --git a/image/63d67b873f3f0.png b/image/63d67b873f3f0.png new file mode 100644 index 0000000..30391b2 Binary files /dev/null and b/image/63d67b873f3f0.png differ diff --git a/image/63d67bc54aab3.png b/image/63d67bc54aab3.png new file mode 100644 index 0000000..c4f217f Binary files /dev/null and b/image/63d67bc54aab3.png differ diff --git a/image/63d67bdd6692e.png b/image/63d67bdd6692e.png new file mode 100644 index 0000000..2a8c28a Binary files /dev/null and b/image/63d67bdd6692e.png differ diff --git a/image/63d67c1c91021.png b/image/63d67c1c91021.png new file mode 100644 index 0000000..fc41caa Binary files /dev/null and b/image/63d67c1c91021.png differ diff --git a/image/63d67c49b0e2e.png b/image/63d67c49b0e2e.png new file mode 100644 index 0000000..a54c38b Binary files /dev/null and b/image/63d67c49b0e2e.png differ diff --git a/image/63d67ca30e13d.png b/image/63d67ca30e13d.png new file mode 100644 index 0000000..56b863e Binary files /dev/null and b/image/63d67ca30e13d.png differ diff --git a/image/63d67cee3697b.png b/image/63d67cee3697b.png new file mode 100644 index 0000000..9cfc44e Binary files /dev/null and b/image/63d67cee3697b.png differ diff --git a/image/63d67da7ed0db.png b/image/63d67da7ed0db.png new file mode 100644 index 0000000..1b34942 Binary files /dev/null and b/image/63d67da7ed0db.png differ diff --git a/image/63d67e18da9b0.png b/image/63d67e18da9b0.png new file mode 100644 index 0000000..295f123 Binary files /dev/null and b/image/63d67e18da9b0.png differ diff --git a/image/63d67e22b874d.png b/image/63d67e22b874d.png new file mode 100644 index 0000000..de5793b Binary files /dev/null and b/image/63d67e22b874d.png differ diff --git a/image/63d67e2b453f2.png b/image/63d67e2b453f2.png new file mode 100644 index 0000000..40192af Binary files /dev/null and b/image/63d67e2b453f2.png differ diff --git a/image/63d67e71a104c.png b/image/63d67e71a104c.png new file mode 100644 index 0000000..21a8d33 Binary files /dev/null and b/image/63d67e71a104c.png differ diff --git a/image/63d67e7f1b840.png b/image/63d67e7f1b840.png new file mode 100644 index 0000000..5628157 Binary files /dev/null and b/image/63d67e7f1b840.png differ diff --git a/image/63d67ea5b62d0.png b/image/63d67ea5b62d0.png new file mode 100644 index 0000000..ccbc56b Binary files /dev/null and b/image/63d67ea5b62d0.png differ diff --git a/image/63d67eb475096.png b/image/63d67eb475096.png new file mode 100644 index 0000000..709279e Binary files /dev/null and b/image/63d67eb475096.png differ diff --git a/image/63d67f33cae15.png b/image/63d67f33cae15.png new file mode 100644 index 0000000..cb3ac22 Binary files /dev/null and b/image/63d67f33cae15.png differ diff --git a/image/63d67f640ae41.png b/image/63d67f640ae41.png new file mode 100644 index 0000000..b748560 Binary files /dev/null and b/image/63d67f640ae41.png differ diff --git a/image/63d67fe05d4ef.png b/image/63d67fe05d4ef.png new file mode 100644 index 0000000..3111643 Binary files /dev/null and b/image/63d67fe05d4ef.png differ diff --git a/image/63d67ff5b7f34.png b/image/63d67ff5b7f34.png new file mode 100644 index 0000000..d2521bd Binary files /dev/null and b/image/63d67ff5b7f34.png differ diff --git a/image/63d6800d379b1.png b/image/63d6800d379b1.png new file mode 100644 index 0000000..dc872ab Binary files /dev/null and b/image/63d6800d379b1.png differ diff --git a/image/63d680321163d.png b/image/63d680321163d.png new file mode 100644 index 0000000..4a02af1 Binary files /dev/null and b/image/63d680321163d.png differ diff --git a/image/63d6804ecfe88.png b/image/63d6804ecfe88.png new file mode 100644 index 0000000..b0f2de2 Binary files /dev/null and b/image/63d6804ecfe88.png differ diff --git a/image/63d6806c26910.png b/image/63d6806c26910.png new file mode 100644 index 0000000..6dd9f79 Binary files /dev/null and b/image/63d6806c26910.png differ diff --git a/image/63d680786fd82.png b/image/63d680786fd82.png new file mode 100644 index 0000000..1a689f4 Binary files /dev/null and b/image/63d680786fd82.png differ diff --git a/image/63d68085c2681.png b/image/63d68085c2681.png new file mode 100644 index 0000000..bc0ae50 Binary files /dev/null and b/image/63d68085c2681.png differ diff --git a/image/63d680c33d8a8.png b/image/63d680c33d8a8.png new file mode 100644 index 0000000..81da0db Binary files /dev/null and b/image/63d680c33d8a8.png differ diff --git a/image/63d6811b2a09d.png b/image/63d6811b2a09d.png new file mode 100644 index 0000000..34e5b5b Binary files /dev/null and b/image/63d6811b2a09d.png differ diff --git a/image/63d6819aaf7d3.png b/image/63d6819aaf7d3.png new file mode 100644 index 0000000..f691813 Binary files /dev/null and b/image/63d6819aaf7d3.png differ diff --git a/image/63d681c397725.png b/image/63d681c397725.png new file mode 100644 index 0000000..0b91397 Binary files /dev/null and b/image/63d681c397725.png differ diff --git a/image/63d681e26d0fa.png b/image/63d681e26d0fa.png new file mode 100644 index 0000000..158efda Binary files /dev/null and b/image/63d681e26d0fa.png differ diff --git a/image/63d6822027eac.png b/image/63d6822027eac.png new file mode 100644 index 0000000..5c4e231 Binary files /dev/null and b/image/63d6822027eac.png differ diff --git a/image/63d6828acb941.png b/image/63d6828acb941.png new file mode 100644 index 0000000..3fbd184 Binary files /dev/null and b/image/63d6828acb941.png differ diff --git a/image/63d682b1e5171.png b/image/63d682b1e5171.png new file mode 100644 index 0000000..b734c6d Binary files /dev/null and b/image/63d682b1e5171.png differ diff --git a/image/63d682cb630ad.png b/image/63d682cb630ad.png new file mode 100644 index 0000000..b66ffb6 Binary files /dev/null and b/image/63d682cb630ad.png differ diff --git a/image/63d68341d4ef5.png b/image/63d68341d4ef5.png new file mode 100644 index 0000000..a422aca Binary files /dev/null and b/image/63d68341d4ef5.png differ diff --git a/image/63d6836fa6722.png b/image/63d6836fa6722.png new file mode 100644 index 0000000..9d18951 Binary files /dev/null and b/image/63d6836fa6722.png differ diff --git a/image/63d683efdb93c.png b/image/63d683efdb93c.png new file mode 100644 index 0000000..62a1f47 Binary files /dev/null and b/image/63d683efdb93c.png differ diff --git a/image/63d68405a5ef7.png b/image/63d68405a5ef7.png new file mode 100644 index 0000000..04d6426 Binary files /dev/null and b/image/63d68405a5ef7.png differ diff --git a/image/63d6847fc0ae2.png b/image/63d6847fc0ae2.png new file mode 100644 index 0000000..005c4c3 Binary files /dev/null and b/image/63d6847fc0ae2.png differ diff --git a/image/63d684f40cdcd.png b/image/63d684f40cdcd.png new file mode 100644 index 0000000..e070d51 Binary files /dev/null and b/image/63d684f40cdcd.png differ diff --git a/image/63d686013cd19.png b/image/63d686013cd19.png new file mode 100644 index 0000000..e7592a1 Binary files /dev/null and b/image/63d686013cd19.png differ diff --git a/image/63d6868f7db6f.png b/image/63d6868f7db6f.png new file mode 100644 index 0000000..9241989 Binary files /dev/null and b/image/63d6868f7db6f.png differ diff --git a/image/63d686f120c11.png b/image/63d686f120c11.png new file mode 100644 index 0000000..f862cdf Binary files /dev/null and b/image/63d686f120c11.png differ diff --git a/image/63d687942fe81.png b/image/63d687942fe81.png new file mode 100644 index 0000000..e5753a5 Binary files /dev/null and b/image/63d687942fe81.png differ diff --git a/image/63d687b515e2d.png b/image/63d687b515e2d.png new file mode 100644 index 0000000..595813b Binary files /dev/null and b/image/63d687b515e2d.png differ diff --git a/image/63d6883d2d039.png b/image/63d6883d2d039.png new file mode 100644 index 0000000..18b7e19 Binary files /dev/null and b/image/63d6883d2d039.png differ diff --git a/image/63d688680cacd.png b/image/63d688680cacd.png new file mode 100644 index 0000000..6c62e5a Binary files /dev/null and b/image/63d688680cacd.png differ diff --git a/image/63d688dce170d.png b/image/63d688dce170d.png new file mode 100644 index 0000000..2cdc3c9 Binary files /dev/null and b/image/63d688dce170d.png differ diff --git a/image/63d688fe761f5.png b/image/63d688fe761f5.png new file mode 100644 index 0000000..dfa8c54 Binary files /dev/null and b/image/63d688fe761f5.png differ diff --git a/image/63d68932c468f.png b/image/63d68932c468f.png new file mode 100644 index 0000000..89dcdfb Binary files /dev/null and b/image/63d68932c468f.png differ diff --git a/image/63d68987b356f.png b/image/63d68987b356f.png new file mode 100644 index 0000000..4e87fc9 Binary files /dev/null and b/image/63d68987b356f.png differ diff --git a/image/63d68a07367dc.png b/image/63d68a07367dc.png new file mode 100644 index 0000000..8a8588c Binary files /dev/null and b/image/63d68a07367dc.png differ diff --git a/image/63d68a1249914.png b/image/63d68a1249914.png new file mode 100644 index 0000000..28c4f4f Binary files /dev/null and b/image/63d68a1249914.png differ diff --git a/image/63d68ac41fe20.png b/image/63d68ac41fe20.png new file mode 100644 index 0000000..242bf43 Binary files /dev/null and b/image/63d68ac41fe20.png differ diff --git a/image/63d68ad3e5af4.png b/image/63d68ad3e5af4.png new file mode 100644 index 0000000..9785106 Binary files /dev/null and b/image/63d68ad3e5af4.png differ diff --git a/image/63d68b1baef9e.png b/image/63d68b1baef9e.png new file mode 100644 index 0000000..b3da565 Binary files /dev/null and b/image/63d68b1baef9e.png differ diff --git a/image/63d68b6373df4.png b/image/63d68b6373df4.png new file mode 100644 index 0000000..638975f Binary files /dev/null and b/image/63d68b6373df4.png differ diff --git a/image/63d68ba03ba9e.png b/image/63d68ba03ba9e.png new file mode 100644 index 0000000..80fff19 Binary files /dev/null and b/image/63d68ba03ba9e.png differ diff --git a/image/63d68bf007aa4.png b/image/63d68bf007aa4.png new file mode 100644 index 0000000..c1f8ad4 Binary files /dev/null and b/image/63d68bf007aa4.png differ diff --git a/image/63d68c6710940.png b/image/63d68c6710940.png new file mode 100644 index 0000000..615f0ed Binary files /dev/null and b/image/63d68c6710940.png differ diff --git a/image/63d68d0bc7382.png b/image/63d68d0bc7382.png new file mode 100644 index 0000000..7224c36 Binary files /dev/null and b/image/63d68d0bc7382.png differ diff --git a/image/63d68dbb3bdec.png b/image/63d68dbb3bdec.png new file mode 100644 index 0000000..c566201 Binary files /dev/null and b/image/63d68dbb3bdec.png differ diff --git a/image/63d68e4d2d6e6.png b/image/63d68e4d2d6e6.png new file mode 100644 index 0000000..0d6d7af Binary files /dev/null and b/image/63d68e4d2d6e6.png differ diff --git a/image/63d68fb62f869.png b/image/63d68fb62f869.png new file mode 100644 index 0000000..a9a5819 Binary files /dev/null and b/image/63d68fb62f869.png differ diff --git a/image/63d6901c7bc58.png b/image/63d6901c7bc58.png new file mode 100644 index 0000000..bf9b2cd Binary files /dev/null and b/image/63d6901c7bc58.png differ diff --git a/image/63d6902eb0cdf.png b/image/63d6902eb0cdf.png new file mode 100644 index 0000000..ee1aa54 Binary files /dev/null and b/image/63d6902eb0cdf.png differ diff --git a/image/63d6905670f6c.png b/image/63d6905670f6c.png new file mode 100644 index 0000000..eb7dc5f Binary files /dev/null and b/image/63d6905670f6c.png differ diff --git a/image/63d6905a2b64e.png b/image/63d6905a2b64e.png new file mode 100644 index 0000000..c120224 Binary files /dev/null and b/image/63d6905a2b64e.png differ diff --git a/image/63d690a0cd7b2.png b/image/63d690a0cd7b2.png new file mode 100644 index 0000000..9489ddb Binary files /dev/null and b/image/63d690a0cd7b2.png differ diff --git a/image/63d69105a0df1.png b/image/63d69105a0df1.png new file mode 100644 index 0000000..8af09bd Binary files /dev/null and b/image/63d69105a0df1.png differ diff --git a/image/63d691422d944.png b/image/63d691422d944.png new file mode 100644 index 0000000..3ce8819 Binary files /dev/null and b/image/63d691422d944.png differ diff --git a/image/63d69181cfa4a.png b/image/63d69181cfa4a.png new file mode 100644 index 0000000..64af458 Binary files /dev/null and b/image/63d69181cfa4a.png differ diff --git a/image/63d691944fc51.png b/image/63d691944fc51.png new file mode 100644 index 0000000..fbb8f94 Binary files /dev/null and b/image/63d691944fc51.png differ diff --git a/image/63d691ab5ad3f.png b/image/63d691ab5ad3f.png new file mode 100644 index 0000000..0bd6992 Binary files /dev/null and b/image/63d691ab5ad3f.png differ diff --git a/image/63d69239b6941.png b/image/63d69239b6941.png new file mode 100644 index 0000000..ce52acc Binary files /dev/null and b/image/63d69239b6941.png differ diff --git a/image/63d6926282f21.png b/image/63d6926282f21.png new file mode 100644 index 0000000..8c4698d Binary files /dev/null and b/image/63d6926282f21.png differ diff --git a/image/63d69279f0265.png b/image/63d69279f0265.png new file mode 100644 index 0000000..151af86 Binary files /dev/null and b/image/63d69279f0265.png differ diff --git a/image/63d6930fdecaf.png b/image/63d6930fdecaf.png new file mode 100644 index 0000000..cb8baaf Binary files /dev/null and b/image/63d6930fdecaf.png differ diff --git a/image/63d6931753a79.png b/image/63d6931753a79.png new file mode 100644 index 0000000..b6ced05 Binary files /dev/null and b/image/63d6931753a79.png differ diff --git a/image/63d6936804cd4.png b/image/63d6936804cd4.png new file mode 100644 index 0000000..9920b74 Binary files /dev/null and b/image/63d6936804cd4.png differ diff --git a/image/63d693e2caf04.png b/image/63d693e2caf04.png new file mode 100644 index 0000000..c2c4240 Binary files /dev/null and b/image/63d693e2caf04.png differ diff --git a/image/63d69488acef6.png b/image/63d69488acef6.png new file mode 100644 index 0000000..ca16c17 Binary files /dev/null and b/image/63d69488acef6.png differ diff --git a/image/63d6953c3a804.png b/image/63d6953c3a804.png new file mode 100644 index 0000000..c7d4a5a Binary files /dev/null and b/image/63d6953c3a804.png differ diff --git a/image/63d69565ad9ef.png b/image/63d69565ad9ef.png new file mode 100644 index 0000000..39a12df Binary files /dev/null and b/image/63d69565ad9ef.png differ diff --git a/image/63d695e475213.png b/image/63d695e475213.png new file mode 100644 index 0000000..646fd87 Binary files /dev/null and b/image/63d695e475213.png differ diff --git a/image/63d6962e2c9a5.png b/image/63d6962e2c9a5.png new file mode 100644 index 0000000..37d3ca6 Binary files /dev/null and b/image/63d6962e2c9a5.png differ diff --git a/image/63d6966357bc8.png b/image/63d6966357bc8.png new file mode 100644 index 0000000..162963a Binary files /dev/null and b/image/63d6966357bc8.png differ diff --git a/image/63d697c6eb145.png b/image/63d697c6eb145.png new file mode 100644 index 0000000..ecf6102 Binary files /dev/null and b/image/63d697c6eb145.png differ diff --git a/image/63d698ce19721.png b/image/63d698ce19721.png new file mode 100644 index 0000000..f43dd51 Binary files /dev/null and b/image/63d698ce19721.png differ diff --git a/image/63d69914501b9.png b/image/63d69914501b9.png new file mode 100644 index 0000000..c699687 Binary files /dev/null and b/image/63d69914501b9.png differ diff --git a/image/63d699a7ba087.png b/image/63d699a7ba087.png new file mode 100644 index 0000000..d95b2d9 Binary files /dev/null and b/image/63d699a7ba087.png differ diff --git a/image/63d699cbbb9c1.png b/image/63d699cbbb9c1.png new file mode 100644 index 0000000..adbc72d Binary files /dev/null and b/image/63d699cbbb9c1.png differ diff --git a/image/63d69a32cc497.png b/image/63d69a32cc497.png new file mode 100644 index 0000000..b73f40d Binary files /dev/null and b/image/63d69a32cc497.png differ diff --git a/image/63d69a872e585.png b/image/63d69a872e585.png new file mode 100644 index 0000000..1d4b783 Binary files /dev/null and b/image/63d69a872e585.png differ diff --git a/image/63d69b3127caf.png b/image/63d69b3127caf.png new file mode 100644 index 0000000..1128abb Binary files /dev/null and b/image/63d69b3127caf.png differ diff --git a/image/63d69be849512.png b/image/63d69be849512.png new file mode 100644 index 0000000..266f30c Binary files /dev/null and b/image/63d69be849512.png differ diff --git a/image/63d69c1ec5443.png b/image/63d69c1ec5443.png new file mode 100644 index 0000000..4c67023 Binary files /dev/null and b/image/63d69c1ec5443.png differ diff --git a/image/63d69c6b1d88c.png b/image/63d69c6b1d88c.png new file mode 100644 index 0000000..43e3906 Binary files /dev/null and b/image/63d69c6b1d88c.png differ diff --git a/image/63d69ca80a6fa.png b/image/63d69ca80a6fa.png new file mode 100644 index 0000000..3a39dcc Binary files /dev/null and b/image/63d69ca80a6fa.png differ diff --git a/image/63d69d371bf81.png b/image/63d69d371bf81.png new file mode 100644 index 0000000..b1be103 Binary files /dev/null and b/image/63d69d371bf81.png differ diff --git a/image/63d69d54c63a1.png b/image/63d69d54c63a1.png new file mode 100644 index 0000000..f581804 Binary files /dev/null and b/image/63d69d54c63a1.png differ diff --git a/image/63d69d7331652.png b/image/63d69d7331652.png new file mode 100644 index 0000000..7fe2cd9 Binary files /dev/null and b/image/63d69d7331652.png differ diff --git a/image/63d6a0fe045ab.png b/image/63d6a0fe045ab.png new file mode 100644 index 0000000..3028dd8 Binary files /dev/null and b/image/63d6a0fe045ab.png differ diff --git a/image/63d6a112c838c.png b/image/63d6a112c838c.png new file mode 100644 index 0000000..4dac28b Binary files /dev/null and b/image/63d6a112c838c.png differ diff --git a/image/63d6ae0cdff24.png b/image/63d6ae0cdff24.png new file mode 100644 index 0000000..4138be6 Binary files /dev/null and b/image/63d6ae0cdff24.png differ diff --git a/image/63d74d55f1ceb.png b/image/63d74d55f1ceb.png new file mode 100644 index 0000000..9adf695 Binary files /dev/null and b/image/63d74d55f1ceb.png differ diff --git a/image/63de0dc1b3eef.png b/image/63de0dc1b3eef.png new file mode 100644 index 0000000..4c02dda Binary files /dev/null and b/image/63de0dc1b3eef.png differ diff --git a/image/63de0e119a4d5.png b/image/63de0e119a4d5.png new file mode 100644 index 0000000..feaf1ad Binary files /dev/null and b/image/63de0e119a4d5.png differ diff --git a/image/63de11324ee79.png b/image/63de11324ee79.png new file mode 100644 index 0000000..9b4eb64 Binary files /dev/null and b/image/63de11324ee79.png differ diff --git a/image/63e4ceebb93a4.png b/image/63e4ceebb93a4.png new file mode 100644 index 0000000..dc23d89 Binary files /dev/null and b/image/63e4ceebb93a4.png differ diff --git a/image/64043a03862f8.png b/image/64043a03862f8.png new file mode 100644 index 0000000..c1b0082 Binary files /dev/null and b/image/64043a03862f8.png differ diff --git a/image/640a8ace3af13.png b/image/640a8ace3af13.png new file mode 100644 index 0000000..0a6e40b Binary files /dev/null and b/image/640a8ace3af13.png differ diff --git a/image/640a8e9c93e6a.png b/image/640a8e9c93e6a.png new file mode 100644 index 0000000..55c9ec8 Binary files /dev/null and b/image/640a8e9c93e6a.png differ diff --git a/image/640a8ed426b2a.png b/image/640a8ed426b2a.png new file mode 100644 index 0000000..14afac1 Binary files /dev/null and b/image/640a8ed426b2a.png differ diff --git a/image/640ac5efaa91f.png b/image/640ac5efaa91f.png new file mode 100644 index 0000000..5017278 Binary files /dev/null and b/image/640ac5efaa91f.png differ diff --git a/image/640ac61486cb8.png b/image/640ac61486cb8.png new file mode 100644 index 0000000..ef14991 Binary files /dev/null and b/image/640ac61486cb8.png differ diff --git a/image/640e3a9e644be.png b/image/640e3a9e644be.png new file mode 100644 index 0000000..3a8d7e0 Binary files /dev/null and b/image/640e3a9e644be.png differ diff --git a/image/6417a674cce1e.png b/image/6417a674cce1e.png new file mode 100644 index 0000000..1650fa3 Binary files /dev/null and b/image/6417a674cce1e.png differ diff --git a/image/6417a6d3b8ea4.png b/image/6417a6d3b8ea4.png new file mode 100644 index 0000000..55f3e63 Binary files /dev/null and b/image/6417a6d3b8ea4.png differ diff --git a/image/64217963f10b6.png b/image/64217963f10b6.png new file mode 100644 index 0000000..bada37a Binary files /dev/null and b/image/64217963f10b6.png differ diff --git a/image/642179654d3ae.png b/image/642179654d3ae.png new file mode 100644 index 0000000..bada37a Binary files /dev/null and b/image/642179654d3ae.png differ diff --git a/image/642544040aa7c.png b/image/642544040aa7c.png new file mode 100644 index 0000000..2c2e8be Binary files /dev/null and b/image/642544040aa7c.png differ diff --git a/image/64255e8fe1541.png b/image/64255e8fe1541.png new file mode 100644 index 0000000..dd95938 Binary files /dev/null and b/image/64255e8fe1541.png differ diff --git a/image/642626042a400.png b/image/642626042a400.png new file mode 100644 index 0000000..f8e4064 Binary files /dev/null and b/image/642626042a400.png differ diff --git a/image/6426315b30cf2.png b/image/6426315b30cf2.png new file mode 100644 index 0000000..cffeb13 Binary files /dev/null and b/image/6426315b30cf2.png differ diff --git a/image/642658577c6de.png b/image/642658577c6de.png new file mode 100644 index 0000000..06311dd Binary files /dev/null and b/image/642658577c6de.png differ diff --git a/image/642658a456947.png b/image/642658a456947.png new file mode 100644 index 0000000..b826591 Binary files /dev/null and b/image/642658a456947.png differ diff --git a/image/642658c440767.png b/image/642658c440767.png new file mode 100644 index 0000000..16830d4 Binary files /dev/null and b/image/642658c440767.png differ diff --git a/image/642659cb018e2.png b/image/642659cb018e2.png new file mode 100644 index 0000000..1b64bb1 Binary files /dev/null and b/image/642659cb018e2.png differ diff --git a/image/6426657a796da.png b/image/6426657a796da.png new file mode 100644 index 0000000..a228f21 Binary files /dev/null and b/image/6426657a796da.png differ diff --git a/image/6426eab39aa6a.png b/image/6426eab39aa6a.png new file mode 100644 index 0000000..7c3f68b Binary files /dev/null and b/image/6426eab39aa6a.png differ diff --git a/image/64283f4fc7f78.png b/image/64283f4fc7f78.png new file mode 100644 index 0000000..184bbb7 Binary files /dev/null and b/image/64283f4fc7f78.png differ diff --git a/image/642840dd57eb4.png b/image/642840dd57eb4.png new file mode 100644 index 0000000..6529035 Binary files /dev/null and b/image/642840dd57eb4.png differ diff --git a/image/642840f5ce289.png b/image/642840f5ce289.png new file mode 100644 index 0000000..15a1471 Binary files /dev/null and b/image/642840f5ce289.png differ diff --git a/image/642841a00dd10.png b/image/642841a00dd10.png new file mode 100644 index 0000000..881e7ed Binary files /dev/null and b/image/642841a00dd10.png differ diff --git a/image/6429093354cd9.png b/image/6429093354cd9.png new file mode 100644 index 0000000..2a9b6a7 Binary files /dev/null and b/image/6429093354cd9.png differ diff --git a/image/6429097430623.png b/image/6429097430623.png new file mode 100644 index 0000000..b51be2a Binary files /dev/null and b/image/6429097430623.png differ diff --git a/image/64291ad89af62.png b/image/64291ad89af62.png new file mode 100644 index 0000000..00209d8 Binary files /dev/null and b/image/64291ad89af62.png differ diff --git a/image/64291ade2fccd.png b/image/64291ade2fccd.png new file mode 100644 index 0000000..00209d8 Binary files /dev/null and b/image/64291ade2fccd.png differ diff --git a/image/64291ae587b68.png b/image/64291ae587b68.png new file mode 100644 index 0000000..00209d8 Binary files /dev/null and b/image/64291ae587b68.png differ diff --git a/image/64291f0416876.png b/image/64291f0416876.png new file mode 100644 index 0000000..5606c50 Binary files /dev/null and b/image/64291f0416876.png differ diff --git a/image/64291f1904486.png b/image/64291f1904486.png new file mode 100644 index 0000000..de68c9e Binary files /dev/null and b/image/64291f1904486.png differ diff --git a/image/64291f2765bdb.png b/image/64291f2765bdb.png new file mode 100644 index 0000000..9ada42e Binary files /dev/null and b/image/64291f2765bdb.png differ diff --git a/image/64291f87b36e7.png b/image/64291f87b36e7.png new file mode 100644 index 0000000..d0c2efd Binary files /dev/null and b/image/64291f87b36e7.png differ diff --git a/image/64291f8d6f940.png b/image/64291f8d6f940.png new file mode 100644 index 0000000..d0c2efd Binary files /dev/null and b/image/64291f8d6f940.png differ diff --git a/image/64291f97484ca.png b/image/64291f97484ca.png new file mode 100644 index 0000000..39b6716 Binary files /dev/null and b/image/64291f97484ca.png differ diff --git a/image/642920244c281.png b/image/642920244c281.png new file mode 100644 index 0000000..6bafeba Binary files /dev/null and b/image/642920244c281.png differ diff --git a/image/6429209e0926c.png b/image/6429209e0926c.png new file mode 100644 index 0000000..4610b32 Binary files /dev/null and b/image/6429209e0926c.png differ diff --git a/image/642920a56248e.png b/image/642920a56248e.png new file mode 100644 index 0000000..4610b32 Binary files /dev/null and b/image/642920a56248e.png differ diff --git a/image/642920a810fe5.png b/image/642920a810fe5.png new file mode 100644 index 0000000..4610b32 Binary files /dev/null and b/image/642920a810fe5.png differ diff --git a/image/642920c17b84b.png b/image/642920c17b84b.png new file mode 100644 index 0000000..4610b32 Binary files /dev/null and b/image/642920c17b84b.png differ diff --git a/image/642920d554c36.png b/image/642920d554c36.png new file mode 100644 index 0000000..9221d54 Binary files /dev/null and b/image/642920d554c36.png differ diff --git a/image/642920edd6b84.png b/image/642920edd6b84.png new file mode 100644 index 0000000..7e4ba2b Binary files /dev/null and b/image/642920edd6b84.png differ diff --git a/image/6429210826888.png b/image/6429210826888.png new file mode 100644 index 0000000..f2d4bf4 Binary files /dev/null and b/image/6429210826888.png differ diff --git a/image/642921da88d75.png b/image/642921da88d75.png new file mode 100644 index 0000000..b9e2173 Binary files /dev/null and b/image/642921da88d75.png differ diff --git a/image/64292242db328.png b/image/64292242db328.png new file mode 100644 index 0000000..b7c20e5 Binary files /dev/null and b/image/64292242db328.png differ diff --git a/image/642924aaa37cf.png b/image/642924aaa37cf.png new file mode 100644 index 0000000..85cbf84 Binary files /dev/null and b/image/642924aaa37cf.png differ diff --git a/image/642924d1ce559.png b/image/642924d1ce559.png new file mode 100644 index 0000000..1508ff0 Binary files /dev/null and b/image/642924d1ce559.png differ diff --git a/image/64292559e6ed1.png b/image/64292559e6ed1.png new file mode 100644 index 0000000..e609ddb Binary files /dev/null and b/image/64292559e6ed1.png differ diff --git a/image/642925aa435b0.png b/image/642925aa435b0.png new file mode 100644 index 0000000..174855b Binary files /dev/null and b/image/642925aa435b0.png differ diff --git a/image/6429262e5ab72.png b/image/6429262e5ab72.png new file mode 100644 index 0000000..6d16daa Binary files /dev/null and b/image/6429262e5ab72.png differ diff --git a/image/64292637ac497.png b/image/64292637ac497.png new file mode 100644 index 0000000..4e74d2d Binary files /dev/null and b/image/64292637ac497.png differ diff --git a/image/6429264b32471.png b/image/6429264b32471.png new file mode 100644 index 0000000..8fe9570 Binary files /dev/null and b/image/6429264b32471.png differ diff --git a/image/642926597a19b.png b/image/642926597a19b.png new file mode 100644 index 0000000..0a1a678 Binary files /dev/null and b/image/642926597a19b.png differ diff --git a/image/6429266367d1e.png b/image/6429266367d1e.png new file mode 100644 index 0000000..5dc3574 Binary files /dev/null and b/image/6429266367d1e.png differ diff --git a/image/6429267649d8f.png b/image/6429267649d8f.png new file mode 100644 index 0000000..ebd7c00 Binary files /dev/null and b/image/6429267649d8f.png differ diff --git a/image/6429267f4c12a.png b/image/6429267f4c12a.png new file mode 100644 index 0000000..a193553 Binary files /dev/null and b/image/6429267f4c12a.png differ diff --git a/image/6429270949d09.png b/image/6429270949d09.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/6429270949d09.png differ diff --git a/image/642927123073d.png b/image/642927123073d.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/642927123073d.png differ diff --git a/image/64292725ebc4c.png b/image/64292725ebc4c.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/64292725ebc4c.png differ diff --git a/image/642927e6bfeee.png b/image/642927e6bfeee.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/642927e6bfeee.png differ diff --git a/image/642927ecaaf50.png b/image/642927ecaaf50.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/642927ecaaf50.png differ diff --git a/image/642928253729c.png b/image/642928253729c.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/642928253729c.png differ diff --git a/image/64292853cf68d.png b/image/64292853cf68d.png new file mode 100644 index 0000000..c8fd8f1 Binary files /dev/null and b/image/64292853cf68d.png differ diff --git a/image/642928bccc121.png b/image/642928bccc121.png new file mode 100644 index 0000000..ae3d45d Binary files /dev/null and b/image/642928bccc121.png differ diff --git a/image/642928ebeb77c.png b/image/642928ebeb77c.png new file mode 100644 index 0000000..ec48362 Binary files /dev/null and b/image/642928ebeb77c.png differ diff --git a/image/64292906b51b8.png b/image/64292906b51b8.png new file mode 100644 index 0000000..71feaf8 Binary files /dev/null and b/image/64292906b51b8.png differ diff --git a/image/6429457ea9473.png b/image/6429457ea9473.png new file mode 100644 index 0000000..c66901e Binary files /dev/null and b/image/6429457ea9473.png differ diff --git a/image/64316f6e09f83.png b/image/64316f6e09f83.png new file mode 100644 index 0000000..becf4b5 Binary files /dev/null and b/image/64316f6e09f83.png differ diff --git a/image/64316f7748024.png b/image/64316f7748024.png new file mode 100644 index 0000000..e1c0281 Binary files /dev/null and b/image/64316f7748024.png differ diff --git a/image/64316f8068c07.png b/image/64316f8068c07.png new file mode 100644 index 0000000..75c5a28 Binary files /dev/null and b/image/64316f8068c07.png differ diff --git a/image/64316f914893f.png b/image/64316f914893f.png new file mode 100644 index 0000000..d13f189 Binary files /dev/null and b/image/64316f914893f.png differ diff --git a/image/6432d293391da.png b/image/6432d293391da.png new file mode 100644 index 0000000..70a9a9a Binary files /dev/null and b/image/6432d293391da.png differ diff --git a/image/6432d39622f7e.png b/image/6432d39622f7e.png new file mode 100644 index 0000000..ca85910 Binary files /dev/null and b/image/6432d39622f7e.png differ diff --git a/image/643bbf82699fd.png b/image/643bbf82699fd.png new file mode 100644 index 0000000..2048a88 Binary files /dev/null and b/image/643bbf82699fd.png differ diff --git a/image/644503de23a08.png b/image/644503de23a08.png new file mode 100644 index 0000000..ecbc8bc Binary files /dev/null and b/image/644503de23a08.png differ diff --git a/image/644521ee97d0b.png b/image/644521ee97d0b.png new file mode 100644 index 0000000..c0cfbec Binary files /dev/null and b/image/644521ee97d0b.png differ diff --git a/image/6445224371077.png b/image/6445224371077.png new file mode 100644 index 0000000..efc24d5 Binary files /dev/null and b/image/6445224371077.png differ diff --git a/image/6445240526834.png b/image/6445240526834.png new file mode 100644 index 0000000..49bb0ae Binary files /dev/null and b/image/6445240526834.png differ diff --git a/image/64454f4213f02.png b/image/64454f4213f02.png new file mode 100644 index 0000000..210e7c2 Binary files /dev/null and b/image/64454f4213f02.png differ diff --git a/image/645ef35185fc3.png b/image/645ef35185fc3.png new file mode 100644 index 0000000..28216d9 Binary files /dev/null and b/image/645ef35185fc3.png differ diff --git a/image/645ef35b7daa0.png b/image/645ef35b7daa0.png new file mode 100644 index 0000000..9cd709d Binary files /dev/null and b/image/645ef35b7daa0.png differ diff --git a/index.php b/index.php new file mode 100644 index 0000000..8a1e274 --- /dev/null +++ b/index.php @@ -0,0 +1,399 @@ + set_charset ('utf8'); + +if ($result = $mysqli -> query ("SELECT * FROM threads WHERE id = $thread")): + $row = $result -> fetch_assoc (); + + $title = $row['title']; + $explain = $row['explain']; + + $result -> close (); +endif; + +if (isset ($_GET['id']) + && isset ($_GET['evaluate']) + && (($_GET['evaluate'] == 'good') || ($_GET['evaluate'] == 'bad'))): + $mysqli -> query (" + UPDATE + responses + SET + {$_GET['evaluate']} = {$_GET['evaluate']} + 1 + WHERE + (thread_id = $thread) AND (response_id = {$_GET['id']})"); + + header ("Location: ./?thread=$thread&sort=$sort"); +endif; +?> + + + + + + + <?= ($title == '') ? '' : ($title . ' - ') ?>キケッツチャンネル お絵描き掲示板 + + + + + + + + + + + + + +

クソ掲示板

+
+ + +
+ スレ名:
+ スレ内容:
+ +
+ query ("SELECT * FROM threads WHERE id <> 1 ORDER BY latest DESC")): + while ($row = $result -> fetch_assoc ()): +?> + + + + + +

'): +?> + + + + +
 更新:1 レス
+

') + endwhile; // end of ($row = $result -> fetch_assoc ()) + endif; // end of ($result = $mysqli -> query ("SELECT * FROM threads ORDER BY latest DESC")) +else: // $thread != -1 +?> + + + + + + +

'): +?> + + + + + +
+ +
+
+ + +
+ +
+
+
+ + + + +
+ +
+ + +
+
+ +
+
+
+ + + + +
+
+ +
+ + +
+ +
+
+ + + + +
+
+ +
+
+ + + + + + + + + + +
+
+ +
+
+ + + + + + + + +
+ +
+
+
+ +
+ + + +
+
+ +
+ +
+ +
+ query (" + SELECT + response_id as id, name, message, date, image, held, deleted, pass, good, bad, good - bad as evaluate + FROM + responses + WHERE + thread_id = $thread + ORDER BY + " . (($sort == 'td') + ? 'id DESC' + : (($sort == 'eg') + ? 'evaluate DESC, id DESC' + : (($sort == 'ta') + ? 'id ASC' + : (($sort == 'eb') + ? 'evaluate ASC, id DESC' + : 'id DESC')))))): + while ($row = $result -> fetch_assoc ()): +?> + + + + + + + + + + + + + + + + +
+
+
: + +
+ +
+ 1 +
+
+ +
+ + +
+   +
+ +
+   +
+ + +
+

削除されました.

確認中です.

+ close (); + endif; +?> +
+ +

レス削除

+ 削除したいレス番号と削除用パスワードを入力して “削除” を押してください.
+
+
+ + + +
+ + + + + + + + + + + + + diff --git a/log.txt b/log.txt new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/log.txt @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/make_thread.php b/make_thread.php new file mode 100644 index 0000000..ec94c92 --- /dev/null +++ b/make_thread.php @@ -0,0 +1,41 @@ +' . $_POST['thread-explain'] . '

'; + $explain = str_replace ("\n", '

', $explain); + + $mysqli = set_mysql ('miteruzo_bbs'); + + $mysqli -> set_charset ('utf8'); + + $result = $mysqli -> query ('SELECT COUNT(*) FROM threads'); + $row = $result -> fetch_assoc (); + $current = $row['COUNT(*)']; + + $result -> close (); + + $sql = "INSERT INTO threads (id, title, `explain`, latest, length) VALUES ($current, '{$_POST['thread-name']}', '$explain', '" . date ('Y-m-d H:i:s') . "', 0)"; + $mysqli -> query ($sql); +/* $sql = "CREATE TABLE `miteruzo_bbs`.`thread_$current` ( + `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'レス番', + `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '名なしさん' COMMENT '名前', + `message` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'レス', + `date` DATETIME NOT NULL COMMENT '投稿日時', + `image` VARCHAR( 31 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '画像 URL', + `held` TINYINT( 1 ) NOT NULL DEFAULT '0' COMMENT '保留', + `deleted` TINYINT( 1 ) NOT NULL DEFAULT '0' COMMENT '削除済', + `pass` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '削除用パスワード', + `good` INT( 11 ) NOT NULL DEFAULT '0' COMMENT '高評価数', + `bad` INT( 11 ) NOT NULL DEFAULT '0' COMMENT '低評価数', + INDEX ( `date` ) + ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci"; */ + $mysqli -> query ($sql); + + $mysqli -> close (); + } + +header ("location: ./?thread=$current"); + diff --git a/modules/colour-pad.js b/modules/colour-pad.js new file mode 100644 index 0000000..c5d97cb --- /dev/null +++ b/modules/colour-pad.js @@ -0,0 +1,1290 @@ +// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +// +// 【 カラーパレットPOPアップ 】 http://www.cman.jp +// +// 商用,改変,再配布はすべて自由ですですが、動作保証はありません +// +// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +// maintenance history +// +// Ver Date contents +// 1.0 2015/7/15 New +// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +// +// 使用方法 +// htmlのタグに以下の設定をしてください +// +// 「 onclick="cmanCP_JS_open(this)" cmanCPat="rc_text:id001,下記URL参照"> 」 +// +// +// 【注意】 +// 引数やユーザ設定内容についてはノーチェックです +// 解析しやすいようにコメントを多く入れています。 +// JavaScriptのファイルサイズを削減する場合は、コメントやスペースを消してください。 +// +// +// 詳細は以下でご確認ください +// https://web-designer.cman.jp/javascript_ref/color/palette/ +// +// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + +var cmanCP_VAR = {}; + +// ========================================================================================= +// カラーパレットの作成 +// ========================================================================================= +function cmanCP_JS_open(argThis){ + + // カラーリスト一覧 + var wColorList =[ '#ffffff','#cccccc','#a6a6a6','#7f7f7f','#595959','#333333','#000000', + '#ff9999','#ff4d4d','#ff0000','#b30000','#660000', + '#ffcc99','#ffa64d','#ff7f00','#b35900','#663300', + '#ffff99','#ffff4d','#ffff00','#b3b300','#666600', + '#ccff99','#a6ff4d','#7fff00','#59b300','#336600', + '#99ff99','#4dff4d','#00ff00','#00b300','#006600', + '#99ffcc','#4dffa6','#00ff7f','#00b359','#006633', + '#99ffff','#4dffff','#00ffff','#00b3b3','#006666', + '#99ccff','#4da6ff','#007fff','#0059b3','#003366', + '#9999ff','#4d4dff','#0000ff','#0000b3','#000066', + '#cc99ff','#a64dff','#7f00ff','#5900b3','#330066', + '#ff99ff','#ff4dff','#ff00ff','#b300b3','#660066', + '#ff99cc','#ff4da6','#ff007f','#b30059','#660033' + ]; + + cmanCP_VAR["popId"] = 'cmanCP_POP'; // POP枠のID + + var wRGB_List = [ 'R', 'G', 'B' ]; + var wRGB_TitleJP = [ '赤み', '緑み', '青み' ]; + var wRGB_TitleEn = [ 'red', 'green', 'blue' ]; + + var wHSL_List = [ 'H', 'S', 'L' ]; + var wHSL_TitleJP = [ '色相', '彩度', '輝度' ]; + var wHSL_Max = [ '359', '1', '1' ]; + var wHSL_Step = [ '1', '0.001', '0.001' ]; + + var wA_TitleJP = '不透明度'; + + + // ----- 属性取得 ------------------------------------------------------------ + var wAttr = argThis.getAttribute("cmanCPat").split(","); + + for(var i=0; i' + + '' + + '' + + '' + + '' + + '

' + + '色を選んでね♥' + + '
' + + ''; + + // ----- サンプル&カラーリスト ----- + wHtml += '
' + + '' + + '' + + '' + + '' + + '' + + '
' + + '
' + + '
' + + '' + + '' + + '' + + '' + + '' + + '' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
この色を選択
' + + '
'; + + for(var i=0; i '; // 選択カラーリスト + } + + wHtml += '
' + + '
'; + + // ----- 色の文字列表示 ----- + wHtml += '
'; + wHtml += '
'; + + // ----- レンジバー ----- + wHtml += ''; + wHtml += '
'; + wHtml += ''; + wHtml += '
RGB(16)
'; + wHtml += '
RGB(255)
'; + wHtml += '
HSL
'; + wHtml += ''; + wHtml += '
'; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + + // --- RGB --- + for(var i=0; i<=2; i++){ + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + } + + // --- HSL --- + for(var i=0; i<=2; i++){ + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + } + + // --- 透明 --- + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += '
'+wRGB_TitleJP[i]+''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += '
'; + wHtml += '
'+wHSL_TitleJP[i]+''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += '
'; + for(var j=1; j<=20; j++){ + wHtml += '
'; + } + wHtml += '
'; + wHtml += '
'+wA_TitleJP+''; + wHtml += ''; + wHtml += ''; + wHtml += ''; + wHtml += '
'; + wHtml += '
'; + wHtml += '
'; + wHtml += '
'; + + wHtml += '
' + + 'パクリ元:' + + 'web-designer.cman.jp' + + '
'; + + + + // ----- 表示枠の作成&割り当て ----------------------------------- + if(document.getElementById(cmanCP_VAR["popId"])){ + document.getElementById(cmanCP_VAR["popId"]).style.display = "none"; + }else{ + + var wEle = document.createElement("div"); // 新規に要素(タグ)を生成 + wEle.id = cmanCP_VAR["popId"]; + wEle.style.display = "none"; + wEle.style.position = 'fixed'; + document.body.appendChild(wEle); // このページ (document.body) の最後に生成した要素を追加 + } + + + // ----- カラーポップをの初期設定 --------------------------------- + cmanCP_VAR["objPop"] = document.getElementById(cmanCP_VAR["popId"]); + cmanCP_VAR["objPop"].innerHTML = wCss+"\n"+wHtml; + cmanCP_VAR["objPop"].style.opacity = 0; + cmanCP_VAR["objPop"].className = 'cmanCP_CSS_ALL'; + cmanCP_VAR["objPop"].style.left = '0px'; + cmanCP_VAR["objPop"].style.top = '0px'; + + + // ----- オブジェクトの設定 --------------------------------------- + cmanCP_VAR["obj_tR16"] = document.getElementById("cmanCP_ID_tR16"); + cmanCP_VAR["obj_tG16"] = document.getElementById("cmanCP_ID_tG16"); + cmanCP_VAR["obj_tB16"] = document.getElementById("cmanCP_ID_tB16"); + cmanCP_VAR["obj_tR"] = document.getElementById("cmanCP_ID_tR"); + cmanCP_VAR["obj_tG"] = document.getElementById("cmanCP_ID_tG"); + cmanCP_VAR["obj_tB"] = document.getElementById("cmanCP_ID_tB"); + cmanCP_VAR["obj_tH"] = document.getElementById("cmanCP_ID_tH"); + cmanCP_VAR["obj_tS"] = document.getElementById("cmanCP_ID_tS"); + cmanCP_VAR["obj_tL"] = document.getElementById("cmanCP_ID_tL"); + cmanCP_VAR["obj_tA"] = document.getElementById("cmanCP_ID_tA"); + cmanCP_VAR["obj_rR"] = document.getElementById("cmanCP_ID_rR"); + cmanCP_VAR["obj_rG"] = document.getElementById("cmanCP_ID_rG"); + cmanCP_VAR["obj_rB"] = document.getElementById("cmanCP_ID_rB"); + cmanCP_VAR["obj_rH"] = document.getElementById("cmanCP_ID_rH"); + cmanCP_VAR["obj_rS"] = document.getElementById("cmanCP_ID_rS"); + cmanCP_VAR["obj_rL"] = document.getElementById("cmanCP_ID_rL"); + cmanCP_VAR["obj_rA"] = document.getElementById("cmanCP_ID_rA"); + + + // ---------------------------------------------------------------- + // パレットの初期設定 + // ---------------------------------------------------------------- + + // ----- サイズの設定 --------------------------------------------- + if('def_size' in cmanCP_VAR){ + + cmanCP_VAR["def_size"] = cmanCP_VAR["def_size"].replace("px",""); + if(cmanCP_VAR["def_size"].toString().match(/^[0-9]+$/)){ + cmanCP_VAR["maxWidth"] = cmanCP_VAR["def_size"]; + } + } + if('maxWidth' in cmanCP_VAR){ + }else{ + cmanCP_VAR["maxWidth"] = 530; + } + cmanCP_VAR["objPop"].style.maxWidth = cmanCP_VAR["maxWidth"]+'px'; + + + // ----- 初期カラー設定 ------------------------------------------- + var wDefColorSet = ''; + var wDefColor = ''; + + if('def_color' in cmanCP_VAR){ + + try{ + if (cmanCP_VAR["def_color"].indexOf('cns=') == 0){wDefColor = cmanCP_VAR["def_color"].substr(4);} + else{ + var wObjDefColor = document.getElementById(cmanCP_VAR["def_color"].substr(4)); + + if(wObjDefColor){ + if (cmanCP_VAR["def_color"].indexOf('val=') == 0){wDefColor = wObjDefColor.value;} + else if (cmanCP_VAR["def_color"].indexOf('txt=') == 0){wDefColor = wObjDefColor.innerText;} + else if (cmanCP_VAR["def_color"].indexOf('col=') == 0){wDefColor = wObjDefColor.style.color;} + else if (cmanCP_VAR["def_color"].indexOf('bgc=') == 0){wDefColor = wObjDefColor.style.backgroundColor;} + + wDefColor = cmanCP_JS_zen_TO_han(wDefColor.toLowerCase()); + } + } + } + catch(e){ + wDefColor = ""; + } + } + + if (wDefColor == ""){ + } + else if (wDefColor.substr(0,1) == '#'){ + + if(wDefColor.substr(1).toString().match(/^[0-9a-f]+$/i)){ + switch (wDefColor.length){ + case 4: + cmanCP_VAR["obj_tR16"].value = wDefColor.substr(1,1).toString() + wDefColor.substr(1,1).toString(); + cmanCP_VAR["obj_tG16"].value = wDefColor.substr(2,1).toString() + wDefColor.substr(2,1).toString(); + cmanCP_VAR["obj_tB16"].value = wDefColor.substr(3,1).toString() + wDefColor.substr(3,1).toString(); + wDefColorSet = 'RGB16'; + break; + case 7: + cmanCP_VAR["obj_tR16"].value = wDefColor.substr(1,2).toString(); + cmanCP_VAR["obj_tG16"].value = wDefColor.substr(3,2).toString(); + cmanCP_VAR["obj_tB16"].value = wDefColor.substr(5,2).toString(); + wDefColorSet = 'RGB16'; + break; + } + } + } + else if (wDefColor.indexOf('rgb(') == 0){ + wDefColor = wDefColor.replace('rgb(',''); + wDefColor = wDefColor.replace(')',''); + var wSplit = wDefColor.split(','); + if(wSplit.length == 3){ + cmanCP_VAR["obj_tR"].value = wSplit[0]; + cmanCP_VAR["obj_tG"].value = wSplit[1]; + cmanCP_VAR["obj_tB"].value = wSplit[2]; + wDefColorSet = 'RGB'; + } + + } + else if (wDefColor.indexOf('rgba(') == 0){ + wDefColor = wDefColor.replace('rgba(',''); + wDefColor = wDefColor.replace(')',''); + var wSplit = wDefColor.split(','); + if(wSplit.length == 4){ + cmanCP_VAR["obj_tR"].value = wSplit[0]; + cmanCP_VAR["obj_tG"].value = wSplit[1]; + cmanCP_VAR["obj_tB"].value = wSplit[2]; + cmanCP_VAR["obj_tA"].value = wSplit[3]; + wDefColorSet = 'RGB'; + } + + } + else if (wDefColor.indexOf('hsl(') == 0){ + wDefColor = wDefColor.replace('hsl(',''); + wDefColor = wDefColor.replace('%',''); + wDefColor = wDefColor.replace(')',''); + var wSplit = wDefColor.split(','); + if(wSplit.length == 3){ + cmanCP_VAR["obj_tH"].value = wSplit[0]; + cmanCP_VAR["obj_tS"].value = parseFloat(wSplit[1])/100; + cmanCP_VAR["obj_tL"].value = parseFloat(wSplit[2])/100; + wDefColorSet = 'HSL'; + } + + } + else if (wDefColor.indexOf('hsla(') == 0){ + wDefColor = wDefColor.replace('hsla(',''); + wDefColor = wDefColor.replace('%',''); + wDefColor = wDefColor.replace(')',''); + var wSplit = wDefColor.split(','); + if(wSplit.length == 3){ + cmanCP_VAR["obj_tH"].value = wSplit[0]; + cmanCP_VAR["obj_tS"].value = parseFloat(wSplit[1])/100; + cmanCP_VAR["obj_tL"].value = parseFloat(wSplit[2])/100; + cmanCP_VAR["obj_tA"].value = wSplit[3]; + wDefColorSet = 'HSL'; + } + } + + if(wDefColorSet == ""){ + cmanCP_VAR["obj_tR16"].value = "ff"; + cmanCP_VAR["obj_tG16"].value = "80"; + cmanCP_VAR["obj_tB16"].value = "0"; + wDefColorSet = 'RGB16'; + } + if(cmanCP_VAR["obj_tA"].value == ''){ + cmanCP_VAR["obj_tA"].value = '1'; + } + cmanCP_JS_textCng(wDefColorSet); + + + // ----- 初期TAB設定 ---------------------------------------------- + var wDefTab = ''; + if('def_tab' in cmanCP_VAR){ + wDefTab = cmanCP_VAR['def_tab'].toUpperCase(); + } + switch (wDefTab){ + case 'RGB': + case 'RGB16': + case 'HSL': + cmanCP_JS_tanCng(wDefTab); break; + default: + cmanCP_JS_tanCng('HSL'); break; // DEBUG時はコメント + } + + + // ----- 透明の表示設定 ---------------------------------------------- + var wDefAlpha = ''; + if('def_alpha' in cmanCP_VAR){ + wDefAlpha = cmanCP_VAR['def_alpha']; + } + if(wDefAlpha == '0'){ + document.getElementById('cmanCP_ID_aA').style.display = 'none'; + }else{ + document.getElementById('cmanCP_ID_aA').style.display = ''; + } + + + // ----- サイズ取得のため透明のまま表示 --------------------------- + cmanCP_VAR["objPop"].style.display = ""; + + + // ----- 表示位置設定 --------------------------------------------- + if(cmanCP_VAR["objPop"].scrollWidth >= document.documentElement.clientWidth){ + cmanCP_VAR["objPop"].style.left = '0px'; + }else{ + cmanCP_VAR["objPop"].style.left = Math.round((document.documentElement.clientWidth - cmanCP_VAR["objPop"].scrollWidth) / 2) + 'px'; + } + + if(cmanCP_VAR["objPop"].scrollHeight >= document.documentElement.clientHeight){ + cmanCP_VAR["objPop"].style.top = '0px'; + }else{ + cmanCP_VAR["objPop"].style.top = Math.round((document.documentElement.clientHeight - cmanCP_VAR["objPop"].scrollHeight) / 2) + 'px'; + } + + // ----- 移動イベント登録 ----------------------------------------- + document.getElementById('cmanCP_ID_title').onmousedown = cmanCP_JS_mdown; + document.getElementById('cmanCP_ID_title').onmouseup = cmanCP_JS_mup; + document.getElementById('cmanCP_ID_title').onmousemove = cmanCP_JS_mmove; + document.getElementById('cmanCP_ID_title').onmouseout = cmanCP_JS_mout; + + // ----- 透明解除 ------------------------------------------------- + cmanCP_VAR["objPop"].style.opacity = 1; + + +cmanCP_ID_title + +} + + +// ========================================================================================= +// 閉じるボタンが押されたら +// ========================================================================================= +function cmanCP_JS_close(){ + + var wDelElm = document.getElementById(cmanCP_VAR["popId"]); + document.body.removeChild(wDelElm); + + // ハッシュクリア + for(var key in cmanCP_VAR){ + delete cmanCP_VAR[key]; + } +} + +// ========================================================================================= +// 色リストが選択されたら +// ========================================================================================= +function cmanCP_JS_csel(argObj){ + + var wColor = argObj.style.backgroundColor.toString(); + var w16 = ''; + var wRcColor = ''; + + if(wColor.substr(0,1) == '#'){ + wRcColor = argColor.substr(1); + } + else{ + + //背景色の余計な文字列削除 + wColor = wColor.replace("rgb(",""); + wColor = wColor.replace(")",""); + + //文字列分割 + var wColorSplit = wColor.split(","); + + //10進数を16進数に変換して連結 + for (var i = 0; i <= 2; i++) { + w16 = parseInt(wColorSplit[i]).toString(16) + if(w16.length == 1){ + wRcColor = wRcColor+'0'+w16; + }else{ + wRcColor = wRcColor+w16; + } + } + } + + cmanCP_VAR["obj_tR16"].value = wRcColor.substr(0,2); + cmanCP_VAR["obj_tG16"].value = wRcColor.substr(2,2); + cmanCP_VAR["obj_tB16"].value = wRcColor.substr(4,2); + + cmanCP_JS_textCng('RGB16'); + +} + +// ========================================================================================= +// タブがクリックされたら +// ========================================================================================= +function cmanCP_JS_tanCng(argID){ + + var wTabCssS = 'cmanCP_CSS_Tab cmanCP_CSS_TabS'; + var wTabCssN = 'cmanCP_CSS_Tab cmanCP_CSS_TabN'; + + + if(document.getElementById('cmanCP_ID_tab_'+argID).className == wTabCssS){return;} + + var wObjTabRGB = document.getElementById('cmanCP_ID_tab_RGB'); + var wObjTabRGB16 = document.getElementById('cmanCP_ID_tab_RGB16'); + var wObjTabHSL = document.getElementById('cmanCP_ID_tab_HSL'); + var wObjTrRGB_R = document.getElementById('cmanCP_ID_aRGB_R'); + var wObjTrRGB_G = document.getElementById('cmanCP_ID_aRGB_G'); + var wObjTrRGB_B = document.getElementById('cmanCP_ID_aRGB_B'); + var wObjTrHSL_H = document.getElementById('cmanCP_ID_aHSL_H'); + var wObjTrHSL_S = document.getElementById('cmanCP_ID_aHSL_S'); + var wObjTrHSL_L = document.getElementById('cmanCP_ID_aHSL_L'); + + + switch (argID){ + case 'RGB': + cmanCP_VAR["obj_tR"].style.display = ""; + cmanCP_VAR["obj_tG"].style.display = ""; + cmanCP_VAR["obj_tB"].style.display = ""; + cmanCP_VAR["obj_tR16"].style.display = "none"; + cmanCP_VAR["obj_tG16"].style.display = "none"; + cmanCP_VAR["obj_tB16"].style.display = "none"; + wObjTabRGB.className = wTabCssS; + wObjTabRGB16.className = wTabCssN; + wObjTabHSL.className = wTabCssN; + break; + + case 'RGB16': + cmanCP_VAR["obj_tR"].style.display = "none"; + cmanCP_VAR["obj_tG"].style.display = "none"; + cmanCP_VAR["obj_tB"].style.display = "none"; + cmanCP_VAR["obj_tR16"].style.display = ""; + cmanCP_VAR["obj_tG16"].style.display = ""; + cmanCP_VAR["obj_tB16"].style.display = ""; + wObjTabRGB.className = wTabCssN; + wObjTabRGB16.className = wTabCssS; + wObjTabHSL.className = wTabCssN; + break; + + case 'HSL': + wObjTabRGB.className = wTabCssN; + wObjTabRGB16.className = wTabCssN; + wObjTabHSL.className = wTabCssS; + break; + } + + switch (argID){ + case 'HSL': + wObjTrRGB_R.style.display = "none"; + wObjTrRGB_G.style.display = "none"; + wObjTrRGB_B.style.display = "none"; + wObjTrHSL_H.style.display = ""; + wObjTrHSL_S.style.display = ""; + wObjTrHSL_L.style.display = ""; + break; + + default : + wObjTrRGB_R.style.display = ""; + wObjTrRGB_G.style.display = ""; + wObjTrRGB_B.style.display = ""; + wObjTrHSL_H.style.display = "none"; + wObjTrHSL_S.style.display = "none"; + wObjTrHSL_L.style.display = "none"; + break; + } + + +} + +// ========================================================================================= +// レンジが変更された場合 +// ========================================================================================= +function cmanCP_JS_rangeCng(argID){ + + + switch (argID){ + case 'RGB': + cmanCP_VAR["obj_tR"].value = cmanCP_VAR["obj_rR"].value; + cmanCP_VAR["obj_tG"].value = cmanCP_VAR["obj_rG"].value; + cmanCP_VAR["obj_tB"].value = cmanCP_VAR["obj_rB"].value; + cmanCP_JS_textCng(argID); + break; + + case 'HSL': + cmanCP_VAR["obj_tH"].value = cmanCP_VAR["obj_rH"].value; + cmanCP_VAR["obj_tS"].value = cmanCP_VAR["obj_rS"].value; + cmanCP_VAR["obj_tL"].value = cmanCP_VAR["obj_rL"].value; + cmanCP_JS_textCng(argID); + break; + + case 'A': + cmanCP_VAR["obj_tA"].value = cmanCP_VAR["obj_rA"].value; + cmanCP_JS_textCng(argID); + break; + + } +} + +// ========================================================================================= +// テキスト入力が変更された場合 +// ========================================================================================= +function cmanCP_JS_textCng(argID){ + + + // テキストの整備 + switch (argID){ + case 'RGB16' : cmanCP_JS_rgb16_TO_rgb(); cmanCP_JS_rgb_TO_hsl(); break; + case 'RGB' : cmanCP_JS_rgb_TO_rgb16(); cmanCP_JS_rgb_TO_hsl(); break; + case 'HSL' : cmanCP_JS_hsl_TO_rgb(); cmanCP_JS_rgb_TO_rgb16(); break; + case 'A' : cmanCP_JS_chk_a(); break; + default : return; break; + } + + // レンジの整備 + cmanCP_VAR["obj_rR"].value = cmanCP_VAR["obj_tR"].value; + cmanCP_VAR["obj_rG"].value = cmanCP_VAR["obj_tG"].value; + cmanCP_VAR["obj_rB"].value = cmanCP_VAR["obj_tB"].value; + cmanCP_VAR["obj_rH"].value = cmanCP_VAR["obj_tH"].value; + cmanCP_VAR["obj_rS"].value = cmanCP_VAR["obj_tS"].value; + cmanCP_VAR["obj_rL"].value = cmanCP_VAR["obj_tL"].value; + cmanCP_VAR["obj_rA"].value = cmanCP_VAR["obj_tA"].value; + + + // サンプル更新 + cmanCP_JS_sampleCng(); +} + + +// ========================================================================================= +// RGB16→RGB 設定 +// ========================================================================================= +function cmanCP_JS_rgb16_TO_rgb(){ + + // RGB16の入力チェック&正規化 + cmanCP_VAR["obj_tR16"].value = cmanCP_JS_chk00toFF(cmanCP_VAR["obj_tR16"].value); + cmanCP_VAR["obj_tG16"].value = cmanCP_JS_chk00toFF(cmanCP_VAR["obj_tG16"].value); + cmanCP_VAR["obj_tB16"].value = cmanCP_JS_chk00toFF(cmanCP_VAR["obj_tB16"].value); + + // RGB置換 + cmanCP_VAR["obj_tR"].value = parseInt(cmanCP_VAR["obj_tR16"].value, 16); + cmanCP_VAR["obj_tG"].value = parseInt(cmanCP_VAR["obj_tG16"].value, 16); + cmanCP_VAR["obj_tB"].value = parseInt(cmanCP_VAR["obj_tB16"].value, 16); +} + + +// ========================================================================================= +// RGB→RGB16 設定 +// ========================================================================================= +function cmanCP_JS_rgb_TO_rgb16(){ + + // RGBの入力チェック&正規化 + cmanCP_VAR["obj_tR"].value = cmanCP_JS_chk0to255(cmanCP_VAR["obj_tR"].value); + cmanCP_VAR["obj_tG"].value = cmanCP_JS_chk0to255(cmanCP_VAR["obj_tG"].value); + cmanCP_VAR["obj_tB"].value = cmanCP_JS_chk0to255(cmanCP_VAR["obj_tB"].value); + + // RGB16置換 + cmanCP_VAR["obj_tR16"].value = cmanCP_JS_chk00toFF(parseInt(cmanCP_VAR["obj_tR"].value).toString(16)); + cmanCP_VAR["obj_tG16"].value = cmanCP_JS_chk00toFF(parseInt(cmanCP_VAR["obj_tG"].value).toString(16)); + cmanCP_VAR["obj_tB16"].value = cmanCP_JS_chk00toFF(parseInt(cmanCP_VAR["obj_tB"].value).toString(16)); +} + +// ========================================================================================= +// RGB(10進数) → HSL +// ========================================================================================= +function cmanCP_JS_rgb_TO_hsl(){ + + var wR = parseInt(cmanCP_VAR["obj_tR"].value); + var wG = parseInt(cmanCP_VAR["obj_tG"].value); + var wB = parseInt(cmanCP_VAR["obj_tB"].value); + + var wMax = Math.max(wR, wG, wB); + var wMin = Math.min(wR, wG, wB); + + var wH = 0; + var wS = 0; + var wL = 0; + + // --- 色相(H) ---------------------------------------------------------- + if (wMax == wMin) {} + else if (wMax == wR) {wH = 60 * (( wG - wB ) / ( wMax - wMin ));} + else if (wMax == wG) {wH = 60 * (( wB - wR ) / ( wMax - wMin )) + 120;} + else {wH = 60 * (( wR - wG ) / ( wMax - wMin )) + 240;} + if(wH < 0) {wH = wH + 360;} + if(wH >= 360) {wH = 0;} + + // --- 輝度(L) ---------------------------------------------------------- + wL = ( wMax + wMin ) / 2; + + // --- 彩度(S) ---------------------------------------------------------- + if (wMax == wMin) {} + else{ + if( wL <= (255 / 2) ) {wS = 255 * ( wMax -wMin ) / ( wMax + wMin );} + else {wS = 255 * ( wMax -wMin ) / ( 2 * 255 - ( wMax + wMin ));} + } + + // --- 色相(H)の整数化 ------------------------------------------------- + wH = Math.round(wH); + + // --- 彩度(S)の小数1桁整備(浮動小数のためテキストで処理) ------------ + wS = Math.round(wS / 255 * 1000).toString(); + if (wS == 0) {} + else if (wS.length < 2) {wS = ''+'0.00'+wS;} + else if (wS.length < 3) {wS = ''+'0.0'+wS;} + else if (wS.length < 4) {wS = ''+'0.'+wS;} + else {wS = wS.substr(0,1)+'.'+wS.substr(1);} + + // --- 輝度(L)の小数1桁整備(浮動小数のためテキストで処理) ------------ + wL = Math.round(wL / 255 * 1000).toString(); + if (wL == 0) {} + else if (wL.length < 2) {wL = ''+'0.00'+wL;} + else if (wL.length < 3) {wL = ''+'0.0'+wL;} + else if (wL.length < 4) {wL = ''+'0.'+wL;} + else {wL = wL.substr(0,1)+'.'+wL.substr(1);} + + // --- 変換結果を設定 -------------------------------------------------- + cmanCP_VAR["obj_tH"].value = wH; + cmanCP_VAR["obj_tS"].value = wS; + cmanCP_VAR["obj_tL"].value = wL; + +} + + +// ========================================================================================= +// HSL → RGB(10進数) +// ========================================================================================= +function cmanCP_JS_hsl_TO_rgb(){ + + var wCal; + + // HSLの入力チェック&正規化 + cmanCP_VAR["obj_tH"].value = cmanCP_JS_chk0to359(cmanCP_VAR["obj_tH"].value); + + wCal = cmanCP_JS_chk0to1s3(cmanCP_VAR["obj_tS"].value); + if(wCal.toString() != cmanCP_VAR["obj_tS"].value.toString()){cmanCP_VAR["obj_tS"].value = wCal;} // number対応 + + wCal = cmanCP_JS_chk0to1s3(cmanCP_VAR["obj_tL"].value); + if(wCal.toString() != cmanCP_VAR["obj_tL"].value.toString()){cmanCP_VAR["obj_tL"].value = wCal;} // number対応 + + + // HSLからRGB計算 + var wH = parseInt(cmanCP_VAR["obj_tH"].value); + var wS = parseFloat(cmanCP_VAR["obj_tS"].value); + var wL = parseFloat(cmanCP_VAR["obj_tL"].value); + + var wMax = 0; + var wMin = 0; + var wR = 0; + var wG = 0; + var wB = 0; + + wS = wS * 100; + wL = wL * 100; + + + if (wL < 50){ + wMax = 2.55 * ( wL + wL * (wS / 100)); + wMin = 2.55 * ( wL - wL * (wS / 100)); + }else{ + wMax = 2.55 * ( wL + ( 100 - wL) * (wS / 100)); + wMin = 2.55 * ( wL - ( 100 - wL) * (wS / 100)); + } + + if (wH < 60){ + wR = wMax; + wG = (wH / 60) * (wMax - wMin ) + wMin; + wB = wMin; + + }else if(wH < 120){ + wR = (( 120 - wH ) / 60 ) * ( wMax - wMin ) + wMin; + wG = wMax; + wB = wMin; + + }else if(wH < 180){ + wR = wMin; + wG = wMax; + wB = (( wH - 120 ) / 60 ) * ( wMax - wMin ) + wMin; + + }else if(wH < 240){ + wR = wMin; + wG = (( 240 - wH ) / 60 ) * ( wMax - wMin ) + wMin; + wB = wMax; + + }else if(wH < 300){ + wR = (( wH - 240 ) / 60 ) * ( wMax - wMin ) + wMin; + wG = wMin; + wB = wMax; + + }else{ + wR = wMax; + wG = wMin; + wB = (( 360 - wH ) / 60 ) * ( wMax - wMin ) + wMin; + } + + // --- 色相(H)の整数化 ------------------------------------------------- + wR = Math.round(wR); + wG = Math.round(wG); + wB = Math.round(wB); + + // --- 変換結果を設定 -------------------------------------------------- + cmanCP_VAR["obj_tR"].value = wR; + cmanCP_VAR["obj_tG"].value = wG; + cmanCP_VAR["obj_tB"].value = wB; + +} + + +// ========================================================================================= +// Aはチェック&正規化 設定 +// ========================================================================================= +function cmanCP_JS_chk_a(){ + + var wCal = cmanCP_JS_chk0to1s2(cmanCP_VAR["obj_tA"].value); + if(wCal.toString() != cmanCP_VAR["obj_tA"].value.toString()){cmanCP_VAR["obj_tA"].value = wCal;} // number対応 + +} + +// ========================================================================================= +// 16進数チェック&正規化(0~ff) +// ========================================================================================= +function cmanCP_JS_chk00toFF(arg16){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg16); + var wRc = 0; + var wStrPos = 0; + + if(wChkStr.toString().match(/^[0-9a-f]+$/i)){ + + wRc = parseInt(wChkStr, 16); + + if(wRc < 0) {wRc = 0;} + if(wRc > 255) {wRc = 255;} + + wRc = parseInt(wRc).toString(16); + if(wRc.length == 1){wRc = '0'+wRc;} + + } + + return wRc; +} + +// ========================================================================================= +// 10進数チェック&正規化(0~255) +// ========================================================================================= +function cmanCP_JS_chk0to255(arg10){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg10); + var wRc = 0; + + if(wChkStr.toString().match(/^[0-9]+$/)){ + wRc = parseInt(wChkStr); + if(wRc < 0) {wRc = 0;} + if(wRc > 255) {wRc = 255;} + } + return wRc; +} + +// ========================================================================================= +// 10進数チェック&正規化(0~359) +// ========================================================================================= +function cmanCP_JS_chk0to359(arg10){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg10); + var wRc = 0; + + if(wChkStr.toString().match(/^[0-9]+$/)){ + wRc = parseInt(wChkStr); + if(wRc < 0) {wRc = 0;} + if(wRc > 359) {wRc = 359;} + } + return wRc; +} + +// ========================================================================================= +// 10進数チェック(0~1,0.1刻み) +// ========================================================================================= +function cmanCP_JS_chk0to100s1(arg10){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg10); + var wRc = 0; + + if(wChkStr.toString().match(/^[0-9]+(\.[0-9]+)?$/)){ + + wRc = Math.round(parseFloat(wChkStr) * 10) / 10; + if(wRc < 0) {wRc = 0;} + if(wRc > 100) {wRc = 100;} + + wRc = wRc.toString(); + wPos = wRc.indexOf('.'); + + if(wPos < 0){ + }else{ + wRc = wRc.substr(0,wPos)+'.'+wRc.substr(wPos+1,1); + } + + } + return wRc; +} + +// ========================================================================================= +// 10進数チェック(0~1,0.01刻み) +// ========================================================================================= +function cmanCP_JS_chk0to1s2(arg10){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg10); + var wRc = 0; + + if(wChkStr != ''){ + + if(wChkStr.toString().match(/^[0-9]+\.$/)){ + wRc = wChkStr; + } + else if(wChkStr.toString().match(/^[0-9]+\.0$/)){ + wRc = wChkStr; + } + else if(wChkStr.toString().match(/^[0-9]+(\.[0-9]+)?$/)){ + + wRc = Math.round(parseFloat(wChkStr) * 100) / 100; + if(wRc < 0) {wRc = 0;} + if(wRc > 1) {wRc = 1;} + + wRc = wRc.toString().substr(0,4); + + if((wChkStr.length > wRc.length)&&(wChkStr.length <= 4)&&(wRc.substr(1,1) == '.')){ + wRc += ''+Array((wChkStr.length - wRc.length) + 1).join('0'); + } + + } + } + + return wRc; +} + +// ========================================================================================= +// 10進数チェック(0~1,0.001刻み) +// ========================================================================================= +function cmanCP_JS_chk0to1s3(arg10){ + + var wChkStr = cmanCP_JS_zen_TO_han(arg10); + var wRc = 0; + + if(wChkStr != ''){ + + if(wChkStr.toString().match(/^[0-9]+\.$/)){ + wRc = wChkStr; + } + else if(wChkStr.toString().match(/^[0-9]+\.0$/)){ + wRc = wChkStr; + } + else if(wChkStr.toString().match(/^[0-9]+\.00$/)){ + wRc = wChkStr; + } + else if(wChkStr.toString().match(/^[0-9]+(\.[0-9]+)?$/)){ + + wRc = Math.round(parseFloat(wChkStr) * 1000) / 1000; + if(wRc < 0) {wRc = 0;} + if(wRc > 1) {wRc = 1;} + + wRc = wRc.toString().substr(0,5); + + if((wChkStr.length > wRc.length)&&(wChkStr.length <= 5)&&(wRc.substr(1,1) == '.')){ + wRc += ''+Array((wChkStr.length - wRc.length) + 1).join('0'); + } + + } + } + + return wRc; +} + +// ========================================================================================= +// 全角入力対応(trimを含む) +// ========================================================================================= +function cmanCP_JS_zen_TO_han(argStr){ + + var wRcStr = argStr.toString(); + + var befstr = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","a","b","c","d","e","f","あ","え",".","。"); + var aftstr = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","a","b","c","d","e","f","a","e",".","."); + + wRcStr = wRcStr.replace(/[ ]|[ ]/g, ''); + wRcStr = wRcStr.replace(/\t|\r|\n/g, ''); + + for(var i=0; i ' + + '' + cmanCP_VAR["strRGB"] + ' ' + + '' + cmanCP_VAR["strHSL"] + ''; + }else{ + document.getElementById('cmanCP_ID_outstr').innerHTML = '' + cmanCP_VAR["strRGB16"] + ' (opacity:' + cmanCP_VAR["obj_tA"].value + ') ' + + '' + cmanCP_VAR["strRGBA"] + ' ' + + '' + cmanCP_VAR["strHSLA"] + ''; + } + +} + +// ========================================================================================= +// この色を選択 +// ========================================================================================= +function cmanCP_JS_select(){ + + // ----- 返却形式 ------------------------------------------------- + var wForm = ''; + var wOutText = ''; + + if('rc_form' in cmanCP_VAR){ + wForm = cmanCP_VAR['rc_form'].toUpperCase(); + } + + switch (wForm){ + case '#16': + wOutText = '#'+cmanCP_VAR["obj_tR16"].value+cmanCP_VAR["obj_tG16"].value+cmanCP_VAR["obj_tB16"].value; + break; + case '16': + wOutText = ''+cmanCP_VAR["obj_tR16"].value+cmanCP_VAR["obj_tG16"].value+cmanCP_VAR["obj_tB16"].value; + break; + case 'RGB': + wOutText = 'rgb('+cmanCP_VAR["obj_tR"].value+', '+cmanCP_VAR["obj_tG"].value+', '+cmanCP_VAR["obj_tB"].value+')'; + break; + case 'RGBA': + wOutText = 'rgba('+cmanCP_VAR["obj_tR"].value+', '+cmanCP_VAR["obj_tG"].value+', '+cmanCP_VAR["obj_tB"].value+', '+cmanCP_VAR["obj_tA"].value+')'; + break; + case 'HSL': + wOutText = 'hsl('+cmanCP_VAR["obj_tH"].value+', '+(cmanCP_JS_chk0to100s1(parseFloat(cmanCP_VAR["obj_tS"].value) * 100))+'%, '+(cmanCP_JS_chk0to100s1(parseFloat(cmanCP_VAR["obj_tL"].value) * 100)) + '%)'; + break; + case 'HSLA': + wOutText = 'hsla('+cmanCP_VAR["obj_tH"].value+', '+(cmanCP_JS_chk0to100s1(parseFloat(cmanCP_VAR["obj_tS"].value) * 100))+'%, '+(cmanCP_JS_chk0to100s1(parseFloat(cmanCP_VAR["obj_tL"].value) * 100)) + '%, '+cmanCP_VAR["obj_tA"].value+')'; + break; + default: + if(cmanCP_VAR["obj_tA"].value == '1'){ + wOutText = 'rgb('+cmanCP_VAR["obj_tR"].value+', '+cmanCP_VAR["obj_tG"].value+', '+cmanCP_VAR["obj_tB"].value+')'; + }else{ + wOutText = 'rgba('+cmanCP_VAR["obj_tR"].value+', '+cmanCP_VAR["obj_tG"].value+', '+cmanCP_VAR["obj_tB"].value+', '+cmanCP_VAR["obj_tA"].value+')'; + } + break; + } + + // ----- テキスト設定 --------------------------------------------- + var wOutTextID = []; + + if('rc_text' in cmanCP_VAR){ + wOutTextID = cmanCP_VAR["rc_text"].split(','); + } + + for(var i=0; i response.json ()).then (function + (json) + { + if (json.status) + return 'success'; + else + return 'miss'; + }).catch ( + (error) => 'error'); +} + +/* + * Canvas から画像を取得する. + * id:要素オブジェクト + * + * 戻り値は,Promise オブジェクト. + */ +function +getImageFromCanvas (id) +{ + return new Promise ( + function (resolve, reject) + { + const w2 = new Image (); // 作業用画像オブジェクト + + w2.onload = () => resolve (w2); + w2.onerror = (e) => reject (e); + w2.src = id.toDataURL ('image/png'); + }); +} + +/* + * Canvas を合成する. + * + * 戻り値は,なし. + */ +async function +concatCanvas () +{ + canvasPerfect.getContext ('2d').fillStyle = 'white'; + canvasPerfect.getContext ('2d').fillRect (0, 0, canvasWidth, canvasHeight); + + // Canvas 合成 + for (let i = 0; i < layerMax; ++i) + { + const w = await getImageFromCanvas (canvas[i]); + + canvasPerfect.getContext ('2d').drawImage (w, 0, 0, canvasWidth, canvasHeight); + } +} + +/* + * サーヴァに Canvas 画像を送信する. + * backup:ドラフト・フラグ + * + * 戻り値は,なし. + */ +async function +SendToServer (backup) +{ + await concatCanvas (); + + let image = canvasPerfect.toDataURL ('image/png'); + let param = {method: 'POST', + headers: {'Content-Type': 'application/json; charset=utf-8'}, + body: JSON.stringify ({data: image}), + mode: 'cors'}; + + if (backup) + await SendServer (`backup.php?id=${uniqId}`, param); + else + { + // SendServer (`upload.php?name=${userName.value}&pass=${password.value}&msg=${message.value}`, param); + await SendServer (`upload.php${window.location.search}&name=${userName.value}&pass=${password.value}&held=${held ? 1 : 0}&uniqid=${uniqId}`, param); + } +} + +/* + * 定義上の Canvas サイズと実際のそれとの比率を取得する. + * + * 戻り値は,なし. + */ +function +GetZoom () +{ + zoomX = canvasWidth / canvasRootCtx.canvas.clientWidth; + zoomY = canvasHeight / canvasRootCtx.canvas.clientHeight; +} + +/* + * ローカル画像 files を取込む. + * + * 戻り値は,なし. + */ +function +LoadFile (files) +{ + let reader = new FileReader (); // ファイル読込ダイアログ + + // ファイルが読込まれた場合 + reader.onload = function + (evt) + { + // 画像が読込まれた場合 + img.onload = function + () + { + canvasCtx[layer.value].drawImage (img, 0, 0, canvasWidth, canvasHeight); + + held = true; + }; + + img.src = evt.target.result; + + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + history[count] = {type: 'load', layer: layer.value}; + ++count; + }; + + reader.readAsDataURL (files[0]); // 選択された最初のファイルを指定 +} + +GetZoom (); +NewCanvas (); + + +/* + * ペンの座標および履歴を記録し,ペン移動中の処理に移る. + * クリックまたはタップ開始と同時に実行する. + * + * 戻り値は,なし. + */ +function +Down (evt) +{ + let mousePos = getMousePosition (canvasRoot, evt); // マウス座標 + + if (bucket.checked) + { + bucketArea (parseInt (mousePos.x, 10), parseInt (mousePos.y, 10), colour, + layer.value, false); + } + else + { + // 座標を記録 + lastX = mousePos.x + 1; + lastY = mousePos.y; + + nowDraw = true; + + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + + Drawing (evt); + } +} + +/* + * ペン移動中の処理を行ふ. + * + * 戻り値は,なし. + */ +function +Move (evt) /* 筆移動なうみ */ +{ + Drawing (evt); +} + +async function +Up () /* 筆離したお (^∇^)/ */ +{ + nowDraw = false; + + await SendToServer (true); + + historySt[countSt] = count; +} + +canvasRoot.addEventListener ('mousedown', + function (evt) + { + Down (evt); + }); + +canvasRoot.addEventListener ('mousemove', + function (evt) + { + Move (evt); + }); + +canvasRoot.addEventListener ('mouseup', + function () + { + Up (); + }); + +canvasRoot.addEventListener ('touchstart', + function (evt) + { + Down (evt.changedTouches[0]); + }); + +canvasRoot.addEventListener ('touchmove', + function (evt) + { + evt.preventDefault (); + Move (evt.changedTouches[0]); + }); + +canvasRoot.addEventListener ('touchend', + function () + { + Up (); + }); + +canvasRoot.addEventListener ('touchcancel', + function () + { + Up (); + }); + +addEventListener ('resize', + function () + { + GetZoom (); + }); + +buttonNew.addEventListener ('click', + function () + { + if (confirm ('作成中の絵を初期化しても大丈夫ですか.')) + NewCanvas (); + }); + +buttonSend.addEventListener ('click', + async function () + { + const searchParams = new URLSearchParams (window.location.search); + + await SendToServer (false); + + document.getElementsByTagName ('body')[0].style.marginTop = 'auto'; + document.getElementsByTagName ('body')[0].style.marginBottom = 'auto'; + document.getElementsByTagName ('body')[0].innerHTML = '
待ってね.
'; + + window.setTimeout ( + function () + { + window.location.href = `./?thread=${searchParams.get ('thread')}&sort=${ + searchParams.get ('sort')}`; + }, 2000); + }); + +buttonSave.addEventListener ('click', + function () + { + let download = document.createElement ('a'); + + concatCanvas (); + download.href = canvasPerfect.toDataURL ('image/png'); + download.download = 'canvas.png'; + + document.body.appendChild (download); + download.click (); + document.body.removeChild (download); + }); + +buttonChangeSize.addEventListener ('click', + function () + { + changeWidth.value = canvasWidth; + changeHeight.value = canvasHeight; + + changeSizeWindow.style.display = 'block'; + }); + +buttonUndo.addEventListener ('click', + function () + { + if (countSt > 0) + { + const _layer = Number (layer.value); + + --countSt; + count = historySt[countSt]; + + while (layerMax != 3) + { + if (layerMax > 3) + delLayer (0, true); + else + addLayer (0, true); + } + + ClearCanvas (); + + for (let i = 0; i < count; ++i) + Trace (i); + + layer.value = Math.max (0, Math.min (_layer, layerMax - 1)); + } + + reDraw (); + }); + +buttonRedo.addEventListener ('click', + function () + { + if (countSt < countMax) + { + const _layer = Number (layer.value); + + ++countSt; + count = historySt[countSt]; + + for (let i = historySt[countSt - 1]; i < count; ++i) + Trace (i); + + layer.value = Math.max (0, Math.min (_layer, layerMax - 1)); + } + + reDraw (); + }); + +pen.addEventListener ('click', + function () + { + for (let i = 0; i < layerMax; ++i) + canvasCtx[i].globalCompositeOperation = 'source-over'; + }) + +rubber.addEventListener ('click', + function () + { + for (let i = 0; i < layerMax; ++i) + canvasCtx[i].globalCompositeOperation = 'destination-out'; + }); + +layerAdd.addEventListener ('click', + function () + { + addLayer (Number (layer.value) + 1, false); + }); + +layerDel.addEventListener ('click', + function () + { + if (layerMax > 1) + delLayer (Number (layer.value), false); + else + window.alert ('消せるレイアがありません.'); + }); + +layerUp.addEventListener ('click', + function () + { + if (layer.value < layerMax - 1) + changeLayer (Number (layer.value), Number (layer.value) + 1, false); + }); + +layerDown.addEventListener ('click', + function () + { + if (layer.value > 0) + changeLayer (Number (layer.value), Number (layer.value) - 1, false); + }); + + +function +Trace (his) +{ + switch (history[his].type) + { + case 'draw': + canvasCtx[history[his].layer].globalCompositeOperation = ( + ((history[his].mode == 'rubber') + ? 'destination-out' + : 'source-over')); + + if (history[his].mode == 'bucket') + { + bucketArea (history[his].start.x, history[his].start.y, + history[his].colour, history[his].layer, true); + } + else + { + canvasCtx[history[his].layer].lineWidth = history[his].size; + canvasCtx[history[his].layer].strokeStyle = history[his].colour; + + canvasCtx[history[his].layer].beginPath (); + canvasCtx[history[his].layer].moveTo (history[his].start.x, + history[his].start.y); + canvasCtx[history[his].layer].lineTo (history[his].end.x, + history[his].end.y); + canvasCtx[history[his].layer].closePath (); + canvasCtx[history[his].layer].stroke (); + } + + break; + + case 'load': + canvasCtx[history[his].layer].drawImage ( + img, 0, 0, canvasWidth, canvasHeight); + + break; + + case 'addLayer': + addLayer (history[his].layer, true); + + break; + + case 'delLayer': + delLayer (history[his].layer, true); + + break; + + case 'changeLayer': + changeLayer (history[his].from, history[his].to, true); + + break; + } +} + +function +getMousePosition (canvas, evt) +{ + let rect = canvas.getBoundingClientRect (); + + return {x: (evt.clientX - rect.left) * zoomX, + y: (evt.clientY - rect.top) * zoomY}; +} + +function +ClearCanvas () +{ + for (let i = 0; i < layerMax; ++i) + canvasCtx[i].clearRect (0, 0, canvasWidth, canvasHeight); + + reDraw (); +} + +function +NewCanvas () +{ + ClearCanvas (); + + count = 0; + history = []; + countSt = 0; + historySt = []; + countMax = 0; +} + +function +Drawing (evt) +{ + if (nowDraw) + { + let mousePos = getMousePosition (canvasRoot, evt); + let nowX = mousePos.x; + let nowY = mousePos.y; + + if ((nowX == lastX) && (nowY == lastY)) + --nowX; + + if (radioSize.value == 0) + { + canvasCtx[layer.value].lineWidth = document.getElementById ( + 'size-free').value; + } + else + canvasCtx[layer.value].lineWidth = radioSize.value; + + canvasCtx[layer.value].strokeStyle = colour; + + canvasCtx[layer.value].beginPath (); + canvasCtx[layer.value].moveTo (lastX, lastY); + canvasCtx[layer.value].lineTo (nowX, nowY); + canvasCtx[layer.value].closePath (); + canvasCtx[layer.value].stroke (); + + reDraw (); + + history[count] = { + type: 'draw', + start: {x: lastX, y: lastY}, + end: {x: nowX, y: nowY}, + colour: canvasCtx[layer.value].strokeStyle, + size: canvasCtx[layer.value].lineWidth, + layer: layer.value, + mode: ((canvasCtx[layer.value].globalCompositeOperation + == 'destination-out') + ? 'rubber' + : (bucket.checked ? 'bucket' : 'pen'))}; + ++count; + + lastX = mousePos.x; + lastY = mousePos.y; + } +} + +function +changeColour (rgb) +{ + const colourPicker = document.getElementById ('colour-picker'); + let cps = colourPicker.getAttribute ('cmanCPat').split (','); + let clCode; + + cps[0] = 'def_color:cns=' + rgbTo16 (rgb).substr (0, 7); + clCode = rgbTo16 (rgb).substr (0, 7); + + if (clCode in colourCode) + clCode = colourCode[clCode]; + + document.getElementById ('irorororo').innerHTML = clCode; + colourPicker.setAttribute ('cmanCPat', cps.join ()); + + colour = rgb; +} + + +function +rgbTo16 (col) +{ + return "#" + col.match(/\d+/g).map(function(a){return ("0" + parseInt(a).toString(16)).slice(-2)}).join(""); +} + + +function +bucketArea (px, py, cl, lyr, fromHistory) +{ + console.log ([px, py]); + + let cwnt = 0; + let r, g, b, a; + let r_, g_, b_, a_; + + [r, g, b, a] = canvasCtx[lyr].getImageData (px, py, 1, 1).data; + + let dx = new Array (canvasWidth * canvasHeight); + let dy = new Array (canvasWidth * canvasHeight); + let dxy = new Array (canvasHeight); + + for (let i = 0; i < canvasHeight; ++i) + dxy[i] = new Array (canvasWidth).fill (0); + + dx[0] = px; + dy[0] = py; + dxy[py][px] = 1; + + ++cwnt; + + for (let i = 0; true; ++i) + { + let x = dx[i]; + let y = dy[i]; + + if (x + 1 < canvasWidth) + { + if (dxy[y][x + 1] == 0) + { + dxy[y][x + 1] = 1; + + [r_, g_, b_, a_] = canvasCtx[lyr].getImageData ( + x + 1, y, 1, 1).data; + + if ((r_ == r) && (g_ == g) && (b_ == b) && (a_ == a)) + { + dx[cwnt] = x + 1; + dy[cwnt] = y; + + ++cwnt; + } + } + } + + if (0 <= x - 1) + { + if (dxy[y][x - 1] == 0) + { + dxy[y][x - 1] = 1; + + [r_, g_, b_, a_] = canvasCtx[lyr].getImageData ( + x - 1, y, 1, 1).data; + + if ((r_ == r) && (g_ == g) && (b_ == b) && (a_ == a)) + { + dx[cwnt] = x - 1; + dy[cwnt] = y; + + ++cwnt; + } + } + } + + if (y + 1 < canvasHeight) + { + if (dxy[y + 1][x] == 0) + { + dxy[y + 1][x] = 1; + + [r_, g_, b_, a_] = canvasCtx[lyr].getImageData ( + x, y + 1, 1, 1).data; + + if ((r_ == r) && (g_ == g) && (b_ == b) && (a_ == a)) + { + dx[cwnt] = x; + dy[cwnt] = y + 1; + + ++cwnt; + } + } + } + + if (y - 1 >= 0) + { + if (dxy[y - 1][x] == 0) + { + dxy[y - 1][x] = 1; + + [r_, g_, b_, a_] = canvasCtx[lyr].getImageData ( + x, y - 1, 1, 1).data; + + if ((r_ == r) && (g_ == g) && (b_ == b) && (a_ == a)) + { + dx[cwnt] = x; + dy[cwnt] = y - 1; + + ++cwnt; + } + } + } + + if (i == cwnt - 1) + break; + } + + canvasCtx[lyr].fillStyle = cl; + + for (let i = 0; i < cwnt; ++i) + canvasCtx[lyr].fillRect (dx[i], dy[i], 1, 1); + + reDraw (); + + if (!(fromHistory)) + { + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + + history[count] = { + type: 'draw', + start: {x: px, y: py}, + colour: canvasCtx[lyr].fillStyle, + layer: lyr, + mode: 'bucket'}; + ++count; + } +} + + +function +getCookie (nameOfCookie) +{ + const r = document.cookie.split (';'); + + let f = null; + + r.forEach ( + function (element) + { + const content = element.split ('='); + + if (content[0] == nameOfCookie) + f = content[1]; + }); + + return f; +} + + +function +uniqueId (digits) +{ + var strong = typeof digits !== 'undefined' ? digits : 1000; + + return Date.now().toString(16) + Math.floor ( + (strong * Math.random ())).toString (16); +} + + +function +deletePost (id) +{ + delId.value = id; +} + + +function +deletePostReally () +{ + if (delId.value == '') + window.alert ('削除したいレスの番号を入れろ!!!!!'); + else if (delPass.value == '') + window.alert ('設定した削除用パスワードを入れろ!!!!!!!!!!!!!!!!!'); + else + { + window.location.href = `#${delId.value}`; + + setTimeout ( + function () + { + if (window.confirm (`レス番号 ${delId.value} の投稿を削除します.\nよろしいですかい?????`)) + { + const searchParams = new URLSearchParams (window.location.search); + + window.location.href = `./delete.php?thread=${searchParams.get ( + 'thread')}&id=${delId.value}&pass=${delPass.value}`; + } + else + window.location.href = '#del'; + }, 100); + } +} + + +function +closeModal () +{ + modal.style.display = 'none'; +} + + +function +applyResolution () +{ + if (!(((changeWidth.value < canvasRoot.width) + || changeHeight.value < canvasRoot.height) + && !(window.confirm ('指定されている幅もしくは高さの値がサイズ変更前よりも小さいです.\nこのままだと右端もしくは下端が変更後のサイズに合わせてカットされてしまいます.\nよろしいかな?????')))) + { + canvasWidth = Math.max (32, Math.min (changeWidth.value, 640)); + canvasHeight = Math.max (24, Math.min (changeHeight.value, 480)); + + canvasArea.style.width = canvasWidth + 'px'; + canvasArea.style.height = canvasHeight + 'px'; + + for (let i = 0; i < layerMax; ++i) + { + const canvas4replace = document.createElement ('canvas'); + + canvas4replace.width = canvasWidth; + canvas4replace.height = canvasHeight; + + const canvas4replaceCtx = canvas4replace.getContext ('2d'); + + if (i == 0) + { + canvas4replaceCtx.fillStyle = 'white'; + canvas4replaceCtx.fillRect (0, 0, canvasWidth, canvasHeight); + } + + canvas4replaceCtx.drawImage (canvas[i], 0, 0); + + canvas[i].width = canvasWidth; + canvas[i].height = canvasHeight; + + canvasCtx[i].drawImage (canvas4replace, 0, 0); + } + + canvasPerfect.width = canvasRoot.width = canvasWidth; + canvasPerfect.height = canvasRoot.height = canvasHeight; + + reDraw (); + + closeModal (); + } +} + + +function +reDraw () +{ + canvasRootCtx.fillStyle = 'white'; + canvasRootCtx.fillRect (0, 0, canvasWidth, canvasHeight); + + for (let i = 0; i < layerMax; ++i) + { + if (!(layerSep.checked && (i != layer.value))) + canvasRootCtx.drawImage (canvas[i], 0, 0); + } +} + + +function +changeLayer (from, to, fromHistory) +{ + const _canvas = canvas[from]; + const _canvasCtx = canvasCtx[from]; + + canvas[from] = canvas[to]; + canvas[to] = _canvas; + + canvasCtx[from] = canvasCtx[to]; + canvasCtx[to] = _canvasCtx; + + if (!(fromHistory)) + { + layer.value = to; + + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + + history[count] = {type: 'changeLayer', + from: from, + to: to}; + ++count; + } + + reDraw (); +} + + +function +addLayer (lyr, fromHistory) +{ + const newLayer = document.createElement ('label'); + + canvas.splice (lyr, 0, document.createElement ('canvas')); + canvasCtx.splice (lyr, 0, canvas[lyr].getContext ('2d')); + + canvas[lyr].width = canvasWidth; + canvas[lyr].height = canvasHeight; + + newLayer.innerHTML + = ` ${layerMax}`; + layer[layerMax - 1].parentNode.after (newLayer); + + ++layerMax; + + reDraw (); + + if (!(fromHistory)) + { + layer.value = lyr; + + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + + history[count] = {type: 'addLayer', + layer: lyr}; + ++count; + } +} + + +function +delLayer (lyr, fromHistory) +{ + --layerMax; + + canvas[lyr].remove (); + + canvas.splice (lyr, 1); + canvasCtx.splice (lyr, 1); + + layer[layerMax].parentNode.remove (); + + if (!(fromHistory)) + { + layer.value = Math.max (0, lyr - 1); + + // 履歴を更新 + historySt[countSt] = count; + ++countSt; + countMax = countSt; + + history[count] = {type: 'delLayer', + layer: lyr}; + ++count; + } +} + diff --git a/script.js b/script.js new file mode 100644 index 0000000..a3cd596 --- /dev/null +++ b/script.js @@ -0,0 +1,169 @@ +const music = new Audio ('music.mp3'); // BGM +let playing = false; // 再生フラグ +let nowPlay = true; // 再生すべきかどぅか + +document.getElementById ('sort').addEventListener ('change', sortChange); + +/* + * BGM を再生しよぅとする. + * + * 戻り値は,なし. + */ +async function +PlayMusic () +{ + // 再生中でなぃ場合 + if (playing === false) + { + // BGM を再生しよぅとする. + try + { + await music.play (); + music.loop = true; + + playing = true; + nowPlay = true; + + // オン/オフ・ボタン + document.getElementById ('mute').innerHTML = 'BGM がうるさい人用'; + } + catch (err) + { + playing = false; + } + } +} + +/* + * BGM の消音切替 + * + * 戻り値は,なし. + */ +function +PauseMusic () +{ + // 切替 + if (nowPlay && playing) // 再生中の場合 + { + music.muted = true; + document.getElementById ('mute').innerHTML = 'やっぱり BGM が恋しい人用'; + + nowPlay = false; + } + else // 消音中の場合 + { + music.muted = false; + document.getElementById ('mute').innerHTML = 'BGM がうるさい人用'; + + nowPlay = true; + } +} + +// 1000 ms ごとに BGM 再生試行 +window.setInterval (function + () + { + PlayMusic (); + }, + 1000); + +// 画面クリックで BGM 再生試行 +document.addEventListener ('click', function + () + { + PlayMusic (); + }); + +// 画面タッチで BGM 再生試行 +document.addEventListener ('touchstart', function + () + { + PlayMusic (); + }); + +const body = document.getElementsByTagName ('body')[0]; // body 要素 +const cv = document.getElementById ('work'); // 作業用 Canvas +const g = cv.getContext ('2d'); // 作業用 Canvas のコンテクスト + +const list = ['magenta', 'lime', 'cyan', 'yellow', 'orange', 'pink', 'aliceblue', + 'antiquewhite', 'aqua', 'aquamarine', 'bisque', 'lightgreen', 'linen', + 'lightsalmon', 'darkorange', 'palegreen']; + // 色リスト +let nowColour = Math.floor (Math.random () * list.length); + // 前の色番号 +let nextColour = Math.floor (Math.random () * list.length); + // 次の色番号 +let [tempR, tempG, tempB] = getRGB (list[nowColour]); + // 現在の RGB 値 + +// 3000 ms ごとに次の色指定 +window.setInterval (function + () + { + nowColour = nextColour; + nextColour = Math.floor (Math.random () * list.length); + }, + 3000); + +// 20 ms ごとに,ぢょぢょに,色変更 +window.setInterval (function + () + { + let [nowR, nowG, nowB] = getRGB (list[nowColour]); + let [nextR, nextG, nextB] = getRGB (list[nextColour]); + + body.style.backgroundColor = `rgb(${tempR}, ${tempG}, ${tempB})`; + + tempR += (nextR - nowR) / 150; + tempG += (nextG - nowG) / 150; + tempB += (nextB - nowB) / 150; + }, + 20); + +/* + * カラ・コゥド c を RGB 値に変換する. + * + * 戻り値は,RGB 値排列. + */ +function +getRGB (c) +{ + g.fillStyle = c; + g.fillRect (0, 0, 1, 1); + + const img = g.getImageData (0, 0, 1, 1); + const px = img.data; + const rgb = [px[0], px[1], px[2]]; + + return rgb; +} + +function +sortChange (evt) +{ + const searchParams = new URLSearchParams (window.location.search); + + switch (evt.currentTarget.value) + { + default: + window.location.href = `./?thread=${searchParams.get ('thread')}&sort=td`; + + break; + + case 'evaluate-good': + window.location.href = `./?thread=${searchParams.get ('thread')}&sort=eg`; + + break; + + case 'time-asc': + window.location.href = `./?thread=${searchParams.get ('thread')}&sort=ta`; + + break; + + case 'evaluate-bad': + window.location.href = `./?thread=${searchParams.get ('thread')}&sort=eb`; + + break; + } +} + diff --git a/style.css b/style.css new file mode 100644 index 0000000..57f4775 --- /dev/null +++ b/style.css @@ -0,0 +1,104 @@ +body +{ + background-color: aquamarine; +} + +table +{ + margin: 24px auto 40px; +} + +td +{ + padding: 8px; +} + +table, td +{ + border: solid 1px; + background-color: white; +} + +#paint +{ + margin-bottom: 64px; +} + +#paint > div +{ + margin: 24px auto; +} + +h1, .illust +{ + text-align: center; +} + +.radio +{ + /* width: 704px; */ + /* display: inline-block; */ + vertical-align: middle; + line-height: 1.5em; + /* margin: auto; */ +} + +.button-area, .canvas-area +{ + text-align: center; +} + +.canvas-area +{ + width: 480px; + height: 480px; + max-width: 100%; + position: relative; + padding: 0; + box-sizing: content-box; +} + +.canvas-area:before +{ + content: ""; + display: block; + padding-top: 100%; +} + +.canvas-area > canvas +{ + position: absolute; + left: 0; + top: 0; + border: 1px solid; + max-width: 100%; + box-sizing: content-box; + padding: 0; + margin: 0; +} + +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); +} + +.modal-content { + background-color: #fff; + margin: 15% auto; + padding: 20px; + border: 1px solid #888; + width: 400px; + text-align: center; +} + +@media only screen and (max-width: 600px) { + .modal-content { + width: 70%; + } +} diff --git a/style.css~ b/style.css~ new file mode 100644 index 0000000..8e79ba5 --- /dev/null +++ b/style.css~ @@ -0,0 +1,79 @@ +body +{ + background-color: aquamarine; +} + +table +{ + margin: 24px auto 40px; +} + +td +{ + padding: 8px; +} + +table, td +{ + border: solid 1px; + background-color: white; +} + +#paint +{ + margin-bottom: 64px; +} + +#paint > div +{ + margin: 24px auto; +} + +h1, .illust +{ + text-align: center; +} + +.radio +{ + /* width: 704px; */ + /* display: inline-block; */ + align-items: flex-start; + vertical-align: middle; + line-height: 1.5em; + margin: auto; +} + +.button-area, .canvas-area +{ + text-align: center; +} + +.canvas-area +{ + width: 480px; + max-width: 100%; + position: relative; + padding: 0; + box-sizing: content-box; +} + +.canvas-area:before +{ + content: ""; + display: block; + padding-top: 100%; +} + +.canvas-area > canvas +{ + position: absolute; + left: 0; + top: 0; + border: 1px solid; + max-width: 100%; + box-sizing: content-box; + padding: 0; + margin: 0; +} + diff --git a/test.php b/test.php new file mode 100644 index 0000000..973d918 --- /dev/null +++ b/test.php @@ -0,0 +1,16 @@ +alert('保存しました')"; + + $name = htmlspecialchars($_POST["name"], ENT_QUOTES); + $address = htmlspecialchars($_POST["address"], ENT_QUOTES); +else: +?> +
+ + + +
+ \ No newline at end of file diff --git a/upload.php b/upload.php new file mode 100644 index 0000000..69c0cc7 --- /dev/null +++ b/upload.php @@ -0,0 +1,108 @@ + set_charset ('utf8'); + +// スレのレス数を取得し,適切なレス番を設定する. +if ($result = $mysqli -> query (" + SELECT + length + FROM + threads + WHERE + id = $thread")): + $row = $result -> fetch_assoc (); + + $id = $row['length'] + 1; + + $result -> close (); // クヱリ結果を閉ぢる. +endif; + +if ($_GET['held']): + mb_language ('Japanese'); + mb_internal_encoding ('UTF-8'); + mb_send_mail ('matuda.miteruzo@gmail.com', 'キケッツ掲示板の画像確認しろ!', '何か,保留中なうみ.', '謎'); +endif; + +// 投稿情報に従ひ,ディタ・ベィスを更新 +$sql = "INSERT INTO + responses (thread_id, response_id, name, pass, message, date, image, held, + deleted) + VALUES + ($thread, $id, '" . (($_GET['name'] == '') ? '名なしさん' : $_GET['name']) . "', + " . (($_GET['pass'] == '') ? "NULL" : "'{$_GET['pass']}'") . ", '', '" . date ('Y-m-d H:i:s') . "', '$file', {$_GET['held']}, 0)"; +$mysqli -> query ($sql); +$mysqli -> query (" + UPDATE + threads + SET + length = $id, latest = '" . date ('Y-m-d H:i:s') . "' WHERE id = $thread"); + +$mysqli -> close (); // ディタ・べィスを閉ぢる. + +unlink ('draft/' . $_COOKIE['backup']); +setcookie ('backup', '', 0); + + +/* + * フェッチ内容から JSON パラメタを取得する. + * + * 戻り値は,取得した JSON パラメタ. + */ +function +getParamJSON () +{ + $buff = file_get_contents ('php://input'); + $json = json_decode ($buff, true); + + return ($json); +} + + +/* + * クヱリ送信者に,結果を返す. + * $status:結果フラグ,$data:返信ディタ + * + * 戻り値は,なし. + */ +function +sendResult ($status, $data) +{ + header ('Access-Control-Allow-Origin: *'); + header ('Access-Control-Allow-Headers: *'); + + echo json_encode(["status" => $status, + "result" => $data]); +} +