平衡点


2008/10/02

_ ~/fonts.conf

日英混ざっている場合の表示で, 日本語と英語で別のフォントが表示されるのか, 高さが揃わず気持ち悪かったので, 力技で強制的に日本語表示, みたいな.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- disable bitmap -->
<match target="font">
  <edit mode="assign" name="embeddedbitmap">
    <bool>false</bool>
  </edit>
</match>
<!-- font declaration -->
<!-- serif,normal -->
<match target="pattern">
  <test name="family" compare="eq">
    <string>serif</string>
  </test>
  <test name="weight" compare="less_eq">
    <const>medium</const>
  </test>
  <edit name="family" mode="prepend">
    <string>IPAPMincho</string>
  </edit>
</match>
<!-- serif,blod -->
<match target="pattern">
  <test name="family" compare="eq">
    <string>serif</string>
  </test>
  <test name="weight" compare="more">
    <const>medium</const>
  </test>
  <edit name="family" mode="prepend">
    <string>NfMotoyaCedar</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>serif</string>
  </test>
  <test name="lang"><string>en</string></test>
  <edit name="lang" mode="prepend"><string>ja</string></edit>
</match>
<!-- sans-serif,normal -->
<match target="pattern">
  <test name="family" compare="eq">
    <string>sans-serif</string>
  </test>
  <test name="weight" compare="less_eq">
    <const>medium</const>
  </test>
  <edit name="family" mode="prepend">
    <string>IPAPGothic</string>
  </edit>
</match>
<!-- sans-serif,bold -->
<match target="pattern">
  <test name="family" compare="eq">
    <string>sans-serif</string>
  </test>
  <test name="weight" compare="more">
    <const>medium</const>
  </test>
  <edit name="family" mode="assign">
    <string>NfMotoyaCedar</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>sans-serif</string>
  </test>
  <test name="lang"><string>en</string></test>
  <edit name="lang" mode="prepend"><string>ja</string></edit>
</match>
<!-- monospace -->
<match target="pattern">
  <test name="family" compare="eq">
    <string>monospace</string>
  </test>
  <edit name="family" mode="prepend">
  <string>September_M_Mono</string>
  </edit>
</match>
<!-- monospace using lang=en, ja -->
<match target="pattern">
  <test name="family">
    <string>monospace</string>
  </test>
  <test name="lang"><string>en</string></test>
  <edit name="lang" mode="prepend"><string>ja</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family">
    <string>times</string>
  </test>
  <edit name="family" mode="assign">
    <string>Nimbus Roman No9 L</string>
  </edit>
</match>
</fontconfig>

だからナニって訳でもないですが, とりあえず快適になったので良しとする.


2008/10/06

_ 20XX 問題

幾つかあったはず...と, ググる(謎)と

西暦 2009 年問題(問題?)は知らなかった. G.W. が二つあるなんて,なんてすばらしいwww

_ CVS, Subversion と git

個人的には git を使いたいけれども, 開発グループのリポジトリが CVS だったり Subversion だったりすることは良くあること(?)だと思います.

そんな時に便利なのが git-svn と git-cvs です.

git の初期設定

これは多分, 単に git を使う場合にも必要になる作業かと.

$ git config --global user.name "Your Name"
$ git config --global user.email "Your mail address"

あとは好みの問題?

$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto

設定は ~/.gitconfig に書き込まれる

git-svn の場合

作業コピーの取得(checkout)

$ git-svn clone [subversion repositry] [module]

...編集...

リポジトリの変更を作業コピーに反映させる(update)

$ git svn rebase 

リポジトリ側で変更があった場合は適当にマージ. git から svn リポジトリへコミット

$ git svn dcommit

...続く?...


2008/10/07

_ VMware Workstation を 6.0 -> 6.5 へ upgrade

リリースされていたので, upgrade してみた.

install とか.

  • 今迄の tar.gz での配布じゃなくて, .bundle という拡張子
    • 中身は bash スクリプト(+ 圧縮ファイル. tar.gz?)

事前に既存の vmware を uninstall した後に, download してきた bundle を実行する.

$ sudo -s
# vmware-uninstall.pl
# bash VMware-Workstation-6.5.0-118166.i386.bundle 

グラフィカルな install が起動した. Eclipse は使わないので, 指定せず. 見ていたら vmware player も install された. 必要なのかな?

起動してみた.

  • 既存の設定が load されない/再び設定しなきゃいけないのは面倒だなぁ.
  • vmware-config.pl が無い.
    • ネットワークの設定が GUI からできるようになった.
    • Host の linux で kernel 再構築したら, どうするんだろう...マニュアル読まなきゃだめだなぁ...
  • メモリ使用が変なのは相変わらず.
    • Host 側で swap 使いまくる. disable page trimming とか試しても駄目だな

噂の Unity はまだ試してないけれど, どうなんだろう.

はてさて.


2008/10/17

_ XFce4.4

あれ? Dual Head できるようになってるな? いつからだろう.

_ gitで今いるブランチを表示

zsh で今作業している branch を表示させる, というのを試してみた. これは便利だ.

# get the name of the branch we are on
git_prompt_info() {
 ( [ -d .git ] && ref=$(git-symbolic-ref HEAD 2> /dev/null)) || return
 echo "git:${ref#refs/heads/}|"
}
...
RPROMPT=$'%{$fg_bold[red]%}$(git_prompt_info)%{$fg_bold[white]%}%B%(5~,%-2~/.../%1~,%~)%b'

早く CVS を捨てたい, とか切に願う.

_ skype2onlenny

とりあえず install

# apt-get install libasound2 libc6 libgcc1 libqt4-core  \
libqt4-gui libsigc++-2.0-0c2a libstdc++6 libx11-6
# http://www.skype.com/download/skype/linux/choose/

そしてここで WebCam を持っていないことに気がついた.

_ clmemo->はてなダイアリへ

Changelog を適当にパースして, はてなダイアリの文法に入れたら良いんだよね, とか思ったり.

こういうのは, やっぱ Ruby だよね, とか言っちゃったりして.

_ clmemo使い始め.

いままではメモを howm で書いてそれを subversion で管理していた. だけれども, 空になったファイルを自動で削除するように emacs に設定していたので,svn update すると, 削除した筈の空のファイルが復活してしまった.

コミットを真面目にやれば良かったのかもしれないけれど, 今更な気がするし「ポケット一つの原則」に反するので, ChangeLog memo に戻ってみた.

ちなみに Debian パッケージ化してみようかと思ったけれど, 時間が無いので挫折. 微妙に悔しい.


2008/10/18

_ mlterm+screen+emacsで256色

自分でやった事がうろ覚えだったので, メモ.

  • mlterm: patch を当てて build.
  • screen: package で桶. termcap を取得して, 色情報を書き変え.
  • emacs: term/xterm を読み込むように .emacs を修正

とはいえ, ちゃんとメモ書かなきゃなぁ...


2008/10/22

_ clmemoをはてなダイアリにポスト

でっちあげた.

(defun clmemo-htnd-submit()
(interactive)
  "cl2hatena.rb を呼ぶ"
(save-buffer)
(set-buffer (get-buffer-create "*htnd-submit-log*"))
(erase-buffer)
(display-buffer "*htnd-submit-log*")
(progn
  (call-process "cl2hatena.rb" nil "*htnd-submit-log*")))
(add-hook 'clmemo-mode-hook
'(lambda()
(define-key clmemo-mode-map "\C-c\C-c" 'clmemo-htnd-submit)))

バッファを表示する時間を指定できなかったかな? とか思うわけですが. 調べる余裕は無いのですよ. うー

_ elscreen-mew

メモΦ(._. )

clmemo も elscreen できたら良いのに, とかなんとか.

_ cl2hatena.rb

なにをしてるんだか.

clmemo に戻ったので, ChangeLog を分割して, はてな記法に整形して日付毎に YYYY-MM-DD.txt にパースするスクリプトをやっつけで作成.

日記自体の更新は今迄通りはてダラを使っている訳ですが.

...post したら今迄の全部 post しなおしたよ Orz...

今, この日記にはそこかしこにリンク切れがありそうな気がします.教えて頂けたら幸いです.

_ schrootでオプションを渡す

schroot で "--" をつけるとchroot 内で実行するコマンドに "-"もしくは"--" で始まるオプションを渡せる. そんな訳で, /etc/cron.weekly に仕込んでいた chroot-upgradeを修正.

#!/bin/sh
# for chroot environment
CHROOT="sid"
for i in $CHROOT ; do
echo "[update chroot $i]"
schroot -q -c $i aptitude update
schroot -q -c $i aptitude update
if [ $i == "etch" ]; then
schroot -q -c $i aptitude upgrade
else
schroot -q -c $i -- aptitude safe-upgrade --assume-yes
fi
schroot -q -c $i aptitude autoclean
done

2008/10/23

_ RabbitでのPDF出力

後で調べるメモΦ(._. )

  • フォントが全部明朝体になったよ. どこで設定しておくんだろう.
  • 整形済みテキストの大きさとインデントが変な塩梅に.
    • 多分自作テーマのせい

調べる時間が無いので, とりあえず

_ 第18回関西Debian勉強会

第18回関西Debian勉強会に参加してきました.というか, CDBSについて喋ってきました.

cdn.debian.or.jp, cdn.debian.net における取り組み by 荒木さん

  • dennou サーバ群が結構上位に. なるほどー.
  • DNS ラウンドロビンと DNS Balance の話

はじめての CDBS by 自分

直前に HDD が逝ったりして, 配布資料とかプレゼン用の資料も, 毎度ながら直前に「えいやっ」と作成したモノだったのですが, それなりに楽しんで頂けたみたいです.

プレゼン資料はこちらへ->HTML Thumnaul.

あと, 飲み会の席で「フルボッコ」とか, 言われて気がつきました. 倉敷さんごめんなさい. 悪気はなかったんです.

_ やっぱ6667が

開いてないのかな? と呟いてみるテスト. それとも外に出られないのは私が悪いのかしら.

眠い...そろそろ帰ろう.

% date
2008年 10月 23日 木曜日 01:10:54 JST

歩くには寒い時期になってきたなぁ.


2008/10/24

_ s2ram の log

hibernate-ram:Warning: Tuxonice binary signature file not found.
Stopping pdnsd.
Stopping anac(h)ronistic cron: anacron.
Stopping ACPI services....
/tmp/tmp.hibernate.rptvbi: line 6: echo: write error: 無効な引数です
Loading ACPI modules....
Starting ACPI services....
Starting anac(h)ronistic cron: anacron deferred while on battery power..
Starting pdnsd.

なんだろう?

_ clmemo から howm に戻る

というか, howm で単一ファイルにすれば良いじゃん.

そんな訳で, 結局元にもどってしまった...なにしてんだか.

Orz

_ firefoxでリンク先の拡張子に応じてiconを表示する

とりあえず PDF だけ.

a[href$=".pdf"]:before { content:url("moz-icon://.PDF?size=14");

表示できる icon の一覧を取得するにはどうしたら良いのかな?


2008/10/27

_ Gmail の Atom Feed を取得してみるよ

uim-fep で hardwarestatus always にしたので, backtick を増やそうかと思い書いてみた.

#!/usr/bin/env ruby
$KCODE='u'
require 'net/https'

account = 'your account'
password = 'your password'

https = Net::HTTP.new('mail.google.com', 443)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
req = Net::HTTP::Get.new('/mail/feed/atom')
req.basic_auth(account, password)
unless state = `ifconfig|grep eth` + `ifconfig|grep ppp`
  atom = https.start{
    res = https.request(req)
    res.body
  }
  count = $1 if atom.match(/\<fullcount\>(\d*)\<\/fullcount\>/m)
else
  count = "-"
end
print  $1

と書いたは良いが, ちょっと考えモン. ネットワーク繋がってない時には途端に邪魔になりそうだし, どうすっかな.

(修正)頭悪いが, ifconfig|grep eth の結果で振ってみた. eth0, eth1, ppp0, ころころ切り変わるネットワークの接続状態ってどうやってモニタするんだろう. できるのかな?

(追記)あ, だめだコリャ. backtick は

backtick id lifespan autorefresh GmailBiff.rb

で autorefresh に 0 以外を指定するとその秒数毎に screen が一瞬反応しない. /tmp/GmailBiff-${uid}${pid}.txt あたりに吐いておいて,

backtick id 0 0 tail -f /tmp/GmailBiff-${uid}${pid}.txt

かなぁ.

(修正) uim-fep と fim-fep と書いてたので. また typo. O..|rz

_ mlterm + uim-skk の設定

ほとんどの場合 mlterm + screen 環境なのですが,偶にリモートログインした先で作業する際に skk が入っていなくてイライラするので.

$ cat ~/.mlterm/main
...
# xim
use_xim=false
xim_open_in_startup=false
input_method=uim:skk
...

uim-fep を後から起動できればそれに越した事はないんだけれどなぁ...

(追記) uim-fep を screen でフィルタとして使用する方法が本家に書いてあったYo. これで良いじゃん.

uim-fepはscreen-uimのようにscreen内でフィルタとして使うことができます。あらかじめuim-fepを起動しておく必要がなく、起動したいときにすぐ起動できるのが便利です。

GNU screen 3.9.15以降が必要です。 uim-fep-tickをパスの通ったところに置いてください。 ~/.screenrcに

backtick 0 0 0 uim-fep-tick
hardstatus alwayslastline "%0`"

と書きます。 screenのウィンドウで

$ uim-fep -s backtick

と起動します。uim-fepはscreen内の複数のウィンドウで起動できます。uim-fep-tickはscreenから起動されるため、screenの環境変数が引き継がれます。

backtickの反応がなくなったら

$ screen -X backtick 0 0 0 uim-fep-tick

と起動してください。--- </blockquote>

_ W05K での接続とか

Windows 側でのアクティベーションが必要なのは相変わらず.しかしながら, Windows 側でも既に接続ができない. 何故?

とりあえず Linux 側に戻ってみる. でもって,

$ sudo modprobe yenta_socket

きちんと認識はされている(日付とhostname は削除).

kernel: [  174.651138] 0.0: ttyS0 at I/O 0x3f8 (irq = 3) is a XScale
kernel: [  174.651312] 0.0: ttyS1 at I/O 0x400 (irq = 3) is a XScale

ppp のパラメータが変わったん?

... 再起動したら接続できた. 電波が弱かっただけなんだろうか.

_ rd2 のメモ

RD からいろんな形式への変換について, ちまちま調べている.「今更 RD?」とかいろんな所から聞こえるんだけれど, 個人的なメモとかを結構な分量 RD で書いているので...

  • RDParser でリストのネスティングはどうやってるのか?
  • 必須の apply_to_ は何か

どっかにまとまってないかな?


2008/10/28

_ git の pre-commit を Rake で書く

良い大人は「Make で良いじゃん」とか言わない.

# Rakefile
require 'rake/clean'
makefiles=`find -name Makefile`.split
`cat .gitignore`.split.each do |ign|
    makefiles.delete_if{|x| x =~/^\.\/#{ign}/} if FileTest.directory?(ign)
end

task :default => "distclean"

desc "DistClean all project"
task :distclean do
  MAKEFILES.each do |makefile|
    cd File.dirname(makefile) do
      if makefile =~/gste-dns/
        sh "make"
      else
        sh "make clean"
      end
    end
  end
end

無駄がありそうだけれど, まあ良いや. これを .git/hooks/pre-commit で呼ぶようにしておく.

#!/bin/sh
RAKE=`which rake`
if [[ ! -x $RAKE ]];
then
  echo "ERROR: rake is not found"
  exit 1
fi
echo -n "rake clean ..."
$RAKE -f 00Rakefile distclean 1>/dev/null 2>&1
echo "done"

こんなんで良いのかな?

_ CDBS Online Gallery

以前の関西 Debian 勉強会の準備中に, CDBS Online Gallery が 2006 年で更新止まってるなぁ...と twitter に呟いたら,岩松さんが更新して下さいました.

twitter の tinyurl で教えて頂いたので, てっきり本家が更新されたんだ, とか勘違いしていました. 岩松さんが独自に更新してたんですね.

遅くなりましたが, ありがとうございました(とここで呟いても駄目だと思うので, ちゃんと御会いして言わなきゃな??).

_ whizztex-mode

">" で advi の表示は大きくできたので, 当分これを使用する予定.jsarticle の時に日本語が表示されないのは, mingoth でとりあえず凌ぐ.

(setq whizzy-load-factor 0.1)
(setq whizzytex-mode-hook
      '(lambda()
         (progn
           (set-face-foreground 'whizzy-error-face "magenta")
           (set-face-foreground 'whizzy-point-face "Orange")
           )))

2008/10/29

_ ssh でのポートフォワード

やりたい事は

localhost から gwhost を経由して remotehost へ接続

です. HostKeyAlias を使用します. とりあえず フォワードする Port は 30001 + SSH の番号とします.

/etc/hosts の編集

remotehost.forward という host が localhost を指すように設定します.

127.0.0.1       localhost remotehost.forward

.ssh/config の修正

以下の情報を追加

Host remote.forward
  ForwardAgent yes
  Port [30001 + remotehost の SSH の Port 番号]
  HostKeyAlias remotehost.remotedomain

接続時

実際に接続する際には以下の通り. この例では,

localhost:30023 <-> gwhost <-> remotehost:22

となる.

$ ssh -f -N -L 30023:remotehost.forward:22 gwhost
$ ssh remotehost.forward
(接続できる)
$ scp remotehost.forward:orig.txt .
(remotehost の orig.txt を手元に scp)
$ scp test.txt remotehost.forward:
(localhost の test.txt を remotehost へ scp)

最後に

最初に

$ ssh -f -N -L 30023:remotehost.forward:22 gwhost

を実行するのが面倒なので, 以下の ruby script を使用中.

#!/usr/bin/env ruby

ssh="/usr/bin/ssh"
gateway="gatewayhost.remotedomain"
config = ENV['HOME']+"/.ssh/config"
pidfile = "/tmp/create-gw.pid"

def str2hash(str)
  @str = str
  s = @str.split(/\:/)
  h = {}
  while ! s.empty?
    h.store(s.shift, s.shift)
  end
  return h
end

def parseconf(config)
  @config = config
  conf = []
  File.open(config){|f|
    while src = f.gets("") do
      if src =~/^Host.*forward$\n/
        s = src.strip!.gsub!(/^\s\s/,"").gsub!(/\n/,":").gsub(/ /,":")
        conf.push(str2hash(s))
      end
    end
  }
  return conf
end

def create_gateway(conf, ssh, gateway)
  @conf = conf
  @ssh = ssh
  @gateway = gateway
  @conf.each do |host|
    port = host['Port']
    hostkeyalias = host['HostKeyAlias']
    system("#{@ssh}","-f","-N","-L","#{port}:#{hostkeyalias}:22","#{@gateway}")
  end
end

def get_gateway_pid(ssh=nil)
  @ssh = ssh ||= "/usr/bin/ssh"
  return pids = `pgrep -f "#{@ssh} -f -N -L"`.split(/\n/)
end

opt = ARGV[0] ||= "create"
if opt == "create" or opt == "start" or opt == "init"
  unless FileTest.exist?(pidfile)
    create_gateway(parseconf(config), ssh, gateway) 
    pid = File.open(pidfile, 'w')
    pid.puts(get_gateway_pid(ssh))
    pid.close
  end
elsif opt == "close" or opt == "exit" or opt == "stop" 
  File.read(pidfile).each do |pid|
    Process.kill(9,pid.to_i)
  end
  File.delete(pidfile)
end

_ 12:00 からミーティングなのに

起きたら 11:38. タクシー使ってしまった...


2008/10/30

_ シェルのメモ

メモΦ(._. )

_ ツクモ...

この間 HDD 買ったなぁ, とか思いつつ.

「店舗を営業したまま再建の意向」ですか.

現在の状態としては、「比較的利益率は高いものの、10月末の買掛金および手形の決済資金が不足し、追加融資を受けることもできず、資金繰りに窮することになった」と説明.---

...品物, 入ってくるんですかね.

_ zsh のプロンプト

とりあえず以下に落ち着く.

# get the name of the branch we are on
git_prompt_info() {
    ref=$(git-symbolic-ref HEAD 2> /dev/null) || return
    echo "git:${ref#refs/heads/}|"
}
# get the name of the chroot we are on
chroot_info() {
    chroot=$(cat /etc/debian_chroot 2>/dev/null) || return
    echo "${chroot}|"
}
...
RPROMPT=$'[%{$fg_bold[green]%}$(chroot_info)%{$fg_bold[red]%}$(git_prompt_info)%{$fg_bold[white]%}%B%(5~,%-2~/.../%1~,%~)%b]'
case ${UID} in
    0)
        PROMPT=$'%U%{%B$fg[magenta]%}[%n@%m:%j:%(!.#.%%)%u%B>%b '
        ;;
    *)
        PROMPT=$'%U[%n@%m:%j:%(!.#.%%)%u%B>%b '
        ;;
esac
...

lsb_release とか /etc/issue とか, 教えて下さってありがとうございました. id:Say-no さん, のがじゅんさん, たかやさん. 結局こういう風に落ちつきました.

chroot 作った時は, /etc/debian_chroot 作っとく癖を付けなきゃなぁ...


2008/10/31

_ id:msll さんが Rabbit 使ってくれたよ

というわけで.

リンク先はオレオレ証明書です. ごめんなさい.

以前公開した Rabbit のテーマ を使って下さった模様.

http://www.gfd-dennou.org/arch/uwabami/pub/rabbit/dennou-0.1.tar.gz

コードブロックが長いと大きさが変になるので, その辺りをちょっと修正したいのだけれど.

_ 今更 vimperator

今更ながら vimperator を使い始めた.

Vimperator は Firefox を vi っぽいキーバインドで操作する Add-on.導入後の設定とかをメモしておく. vi にはそれほど馴染んでいないので, そんなに硬派な使い方はしていないけれど.

導入

上記リンク先から. CVS 先端を持ってきてビルドしても良いのかもしれない

設定

vimperator を有効にすると, メニューバーやロケーションバーが消える. 復帰したいときは, とりあえず

set guioptions=mTb

とか打っておく.

設定は ~/.vimperatorrc に書く. 現状は以下

"===========================================
"基本設定
"===========================================
"タイトルの変更
set titlestring=iceweasel
"ツールバーのみ表示
set guioptions=T
"bell の変更音を鳴らさず, visualbell も無効に
set visualbell
set visualbellstyle=display:none;
"コマンド補完
set complete=l
set wildoptions=auto
"検索は google に
set defsearch=g

"j,k の移動量を 8 倍に
map j 8<C-e>
map k 8<C-y>

"エディタを指定
set editor=emacsclient

pulgin とか

vimperator の plugin は .vimperator/plugin 以下に置いておく.現状では

% ls -la .vimperator
 autoIgnoreKey.js  char-hints-mod.js

のみ.

  • autoIgnoreKey.js: Gmail でショートカットキーが使えないと悲しいので
  • char-hints-mod.js: リンクを開くときに数字じゃなくて文字で指定

あと, ステータスラインの色の設定. 「stylechanger.jsを使え」とか「最新版では source で css を読み込める」とか書いてある記事があるけれども, stylecanger.js が効かなかったので, Stylish でcss を適用している(ヘタレ).

見た目は以下

設定を開いた所(:set)

リンクを開こうとしているところ(:f)

_ howm のメニュー表示

異様に遅いと思っていたら, なんの事はない.

(setq howm-directory "~/work/")

に指定されているディレクトリ以下を再帰的に全てスキャンしているからだった.

(setq howm-directory "~/work/howm")

に変更して解決.


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲