Initial import.
This commit is contained in:
commit
0c11a98275
9 changed files with 1728 additions and 0 deletions
public
231
public/index.php
Normal file
231
public/index.php
Normal file
|
@ -0,0 +1,231 @@
|
|||
<?php
|
||||
define('FTM_ROOT', __DIR__ . '/..');
|
||||
define('FTM_PATH_PUB', FTM_ROOT . '/public');
|
||||
define('FTM_PATH_PRV', FTM_ROOT . '/private');
|
||||
|
||||
define('FTM_LEGACY_SOUND_TYPE', [
|
||||
'opus' => 'audio/ogg',
|
||||
'ogg' => 'audio/ogg',
|
||||
'mp3' => 'audio/mpeg',
|
||||
'caf' => 'audio/x-caf',
|
||||
'wav' => 'audio/wav',
|
||||
]);
|
||||
|
||||
header('X-Powered-By: Futami');
|
||||
header('Cache-Control: max-age=86400, must-revalidate');
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
|
||||
$reqMethod = (string)filter_input(INPUT_SERVER, 'REQUEST_METHOD');
|
||||
if($reqMethod === 'OPTIONS') {
|
||||
http_response_code(204);
|
||||
header('Access-Control-Allow-Methods: OPTIONS, GET');
|
||||
header('Access-Control-Allow-Headers: Cache-Control');
|
||||
return;
|
||||
}
|
||||
|
||||
if($reqMethod !== 'HEAD' && $reqMethod !== 'GET') {
|
||||
http_response_code(405);
|
||||
return;
|
||||
}
|
||||
|
||||
function json_out($data): void {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
echo json_encode($data);
|
||||
exit;
|
||||
}
|
||||
|
||||
function match_etag($eTag): void {
|
||||
if(filter_input(INPUT_SERVER, 'HTTP_IF_NONE_MATCH') === $eTag) {
|
||||
http_response_code(304);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
function gen_etag(string $user, string $data): string {
|
||||
return sprintf('W/"%s-%s"', hash('sha1', $data), $user);
|
||||
}
|
||||
function gen_etag_file(string $user, string $path): string {
|
||||
return gen_etag($user, hash_file('sha1', $path));
|
||||
}
|
||||
function etag(string $etag): void {
|
||||
match_etag($etag);
|
||||
header('ETag: ' . $etag);
|
||||
}
|
||||
function etag_data(string $user, string $data): void {
|
||||
etag(gen_etag($user, $data));
|
||||
}
|
||||
function etag_file(string $user, string $path): void {
|
||||
etag(gen_etag_file($user, $path));
|
||||
}
|
||||
|
||||
$reqPath = '/' . trim(parse_url((string)filter_input(INPUT_SERVER, 'REQUEST_URI'), PHP_URL_PATH), '/');
|
||||
|
||||
if($reqPath === '/common.json') {
|
||||
$commonPath = FTM_PATH_PRV . '/common.ini';
|
||||
etag_file('common', $commonPath);
|
||||
|
||||
$common = parse_ini_file($commonPath, false, INI_SCANNER_TYPED);
|
||||
|
||||
$colours = $common['colours'];
|
||||
$common['colours'] = [];
|
||||
foreach($colours as $n => $c)
|
||||
$common['colours'][] = compact('n', 'c');
|
||||
|
||||
json_out($common);
|
||||
}
|
||||
|
||||
if($reqPath === '/sounds.json') {
|
||||
$sndLibData = file_get_contents(FTM_PATH_PRV . '/sound-library.ini');
|
||||
$sndPackData = file_get_contents(FTM_PATH_PRV . '/sound-packs.ini');
|
||||
|
||||
etag_data('sounds', $sndLibData . $sndPackData);
|
||||
|
||||
$sndLib = parse_ini_string($sndLibData, true, INI_SCANNER_TYPED);
|
||||
$sndPacks = parse_ini_string($sndPackData, true, INI_SCANNER_TYPED);
|
||||
|
||||
$library = [];
|
||||
foreach($sndLib as $name => $info) {
|
||||
$sources = [];
|
||||
foreach($info['sources'] as $type => $path) {
|
||||
$sources[] = [
|
||||
'format' => FTM_LEGACY_SOUND_TYPE[$type],
|
||||
'url' => $path,
|
||||
];
|
||||
}
|
||||
|
||||
$library[] = [
|
||||
'id' => $name,
|
||||
'name' => $info['title'],
|
||||
'sources' => $sources,
|
||||
];
|
||||
}
|
||||
|
||||
$packs = [];
|
||||
foreach($sndPacks as $name => $info) {
|
||||
$packs[] = [
|
||||
'id' => $name,
|
||||
'name' => $info['title'],
|
||||
'events' => $info['events'],
|
||||
];
|
||||
}
|
||||
|
||||
json_out(compact('library', 'packs'));
|
||||
}
|
||||
|
||||
if($reqPath === '/soundtriggers.json') {
|
||||
$textTriggersPath = FTM_PATH_PRV . '/text-triggers.ini';
|
||||
etag_file('soundtriggers', $textTriggersPath);
|
||||
|
||||
$textTriggers = parse_ini_file($textTriggersPath, true, INI_SCANNER_TYPED);
|
||||
$sndLib = parse_ini_file(FTM_PATH_PRV . '/sound-library.ini', true, INI_SCANNER_TYPED);
|
||||
$soundTrigs = [];
|
||||
|
||||
foreach($textTriggers as $triggerInfo) {
|
||||
if($triggerInfo['type'] !== 'sound' && $triggerInfo['type'] !== 'alias')
|
||||
continue;
|
||||
|
||||
$soundTrig = [];
|
||||
|
||||
if($triggerInfo['type'] === 'sound') {
|
||||
$sounds = [];
|
||||
|
||||
foreach($triggerInfo['sounds'] as $soundName) {
|
||||
if(!isset($sndLib[$soundName]))
|
||||
continue;
|
||||
|
||||
$sound = [];
|
||||
$libSound = $sndLib[$soundName];
|
||||
|
||||
if(isset($libSound['sources']['mp3']))
|
||||
$sound['m'] = $libSound['sources']['mp3'];
|
||||
if(isset($libSound['sources']['ogg']))
|
||||
$sound['o'] = $libSound['sources']['ogg'];
|
||||
if(isset($libSound['sources']['opus']))
|
||||
$sound['o'] = $libSound['sources']['opus'];
|
||||
if(isset($libSound['sources']['caf']))
|
||||
$sound['c'] = $libSound['sources']['caf'];
|
||||
|
||||
if(empty($sound))
|
||||
continue;
|
||||
|
||||
if(isset($triggerInfo['volume'])) {
|
||||
$sound['v'] = ceil(($triggerInfo['volume'] - 1) * 100);
|
||||
$sound['v2'] = $triggerInfo['volume'];
|
||||
}
|
||||
|
||||
if(isset($triggerInfo['rate']))
|
||||
$sound['r'] = $triggerInfo['rate'];
|
||||
|
||||
$sounds[] = $sound;
|
||||
}
|
||||
|
||||
$soundTrig['s'] = $sounds;
|
||||
} elseif($triggerInfo['type'] === 'alias') {
|
||||
$soundTrig['f'] = $triggerInfo['for'];
|
||||
}
|
||||
|
||||
$matches = [];
|
||||
foreach($triggerInfo['match'] as $match) {
|
||||
$filters = [];
|
||||
$value = null;
|
||||
$notValue = null;
|
||||
|
||||
$parts = explode(';', $match);
|
||||
foreach($parts as $part) {
|
||||
$part = explode(':', trim($part));
|
||||
|
||||
switch($part[0]) {
|
||||
case 'lc':
|
||||
$filters[] = 'lower';
|
||||
break;
|
||||
case 'is':
|
||||
$filters[] = 'exact';
|
||||
$value = trim($part[1]);
|
||||
break;
|
||||
case 'starts':
|
||||
$filters[] = 'starts';
|
||||
$value = trim($part[1]);
|
||||
break;
|
||||
case 'has':
|
||||
$filters[] = 'contains';
|
||||
$value = trim($part[1]);
|
||||
break;
|
||||
case 'hasnot':
|
||||
$notValue = trim($part[1]);
|
||||
break;
|
||||
default:
|
||||
$filters[] = 'missing:' . $part[0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$matchNew = ['t' => implode(':', $filters)];
|
||||
if($value !== null)
|
||||
$matchNew['m'] = $value;
|
||||
if($notValue !== null)
|
||||
$matchNew['n'] = $notValue;
|
||||
|
||||
$matches[] = $matchNew;
|
||||
}
|
||||
$soundTrig['t'] = $matches;
|
||||
|
||||
$soundTrigs[] = $soundTrig;
|
||||
}
|
||||
|
||||
json_out([
|
||||
'meta' => [
|
||||
'baseUrl' => '',
|
||||
],
|
||||
'triggers' => $soundTrigs,
|
||||
]);
|
||||
}
|
||||
|
||||
if($reqPath === '/' || $reqPath === '/index.html' || $reqPath === '/index.php') {
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
echo <<<HTML
|
||||
<!doctype html>
|
||||
Data and settings shared between both chat clients is stored on this subdomain.
|
||||
HTML;
|
||||
return;
|
||||
}
|
||||
|
||||
http_response_code(404);
|
428
public/kaomoji.txt
Normal file
428
public/kaomoji.txt
Normal file
|
@ -0,0 +1,428 @@
|
|||
¢‿¢
|
||||
©¿© o
|
||||
ª{•̃̾_•̃̾}ª
|
||||
¬_¬
|
||||
¯\(º_o)/¯
|
||||
¯\(º o)/¯
|
||||
¯\_(⊙︿⊙)_/¯
|
||||
¯\_(ツ)_/¯
|
||||
°ω°
|
||||
°Д°
|
||||
°‿‿°
|
||||
°ﺑ°
|
||||
´ ▽ ` )ノ
|
||||
¿ⓧ_ⓧﮌ
|
||||
Ò,ó
|
||||
ó‿ó
|
||||
ô⌐ô
|
||||
ôヮô
|
||||
ŎםŎ
|
||||
ŏﺡó
|
||||
ʕ•̫͡•ʔ
|
||||
ʕ•ᴥ•ʔ
|
||||
ʘ‿ʘ
|
||||
˚•_•˚
|
||||
˚⌇˚
|
||||
˚▱˚
|
||||
̿ ̿̿'̿'\̵͇̿̿\=(•̪●)=/̵͇̿̿/'̿̿ ̿ ̿ ̿
|
||||
͡° ͜ʖ ͡°
|
||||
Σ ◕ ◡ ◕
|
||||
Σ (゚Д゚;)
|
||||
Σ(゚Д゚;≡;゚д゚)
|
||||
Σ(゚Д゚ )
|
||||
Σ(||゚Д゚)
|
||||
Φ,Φ
|
||||
δﺡό
|
||||
σ_σ
|
||||
д_д
|
||||
ф_ф
|
||||
щ(゚Д゚щ)
|
||||
щ(ಠ益ಠщ)
|
||||
щ(ಥДಥщ)
|
||||
Ծ_Ծ
|
||||
أ‿أ
|
||||
ب_ب
|
||||
ح˚௰˚づ
|
||||
ح˚ᆺ˚ว
|
||||
حᇂﮌᇂ)
|
||||
٩๏̯͡๏۶
|
||||
٩๏̯͡๏)۶
|
||||
٩◔̯◔۶
|
||||
٩(×̯×)۶
|
||||
٩(̾●̮̮̃̾•̃̾)۶
|
||||
٩(͡๏̯͡๏)۶
|
||||
٩(͡๏̯ ͡๏)۶
|
||||
٩(ಥ_ಥ)۶
|
||||
٩(•̮̮̃•̃)۶
|
||||
٩(●̮̮̃•̃)۶
|
||||
٩(●̮̮̃●̃)۶
|
||||
٩(。͡•‿•。)۶
|
||||
٩(-̮̮̃•̃)۶
|
||||
٩(-̮̮̃-̃)۶
|
||||
۞_۞
|
||||
۞_۟۞
|
||||
۹ↁﮌↁ
|
||||
۹⌤_⌤۹
|
||||
॓_॔
|
||||
१✌◡✌५
|
||||
१|˚–˚|५
|
||||
ਉ_ਉ
|
||||
ଘ_ଘ
|
||||
இ_இ
|
||||
ఠ_ఠ
|
||||
రృర
|
||||
ಠ¿ಠi
|
||||
ಠ‿ಠ
|
||||
ಠ⌣ಠ
|
||||
ಠ╭╮ಠ
|
||||
ಠ▃ಠ
|
||||
ಠ◡ಠ
|
||||
ಠ益ಠ
|
||||
ಠ益ಠ
|
||||
ಠ︵ಠ凸
|
||||
ಠ , ಥ
|
||||
ಠ.ಠ
|
||||
ಠoಠ
|
||||
ಠ_ృ
|
||||
ಠ_ಠ
|
||||
ಠ_๏
|
||||
ಠ~ಠ
|
||||
ಡ_ಡ
|
||||
ತಎತ
|
||||
ತ_ತ
|
||||
ಥдಥ
|
||||
ಥ‿ಥ
|
||||
ಥ⌣ಥ
|
||||
ಥ◡ಥ
|
||||
ಥ﹏ಥ
|
||||
ಥ_ಥ
|
||||
ಭ_ಭ
|
||||
ರ_ರ
|
||||
ಸ , ໖
|
||||
ಸ_ಸ
|
||||
ക_ക
|
||||
อ้_อ้
|
||||
อ_อ
|
||||
โ๏௰๏ใ ื
|
||||
๏̯͡๏﴿
|
||||
๏̯͡๏
|
||||
๏̯͡๏﴿
|
||||
๏[-ิิ_•ิ]๏
|
||||
๏_๏
|
||||
໖_໖
|
||||
༺‿༻
|
||||
ლ(´ڡ`ლ)
|
||||
ლ(́◉◞౪◟◉‵ლ)
|
||||
ლ(ಠ益ಠლ)
|
||||
ლ(╹◡╹ლ)
|
||||
ლ(◉◞౪◟◉‵ლ)
|
||||
ლ,ᔑ•ﺪ͟͠•ᔐ.ლ
|
||||
ᄽὁȍ ̪ őὀᄿ
|
||||
ᕕ( ᐛ )ᕗ
|
||||
ᕙ(⇀‸↼‶)ᕗ
|
||||
ᕦ(ò_óˇ)ᕤ
|
||||
ᶘ ᵒᴥᵒᶅ
|
||||
‘︿’
|
||||
•▱•
|
||||
•✞_✞•
|
||||
•ﺑ•
|
||||
•(⌚_⌚)•
|
||||
•_•)
|
||||
‷̗ↂ凸ↂ‴̖
|
||||
‹•.•›
|
||||
‹› ‹(•¿•)› ‹›
|
||||
‹(ᵒᴥᵒ)›
|
||||
‹(•¿•)›
|
||||
ↁ_ↁ
|
||||
⇎_⇎
|
||||
∩(︶▽︶)∩
|
||||
∩( ・ω・)∩
|
||||
≖‿≖
|
||||
≧ヮ≦
|
||||
⊂•⊃_⊂•⊃
|
||||
⊂⌒~⊃。Д。)⊃
|
||||
⊂(◉‿◉)つ
|
||||
⊂(゚Д゚,,⊂⌒`つ
|
||||
⊙ω⊙
|
||||
⊙▂⊙
|
||||
⊙▃⊙
|
||||
⊙△⊙
|
||||
⊙︿⊙
|
||||
⊙﹏⊙
|
||||
⊙0⊙
|
||||
⊛ठ̯⊛
|
||||
⋋ō_ō`
|
||||
━━━ヽ(ヽ(゚ヽ(゚∀ヽ(゚∀゚ヽ(゚∀゚)ノ゚∀゚)ノ∀゚)ノ゚)ノ)ノ━━━
|
||||
┌∩┐(◕_◕)┌∩┐
|
||||
┌( ಠ_ಠ)┘
|
||||
┌( ಥ_ಥ)┘
|
||||
╚(•⌂•)╝
|
||||
╭╮╭╮☜{•̃̾_•̃̾}☞╭╮╭╮
|
||||
╭✬⌢✬╮
|
||||
╮(─▽─)╭
|
||||
╯‵Д′)╯彡┻━┻
|
||||
╰☆╮
|
||||
□_□
|
||||
►_◄
|
||||
◃┆◉◡◉┆▷
|
||||
◉△◉
|
||||
◉︵◉
|
||||
◉_◉
|
||||
○_○
|
||||
●¿●\ ~
|
||||
●_●
|
||||
◔̯◔
|
||||
◔ᴗ◔
|
||||
◔ ⌣ ◔
|
||||
◔_◔
|
||||
◕ω◕
|
||||
◕‿◕
|
||||
◕◡◕
|
||||
◕ ◡ ◕
|
||||
◖♪_♪|◗
|
||||
◖|◔◡◉|◗
|
||||
◘_◘
|
||||
◙‿◙
|
||||
◜㍕◝
|
||||
◪_◪
|
||||
◮_◮
|
||||
☁ ☝ˆ~ˆ☂
|
||||
☆¸☆
|
||||
☉‿⊙
|
||||
☉_☉
|
||||
☐_☐
|
||||
☜ق❂Ⴢ❂ق☞
|
||||
☜(⌒▽⌒)☞
|
||||
☜(゚ヮ゚☜)
|
||||
☜-(ΘLΘ)-☞
|
||||
☝☞✌
|
||||
☮▁▂▃▄☾ ♛ ◡ ♛ ☽▄▃▂▁☮
|
||||
☹_☹
|
||||
☻_☻
|
||||
☼.☼
|
||||
☾˙❀‿❀˙☽
|
||||
♀ح♀ヾ
|
||||
♥‿♥
|
||||
♥╣[-_-]╠♥
|
||||
♥╭╮♥
|
||||
♥◡♥
|
||||
✌♫♪˙❤‿❤˙♫♪✌
|
||||
✌.ʕʘ‿ʘʔ.✌
|
||||
✌.|•͡˘‿•͡˘|.✌
|
||||
✖‿✖
|
||||
✖_✖
|
||||
❐‿❑
|
||||
⨀_⨀
|
||||
⨀_Ꙩ
|
||||
⨂_⨂
|
||||
〆(・∀・@)
|
||||
《〠_〠》
|
||||
【•】_【•】
|
||||
〠_〠
|
||||
〴⋋_⋌〵
|
||||
の<EFBFBD> <20>の
|
||||
ニガー? ━━━━━━(゚∀゚)━━━━━━ ニガー?
|
||||
ペ㍕˚\
|
||||
ヽ(´ー` )ノ
|
||||
ヽ(๏∀๏ )ノ
|
||||
ヽ(`Д´)ノ
|
||||
ヽ(o`皿′o)ノ
|
||||
ㅎ_ㅎ
|
||||
ヽ(`Д´)ノ
|
||||
乂◜◬◝乂
|
||||
凸ಠ益ಠ)凸
|
||||
句_句
|
||||
Ꙩ⌵Ꙩ
|
||||
Ꙩ_Ꙩ
|
||||
ꙩ_ꙩ
|
||||
Ꙫ_Ꙫ
|
||||
ꙫ_ꙫ
|
||||
ꙮ_ꙮ
|
||||
흫_흫
|
||||
句_句
|
||||
﴾͡๏̯͡๏﴿
|
||||
¯\(ºдಠ)/¯
|
||||
(·×·)
|
||||
(⌒Д⌒)
|
||||
(╹ェ╹)
|
||||
(♯・∀・)⊃
|
||||
( ´∀`)☆
|
||||
( ´∀`)
|
||||
(゜Д゜)
|
||||
(・∀・)
|
||||
(・A・)
|
||||
(゚∀゚)
|
||||
( ̄へ ̄)
|
||||
( ´☣///_ゝ///☣`)
|
||||
( つ Д `)
|
||||
_☆( ´_⊃`)☆_
|
||||
。◕‿‿◕。
|
||||
。◕ ‿ ◕。
|
||||
!⑈ˆ~ˆ!⑈
|
||||
!(`・ω・。)
|
||||
(¬‿¬)
|
||||
(¬▂¬)
|
||||
(¬_¬)
|
||||
(°ℇ °)
|
||||
(°∀°)
|
||||
(´ω`)
|
||||
(´◉◞౪◟◉)
|
||||
(´ヘ`;)
|
||||
(´・ω・`)
|
||||
(´ー`)
|
||||
(ʘ‿ʘ)
|
||||
(ʘ_ʘ)
|
||||
(˚இ˚)
|
||||
(͡๏̯͡๏)
|
||||
(ΘεΘ;)
|
||||
(ι´Д`)ノ
|
||||
(Ծ‸ Ծ)
|
||||
(॓_॔)
|
||||
(० ्०)
|
||||
(ு८ு_ .:)
|
||||
(ಠ‾ಠ)
|
||||
(ಠ‿ʘ)
|
||||
(ಠ‿ಠ)
|
||||
(ಠ⌣ಠ)
|
||||
(ಠ益ಠ ╬)
|
||||
(ಠ益ಠ)
|
||||
(ಠ_ృ)
|
||||
(ಠ_ಠ)
|
||||
(ಥ﹏ಥ)
|
||||
(ಥ_ಥ)
|
||||
(๏̯͡๏ )
|
||||
(ღ˘⌣˘ღ) ♫・*:.。. .。.:*・
|
||||
(ღ˘⌣˘ღ)
|
||||
(ᵔᴥᵔ)
|
||||
(•ω•)
|
||||
(•‿•)
|
||||
(•⊙ω⊙•)
|
||||
(• ε •)
|
||||
(∩▂∩)
|
||||
(∩︵∩)
|
||||
(≧ω≦)
|
||||
(∪ ◡ ∪)
|
||||
(≧ω≦)
|
||||
(≧◡≦)
|
||||
(≧ロ≦)
|
||||
(⊙ヮ⊙)
|
||||
(⊙_◎)
|
||||
(⋋▂⋌)
|
||||
(⌐■_■)
|
||||
(─‿‿─)
|
||||
(┛◉Д◉)┛┻━┻
|
||||
(╬ಠ益ಠ)
|
||||
(╥_╥)
|
||||
(╬◣д◢)
|
||||
(╬ ಠ益ಠ)
|
||||
(╯°□°)╯︵ ┻━┻
|
||||
(╯ಊ╰)
|
||||
(╯◕_◕)╯
|
||||
(╯︵╰,)
|
||||
(╯3╰)
|
||||
(╯_╰)
|
||||
(╹◡╹)凸
|
||||
(▰˘◡˘▰)
|
||||
(●´ω`●)
|
||||
(●´∀`●)
|
||||
(◑‿◐)
|
||||
(◑◡◑)
|
||||
(◕‿◕✿)
|
||||
(◕‿◕)
|
||||
(◕‿-)
|
||||
(◕︵◕)
|
||||
(◕ ^ ◕)
|
||||
(◕_◕)
|
||||
(◜௰◝)
|
||||
(◡‿◡✿)
|
||||
(◣_◢)
|
||||
(☞゚∀゚)☞
|
||||
(☞゚ヮ゚)☞
|
||||
(☞゚ ∀゚ )☞
|
||||
(☼◡☼)
|
||||
(☼_☼)
|
||||
(✌゚∀゚)☞
|
||||
(✖╭╮✖)
|
||||
(✪㉨✪)
|
||||
(✿◠‿◠)
|
||||
(✿ ♥‿♥)
|
||||
( ・∀・)
|
||||
( ・ัω・ั)?
|
||||
( ゚∀゚)o彡゜えーりんえーりん!!
|
||||
(。・_・。)
|
||||
(つд`)
|
||||
(づ。◕‿‿◕。)づ
|
||||
(ノಠ益ಠ)ノ彡┻━┻
|
||||
(ノ ◑‿◑)ノ
|
||||
(ノ_・。)
|
||||
(・∀・ )
|
||||
(屮゚Д゚)屮
|
||||
(︶ω︶)
|
||||
(︶︹︺)
|
||||
(ﺧ益ﺨ)
|
||||
(;一_一)
|
||||
(`・ω・´)”
|
||||
(。◕‿‿◕。)
|
||||
(。◕‿◕。)
|
||||
(。◕ ‿ ◕。)
|
||||
(。♥‿♥。)
|
||||
(。・ω..・)っ
|
||||
(・ェ-)
|
||||
(ノ◕ヮ◕)ノ*:・゚✧
|
||||
(゚Д゚)
|
||||
(゚Д゚)y─┛~~
|
||||
(゚∀゚)
|
||||
(゚ヮ゚)
|
||||
( ̄□ ̄)
|
||||
( ̄。 ̄)
|
||||
( ̄ー ̄)
|
||||
( ̄(エ) ̄)
|
||||
( °٢° )
|
||||
( ´_ゝ`)
|
||||
( ͡° ͜ʖ ͡°)
|
||||
( ͡~ ͜ʖ ͡°)
|
||||
( ಠ◡ಠ )
|
||||
( •_•)>⌐■-■
|
||||
( ゚,_ゝ゚)
|
||||
( ・ิз・ิ)
|
||||
( ゚д゚)、
|
||||
( ^▽^)σ)~O~)
|
||||
((((゜д゜;))))
|
||||
(*´д`*)
|
||||
(*..Д`)
|
||||
(*..д`*)
|
||||
(*~▽~)
|
||||
(-’๏_๏’-)
|
||||
(-_- )ノ
|
||||
(/◔ ◡ ◔)/
|
||||
(///_ಥ)
|
||||
(;´Д`)
|
||||
(=ω=;)
|
||||
(=゜ω゜)
|
||||
(>'o')> ♥ <('o'<)
|
||||
(n˘v˘•)¬
|
||||
(o´ω`o)
|
||||
(V)(°,,°)(V)
|
||||
(\/) (°,,°) (\/)
|
||||
(^▽^)
|
||||
(`・ω・´)
|
||||
(~ ̄▽ ̄)~
|
||||
/╲/\╭ºoꍘoº╮/\╱\
|
||||
<【☯】‿【☯】>
|
||||
= (゚д゚)ウ
|
||||
@_@
|
||||
d(*⌒▽⌒*)b
|
||||
o(≧∀≦)o
|
||||
o(≧o≦)o
|
||||
q(❂‿❂)p
|
||||
y=ー( ゚д゚)・∵.
|
||||
\˚ㄥ˚\
|
||||
\ᇂ_ᇂ\
|
||||
\(ಠ ὡ ಠ )/
|
||||
\(◕ ◡ ◕\)
|
||||
^̮^
|
||||
^ㅂ^
|
||||
_(͡๏̯͡๏)_
|
||||
{´◕ ◡ ◕`}
|
||||
{ಠ_ಠ}__,,|,
|
||||
{◕ ◡ ◕}
|
Loading…
Add table
Add a link
Reference in a new issue