Index: trunk/install/php/reservecomp.php =================================================================== --- trunk/install/php/reservecomp.php (リビジョン 128) +++ trunk/install/php/reservecomp.php (リビジョン 1) @@ -17,19 +17,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - ?> @@ -44,4 +29,5 @@ fetch(); -if (! $rowdata) { + $query = "select title from foltia_program where tid='$tid'"; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { $title = "(未登録)"; }else{ + $rowdata = pg_fetch_row($rs, 0); $title = htmlspecialchars($rowdata[0]); } @@ -86,5 +71,5 @@
-「」を番組予約モードで予約しました。
+「」を番組予約モードで予約しました。

予約スケジュール
@@ -129,10 +114,11 @@ } $rs = m_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $rs->fetch(); -if (! $rowdata) { + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { echo("放映予定はいまのところありません
"); } else{ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?> @@ -153,11 +139,14 @@ \n"); + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); + for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ echo("\n"); } echo("\n"); - } while ($rowdata = $rs->fetch()); + } }//end if ?> @@ -172,31 +161,39 @@ //既存が予約あって、新着が全局予約だったら if ($station ==0){ + $query = " +SELECT + * +FROM foltia_tvrecord +WHERE tid = '$tid' +"; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + if ($maxrows > 0){ //既存局を消す $query = "DELETE FROM foltia_tvrecord -WHERE tid = ? -"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); +WHERE tid = '$tid' +"; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + } }//endif $query = " SELECT -count(*) + * FROM foltia_tvrecord -WHERE tid = ? AND stationid = ? -"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$station)); - $maxrows = $rs->fetchColumn(0); +WHERE tid = '$tid' AND stationid = '$station' +"; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + if ($maxrows == 0) { //新規追加 - $query = "INSERT INTO foltia_tvrecord values (?,?,?,?)"; -// $rs = m_query($con, $query, "DB書き込みに失敗しました"); - $rs = sql_query($con, $query, "DB書き込みに失敗しました",array($tid,$station,$bitrate,$usedigital)); + $query = "INSERT INTO foltia_tvrecord values ('$tid','$station','$bitrate')"; + $rs = m_query($con, $query, "DB書き込みに失敗しました"); }else{//修正 (ビットレート) $query = "UPDATE foltia_tvrecord SET - bitrate = ? , digital = ? WHERE tid = ? AND stationid = ? "; -// $rs = m_query($con, $query, "DB書き込みに失敗しました"); - $rs = sql_query($con, $query, "DB書き込みに失敗しました",array( $bitrate, $usedigital , $tid , $station )); + bitrate = '$bitrate' WHERE tid = '$tid' AND stationid = '$station' + "; + $rs = m_query($con, $query, "DB書き込みに失敗しました"); } Index: trunk/install/php/folcast.php =================================================================== --- trunk/install/php/folcast.php (リビジョン 133) +++ trunk/install/php/folcast.php (リビジョン 1) @@ -20,20 +20,9 @@ header('Content-Type: application/rss+xml'); -header('Content-Disposition: attachment; filename="folcast.xml"'); -include("./foltialib.php"); + + include("./foltialib.php"); $con = m_connect(); -/* -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login -*/ + $now = date("YmdHi"); $nowrfc822 = date("r"); @@ -51,29 +40,24 @@ $query = " SELECT foltia_program.tid,foltia_program.title, -foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" LIKE 'M%%' AND foltia_program.tid = foltia_subtitle.tid AND foltia_program.tid = $tid -ORDER BY enddatetime DESC - limit ? offset 0 -"; +foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" ~~ 'M4V%%' AND foltia_program.tid = foltia_subtitle.tid AND foltia_program.tid = $tid +ORDER BY \"enddatetime\" DESC +offset 0 limit $max + "; $titlequery = " SELECT foltia_program.tid,foltia_program.title FROM foltia_program -WHERE foltia_program.tid = ? +WHERE foltia_program.tid = $tid "; -// $titlers = m_query($con, $query, "DBクエリに失敗しました"); - $titlers = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); -// $titlers = sql_query($con, $titlequery, "DBクエリに失敗しました",array($tid)); - $rowdata = $titlers->fetch(); - $rsstitle = htmlspecialchars($rowdata[1]); + $titlers = m_query($con, $query, "DBクエリに失敗しました"); + $rowdata = pg_fetch_row($titlers, 0); + $rsstitle = $rowdata[1]; }else{ $query = " SELECT foltia_program.tid,foltia_program.title, -foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" LIKE 'M%%' AND foltia_program.tid = foltia_subtitle.tid ORDER BY enddatetime DESC -limit ? offset 0 +foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" ~~ 'M4V%%' AND foltia_program.tid = foltia_subtitle.tid ORDER BY \"enddatetime\" DESC +offset 0 limit $max "; - - - $rsstitle = "新規録画"; }//if @@ -82,14 +66,14 @@ - $rsstitle:Folcast + Folcast ($rsstitle) DCC-JPL Japan/foltia project http://www.dcc-jpl.com/soft/foltia/ フォルティアが未読処理をお助けしちゃいます - foltia video podcast :$rsstitle:Folcast + foltia video podcast :Folcast ($rsstitle) フォルティアが未読処理をお助けしちゃいます ja foltia - $rsstitle:Folcast + Folcast ($rsstitle) foltia@dcc-jpl.com @@ -101,12 +85,14 @@ print $header; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($max)); -$rowdata = $rs->fetch(); + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); -if (! $rowdata) { +if ($maxrows == 0) { //die_exit("No items"); }else{ - do { + +for ($row = 0; $row < $maxrows; $row++) { + $rowdata = pg_fetch_row($rs, $row); + //$title = mb_convert_encoding($rowdata[1],"UTF-8", "EUC-JP"); $tid = $rowdata[0]; @@ -133,11 +119,6 @@ $mp4thmname = ereg_replace(".MP4", ".THM", $mp4thmname); $mp4thmnameuri = "http://". getserverfqdn() . $httpmediamappath ."/$tid.localized/mp4/$mp4thmname"; - -if (file_exists("$recfolderpath/$tid.localized/mp4/$mp4filename")) { - $mp4filestat = stat("$recfolderpath/$tid.localized/mp4/$mp4filename"); - $mp4filesize = $mp4filestat[7]; -} else { - $mp4filesize = 0; -} +$mp4filestat = stat("$recfolderpath/$tid.localized/mp4/$mp4filename"); +$mp4filesize = $mp4filestat[7]; if ($rowdata[0] == 0 ){//EPG録画 @@ -166,5 +147,5 @@ print $item ; - } while ($rowdata = $rs->fetch()); //do +}//for }//if Index: trunk/install/php/foltia_config2.php.template =================================================================== --- trunk/install/php/foltia_config2.php.template (リビジョン 135) +++ trunk/install/php/foltia_config2.php.template (リビジョン 1) @@ -17,16 +17,12 @@ $recfolderpath = '/home/foltia/php/tv'; //録画ファイルの保存先のパス。 $httpmediamappath = '/tv'; //ブラウザから見える録画ファイルのある位置。 - $recunits = 0; //搭載アナログキャプチャカードチャンネル数 - - $protectmode = 0; //未使用:(ブラウザからの予約削除を禁止するなどの保護モードで動作します) + $protectmode = 1; //未使用:(ブラウザからの予約削除を禁止するなどの保護モードで動作します) $demomode = 0; //未使用:(ユーザインターフェイスだけ動作するデモモードで動作します) - $useenvironmentpolicy = 0 ;//環境ポリシーを使うかどうか - $environmentpolicytoken = "";//環境ポリシーのパスワードに連結されるセキュリティコード - $perltoolpath = $toolpath ;//perl版の初期設定の位置。デフォルトではphpと同じ位置 - $usedigital = 1;//Friioなどでデジタル録画をするか 1:する 0:しない // データベース接続設定 -// define("DSN", "pgsql:host=localhost dbname=foltia user=foltia password= "); -define("DSN", "sqlite:/home/foltia/foltia.sqlite"); + define("DATABASE_NAME", "foltia"); + define("DBHOST", "localhost"); + define("USER_NAME" , "foltia" ); + define("USER_PASSWORD", "passwd" ); // $mylocalip = "192.168.0.177" ; //動いている機械のIPアドレス Index: trunk/install/php/delreserve.php =================================================================== --- trunk/install/php/delreserve.php (リビジョン 128) +++ trunk/install/php/delreserve.php (リビジョン 1) @@ -17,19 +17,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - ?> @@ -44,13 +29,16 @@ "); } - $sid = getgetnumform("sid"); +$sid = getgetnumform(sid); if ($sid == "") { die_exit("局がありません
"); } +$con = m_connect(); $now = date("YmdHi"); ?> @@ -69,13 +57,14 @@ foltia_tvrecord.stationid FROM foltia_tvrecord , foltia_program , foltia_station -WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_tvrecord.tid = ? AND foltia_tvrecord.stationid = ? "; +WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_tvrecord.tid = $tid AND foltia_tvrecord.stationid = $sid "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$sid)); -$rowdata = $rs->fetch(); - -if (! $rowdata ) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { die_exit("登録番組がありません
"); } + $rowdata = pg_fetch_row($rs, 0); + $tid = htmlspecialchars($rowdata[0]); $stationname = htmlspecialchars($rowdata[1]); @@ -105,8 +94,6 @@ DELETE FROM foltia_tvrecord -WHERE foltia_tvrecord.tid = ? AND foltia_tvrecord.stationid = ? "; -$rs->closeCursor(); -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$sid)); +WHERE foltia_tvrecord.tid = $tid AND foltia_tvrecord.stationid = $sid "; + $rs = m_query($con, $query, "DBクエリに失敗しました"); } @@ -128,7 +115,7 @@
- - - + + + @@ -164,14 +151,15 @@ FROM foltia_subtitle , foltia_program ,foltia_station WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.startdatetime >= ? AND foltia_program.tid = ? + AND foltia_subtitle.startdatetime >= '$now' AND foltia_program.tid ='$tid' ORDER BY foltia_subtitle.startdatetime ASC "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$tid)); -$rowdata = $rs->fetch(); -if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { echo("放映予定はありません
"); -}else{ - $maxcols = $rs->columnCount(); + } + else{ + $maxcols = pg_num_fields($rs); ?>
".htmlspecialchars($rowdata[$col])."
@@ -191,11 +179,14 @@ \n"); + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); + for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ echo("\n"); } echo("\n"); - } while ($row = $rs->fetch()); + } }//end if ?> Index: trunk/install/php/deletemovie.php =================================================================== --- trunk/install/php/deletemovie.php (リビジョン 124) +++ trunk/install/php/deletemovie.php (リビジョン 1) @@ -15,19 +15,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - ?> @@ -41,4 +26,6 @@ 録画番組削除


-削除番組はありません。

\n"; -}else{ +

次の番組を削除しました。

-$userclass = getuserclass($con); -if ( $userclass <= 1){ - -print "

次の番組を削除しました。

-
".htmlspecialchars($rowdata[$col])."
+
- - - - + + + + - "; + + +fetch(); -$rowdata = $rall[0]; - -$title = htmlspecialchars($rall[1]); -$count = htmlspecialchars($rall[2]); -$subtitle = htmlspecialchars($rall[3]); - -print " - - - - - -\n +SELECT +foltia_program.tid,foltia_program.title,foltia_subtitle.subtitle +FROM foltia_subtitle , foltia_program +WHERE foltia_program.tid = foltia_subtitle.tid + AND foltia_subtitle.tid = $filesplit[0] "; - -//DBから削除 -if ($demomode){ +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$rowdata = pg_fetch_row($rs, $row); +//print" $fName./$rowdata[1]//$rowdata[2]
\n"; +$title = $rowdata[1]; +$subtitle = ""; +$count = ""; }else{ $query = " -DELETE FROM foltia_mp4files -WHERE mp4filename = ? +SELECT +foltia_program.tid,foltia_program.title,foltia_subtitle.countno,foltia_subtitle.subtitle +FROM foltia_subtitle , foltia_program +WHERE foltia_program.tid = foltia_subtitle.tid + AND foltia_subtitle.tid = $filesplit[0] + AND foltia_subtitle.countno = $filesplit[1] "; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($fName)); - -//削除処理 -$oserr = system("$toolpath/perl/deletemovie.pl $fName"); -}//end if demomode - -}else{ //拡張子がMP4以外なら 録画一覧(録画順・番組順)の削除(showplaylist.php) - -$query = " -SELECT foltia_program.tid,foltia_program.title,foltia_subtitle.countno,foltia_subtitle.subtitle -FROM foltia_subtitle , foltia_program -WHERE foltia_program.tid = foltia_subtitle.tid -AND foltia_subtitle.m2pfilename = ? -"; - -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -//$rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0] ,$filesplit[1])); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($fName)); - $rall = $rs->fetchAll(); - $rowdata = $rall[0]; +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$rowdata = pg_fetch_row($rs, $row); +//print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]
\n"; $title = $rowdata[1]; $count = $rowdata[2]; $subtitle = $rowdata[3]; + +}//end if 話数がNULL $tid = htmlspecialchars($rowdata[0]); @@ -151,16 +101,11 @@ $subtitle = htmlspecialchars($subtitle); +//-- + + print " - + @@ -174,8 +119,7 @@ $query = " DELETE FROM foltia_m2pfiles -WHERE m2pfilename = ? +WHERE m2pfilename = '$fName' "; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($fName)); +$rs = m_query($con, $query, "DBクエリに失敗しました"); //削除処理 @@ -183,15 +127,9 @@ }//end if demomode -}//end if .MP4拡張子分岐 - }//foreach -print "
ファイル名タイトル話数サブタイファイル名タイトル話数サブタイ
$fName
"; - -if ($tid > 0 ){ - print "$title"; -}else{ - print "$title"; -} - -print "$count
$subtitle
$fName
"; - -if ($tid > 0 ){ - print "$title"; -}else{ - print "$title"; -} - -print "$title $count
$subtitle
\n"; - -}else{//権限なし - print "

ファイル削除権限がありません。

"; -} -}//if $delete == "" ?> + + Index: trunk/install/php/showplaylist.php =================================================================== --- trunk/install/php/showplaylist.php (リビジョン 126) +++ trunk/install/php/showplaylist.php (リビジョン 1) @@ -14,25 +14,9 @@  省略時、録画順にソートされる。  titleのときに、番組順ソートされる。 - rawのときに、DBに記録されている番組録画情報ではなくディレクトリにあるm2p/m2tファイルを全て表示する。 + rawのときに、DBに記録されている番組録画情報ではなくディレクトリにあるm2pファイルを全て表示する。 DCC-JPL Japan/foltia project */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login - - ?> @@ -43,53 +27,25 @@ foltia:recorded file list "; - -/////////////////////////////////////////////////?????? -//1ページの表示レコード数 -$lim = 300; -//クエリ取得 -$p = getgetnumform(p); -//ページ取得の計算 -list($st,$p,$p2) = number_page($p,$lim); -//////////////////////////////////////////////////???? - + include("./foltialib.php"); +$con = m_connect(); $now = date("YmdHi"); + ?>
- -

録画一覧表示


再生可能番組リストを表示します。
- "; -////////////////////////////////////////// - - ?>

@@ -97,6 +53,6 @@ - - + + @@ -104,5 +60,4 @@ - - + - -\n"; -if(($fName == ".") or ($fName == "..") ){ continue; } -if ((ereg(".m2.+", $fName))|| (ereg(".aac", $fName))){ - $filesplit = split("-",$fName); - -if (preg_match("/^\d+$/", $filesplit[0])) {// print "File is looks like good:preg
\n"; + if(($fName == ".") or ($fName == "..") ){ continue; } + if (ereg(".m2p", $fName)){ + $filesplit = split("-",$fName); + if ($filesplit[1] == ""){ $query = " @@ -143,15 +94,12 @@ FROM foltia_subtitle , foltia_program WHERE foltia_program.tid = foltia_subtitle.tid - AND foltia_subtitle.tid = ? -"; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0])); - $rall = $rs->fetchAll(); - $rowdata = $rall[0]; + AND foltia_subtitle.tid = $filesplit[0] +"; +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$rowdata = pg_fetch_row($rs, $row); //print" $fName./$rowdata[1]//$rowdata[2]
\n"; $title = $rowdata[1]; $subtitle = ""; $count = ""; - }else{ @@ -161,11 +109,9 @@ FROM foltia_subtitle , foltia_program WHERE foltia_program.tid = foltia_subtitle.tid - AND foltia_subtitle.tid = ? - AND foltia_subtitle.countno = ? -"; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0],$filesplit[1])); - $rall = $rs->fetchAll(); - $rowdata = $rall[0]; + AND foltia_subtitle.tid = $filesplit[0] + AND foltia_subtitle.countno = $filesplit[1] +"; +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$rowdata = pg_fetch_row($rs, $row); //print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]
\n"; $title = $rowdata[1]; @@ -194,13 +140,8 @@ print "\n "; -}else{ - //print "File is looks like BAD:preg
\n"; -}// - }//ereg }//foreach print " \n
削除 ファイル名話数 サブタイ
\n
\n\n\n"; exit; - }elseif ($list== "title"){//新仕様 $query = " @@ -216,5 +157,5 @@ AND foltia_subtitle.m2pfilename = foltia_m2pfiles.m2pfilename ORDER BY foltia_subtitle.tid DESC , foltia_subtitle.startdatetime ASC -LIMIT $lim OFFSET $st + "; @@ -232,32 +173,14 @@ AND foltia_subtitle.m2pfilename = foltia_m2pfiles.m2pfilename ORDER BY foltia_subtitle.startdatetime DESC -LIMIT $lim OFFSET $st "; } -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $rs->fetch(); - -///////////////////////////////////////// -//テーブルの総数取得 - $query2 = " -SELECT COUNT(*) AS cnt FROM foltia_subtitle , foltia_program , foltia_m2pfiles -WHERE foltia_program.tid = foltia_subtitle.tid - AND foltia_subtitle.m2pfilename = foltia_m2pfiles.m2pfilename - "; -$rs2 = sql_query($con, $query2, "DB\?\ィ\e?E?oCO???T????"); -$rowdata2 = $rs2->fetch(); - if (! $rowdata2) { - die_exit("番組データがありません
"); - } -//1O?o?eAA -$dtcnt = $rowdata2[0]; - -///////////////////////////////////////// - -if ($rowdata) { - - do { +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$maxrows = pg_num_rows($rs); + +if ($maxrows > 0){ +for ($row = 0; $row < $maxrows; $row++) { +$rowdata = pg_fetch_row($rs, $row); + $tid = htmlspecialchars($rowdata[0]); $title = htmlspecialchars($rowdata[1]); @@ -267,39 +190,24 @@ $pid = htmlspecialchars($rowdata[5]); //-- - - print " -
"; -if (ereg("syabas",$useragent)){ -print "$fName"; -} -else{ -print "$fName
"; -} -if ($tid > 0){ -print"$title +
+$fName
+$title $count
$subtitle
"; -}else{ -print"$title -$count
-$subtitle
"; -} - if (file_exists("./selectcaptureimage.php") ) { - $capimgpath = preg_replace("/.m2.+/", "", $fName); + $capimgpath = preg_replace("/.m2p/", "", $fName); +// list($citid,$cicountno,$cidate,$citime) = split("-", $capimgpath); +// if($cicountno == ""){ +// $cicountno = "x"; +// } +// $capimgpath = "$citid"."-"."$cicountno"."-"."$cidate"."-"."$citime"; print " キャプ\n"; } - print "\n "; - -//} - - - } while ($rowdata = $rs->fetch()); -}else{ - +}//for +}else{ print " @@ -315,17 +223,6 @@ \n"; -////////////////////////////////////////////////////////////////////// -//クエリ代入 -$query_st = $list; -//Autopageing処理とページのリンクを表示 -list($p2,$page) = page_display($query_st,$p,$p2,$lim,$dtcnt,""); -////////////////////////////////////////////////////////////////////// -print "
"; //Auto pager終わり - - //番組ソートの時、未読番組のタイトルだけ表示 -//if ($list== "title" && $p2 > $page){ if ($list== "title"){ - $query = " SELECT distinct @@ -338,8 +235,9 @@ "; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - if ($rowdata) { +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$maxrows = pg_num_rows($rs); + + +if ($maxrows > 0){ print "

未読タイトルを表示します。
@@ -354,16 +252,20 @@ "; - do { +for ($row = 0; $row < $maxrows; $row++) { +$rowdata = pg_fetch_row($rs, $row); + $tid = htmlspecialchars($rowdata[0]); $title = htmlspecialchars($rowdata[1]); + + print "$tid$title\n"; - } while ($rowdata = $rs->fetch()); +}//for print "\n"; }//if maxrows }//if title - -?> +?> + Index: trunk/install/php/reserveprogram.php =================================================================== --- trunk/install/php/reserveprogram.php (リビジョン 128) +++ trunk/install/php/reserveprogram.php (リビジョン 1) @@ -15,19 +15,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login - ?> @@ -43,4 +28,5 @@ fetch(); -if (! $rowdata) { + $query = "select title from foltia_program where tid='$tid'"; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { die_exit("登録番組がありません
"); } - + $rowdata = pg_fetch_row($rs, 0); $title = htmlspecialchars($rowdata[0]); ?> @@ -80,5 +67,5 @@ ?> -「」を番組予約モードで録画予約します。
+「」を番組予約モードで録画予約します。
@@ -89,6 +76,5 @@ 放送局 - デジタル録画優先 - アナログビットレート + ビットレート @@ -100,19 +86,22 @@ FROM foltia_subtitle , foltia_program ,foltia_station WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_program.tid = ? + AND foltia_program.tid ='$tid' ORDER BY stationrecch DESC "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); -$rowdata = $rs->fetch(); -if (! $rowdata) { + + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { echo("放映局情報がまだはいってません
"); } else{ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); echo("\n"); }//endif @@ -126,23 +115,4 @@ - - - - - "> +

 

@@ -179,15 +149,15 @@ FROM foltia_subtitle , foltia_program ,foltia_station WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.startdatetime >= ? AND foltia_program.tid = ? + AND foltia_subtitle.startdatetime >= '$now' AND foltia_program.tid ='$tid' ORDER BY foltia_subtitle.startdatetime ASC "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$tid)); -$rowdata = $rs->fetch(); -if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { echo("放映予定はありません
"); } else{ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?> @@ -207,15 +177,14 @@ \n"); + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); + for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ - if ($col == 3){ - echo("\n"); - }else{ echo("\n"); - } } echo("\n"); - } while ($rowdata = $rs->fetch()); + } }//end if ?> Index: trunk/install/php/foltialib.php =================================================================== --- trunk/install/php/foltialib.php (リビジョン 131) +++ trunk/install/php/foltialib.php (リビジョン 1) @@ -19,6 +19,6 @@ if ($_GET["{$key}"] != "") { $value = $_GET["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); + escape_string($value); + htmlspecialchars($value); return ($value); } @@ -26,8 +26,9 @@ //GET用数字フォームデコード function getgetnumform($key) { -// if ($_GET["{$key}"] != "") { - if (isset($_GET["{$key}"] )) { + if ($_GET["{$key}"] != "") { $value = $_GET["{$key}"]; - $value = ereg_replace("[^-0-9]", "", $value); + escape_string($value); + htmlspecialchars($value); + $value = ereg_replace("[^0-9]", "", $value); $value = escape_numeric($value); return ($value); @@ -37,8 +38,9 @@ //フォームデコード function getform($key) { + // global $where; if ($_POST["{$key}"] != "") { $value = $_POST["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); + escape_string($value); + htmlspecialchars($value); return ($value); } @@ -48,7 +50,7 @@ if ($_POST["{$key}"] != "") { $value = $_POST["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); - $value = ereg_replace("[^0-9]", "", $value); + escape_string($value); + htmlspecialchars($value); + $value = ereg_replace("[^0-9]", "", $value); $value = escape_numeric($value); return ($value); @@ -76,8 +78,8 @@ function die_exit($message) { ?> -

+

トップ
-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - return($dbh); - } catch (PDOException $e) { - die_exit($e->getMessage() . ": データベースに接続出来ませんでした。"); +/* $con = @pg_connect("host=".DBHOST ." dbname=".DATABASE_NAME . + " user=".USER_NAME . + " password=".USER_PASSWORD); +*/ + $con = @pg_pconnect("host=".DBHOST ." dbname=".DATABASE_NAME . + " user=".USER_NAME . + " password=".USER_PASSWORD); + + + if (!$con) { + die_exit("データベースに接続出来ませんでした。"); } /* データベースと、PHP の内部文字コードが違う場合 */ + return($con); } /* データベースとの接続を切り離す */ -function m_close($dbh) { - return null; - } - -//旧関数 sql_queryに置き換え -function m_query($dbh, $query, $errmessage) { - try { - $rtn = $dbh->query($query); - return($rtn); - } catch (PDOException $e) { + function m_close($con) { + return @pg_close($con); + } + + /* SQL 文を実行 */ + function m_query($con, $query, $errmessage) { + $rtn = @pg_query($con, $query); + if (!$rtn) { /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ $msg = $errmessage . "
\n" . - $e->getMessage() . "
\n" . - var_export($e->errorInfo, true) . "
\n" . + @pg_last_error($con) . "
\n" . "" . htmlspecialchars($query) . "\n"; -// $dbh->rollBack(); - $dbh = null; + $rtn = @pg_query($con, "rollback");//04.4.8 + m_close($con); die_exit($msg); } - } -/* SQL 文を実行 */ -function sql_query($dbh, $query, $errmessage,$paramarray=null) { - try { - $rtn = $dbh->prepare("$query"); - $rtn->execute($paramarray); return($rtn); - } catch (PDOException $e) { - /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ - $msg = $errmessage . "
\n" . - $e->getMessage() . "
\n" . - var_export($e->errorInfo, true) . "
\n" . - "" . htmlspecialchars($query) . - "\n"; -// $dbh->rollBack(); - $dbh = null; - die_exit($msg); - } } @@ -181,8 +168,7 @@ function m_showtable($rs) { /* 検索件数 */ - $maxrows = 0; + $maxrows = pg_num_rows($rs); - $rowdata = $rs->fetch(); - if (! $rowdata) { + if ($maxrows == 0) { echo("

データが存在しません

\n"); return 0; @@ -190,5 +176,5 @@ /* フィールド数 */ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?>
".htmlspecialchars(foldate2print($rowdata[$col]))."
".htmlspecialchars($rowdata[$col])."
@@ -199,6 +185,5 @@ for ($col = 1; $col < $maxcols; $col++) { /* pg_field_name() はフィールド名を返す */ - $meta = $rs->getColumnMeta($col); - $f_name = htmlspecialchars($meta["name"]); + $f_name = htmlspecialchars(pg_field_name($rs, $col)); echo("\n"); } @@ -209,8 +194,8 @@ \n"); + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); /* 1列目にリンクを張る */ echo(" @@ -229,8 +214,46 @@ } - -function m_viewdata($dbh, $code) { - -/*これ使ってないよね?*/ + /* 指定したコードのデータを表示 */ + function m_viewdata($con, $code) { + /* コードに該当するデータを検索 */ + $query = " +select p.code + ,p.name + ,p.email + ,p.pseudonym + ,s.name as job + ,p.profile + ,to_char(p.editdate, 'YYYY/MM/DD HH24:MI:SS') as editdate + from inet_profile p left join inet_job s on p.job = s.code + where p.code = $code"; + $rs = m_query($con, $query, "個人情報の取得に失敗しました。"); + if (pg_num_rows($rs) == 0) { + echo("

データが存在しません

\n"); + return FALSE; + } + + /* フィールド数 */ + $maxcols = pg_num_fields($rs); + /* 先頭行 */ + $rowdata = pg_fetch_row($rs, 0); + ?> +
$f_name\n"); - } while ($rowdata = $rs->fetch()); + } ?>
+ + + + + + + + + + +
+ foltia | 放映予定 | 新番組 | 予約一覧 | 番組一覧 | 番組表 | 録画一覧(録画順番組順) | 録画ライブラリ | Folcast[iTunesに登録] | "; -if ($useenvironmentpolicy == 1){ - print "【 $username 】"; -} - -print "

\n"; + +print "

foltia | 放映予定 | 新番組 | 予約一覧 | 番組一覧 | 番組表 | 録画一覧(録画順番組順) | 録画ライブラリ | Folcast(RSS)[iTunesにFolcastを登録] |

\n"; } @@ -273,6 +288,6 @@ "; $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - if (! $rowdata) { + $maxrows = pg_num_rows($rs); +if ($maxrows == 0) { print("番組データがありません
"); }else{ @@ -280,5 +295,8 @@ //print "\n"; print "\n"; @@ -390,393 +408,70 @@ function printdiskusage(){//戻り値 なし -list (, $all, $use , $free, $usepercent) = getdiskusage(); + +global $recfolderpath,$recfolderpath; + + exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); + $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); + + exec ( "ps ax | grep ffmpeg", $encoding); + exec ( "ps ax | grep faac", $processlock); print " -
$free -
$use/$all($usepercent)
+
$freearea[3] +
$freearea[2]/$freearea[1]($freearea[4])
"; -//exec('ps ax | grep ffmpeg |grep MP4 ' ,$ffmpegprocesses); + +// print "$freearea[1]
$freearea[2]
$freearea[3]
$freearea[4]
$hdfreearea[0]
$encoding[0]
$processlock[0]

\n"; + print "$encoding[0]
$processlock[0]

\n"; + +/* +
170GB +
1.1TB/1.3TB(87%)
+
+*/ + }//end sub -function getdiskusage(){//戻り値 配列 [,全体容量, 使用容量 , 空き容量, 利用割合] - -global $recfolderpath,$recfolderpath; - -// exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); -// $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); - exec ( "df -hP $recfolderpath", $hdfreearea); - $freearea = preg_split ("/[\s,]+/", $hdfreearea[count($hdfreearea)-1]); - - return $freearea; - -}//endsub - - -function printtrcnprocesses(){ - -$ffmpegprocesses = `ps ax | grep ffmpeg | grep -v grep | wc -l `; -$uptime = exec('uptime'); - -print "
"; -print "$uptime
\n"; -print "トラコン稼働数:$ffmpegprocesses
\n"; -print "
"; - -}//endsub - - -function warndiskfreearea(){ - -global $demomode; - -if ($demomode){ -print ""; -}else{ - -global $recfolderpath,$hdfreearea ; - - exec ( "df $recfolderpath | grep $recfolderpath", $hdfreearea); - $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); -$freebytes = $freearea[3]; -if ($freebytes == "" ){ -// -//print ""; -}elseif($freebytes > 1024*1024*100 ){// 100GB以上あいてれば -//なにもしない -print ""; -}elseif($freebytes > 1024*1024*50 ){// 100GB以下 -print " -"; -}elseif($freebytes > 1024*1024*30 ){// 50GB以下 -print " -"; -}elseif($freebytes > 0 ){// 30GB以下 -print " -"; -}else{ //空き容量 0バイト -print " -"; -}//endif freebytess - -}//endif demomode - -}//endsub - - - -function foldatevalidation($foldate){ - -if (strlen($foldate) == 12 ){ - - $startyear = substr($foldate,0,4); - $startmonth = substr($foldate,4,2); - $startday = substr($foldate,6,2); - $starthour = substr($foldate,8,2); - $startmin = substr($foldate,10,2); - - $startepoch = date ("U",mktime($starthour , $startmin , 0, $startmonth , $startday, $startyear)); - $nowe = time(); - if ($startepoch > $nowe){ - //print "$foldate:$startepoch:$nowe"; - return TRUE; - }else{ - return FALSE; - } //end if $startepoch > $nowe -}else{ - return FALSE; -}//end if ($foldate) == 12 - -}//end function - - - -function login($con,$name,$passwd){ -global $environmentpolicytoken; - -//入力内容確認 - if (((mb_ereg('[^0-9a-zA-Z]', $name)) ||(mb_ereg('[^0-9a-zA-Z]', $passwd) ))){ - - //print "エラー処理\n"; - //print ""; - redirectlogin(); - -}else{ -//print "正常処理\n"; -//db検索 -escape_string($name); -escape_string($passwd); - -$query = " -SELECT memberid ,userclass,name,passwd1 -FROM foltia_envpolicy -WHERE foltia_envpolicy.name = '$name' - "; - $useraccount = m_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $useraccount->fetch(); - if (! $rowdata) { - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - } - - $memberid = $rowdata[0]; - $userclass = $rowdata[1]; - $username = $rowdata[2]; - $dbpasswd = $rowdata[3]; - - $rowdata = $useraccount->fetch(); - if ($rowdata) { - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - } - -// passwdをdbから取りだし -if ($userclass == 0){ -$dbpasswd = "$dbpasswd"; -}else{ -// db passwdとトークンを連結し -$dbpasswd = "$dbpasswd"."$environmentpolicytoken"; -} -//それが入力と一致すれば認証 -if ($passwd == $dbpasswd) { -//print "認証成功
$dbpasswd $passwd\n"; -}else{ -//print "認証失敗
$dbpasswd $passwd\n"; - header("HTTP/1.0 401 Unauthorized"); - //print ""; +$viewstations = pg_num_rows($rs); +print "

+ + + +"; +for ($i=0 ; $i < $viewstations ; $i++){ + $rowdata = pg_fetch_row($rs, $i); + if ($rowdata[1] != ""){ + print " \n"; + } } + +print " + + +"; +for ($i=0 ; $i < $viewstations ; $i++){ + $rowdata = pg_fetch_row($rs, $i); + if ($rowdata[3] != ""){ + print "\n"; + } } -//ココから新コード -//・局リスト -$query = "SELECT stationid, stationname, stationrecch, ontvcode -FROM foltia_station -WHERE \"ontvcode\" LIKE '%ontvjapan%' -ORDER BY stationid ASC , stationrecch -LIMIT ? OFFSET ? + +print " + +
$rowdata[1]
"; + renderepgstation($con,$rowdata[3],$start); + print "
"; -//$slistrs = m_query($con, $query, "DBクエリに失敗しました"); -$slistrs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset)); -while ($rowdata = $slistrs->fetch()) { - $stationhash[] = $rowdata[3]; - $snames[] = $rowdata[1]; // headder -} + ?> -//・時間と全順番のハッシュ作る -$epgstart = $start ; -$epgend = calcendtime($start , (8*60)); - -$query = "SELECT DISTINCT startdatetime -FROM foltia_epg -WHERE foltia_epg.ontvchannel in ( - SELECT ontvcode - FROM foltia_station - WHERE \"ontvcode\" LIKE '%ontvjapan%' - ORDER BY stationid ASC , stationrecch - LIMIT ? OFFSET ? - ) -AND startdatetime >= ? -AND startdatetime < ? -ORDER BY foltia_epg.startdatetime ASC "; - -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset,$start,$epgend)); - -//print "$query
\n"; - -$rowdata = $rs->fetch(); -if (! $rowdata) { -//番組データがない -$colmnums = 2; -}else{ - $colmnums = 0; - do { - $colmnums++; - $timetablehash[$rowdata[0]] = $colmnums; -// print "$rowdata[0]:$i+1
\n"; - } while ($rowdata = $rs->fetch()); -} -//print "colmnums $colmnums
\n"; - -//・局ごとに縦に配列入れていく -foreach ($stationhash as $stationname) { -$epgstart = $start ; -$epgend = calcendtime($start , (8*60)); -$query = " -SELECT startdatetime , enddatetime , lengthmin , epgtitle , epgdesc , epgcategory ,ontvchannel ,epgid , epgcategory -FROM foltia_epg -WHERE foltia_epg.ontvchannel = ? AND -enddatetime > ? AND -startdatetime < ? -ORDER BY foltia_epg.startdatetime ASC - "; - -// $statiodh = m_query($con, $query, "DBクエリに失敗しました"); - $statiodh = sql_query($con, $query, "DBクエリに失敗しました",array($stationname,$epgstart,$epgend)); - $stationrowdata = $statiodh->fetch(); - if (! $stationrowdata) { - //print("番組データがありません
"); - $item[0]["$stationname"] = ">番組データがありません"; -}else{ - do { -$printstarttime = substr($stationrowdata[0],8,2) . ":" . substr($stationrowdata[0],10,2); -$tdclass = "t".substr($stationrowdata[0],8,2) . substr($stationrowdata[0],10,2); -$title = $stationrowdata[3]; -$title = htmlspecialchars(z2h($title)); -$desc = $stationrowdata[4]; -$desc = htmlspecialchars(z2h($desc)); - -if ($epgviewstyle){ -$desc=$desc ."

"; -}else{ -$desc=$desc ."

". htmlspecialchars(foldate2print($stationrowdata[1])) ; -} - - -$height = htmlspecialchars($stationrowdata[2]) * 3; -$epgid = htmlspecialchars($stationrowdata[7]); -$epgcategory = htmlspecialchars($stationrowdata[8]); - -if (isset($timetablehash["$stationrowdata[0]"])){ - $number = $timetablehash["$stationrowdata[0]"]; -//print "$stationname $stationrowdata[0] [$number] $printstarttime $title $desc
\n"; -}else{ - $number = 0; -//print "$stationname $stationrowdata[0] 現在番組 $printstarttime $title $desc
\n"; -} -if ($epgcategory == ""){ -$item["$number"]["$stationname"] = " onClick=\"location = './reserveepg.php?epgid=$epgid'\">$printstarttime $title $desc"; -}else{ -$item["$number"]["$stationname"] = " id=\"$epgcategory\" onClick=\"location = './reserveepg.php?epgid=$epgid'\">$printstarttime $title $desc"; -}//if - - } while ($stationrowdata = $statiodh->fetch()); -}//if - -//・局ごとに間隔決定 -//$item[$i][NHK] はヌルかどうか判定 -$dataplace = 0 ; //初期化 -$rowspan = 0; - -for ($i=1; $i <= $colmnums ; $i++){ - if ($i === ($colmnums )){//最終行 - $rowspan = $i - $dataplace ; - //そして自分自身にタグを - //if ((!isset($item[$i][$stationname])) && ($item[$i][$stationname] == "")){ - if (!isset($item[$i][$stationname])){ - $item[$i][$stationname] = null ; - }else{ - $item[$i][$stationname] = ""; - $rowspan--; - } - //ROWSPAN - if ($rowspan === 1 ){ - $item[$dataplace][$stationname] = ""; - }else{ - $item[$dataplace][$stationname] = ""; -// $item[$dataplace][$stationname] = ""; - } - -// }elseif ((!isset($item[$i][$stationname]))&&($item[$i][$stationname] == "")){ - }elseif (!isset($item[$i][$stationname])){ - //ヌルなら - //$item[$i][$stationname] = $item[$i][$stationname] ; - $item[$i][$stationname] = null ; -// $item[$i][$stationname] = "
" ; - }else{ - //なんか入ってるなら - $rowspan = $i - $dataplace; - $itemDataplaceStationname = null; - if (isset($item[$dataplace][$stationname])){ - $itemDataplaceStationname = $item[$dataplace][$stationname]; - } - if ($rowspan === 1 ){ - $item[$dataplace][$stationname] = ""; - }else{ - $item[$dataplace][$stationname] = ""; -// $item[$dataplace][$stationname] = ""; - } - $dataplace = $i; - - } -}//for -}// end of for://・局ごとに縦に配列入れていく - -//・テーブルレンダリング -print "\n"; - -//ヘッダ -foreach ($snames as $s) { - print "" ; -} -//本体 -for ($l = 0 ;$l < $colmnums; $l++){ - print ""; - foreach ($stationhash as $stationname) { - print_r($item[$l]["$stationname"]); - } - print "\n"; -} -print "
".htmlspecialchars($s)."
\n"; - -print "

$navigationbar

"; -?> -
-凡例 - - - - - - - - - - - - - - - - - - -
情報アニメ・特撮ニュース・報道ドラマバラエティドキュメンタリー・教養教育音楽映画趣味・実用キッズスポーツその他演劇
- - Index: trunk/install/php/showlib.php =================================================================== --- trunk/install/php/showlib.php (リビジョン 119) +++ trunk/install/php/showlib.php (リビジョン 1) @@ -15,20 +15,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login - - ?> @@ -37,20 +21,6 @@ - - - - -"; -}else{ -print " - -"; -} -?> + + foltia:MP4 Lib @@ -58,54 +28,20 @@ -
-

- -
-"; -}else{ - print " -
-"; +$con = m_connect(); +$now = date("YmdHi"); + +?> + +
+録画ライブラリ表示

-
-

再生可能ライブラリを表示します。
-"; -} +?> +

録画ライブラリ表示

+
+

再生可能ライブラリを表示します。
-//////////////////////////////////////////////////////// -//レコードの総数取得 -$query = " -SELECT -COUNT(DISTINCT tid) -FROM foltia_mp4files -"; - -$rs = sql_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $rs->fetch(); -$dtcnt = htmlspecialchars($rowdata[0]); -//echo $dtcnt; -// -if (! $rowdata) { - die_exit("番組データがありません
"); -} - -//////////////////////////////////////////////////////// - -//Autopager -echo "

"; - +fetch(); +$maxrows = pg_num_rows($rs); -if ($rowdata) { -if(ereg("iPhone",$useragent)){ - print "
    "; -}else{ - +if ($maxrows > 0 ){ print " @@ -140,8 +70,6 @@ "; - -} - - do { +for ($row = 0; $row < $maxrows; $row++) { + $rowdata = pg_fetch_row($rs, $row); $title = $rowdata[1]; $counts = $rowdata[2]; @@ -150,8 +78,4 @@ $counts = htmlspecialchars($counts); - -if(ereg("iPhone",$useragent)){ -print "
  • $title
  • \n"; -}else{ print " @@ -162,34 +86,15 @@ \n "; -} - } while ($rowdata = $rs->fetch()); - -if(ereg("iPhone",$useragent)){ - print "\n\n\n"; -}else{ +}//for print "
    - -"; -//////////////////////////////////////////////////////////////// -//Autopageing処理とページのリンクを表示 -page_display("",$p,$p2,$lim,$dtcnt,""); -/////////////////////////////////////////////////////////////// - -print " "; -} - }else{ print "録画ファイルが存在しません。"; }//end if - - - - /* //旧仕様 @@ -210,5 +115,5 @@ "; $rs = m_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $rs->fetch(); +$rowdata = pg_fetch_row($rs, $row); //print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]
    \n"; $title = $rowdata[1]; Index: trunk/install/php/reserveepg.php =================================================================== --- trunk/install/php/reserveepg.php (リビジョン 122) +++ trunk/install/php/reserveepg.php (リビジョン 1) @@ -15,18 +15,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login ?> @@ -39,4 +25,5 @@ fetch(); -if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { die_exit("登録番組がありません
    "); } - + $rowdata = pg_fetch_row($rs, 0); //$title = htmlspecialchars($rowdata[0]); ?> @@ -76,4 +64,7 @@
    EPGから下記番組を録画予約します。
    +
    + +
    @@ -90,36 +81,6 @@ $progdesc = htmlspecialchars($rowdata[6]); $progdesc = z2h($progdesc); -$progcat = htmlspecialchars(z2h($rowdata[7])); - -if ($progcat == "information"){ -$progcat = '情報'; -}elseif ($progcat == "anime"){ -$progcat = 'アニメ・特撮'; -}elseif ($progcat == "news"){ -$progcat = 'ニュース・報道'; -}elseif ($progcat == "drama"){ -$progcat = 'ドラマ'; -}elseif ($progcat == "variety"){ -$progcat = 'バラエティ'; -}elseif ($progcat == "documentary"){ -$progcat = 'ドキュメンタリー・教養'; -}elseif ($progcat == "education"){ -$progcat = '教育'; -}elseif ($progcat == "music"){ -$progcat = '音楽'; -}elseif ($progcat == "cinema"){ -$progcat = '映画'; -}elseif ($progcat == "hobby"){ -$progcat = '趣味・実用'; -}elseif ($progcat == "kids"){ -$progcat = 'キッズ'; -}elseif ($progcat == "sports"){ -$progcat = 'スポーツ'; -}elseif ($progcat == "etc"){ -$progcat = 'その他'; -}elseif ($progcat == "stage"){ -$progcat = '演劇'; -} - +$progcat = htmlspecialchars($rowdata[7]); +$progcat = z2h($progcat); $epgid = $epgid ; $stationid = htmlspecialchars($rowdata[10]); @@ -134,48 +95,27 @@ //重複確認 -$query = " -SELECT - foltia_program.title, foltia_program.tid, stationname, - foltia_station.stationid, foltia_subtitle.countno, - foltia_subtitle.subtitle, foltia_subtitle.startdatetime, - foltia_subtitle.lengthmin, foltia_tvrecord.bitrate, - foltia_subtitle.startoffset, foltia_subtitle.pid -FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord -WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid -AND foltia_subtitle.startdatetime = ? -AND foltia_subtitle.enddatetime = ? -AND foltia_station.stationid = ? -UNION -SELECT - foltia_program.title, foltia_program.tid, stationname, - foltia_station.stationid, foltia_subtitle.countno, - foltia_subtitle.subtitle, foltia_subtitle.startdatetime, - foltia_subtitle.lengthmin, foltia_tvrecord.bitrate, - foltia_subtitle.startoffset, foltia_subtitle.pid -FROM foltia_tvrecord -LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) -LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) -LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) -WHERE foltia_tvrecord.stationid = 0 -AND foltia_subtitle.startdatetime = ? -AND foltia_subtitle.enddatetime = ? -AND foltia_station.stationid = ? -"; -//print ""; + $query = " +SELECT foltia_program.title,foltia_subtitle.tid,foltia_subtitle.pid +FROM foltia_subtitle ,foltia_program ,foltia_tvrecord +WHERE startdatetime ='$startfoltime' +AND enddatetime = '$endfoltime' +AND foltia_subtitle.stationid = '$stationid' +AND foltia_program.tid = foltia_subtitle.tid +AND foltia_tvrecord.tid = foltia_program.tid +AND foltia_tvrecord.stationid = foltia_subtitle.stationid +"; + + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); -print "\n"; - -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($startfoltime,$endfoltime,$stationid,$startfoltime,$endfoltime,$stationid)); -$chkoverwrap = $rs->fetch(); -if (! $chkoverwrap) { + if ($maxrows == 0) { //重複なし - print "
    \n"; }else{ + $chkoverwrap = pg_fetch_row($rs, 0); $prereservedtitle = htmlspecialchars($chkoverwrap[0]); $tid = htmlspecialchars($chkoverwrap[1]); $pid = htmlspecialchars($chkoverwrap[2]); - print "
    この番組は既に予約済みです。 \n"; + print "この番組は既に予約済みです。 \n"; if ($tid > 1){ print "予約番組名:$prereservedtitle
    \n"; @@ -201,5 +141,4 @@ - Index: trunk/install/php/listreserve.php =================================================================== --- trunk/install/php/listreserve.php (リビジョン 128) +++ trunk/install/php/listreserve.php (リビジョン 1) @@ -10,33 +10,9 @@ 引数 -r:録画デバイス数 -startdate:特定日付からの予約状況。YYYYmmddHHii形式で。表示数に限定かけてないのでレコード数が大量になると重くなるかも知れません。 - +なし DCC-JPL Japan/foltia project - -History - -2009/5/1 -重複予約検出処理の修正 http://www.dcc-jpl.com/foltia/ticket/7 -パッチ適用 */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login -$userclass = getuserclass($con); - ?> @@ -50,33 +26,38 @@ 200501010000){ -}else{ - $now = date("YmdHi"); -} + + include("./foltialib.php"); + +$con = m_connect(); + +$now = date("YmdHi"); + $query = " SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_subtitle.epgaddedby, -foltia_tvrecord.digital +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid -AND foltia_subtitle.enddatetime >= ? +AND foltia_subtitle.enddatetime >= '$now' UNION SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_subtitle.epgaddedby, -foltia_tvrecord.digital +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid FROM foltia_tvrecord LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) @@ -84,18 +65,13 @@ LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) WHERE foltia_tvrecord.stationid = 0 AND - foltia_subtitle.enddatetime >= ? ORDER BY x ASC +foltia_subtitle.enddatetime >= '$now' ORDER BY \"startdatetime\" ASC "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$now)); - -//チューナー数 -if (getgetnumform(r) != ""){ - $recunits = getgetnumform(r); -}elseif($recunits == ""){ - $recunits = 2; -} - -?> + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + +?> + + @@ -108,11 +84,12 @@

    録画予約番組放映予定と予約番組名を表示します。

    -fetch(); - if (! $rowdata) { +\n"; }else{ + + /* フィールド数 */ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?> @@ -124,8 +101,7 @@ - + - @@ -135,136 +111,14 @@ \n"); - + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); $pid = htmlspecialchars($rowdata[9]); $tid = htmlspecialchars($rowdata[0]); $title = htmlspecialchars($rowdata[2]); -$subtitle = htmlspecialchars($rowdata[4]); -$dbepgaddedby = htmlspecialchars($rowdata[10]); - -//重複検出 -//開始時刻 $rowdata[5] -//終了時刻 -$endtime = calcendtime($rowdata[5],$rowdata[6]); -//番組の開始時刻より遅い時刻に終了し、終了時刻より前にはじまる番組があるかどうか -//オンボードチューナー録画 -$query = " -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_tvrecord.digital -FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord -WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid -AND foltia_subtitle.enddatetime > ? -AND foltia_subtitle.startdatetime < ? -UNION -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_tvrecord.digital -FROM foltia_tvrecord -LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) -LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) -LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) -WHERE foltia_tvrecord.stationid = 0 AND -foltia_subtitle.enddatetime > ? -AND foltia_subtitle.startdatetime < ? -"; - $rclass = ""; -// $overlap = m_query($con, $query, "DBクエリに失敗しました"); - $overlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5],$endtime,$rowdata[5],$endtime)); - $owrowall = $overlap->fetchAll(); - $overlapmaxrows = count($owrowall); - if ($overlapmaxrows > ($recunits) ){ - - $owtimeline = array(); - - for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) { - $owrowdata = $owrowall[$rrow]; - $owtimeline[ $owrowdata['startdatetime'] ] = $owtimeline[ $owrowdata['startdatetime'] ] +1; - - $owrend = calcendtime( $owrowdata['startdatetime'], $owrowdata['lengthmin'] ); - $owtimeline[ $owrend ] = $owtimeline[ $owrend ] -1; - //注意: NULL に減算子を適用しても何も起こりませんが、NULL に加算子を 適用すると 1 となります。 - } - - ksort ( $owtimeline ); - - $owcount = 0; - foreach ( $owtimeline as $key => $val ) { - $owcount += $val; - - if ( $owcount > $recunits ) { - $rclass = "overwraped"; - break; - } - } - } - -//外部チューナー録画 -$externalinputs = 1; //現状一系統のみ -$query = " -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_tvrecord.digital -FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord -WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid -AND foltia_subtitle.enddatetime > ? -AND foltia_subtitle.startdatetime < ? -AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) -UNION -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.startoffset, - foltia_subtitle.pid, foltia_tvrecord.digital -FROM foltia_tvrecord -LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) -LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) -LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) -WHERE foltia_tvrecord.stationid = 0 AND -foltia_subtitle.enddatetime > ? -AND foltia_subtitle.startdatetime < ? -AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) - "; -// $eoverlap = m_query($con, $query, "DBクエリに失敗しました"); - $eoverlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5], $endtime,$rowdata[5], $endtime)); - $eowrowall = $eoverlap->fetchAll(); - $eoverlapmaxrows = count($eowrowall); - if ($eoverlapmaxrows > ($externalinputs) ){ - - $eowtimeline = array(); - - for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) { - $eowrowdata = $eowrowall[$erow]; - $eowtimeline[ $eowrowdata['startdatetime'] ] = $eowtimeline[ $eowrowdata['startdatetime'] ] +1; - - $eowrend = calcendtime( $eowrowdata['startdatetime'], $eowrowdata['lengthmin'] ); - $eowtimeline[ $eowrend ] = $eowtimeline[ $eowrend ] -1; - } - - ksort ( $eowtimeline ); - - $eowcount = 0; - foreach ( $eowtimeline as $key => $val ) { - $eowcount += $val; - - if ( $eowcount > $externalinputs ) { - $rclass = "exoverwraped"; - break; - } - } - - } +$subtitle = htmlspecialchars($rowdata[4]); + echo("\n"); // TID @@ -284,5 +138,4 @@ }else{ print "$title"; - } print "\n"; @@ -293,15 +146,8 @@ print "\n"; }else{ - //if ( $userclass <= 2){ - if (($mymemberid == $dbepgaddedby)||($userclass <= 1)){ - if ($userclass <= 1 ){//管理者なら - $membername = getmemberid2name($con,$dbepgaddedby); - $membername = ":" . $membername ; - }else{ - $membername = ""; - } - print "\n"; - }else{ - print "\n"; + if ($protectmode) { + print "\n"; + }else{ + print "\n"; } } @@ -313,47 +159,32 @@ //録画レート echo("\n"); - - //デジタル優先 - echo("\n"); echo("\n"); - } while ($rowdata = $rs->fetch()); + } ?>
    話数 サブタイトル開始時刻(ズレ)開始時刻 総尺 画質デジタル優先
    $subtitle
    $subtitle [予約解除$membername]
    $subtitle [解除不能]
    $subtitle
    $subtitle [予約解除]
    ".htmlspecialchars($rowdata[7])."
    "); - if (htmlspecialchars($rowdata[11]) == 1){ - print "する"; - }else{ - print "しない"; - } - echo("
    - - - - - - - -
    アナログ重複表示
    エンコーダ数
    チューナー重複
    外部入力重複
    - - fetch(); -if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { //なければなにもしない }else{ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?> @@ -368,6 +199,4 @@ 録画リスト 画質 - デジタル優先 - @@ -376,5 +205,8 @@ \n"); //予約解除 - if ( $userclass <= 1){ + if ($protectmode) { + echo("−"); + }else{ echo("解除\n"); - }else{ - echo("−"); + htmlspecialchars($rowdata[4]) . "\">解除\n"); } //TID @@ -393,18 +225,12 @@ echo("".htmlspecialchars($rowdata[1])."
    \n"); //タイトル - echo("" . + echo("" . htmlspecialchars($rowdata[2]) . "\n"); //MP4 echo("mp4\n"); - //画質(アナログビットレート) + echo("".htmlspecialchars($rowdata[3])."
    \n"); - //デジタル優先 - echo(""); - if (htmlspecialchars($rowdata[5]) == 1){ - print "する"; - }else{ - print "しない"; - } + echo("\n"); }else{ @@ -414,15 +240,7 @@ EPG録画 mp4"; - echo("".htmlspecialchars($rowdata[3])."
    "); - //デジタル優先 - echo(""); - if (htmlspecialchars($rowdata[5]) == 1){ - print "する"; - }else{ - print "しない"; - } - echo("\n"); + echo("".htmlspecialchars($rowdata[3])."
    \n"); }//if tid 0 - } while ($rowdata = $rs->fetch()); + }//for }//else ?> Index: trunk/install/php/index.php =================================================================== --- trunk/install/php/index.php (リビジョン 119) +++ trunk/install/php/index.php (リビジョン 1) @@ -13,28 +13,17 @@ オプション mode:"new"を指定すると、新番組(第1話)のみの表示となる。 -now:YmdHi形式で日付を指定するとその日からの番組表が表示される。 DCC-JPL Japan/foltia project */ - -include("./foltialib.php"); +?> + + 209912342353 )){ - $now = date("YmdHi"); -} +$now = date("YmdHi"); + + function printtitle(){ @@ -44,22 +33,10 @@ - "; -//ディスク空き容量によって背景色表示変更 -warndiskfreearea(); -print "foltia:放映予定 + +foltia:放映予定 "; }//end function printtitle() - - -////////////////////////// -//ページの表示レコード数 -$lim = 300; -//クエリ取得 -$p = getgetnumform(p); -//ページ取得の計算 -list($st,$p,$p2) = number_page($p,$lim); -//////////////////////////// //同一番組他局検索 @@ -77,29 +54,33 @@ WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_program.tid = foltia_subtitle.tid -AND foltia_subtitle.enddatetime >= ? -ORDER BY \"startdatetime\" ASC -LIMIT 1000 - "; -// $reservedrssametid = m_query($con, $query, "DBクエリに失敗しました"); -$reservedrssametid = sql_query($con, $query, "DBクエリに失敗しました",array($now)); -$rowdata = $reservedrssametid->fetch(); -if ($rowdata) { - do { +AND foltia_subtitle.enddatetime >= '$now' + ORDER BY \"startdatetime\" ASC + "; + $reservedrssametid = m_query($con, $query, "DBクエリに失敗しました"); + $reservedmaxrowssameid = pg_num_rows($reservedrssametid); + + if ($reservedmaxrowssameid > 0 ){ + for ($rrow = 0; $rrow < $reservedmaxrowssameid ; $rrow++) { + $rowdata = pg_fetch_row($reservedrssametid, $rrow); $reservedpidsametid[] = $rowdata[7]; - } while ($rowdata = $reservedrssametid->fetch()); - + } $rowdata = ""; + $rrow = ""; }else{ - $reservedpidsametid = array(); + $reservedpidsametid = "" ; }//end if -$reservedrssametid->closeCursor(); //録画番組検索 $query = " SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.pid +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.pid FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid @@ -107,8 +88,13 @@ UNION SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.pid +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.pid FROM foltia_tvrecord LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) @@ -116,40 +102,17 @@ LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) WHERE foltia_tvrecord.stationid = 0 AND - foltia_subtitle.enddatetime >= '$now' ORDER BY x ASC -LIMIT 1000 - "; - -//$reservedrs = m_query($con, $query, "DBクエリに失敗しました"); -$query = " -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.pid -FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord -WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid -AND foltia_subtitle.enddatetime >= ? -UNION -SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_tvrecord.bitrate, foltia_subtitle.pid -FROM foltia_tvrecord -LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) -LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) -LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) -WHERE foltia_tvrecord.stationid = 0 AND - foltia_subtitle.enddatetime >= ? ORDER BY x ASC - "; -$reservedrs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$now)); - -$rowdata = $reservedrs->fetch(); -if ($rowdata) { - do { +foltia_subtitle.enddatetime >= '$now' ORDER BY \"startdatetime\" ASC + "; + + $reservedrs = m_query($con, $query, "DBクエリに失敗しました"); + $reservedmaxrows = pg_num_rows($reservedrs); + + if ($reservedmaxrows > 0 ){ + for ($rrow = 0; $rrow < $reservedmaxrows ; $rrow++) { + $rowdata = pg_fetch_row($reservedrs, $rrow); $reservedpid[] = $rowdata[8]; - } while ($rowdata = $reservedrs->fetch()); + } }else{ - $reservedpid = array(); + $reservedpid = ""; }//end if @@ -160,89 +123,45 @@ $query = " SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_subtitle.pid, foltia_subtitle.startoffset +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_subtitle.pid , +foltia_subtitle.startoffset FROM foltia_subtitle , foltia_program ,foltia_station WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid AND foltia_subtitle.enddatetime >= '$now' AND foltia_subtitle.countno = '1' -ORDER BY foltia_subtitle.startdatetime ASC -LIMIT 1000 - "; -$query = " +ORDER BY foltia_subtitle.startdatetime ASC + "; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + +}else{ + $query = " SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_subtitle.pid, foltia_subtitle.startoffset -FROM foltia_subtitle , foltia_program ,foltia_station -WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.enddatetime >= ? AND foltia_subtitle.countno = '1' -ORDER BY foltia_subtitle.startdatetime ASC -LIMIT 1000 - "; - -}else{ - -$query = " - SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_subtitle.pid, foltia_subtitle.startoffset +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_subtitle.pid , +foltia_subtitle.startoffset FROM foltia_subtitle , foltia_program ,foltia_station WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid AND foltia_subtitle.enddatetime >= '$now' -ORDER BY foltia_subtitle.startdatetime ASC -LIMIT 1000 - "; - -///////////////////////////////////////////////////////////// -//レコード総数取得 -$query = " - SELECT -COUNT(*) AS cnt -FROM foltia_subtitle , foltia_program ,foltia_station -WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.enddatetime >= ? -LIMIT 1000 - "; - -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($now)); -$rowdata = $rs->fetch(); - -$dtcnt = htmlspecialchars($rowdata[0]); -// echo $dtcnt; - -if (! $rowdata) { - die_exit("番組データがありません
    "); -}//endif -//////////////////////////////////////////////////////////// - -//レコード表示 -$query = " - SELECT - foltia_program.tid, stationname, foltia_program.title, - foltia_subtitle.countno, foltia_subtitle.subtitle, - foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, - foltia_subtitle.pid, foltia_subtitle.startoffset -FROM foltia_subtitle , foltia_program ,foltia_station -WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.enddatetime >= ? -ORDER BY foltia_subtitle.startdatetime ASC -LIMIT $lim OFFSET $st - "; - - -///////////////////////////////////////////////////////////////// +ORDER BY foltia_subtitle.startdatetime ASC + "; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); }//end if -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($now)); -$rowdata = $rs->fetch(); -// -// -if (! $rowdata) { +if ($maxrows == 0) { header("Status: 404 Not Found",TRUE,404); printtitle(); @@ -252,5 +171,4 @@ print "
    \n"; die_exit("番組データがありません
    "); - }//endif @@ -274,11 +192,7 @@

    放映番組リストを表示します。

    -columnCount(); - -//Autopager -echo "
    "; - + $maxcols = pg_num_fields($rs); ?> @@ -292,4 +206,5 @@ + @@ -298,5 +213,8 @@ \n"); - - } while ($rowdata = $rs->fetch()); + } ?>
    開始時刻(ズレ) 総尺
    - Index: trunk/install/php/showlibc.php =================================================================== --- trunk/install/php/showlibc.php (リビジョン 124) +++ trunk/install/php/showlibc.php (リビジョン 1) @@ -16,17 +16,5 @@ */ -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login + include("./foltialib.php"); $tid = getgetnumform(tid); @@ -41,92 +29,54 @@ + + + - - -"; -}else{ -print " - - - -"; -} -if ($tid == "") { - print "foltia:Lib - \n"; +print " +foltia:Lib $tid + +"; + if ($tid == "") { + print " \n"; printhtmlpageheader(); die_exit("再生可能番組がありません
    "); - } + } + +$con = m_connect(); +$now = date("YmdHi"); ?> - + +
    + +

    録画ライブラリ番組個別表示

    +
    +

    再生可能ムービーを表示します。
    fetch(); -if (! $rowdata) { -$syobocaldb = `curl "http://cal.syoboi.jp/db?Command=TitleLookup&TID=$tid" | head -2 `; +WHERE foltia_program.tid = $tid +"; +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$maxrows = pg_num_rows($rs); +if ($maxrows == 0 ){ + $syobocaldb = `curl "http://cal.syoboi.jp/db?Command=TitleLookup&TID=$tid" | head -2 `; $syobocaldb = mb_convert_encoding($syobocaldb, "EUC-JP", "UTF-8"); $syobocaldb = preg_match("/.*<\/Title>/", $syobocaldb,$title); $title = $title[0]; $title = strip_tags($title); - $title = htmlspecialchars($title) ; -}else{ +}else{ +$rowdata = pg_fetch_row($rs, 0); $title = $rowdata[0]; -$title = htmlspecialchars($title) ; -} -//ヘッダ続き -print "<title>foltia:Lib $tid:$title"; -$serveruri = getserveruri(); - - -if(ereg("iPhone",$useragent)){ - print " -

    -

    - -
    -"; -}else{ - -print " -
    -"; - printhtmlpageheader(); -print "

    録画ライブラリ番組個別表示

    -
    -

    再生可能ムービーを表示します。
    "; -if ($tid == 0){ -print "$title 【この番組のFolcastiTunesに登録]】
    \n"; -}else{ +} print "$title -【この番組のFolcast -[iTunesに登録]】
    \n"; -} -}// endif if(ereg("iPhone",$useragent)) - + htmlspecialchars($tid) . "\" target=\"_blank\">" . + htmlspecialchars($title) . " 【この番組のFolcast
    \n"; + + //確認 if (file_exists ("$recfolderpath/$tid.localized")){ @@ -138,4 +88,6 @@ } + + //新仕様/* 2006/10/26 */ if (file_exists("./selectcaptureimage.php") ) { @@ -144,39 +96,4 @@ $serverfqdn = getserverfqdn(); - -//Autopager -echo "

    "; -?> - - -

    - - -fetch(); -$dtcnt = htmlspecialchars($rowdata[0]); -//echo $dtcnt; -// -if (! $rowdata) { - die_exit("番組データがありません。
    "); -}//endif - -////////////////////////////////////////////////////////// -//レコード表示 $query = " SELECT @@ -194,24 +111,20 @@ LEFT JOIN foltia_program ON foltia_mp4files.tid = foltia_program.tid -WHERE foltia_mp4files.tid = ? +WHERE foltia_mp4files.tid = $tid ORDER BY \"startdatetime\" ASC -LIMIT $lim OFFSET $st "; $rs = ""; -//$rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); -$rowdata = $rs->fetch(); -if ($rowdata) { -if(ereg("iPhone",$useragent)){ - print "
      "; -}else{ +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$maxrows = pg_num_rows($rs); +if ($maxrows > 0 ){ print " "; -} - - do { + +for ($row = 0; $row < $maxrows; $row++) { + $rowdata = pg_fetch_row($rs, $row); + $title = $rowdata[1]; @@ -233,7 +146,5 @@ $subtitle = htmlspecialchars($subtitle); $onairdate = htmlspecialchars($onairdate); -$pid = htmlspecialchars($rowdata[6]); $fName = htmlspecialchars($rowdata[7]); - if (ereg(".MP4", $fName)){ $thumbnail = $fName; @@ -248,12 +159,10 @@ } //Starlight Breaker向け拡張 -//$debug_pg_num_rows = $rs ->rowCount(); +//$debug_pg_num_rows = pg_num_rows ($rs ); $caplink = ""; - if ($sbpluginexist == 1) { - //$capimgpath = htmlspecialchars(preg_replace("/.m2p/", "", $rowdata[5])); - $capimgpath = htmlspecialchars(preg_replace("/.m2./", "", $rowdata[5])); - - if (($capimgpath != "") && (file_exists("$recfolderpath/$tid.localized/img/$capimgpath") )){ +if (($sbpluginexist == 1) && (pg_num_rows ($rs ) > 0)){ + $capimgpath = htmlspecialchars(preg_replace("/.m2p/", "", $rowdata[5])); + if (file_exists("$recfolderpath/$tid.localized/img/$capimgpath") ){ $caplink = " / キャプ"; }else{ @@ -264,65 +173,144 @@ }//end if sb -if (file_exists("$recfolderpath/$tid.localized/mp4/$thumbnail") ){ - $imgsrcuri = "$httpmediamappath/$tid.localized/mp4/$thumbnail\" alt=\"$title $count $subtitle"; -}else{ - $imgsrcuri = "./img/no-thumbnail-img.png\" alt=\"NO IMAGE"; -} - -if(ereg("iPhone",$useragent)){ - -print "
    • $count $subtitle $onairdate
    • \n"; - -}else{ -print " - +print " + + -"; - if ($tid == 0){ - print "\n "; - }else{ - print "\n "; - }//if - - -print " + + - - -"; - - -}//endif iPhone - - } while ($rowdata = $rs->fetch()); + + +"; + + +}//for }else{ print "録画ファイルがありません
      \n"; }//if -if(ereg("iPhone",$useragent)){ - print "
    • 一覧へ戻る
    • \n"; - print "\n"; -}else{ - print "
      $count
      $subtitle$subtitle
      $subtitle
      $onairdate
      削除 / - $fName / - Player / - $caplink
      $fName / $caplink
      \n"; -} - -////////////////////////////////////////////// -//クエリ代入 -$query_st = $tid; -//Autopager処理とページのリンク表示 -page_display($query_st,$p,$p2,$lim,$dtcnt,""); -////////////////////////////////////////////// +//旧仕様 +/* +//ディレクトリからファイル一覧を取得 + exec ("ls $recfolderpath/$tid.localized/mp4/*.MP4", $mp4files); + +if (file_exists("./selectcaptureimage.php") ) { + $sbpluginexist = 1; +} + +$serverfqdn = getserverfqdn(); + +foreach($mp4files as $pathfName) { +$fName = ""; +$fNametmp = split("/",$pathfName); +$fName = array_pop($fNametmp); + if(($fName == ".") or ($fName == "..") ){ continue; } + +if (ereg(".MP4", $fName)){ + $thumbnail = $fName; + $thumbnail = ereg_replace(".MP4", ".THM", $thumbnail); + // $filesplit = split("-",$fName); +//print "\n"; +$query = ""; + +$query = " +SELECT +foltia_program.tid, +foltia_program.title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.m2pfilename , +foltia_subtitle.pid +FROM foltia_subtitle , foltia_program +WHERE foltia_subtitle.pspfilename = '$fName' +AND foltia_program.tid = foltia_subtitle.tid +AND foltia_program.tid = $tid +"; +//print "\n"; +$rs = ""; +$rs = m_query($con, $query, "DBクエリに失敗しました"); + +if (pg_num_rows ($rs ) == 0){ + + $count = "[話数]"; + $subtitle = "[サブタイトル]"; + $onairdate = "[放映日]"; + $caplink = ""; +}else{ + +$rowdata = pg_fetch_row($rs, $row); +$title = $rowdata[1]; + +if ($rowdata[2]== "" ){ + $count = "[話数]"; +}else{ + $count = $rowdata[2]; +} +if ($rowdata[3]== "" ){ + $subtitle = "[サブタイトル]"; +}else{ + $subtitle = $rowdata[3]; +} +$onairdate = $rowdata[4]; + +$tid = htmlspecialchars($rowdata[0]); +$title = htmlspecialchars($title); +$count = htmlspecialchars($count); +$subtitle = htmlspecialchars($subtitle); +$onairdate = htmlspecialchars($onairdate); + +$day = substr($onairdate,0,4)."/".substr($onairdate,4,2)."/".substr($onairdate,6,2); +$time = substr($onairdate,8,2).":".substr($onairdate,10,2); +$onairdate = "$day $time"; + +//Starlight Breaker向け拡張 +//$debug_pg_num_rows = pg_num_rows ($rs ); +$caplink = ""; + +if (($sbpluginexist == 1) && (pg_num_rows ($rs ) > 0)){ + $capimgpath = htmlspecialchars(preg_replace("/.m2p/", "", $rowdata[5])); + if (file_exists("$recfolderpath/$tid.localized/img/$capimgpath") ){ + $caplink = " / キャプ"; + }else{ + $caplink = " / キャプなし"; + } +}else{ +$caplink = ""; +}//end if sb + +} //end if 検索件数が0のとき +//-- +print " + + + $count + + + $subtitle + + + $onairdate + + + $fName / $caplink + +"; + + }//end if ereg m2p +}//end foreach + +*/ +//旧仕様ココまで ?> + + + - - Index: trunk/install/php/graytable.css =================================================================== --- trunk/install/php/graytable.css (リビジョン 94) +++ trunk/install/php/graytable.css (リビジョン 1) @@ -1,3 +1,4 @@ -// body * {margin:0px;padding:0px;border:0px;} + +body * {margin:0px;padding:0px;border:0px;} body { @@ -24,11 +25,9 @@ background-color: #CCC; } -th + th, td + td { border-right: 1px solid #AAA; } -td { vertical-align: top; } -th, td { border-right: 1px solid #AAA;border-bottom: 1px solid #AAA; padding: 3px;} +th + th, td + td { border-left: 1px solid #AAA; } +td { border-top: 1px solid #AAA; } +th, td { padding: 3px;} tr.reserved{background-color: #FFDDDD;} tr.reservedtitle{background-color: #DDDDFF;} -tr.overwraped{background-color: #FF0000;} -tr.exoverwraped{background-color: #FF00FF;} /* 全体共通 */ @@ -59,26 +58,1465 @@ li {width:90px;background:#ffa;padding:2px;border:1px solid white;line-height:1.1em;} -td#anime {background:#FFC0CB;} /* アニメ・特撮 */ -td#kids {background:#FFFFDC;} /* キッズ */ -td#sports {background:#D7D7FF;} /* スポーツ */ -td#etc {background:#F3F3F3;} /* その他 */ -td#news {background:#E3C0FF;} /* ニュース・報道 */ -td#cinema {background:#FAA5FF;} /* 映画 */ -td#education{background-color:#C9C9C9;} /* 教育 */ -td#documentary{background-color:#E8FFE8;} /* ドキュメンタリー・教養 */ -td#music{background-color: #FFEAD5;} /* 音楽 */ -td#variety{background-color: #E0F0CA;} /* バラエティ */ -td#hobby{background-color: #FDF7BB;} /* 趣味・実用 */ -td#information {background:#B6FFFA;} /* 情報 */ -td#stage{background-color: #FFC0E3;} /* 演劇 */ -td#drama {background:#FFD0FF;} /* ドラマ */ - -#information:hover, #hobby:hover, #education:hover, #music:hover, #stage:hover, #cinema:hover, #variety:hover, #news:hover, #drama:hover, #documentary:hover, #sports:hover, #kids:hover, #anime:hover, #etc:hover - { - background-color: #FFFA4D; - padding-right: 1px; padding-bottom:1px; - border-right: 3px solid #aaa; border-bottom: 3px solid #666; - cursor:pointer; - } - - +.t0800 {position:absolute;top: 0px ;} +.t0801 {position:absolute;top: 4px ;} +.t0802 {position:absolute;top: 8px ;} +.t0803 {position:absolute;top: 12px ;} +.t0804 {position:absolute;top: 16px ;} +.t0805 {position:absolute;top: 20px ;} +.t0806 {position:absolute;top: 24px ;} +.t0807 {position:absolute;top: 28px ;} +.t0808 {position:absolute;top: 32px ;} +.t0809 {position:absolute;top: 36px ;} +.t0810 {position:absolute;top: 40px ;} +.t0811 {position:absolute;top: 44px ;} +.t0812 {position:absolute;top: 48px ;} +.t0813 {position:absolute;top: 52px ;} +.t0814 {position:absolute;top: 56px ;} +.t0815 {position:absolute;top: 60px ;} +.t0816 {position:absolute;top: 64px ;} +.t0817 {position:absolute;top: 68px ;} +.t0818 {position:absolute;top: 72px ;} +.t0819 {position:absolute;top: 76px ;} +.t0820 {position:absolute;top: 80px ;} +.t0821 {position:absolute;top: 84px ;} +.t0822 {position:absolute;top: 88px ;} +.t0823 {position:absolute;top: 92px ;} +.t0824 {position:absolute;top: 96px ;} +.t0825 {position:absolute;top: 100px ;} +.t0826 {position:absolute;top: 104px ;} +.t0827 {position:absolute;top: 108px ;} +.t0828 {position:absolute;top: 112px ;} +.t0829 {position:absolute;top: 116px ;} +.t0830 {position:absolute;top: 120px ;} +.t0831 {position:absolute;top: 124px ;} +.t0832 {position:absolute;top: 128px ;} +.t0833 {position:absolute;top: 132px ;} +.t0834 {position:absolute;top: 136px ;} +.t0835 {position:absolute;top: 140px ;} +.t0836 {position:absolute;top: 144px ;} +.t0837 {position:absolute;top: 148px ;} +.t0838 {position:absolute;top: 152px ;} +.t0839 {position:absolute;top: 156px ;} +.t0840 {position:absolute;top: 160px ;} +.t0841 {position:absolute;top: 164px ;} +.t0842 {position:absolute;top: 168px ;} +.t0843 {position:absolute;top: 172px ;} +.t0844 {position:absolute;top: 176px ;} +.t0845 {position:absolute;top: 180px ;} +.t0846 {position:absolute;top: 184px ;} +.t0847 {position:absolute;top: 188px ;} +.t0848 {position:absolute;top: 192px ;} +.t0849 {position:absolute;top: 196px ;} +.t0850 {position:absolute;top: 200px ;} +.t0851 {position:absolute;top: 204px ;} +.t0852 {position:absolute;top: 208px ;} +.t0853 {position:absolute;top: 212px ;} +.t0854 {position:absolute;top: 216px ;} +.t0855 {position:absolute;top: 220px ;} +.t0856 {position:absolute;top: 224px ;} +.t0857 {position:absolute;top: 228px ;} +.t0858 {position:absolute;top: 232px ;} +.t0859 {position:absolute;top: 236px ;} + +.t0900 {position:absolute;top: 244px ;} +.t0901 {position:absolute;top: 248px ;} +.t0902 {position:absolute;top: 252px ;} +.t0903 {position:absolute;top: 256px ;} +.t0904 {position:absolute;top: 260px ;} +.t0905 {position:absolute;top: 264px ;} +.t0906 {position:absolute;top: 268px ;} +.t0907 {position:absolute;top: 272px ;} +.t0908 {position:absolute;top: 276px ;} +.t0909 {position:absolute;top: 280px ;} +.t0910 {position:absolute;top: 284px ;} +.t0911 {position:absolute;top: 288px ;} +.t0912 {position:absolute;top: 292px ;} +.t0913 {position:absolute;top: 296px ;} +.t0914 {position:absolute;top: 300px ;} +.t0915 {position:absolute;top: 304px ;} +.t0916 {position:absolute;top: 308px ;} +.t0917 {position:absolute;top: 312px ;} +.t0918 {position:absolute;top: 316px ;} +.t0919 {position:absolute;top: 320px ;} +.t0920 {position:absolute;top: 324px ;} +.t0921 {position:absolute;top: 328px ;} +.t0922 {position:absolute;top: 332px ;} +.t0923 {position:absolute;top: 336px ;} +.t0924 {position:absolute;top: 340px ;} +.t0925 {position:absolute;top: 344px ;} +.t0926 {position:absolute;top: 348px ;} +.t0927 {position:absolute;top: 352px ;} +.t0928 {position:absolute;top: 356px ;} +.t0929 {position:absolute;top: 360px ;} +.t0930 {position:absolute;top: 364px ;} +.t0931 {position:absolute;top: 368px ;} +.t0932 {position:absolute;top: 372px ;} +.t0933 {position:absolute;top: 376px ;} +.t0934 {position:absolute;top: 380px ;} +.t0935 {position:absolute;top: 384px ;} +.t0936 {position:absolute;top: 388px ;} +.t0937 {position:absolute;top: 392px ;} +.t0938 {position:absolute;top: 396px ;} +.t0939 {position:absolute;top: 400px ;} +.t0940 {position:absolute;top: 404px ;} +.t0941 {position:absolute;top: 408px ;} +.t0942 {position:absolute;top: 412px ;} +.t0943 {position:absolute;top: 416px ;} +.t0944 {position:absolute;top: 420px ;} +.t0945 {position:absolute;top: 424px ;} +.t0946 {position:absolute;top: 428px ;} +.t0947 {position:absolute;top: 432px ;} +.t0948 {position:absolute;top: 436px ;} +.t0949 {position:absolute;top: 440px ;} +.t0950 {position:absolute;top: 444px ;} +.t0951 {position:absolute;top: 448px ;} +.t0952 {position:absolute;top: 452px ;} +.t0953 {position:absolute;top: 456px ;} +.t0954 {position:absolute;top: 460px ;} +.t0955 {position:absolute;top: 464px ;} +.t0956 {position:absolute;top: 468px ;} +.t0957 {position:absolute;top: 472px ;} +.t0958 {position:absolute;top: 476px ;} +.t0959 {position:absolute;top: 480px ;} + +.t1000 {position:absolute;top: 488px ;} +.t1001 {position:absolute;top: 492px ;} +.t1002 {position:absolute;top: 496px ;} +.t1003 {position:absolute;top: 500px ;} +.t1004 {position:absolute;top: 504px ;} +.t1005 {position:absolute;top: 508px ;} +.t1006 {position:absolute;top: 512px ;} +.t1007 {position:absolute;top: 516px ;} +.t1008 {position:absolute;top: 520px ;} +.t1009 {position:absolute;top: 524px ;} +.t1010 {position:absolute;top: 528px ;} +.t1011 {position:absolute;top: 532px ;} +.t1012 {position:absolute;top: 536px ;} +.t1013 {position:absolute;top: 540px ;} +.t1014 {position:absolute;top: 544px ;} +.t1015 {position:absolute;top: 548px ;} +.t1016 {position:absolute;top: 552px ;} +.t1017 {position:absolute;top: 556px ;} +.t1018 {position:absolute;top: 560px ;} +.t1019 {position:absolute;top: 564px ;} +.t1020 {position:absolute;top: 568px ;} +.t1021 {position:absolute;top: 572px ;} +.t1022 {position:absolute;top: 576px ;} +.t1023 {position:absolute;top: 580px ;} +.t1024 {position:absolute;top: 584px ;} +.t1025 {position:absolute;top: 588px ;} +.t1026 {position:absolute;top: 592px ;} +.t1027 {position:absolute;top: 596px ;} +.t1028 {position:absolute;top: 600px ;} +.t1029 {position:absolute;top: 604px ;} +.t1030 {position:absolute;top: 608px ;} +.t1031 {position:absolute;top: 612px ;} +.t1032 {position:absolute;top: 616px ;} +.t1033 {position:absolute;top: 620px ;} +.t1034 {position:absolute;top: 624px ;} +.t1035 {position:absolute;top: 628px ;} +.t1036 {position:absolute;top: 632px ;} +.t1037 {position:absolute;top: 636px ;} +.t1038 {position:absolute;top: 640px ;} +.t1039 {position:absolute;top: 644px ;} +.t1040 {position:absolute;top: 648px ;} +.t1041 {position:absolute;top: 652px ;} +.t1042 {position:absolute;top: 656px ;} +.t1043 {position:absolute;top: 660px ;} +.t1044 {position:absolute;top: 664px ;} +.t1045 {position:absolute;top: 668px ;} +.t1046 {position:absolute;top: 672px ;} +.t1047 {position:absolute;top: 676px ;} +.t1048 {position:absolute;top: 680px ;} +.t1049 {position:absolute;top: 684px ;} +.t1050 {position:absolute;top: 688px ;} +.t1051 {position:absolute;top: 692px ;} +.t1052 {position:absolute;top: 696px ;} +.t1053 {position:absolute;top: 700px ;} +.t1054 {position:absolute;top: 704px ;} +.t1055 {position:absolute;top: 708px ;} +.t1056 {position:absolute;top: 712px ;} +.t1057 {position:absolute;top: 716px ;} +.t1058 {position:absolute;top: 720px ;} +.t1059 {position:absolute;top: 724px ;} + +.t1100 {position:absolute;top: 732px ;} +.t1101 {position:absolute;top: 736px ;} +.t1102 {position:absolute;top: 740px ;} +.t1103 {position:absolute;top: 744px ;} +.t1104 {position:absolute;top: 748px ;} +.t1105 {position:absolute;top: 752px ;} +.t1106 {position:absolute;top: 756px ;} +.t1107 {position:absolute;top: 760px ;} +.t1108 {position:absolute;top: 764px ;} +.t1109 {position:absolute;top: 768px ;} +.t1110 {position:absolute;top: 772px ;} +.t1111 {position:absolute;top: 776px ;} +.t1112 {position:absolute;top: 780px ;} +.t1113 {position:absolute;top: 784px ;} +.t1114 {position:absolute;top: 788px ;} +.t1115 {position:absolute;top: 792px ;} +.t1116 {position:absolute;top: 796px ;} +.t1117 {position:absolute;top: 800px ;} +.t1118 {position:absolute;top: 804px ;} +.t1119 {position:absolute;top: 808px ;} +.t1120 {position:absolute;top: 812px ;} +.t1121 {position:absolute;top: 816px ;} +.t1122 {position:absolute;top: 820px ;} +.t1123 {position:absolute;top: 824px ;} +.t1124 {position:absolute;top: 828px ;} +.t1125 {position:absolute;top: 832px ;} +.t1126 {position:absolute;top: 836px ;} +.t1127 {position:absolute;top: 840px ;} +.t1128 {position:absolute;top: 844px ;} +.t1129 {position:absolute;top: 848px ;} +.t1130 {position:absolute;top: 852px ;} +.t1131 {position:absolute;top: 856px ;} +.t1132 {position:absolute;top: 860px ;} +.t1133 {position:absolute;top: 864px ;} +.t1134 {position:absolute;top: 868px ;} +.t1135 {position:absolute;top: 872px ;} +.t1136 {position:absolute;top: 876px ;} +.t1137 {position:absolute;top: 880px ;} +.t1138 {position:absolute;top: 884px ;} +.t1139 {position:absolute;top: 888px ;} +.t1140 {position:absolute;top: 892px ;} +.t1141 {position:absolute;top: 896px ;} +.t1142 {position:absolute;top: 900px ;} +.t1143 {position:absolute;top: 904px ;} +.t1144 {position:absolute;top: 908px ;} +.t1145 {position:absolute;top: 912px ;} +.t1146 {position:absolute;top: 916px ;} +.t1147 {position:absolute;top: 920px ;} +.t1148 {position:absolute;top: 924px ;} +.t1149 {position:absolute;top: 928px ;} +.t1150 {position:absolute;top: 932px ;} +.t1151 {position:absolute;top: 936px ;} +.t1152 {position:absolute;top: 940px ;} +.t1153 {position:absolute;top: 944px ;} +.t1154 {position:absolute;top: 948px ;} +.t1155 {position:absolute;top: 952px ;} +.t1156 {position:absolute;top: 956px ;} +.t1157 {position:absolute;top: 960px ;} +.t1158 {position:absolute;top: 964px ;} +.t1159 {position:absolute;top: 968px ;} + +.t1200 {position:absolute;top: 976px ;} +.t1201 {position:absolute;top: 980px ;} +.t1202 {position:absolute;top: 984px ;} +.t1203 {position:absolute;top: 988px ;} +.t1204 {position:absolute;top: 992px ;} +.t1205 {position:absolute;top: 996px ;} +.t1206 {position:absolute;top: 1000px ;} +.t1207 {position:absolute;top: 1004px ;} +.t1208 {position:absolute;top: 1008px ;} +.t1209 {position:absolute;top: 1012px ;} +.t1210 {position:absolute;top: 1016px ;} +.t1211 {position:absolute;top: 1020px ;} +.t1212 {position:absolute;top: 1024px ;} +.t1213 {position:absolute;top: 1028px ;} +.t1214 {position:absolute;top: 1032px ;} +.t1215 {position:absolute;top: 1036px ;} +.t1216 {position:absolute;top: 1040px ;} +.t1217 {position:absolute;top: 1044px ;} +.t1218 {position:absolute;top: 1048px ;} +.t1219 {position:absolute;top: 1052px ;} +.t1220 {position:absolute;top: 1056px ;} +.t1221 {position:absolute;top: 1060px ;} +.t1222 {position:absolute;top: 1064px ;} +.t1223 {position:absolute;top: 1068px ;} +.t1224 {position:absolute;top: 1072px ;} +.t1225 {position:absolute;top: 1076px ;} +.t1226 {position:absolute;top: 1080px ;} +.t1227 {position:absolute;top: 1084px ;} +.t1228 {position:absolute;top: 1088px ;} +.t1229 {position:absolute;top: 1092px ;} +.t1230 {position:absolute;top: 1096px ;} +.t1231 {position:absolute;top: 1100px ;} +.t1232 {position:absolute;top: 1104px ;} +.t1233 {position:absolute;top: 1108px ;} +.t1234 {position:absolute;top: 1112px ;} +.t1235 {position:absolute;top: 1116px ;} +.t1236 {position:absolute;top: 1120px ;} +.t1237 {position:absolute;top: 1124px ;} +.t1238 {position:absolute;top: 1128px ;} +.t1239 {position:absolute;top: 1132px ;} +.t1240 {position:absolute;top: 1136px ;} +.t1241 {position:absolute;top: 1140px ;} +.t1242 {position:absolute;top: 1144px ;} +.t1243 {position:absolute;top: 1148px ;} +.t1244 {position:absolute;top: 1152px ;} +.t1245 {position:absolute;top: 1156px ;} +.t1246 {position:absolute;top: 1160px ;} +.t1247 {position:absolute;top: 1164px ;} +.t1248 {position:absolute;top: 1168px ;} +.t1249 {position:absolute;top: 1172px ;} +.t1250 {position:absolute;top: 1176px ;} +.t1251 {position:absolute;top: 1180px ;} +.t1252 {position:absolute;top: 1184px ;} +.t1253 {position:absolute;top: 1188px ;} +.t1254 {position:absolute;top: 1192px ;} +.t1255 {position:absolute;top: 1196px ;} +.t1256 {position:absolute;top: 1200px ;} +.t1257 {position:absolute;top: 1204px ;} +.t1258 {position:absolute;top: 1208px ;} +.t1259 {position:absolute;top: 1212px ;} + +.t1300 {position:absolute;top: 1220px ;} +.t1301 {position:absolute;top: 1224px ;} +.t1302 {position:absolute;top: 1228px ;} +.t1303 {position:absolute;top: 1232px ;} +.t1304 {position:absolute;top: 1236px ;} +.t1305 {position:absolute;top: 1240px ;} +.t1306 {position:absolute;top: 1244px ;} +.t1307 {position:absolute;top: 1248px ;} +.t1308 {position:absolute;top: 1252px ;} +.t1309 {position:absolute;top: 1256px ;} +.t1310 {position:absolute;top: 1260px ;} +.t1311 {position:absolute;top: 1264px ;} +.t1312 {position:absolute;top: 1268px ;} +.t1313 {position:absolute;top: 1272px ;} +.t1314 {position:absolute;top: 1276px ;} +.t1315 {position:absolute;top: 1280px ;} +.t1316 {position:absolute;top: 1284px ;} +.t1317 {position:absolute;top: 1288px ;} +.t1318 {position:absolute;top: 1292px ;} +.t1319 {position:absolute;top: 1296px ;} +.t1320 {position:absolute;top: 1300px ;} +.t1321 {position:absolute;top: 1304px ;} +.t1322 {position:absolute;top: 1308px ;} +.t1323 {position:absolute;top: 1312px ;} +.t1324 {position:absolute;top: 1316px ;} +.t1325 {position:absolute;top: 1320px ;} +.t1326 {position:absolute;top: 1324px ;} +.t1327 {position:absolute;top: 1328px ;} +.t1328 {position:absolute;top: 1332px ;} +.t1329 {position:absolute;top: 1336px ;} +.t1330 {position:absolute;top: 1340px ;} +.t1331 {position:absolute;top: 1344px ;} +.t1332 {position:absolute;top: 1348px ;} +.t1333 {position:absolute;top: 1352px ;} +.t1334 {position:absolute;top: 1356px ;} +.t1335 {position:absolute;top: 1360px ;} +.t1336 {position:absolute;top: 1364px ;} +.t1337 {position:absolute;top: 1368px ;} +.t1338 {position:absolute;top: 1372px ;} +.t1339 {position:absolute;top: 1376px ;} +.t1340 {position:absolute;top: 1380px ;} +.t1341 {position:absolute;top: 1384px ;} +.t1342 {position:absolute;top: 1388px ;} +.t1343 {position:absolute;top: 1392px ;} +.t1344 {position:absolute;top: 1396px ;} +.t1345 {position:absolute;top: 1400px ;} +.t1346 {position:absolute;top: 1404px ;} +.t1347 {position:absolute;top: 1408px ;} +.t1348 {position:absolute;top: 1412px ;} +.t1349 {position:absolute;top: 1416px ;} +.t1350 {position:absolute;top: 1420px ;} +.t1351 {position:absolute;top: 1424px ;} +.t1352 {position:absolute;top: 1428px ;} +.t1353 {position:absolute;top: 1432px ;} +.t1354 {position:absolute;top: 1436px ;} +.t1355 {position:absolute;top: 1440px ;} +.t1356 {position:absolute;top: 1444px ;} +.t1357 {position:absolute;top: 1448px ;} +.t1358 {position:absolute;top: 1452px ;} +.t1359 {position:absolute;top: 1456px ;} + +.t1400 {position:absolute;top: 1464px ;} +.t1401 {position:absolute;top: 1468px ;} +.t1402 {position:absolute;top: 1472px ;} +.t1403 {position:absolute;top: 1476px ;} +.t1404 {position:absolute;top: 1480px ;} +.t1405 {position:absolute;top: 1484px ;} +.t1406 {position:absolute;top: 1488px ;} +.t1407 {position:absolute;top: 1492px ;} +.t1408 {position:absolute;top: 1496px ;} +.t1409 {position:absolute;top: 1500px ;} +.t1410 {position:absolute;top: 1504px ;} +.t1411 {position:absolute;top: 1508px ;} +.t1412 {position:absolute;top: 1512px ;} +.t1413 {position:absolute;top: 1516px ;} +.t1414 {position:absolute;top: 1520px ;} +.t1415 {position:absolute;top: 1524px ;} +.t1416 {position:absolute;top: 1528px ;} +.t1417 {position:absolute;top: 1532px ;} +.t1418 {position:absolute;top: 1536px ;} +.t1419 {position:absolute;top: 1540px ;} +.t1420 {position:absolute;top: 1544px ;} +.t1421 {position:absolute;top: 1548px ;} +.t1422 {position:absolute;top: 1552px ;} +.t1423 {position:absolute;top: 1556px ;} +.t1424 {position:absolute;top: 1560px ;} +.t1425 {position:absolute;top: 1564px ;} +.t1426 {position:absolute;top: 1568px ;} +.t1427 {position:absolute;top: 1572px ;} +.t1428 {position:absolute;top: 1576px ;} +.t1429 {position:absolute;top: 1580px ;} +.t1430 {position:absolute;top: 1584px ;} +.t1431 {position:absolute;top: 1588px ;} +.t1432 {position:absolute;top: 1592px ;} +.t1433 {position:absolute;top: 1596px ;} +.t1434 {position:absolute;top: 1600px ;} +.t1435 {position:absolute;top: 1604px ;} +.t1436 {position:absolute;top: 1608px ;} +.t1437 {position:absolute;top: 1612px ;} +.t1438 {position:absolute;top: 1616px ;} +.t1439 {position:absolute;top: 1620px ;} +.t1440 {position:absolute;top: 1624px ;} +.t1441 {position:absolute;top: 1628px ;} +.t1442 {position:absolute;top: 1632px ;} +.t1443 {position:absolute;top: 1636px ;} +.t1444 {position:absolute;top: 1640px ;} +.t1445 {position:absolute;top: 1644px ;} +.t1446 {position:absolute;top: 1648px ;} +.t1447 {position:absolute;top: 1652px ;} +.t1448 {position:absolute;top: 1656px ;} +.t1449 {position:absolute;top: 1660px ;} +.t1450 {position:absolute;top: 1664px ;} +.t1451 {position:absolute;top: 1668px ;} +.t1452 {position:absolute;top: 1672px ;} +.t1453 {position:absolute;top: 1676px ;} +.t1454 {position:absolute;top: 1680px ;} +.t1455 {position:absolute;top: 1684px ;} +.t1456 {position:absolute;top: 1688px ;} +.t1457 {position:absolute;top: 1692px ;} +.t1458 {position:absolute;top: 1696px ;} +.t1459 {position:absolute;top: 1700px ;} + +.t1500 {position:absolute;top: 1708px ;} +.t1501 {position:absolute;top: 1712px ;} +.t1502 {position:absolute;top: 1716px ;} +.t1503 {position:absolute;top: 1720px ;} +.t1504 {position:absolute;top: 1724px ;} +.t1505 {position:absolute;top: 1728px ;} +.t1506 {position:absolute;top: 1732px ;} +.t1507 {position:absolute;top: 1736px ;} +.t1508 {position:absolute;top: 1740px ;} +.t1509 {position:absolute;top: 1744px ;} +.t1510 {position:absolute;top: 1748px ;} +.t1511 {position:absolute;top: 1752px ;} +.t1512 {position:absolute;top: 1756px ;} +.t1513 {position:absolute;top: 1760px ;} +.t1514 {position:absolute;top: 1764px ;} +.t1515 {position:absolute;top: 1768px ;} +.t1516 {position:absolute;top: 1772px ;} +.t1517 {position:absolute;top: 1776px ;} +.t1518 {position:absolute;top: 1780px ;} +.t1519 {position:absolute;top: 1784px ;} +.t1520 {position:absolute;top: 1788px ;} +.t1521 {position:absolute;top: 1792px ;} +.t1522 {position:absolute;top: 1796px ;} +.t1523 {position:absolute;top: 1800px ;} +.t1524 {position:absolute;top: 1804px ;} +.t1525 {position:absolute;top: 1808px ;} +.t1526 {position:absolute;top: 1812px ;} +.t1527 {position:absolute;top: 1816px ;} +.t1528 {position:absolute;top: 1820px ;} +.t1529 {position:absolute;top: 1824px ;} +.t1530 {position:absolute;top: 1828px ;} +.t1531 {position:absolute;top: 1832px ;} +.t1532 {position:absolute;top: 1836px ;} +.t1533 {position:absolute;top: 1840px ;} +.t1534 {position:absolute;top: 1844px ;} +.t1535 {position:absolute;top: 1848px ;} +.t1536 {position:absolute;top: 1852px ;} +.t1537 {position:absolute;top: 1856px ;} +.t1538 {position:absolute;top: 1860px ;} +.t1539 {position:absolute;top: 1864px ;} +.t1540 {position:absolute;top: 1868px ;} +.t1541 {position:absolute;top: 1872px ;} +.t1542 {position:absolute;top: 1876px ;} +.t1543 {position:absolute;top: 1880px ;} +.t1544 {position:absolute;top: 1884px ;} +.t1545 {position:absolute;top: 1888px ;} +.t1546 {position:absolute;top: 1892px ;} +.t1547 {position:absolute;top: 1896px ;} +.t1548 {position:absolute;top: 1900px ;} +.t1549 {position:absolute;top: 1904px ;} +.t1550 {position:absolute;top: 1908px ;} +.t1551 {position:absolute;top: 1912px ;} +.t1552 {position:absolute;top: 1916px ;} +.t1553 {position:absolute;top: 1920px ;} +.t1554 {position:absolute;top: 1924px ;} +.t1555 {position:absolute;top: 1928px ;} +.t1556 {position:absolute;top: 1932px ;} +.t1557 {position:absolute;top: 1936px ;} +.t1558 {position:absolute;top: 1940px ;} +.t1559 {position:absolute;top: 1944px ;} + +.t1600 {position:absolute;top: 1952px ;} +.t1601 {position:absolute;top: 1956px ;} +.t1602 {position:absolute;top: 1960px ;} +.t1603 {position:absolute;top: 1964px ;} +.t1604 {position:absolute;top: 1968px ;} +.t1605 {position:absolute;top: 1972px ;} +.t1606 {position:absolute;top: 1976px ;} +.t1607 {position:absolute;top: 1980px ;} +.t1608 {position:absolute;top: 1984px ;} +.t1609 {position:absolute;top: 1988px ;} +.t1610 {position:absolute;top: 1992px ;} +.t1611 {position:absolute;top: 1996px ;} +.t1612 {position:absolute;top: 2000px ;} +.t1613 {position:absolute;top: 2004px ;} +.t1614 {position:absolute;top: 2008px ;} +.t1615 {position:absolute;top: 2012px ;} +.t1616 {position:absolute;top: 2016px ;} +.t1617 {position:absolute;top: 2020px ;} +.t1618 {position:absolute;top: 2024px ;} +.t1619 {position:absolute;top: 2028px ;} +.t1620 {position:absolute;top: 2032px ;} +.t1621 {position:absolute;top: 2036px ;} +.t1622 {position:absolute;top: 2040px ;} +.t1623 {position:absolute;top: 2044px ;} +.t1624 {position:absolute;top: 2048px ;} +.t1625 {position:absolute;top: 2052px ;} +.t1626 {position:absolute;top: 2056px ;} +.t1627 {position:absolute;top: 2060px ;} +.t1628 {position:absolute;top: 2064px ;} +.t1629 {position:absolute;top: 2068px ;} +.t1630 {position:absolute;top: 2072px ;} +.t1631 {position:absolute;top: 2076px ;} +.t1632 {position:absolute;top: 2080px ;} +.t1633 {position:absolute;top: 2084px ;} +.t1634 {position:absolute;top: 2088px ;} +.t1635 {position:absolute;top: 2092px ;} +.t1636 {position:absolute;top: 2096px ;} +.t1637 {position:absolute;top: 2100px ;} +.t1638 {position:absolute;top: 2104px ;} +.t1639 {position:absolute;top: 2108px ;} +.t1640 {position:absolute;top: 2112px ;} +.t1641 {position:absolute;top: 2116px ;} +.t1642 {position:absolute;top: 2120px ;} +.t1643 {position:absolute;top: 2124px ;} +.t1644 {position:absolute;top: 2128px ;} +.t1645 {position:absolute;top: 2132px ;} +.t1646 {position:absolute;top: 2136px ;} +.t1647 {position:absolute;top: 2140px ;} +.t1648 {position:absolute;top: 2144px ;} +.t1649 {position:absolute;top: 2148px ;} +.t1650 {position:absolute;top: 2152px ;} +.t1651 {position:absolute;top: 2156px ;} +.t1652 {position:absolute;top: 2160px ;} +.t1653 {position:absolute;top: 2164px ;} +.t1654 {position:absolute;top: 2168px ;} +.t1655 {position:absolute;top: 2172px ;} +.t1656 {position:absolute;top: 2176px ;} +.t1657 {position:absolute;top: 2180px ;} +.t1658 {position:absolute;top: 2184px ;} +.t1659 {position:absolute;top: 2188px ;} + +.t1700 {position:absolute;top: 2196px ;} +.t1701 {position:absolute;top: 2200px ;} +.t1702 {position:absolute;top: 2204px ;} +.t1703 {position:absolute;top: 2208px ;} +.t1704 {position:absolute;top: 2212px ;} +.t1705 {position:absolute;top: 2216px ;} +.t1706 {position:absolute;top: 2220px ;} +.t1707 {position:absolute;top: 2224px ;} +.t1708 {position:absolute;top: 2228px ;} +.t1709 {position:absolute;top: 2232px ;} +.t1710 {position:absolute;top: 2236px ;} +.t1711 {position:absolute;top: 2240px ;} +.t1712 {position:absolute;top: 2244px ;} +.t1713 {position:absolute;top: 2248px ;} +.t1714 {position:absolute;top: 2252px ;} +.t1715 {position:absolute;top: 2256px ;} +.t1716 {position:absolute;top: 2260px ;} +.t1717 {position:absolute;top: 2264px ;} +.t1718 {position:absolute;top: 2268px ;} +.t1719 {position:absolute;top: 2272px ;} +.t1720 {position:absolute;top: 2276px ;} +.t1721 {position:absolute;top: 2280px ;} +.t1722 {position:absolute;top: 2284px ;} +.t1723 {position:absolute;top: 2288px ;} +.t1724 {position:absolute;top: 2292px ;} +.t1725 {position:absolute;top: 2296px ;} +.t1726 {position:absolute;top: 2300px ;} +.t1727 {position:absolute;top: 2304px ;} +.t1728 {position:absolute;top: 2308px ;} +.t1729 {position:absolute;top: 2312px ;} +.t1730 {position:absolute;top: 2316px ;} +.t1731 {position:absolute;top: 2320px ;} +.t1732 {position:absolute;top: 2324px ;} +.t1733 {position:absolute;top: 2328px ;} +.t1734 {position:absolute;top: 2332px ;} +.t1735 {position:absolute;top: 2336px ;} +.t1736 {position:absolute;top: 2340px ;} +.t1737 {position:absolute;top: 2344px ;} +.t1738 {position:absolute;top: 2348px ;} +.t1739 {position:absolute;top: 2352px ;} +.t1740 {position:absolute;top: 2356px ;} +.t1741 {position:absolute;top: 2360px ;} +.t1742 {position:absolute;top: 2364px ;} +.t1743 {position:absolute;top: 2368px ;} +.t1744 {position:absolute;top: 2372px ;} +.t1745 {position:absolute;top: 2376px ;} +.t1746 {position:absolute;top: 2380px ;} +.t1747 {position:absolute;top: 2384px ;} +.t1748 {position:absolute;top: 2388px ;} +.t1749 {position:absolute;top: 2392px ;} +.t1750 {position:absolute;top: 2396px ;} +.t1751 {position:absolute;top: 2400px ;} +.t1752 {position:absolute;top: 2404px ;} +.t1753 {position:absolute;top: 2408px ;} +.t1754 {position:absolute;top: 2412px ;} +.t1755 {position:absolute;top: 2416px ;} +.t1756 {position:absolute;top: 2420px ;} +.t1757 {position:absolute;top: 2424px ;} +.t1758 {position:absolute;top: 2428px ;} +.t1759 {position:absolute;top: 2432px ;} + +.t1800 {position:absolute;top: 2440px ;} +.t1801 {position:absolute;top: 2444px ;} +.t1802 {position:absolute;top: 2448px ;} +.t1803 {position:absolute;top: 2452px ;} +.t1804 {position:absolute;top: 2456px ;} +.t1805 {position:absolute;top: 2460px ;} +.t1806 {position:absolute;top: 2464px ;} +.t1807 {position:absolute;top: 2468px ;} +.t1808 {position:absolute;top: 2472px ;} +.t1809 {position:absolute;top: 2476px ;} +.t1810 {position:absolute;top: 2480px ;} +.t1811 {position:absolute;top: 2484px ;} +.t1812 {position:absolute;top: 2488px ;} +.t1813 {position:absolute;top: 2492px ;} +.t1814 {position:absolute;top: 2496px ;} +.t1815 {position:absolute;top: 2500px ;} +.t1816 {position:absolute;top: 2504px ;} +.t1817 {position:absolute;top: 2508px ;} +.t1818 {position:absolute;top: 2512px ;} +.t1819 {position:absolute;top: 2516px ;} +.t1820 {position:absolute;top: 2520px ;} +.t1821 {position:absolute;top: 2524px ;} +.t1822 {position:absolute;top: 2528px ;} +.t1823 {position:absolute;top: 2532px ;} +.t1824 {position:absolute;top: 2536px ;} +.t1825 {position:absolute;top: 2540px ;} +.t1826 {position:absolute;top: 2544px ;} +.t1827 {position:absolute;top: 2548px ;} +.t1828 {position:absolute;top: 2552px ;} +.t1829 {position:absolute;top: 2556px ;} +.t1830 {position:absolute;top: 2560px ;} +.t1831 {position:absolute;top: 2564px ;} +.t1832 {position:absolute;top: 2568px ;} +.t1833 {position:absolute;top: 2572px ;} +.t1834 {position:absolute;top: 2576px ;} +.t1835 {position:absolute;top: 2580px ;} +.t1836 {position:absolute;top: 2584px ;} +.t1837 {position:absolute;top: 2588px ;} +.t1838 {position:absolute;top: 2592px ;} +.t1839 {position:absolute;top: 2596px ;} +.t1840 {position:absolute;top: 2600px ;} +.t1841 {position:absolute;top: 2604px ;} +.t1842 {position:absolute;top: 2608px ;} +.t1843 {position:absolute;top: 2612px ;} +.t1844 {position:absolute;top: 2616px ;} +.t1845 {position:absolute;top: 2620px ;} +.t1846 {position:absolute;top: 2624px ;} +.t1847 {position:absolute;top: 2628px ;} +.t1848 {position:absolute;top: 2632px ;} +.t1849 {position:absolute;top: 2636px ;} +.t1850 {position:absolute;top: 2640px ;} +.t1851 {position:absolute;top: 2644px ;} +.t1852 {position:absolute;top: 2648px ;} +.t1853 {position:absolute;top: 2652px ;} +.t1854 {position:absolute;top: 2656px ;} +.t1855 {position:absolute;top: 2660px ;} +.t1856 {position:absolute;top: 2664px ;} +.t1857 {position:absolute;top: 2668px ;} +.t1858 {position:absolute;top: 2672px ;} +.t1859 {position:absolute;top: 2676px ;} + +.t1900 {position:absolute;top: 2684px ;} +.t1901 {position:absolute;top: 2688px ;} +.t1902 {position:absolute;top: 2692px ;} +.t1903 {position:absolute;top: 2696px ;} +.t1904 {position:absolute;top: 2700px ;} +.t1905 {position:absolute;top: 2704px ;} +.t1906 {position:absolute;top: 2708px ;} +.t1907 {position:absolute;top: 2712px ;} +.t1908 {position:absolute;top: 2716px ;} +.t1909 {position:absolute;top: 2720px ;} +.t1910 {position:absolute;top: 2724px ;} +.t1911 {position:absolute;top: 2728px ;} +.t1912 {position:absolute;top: 2732px ;} +.t1913 {position:absolute;top: 2736px ;} +.t1914 {position:absolute;top: 2740px ;} +.t1915 {position:absolute;top: 2744px ;} +.t1916 {position:absolute;top: 2748px ;} +.t1917 {position:absolute;top: 2752px ;} +.t1918 {position:absolute;top: 2756px ;} +.t1919 {position:absolute;top: 2760px ;} +.t1920 {position:absolute;top: 2764px ;} +.t1921 {position:absolute;top: 2768px ;} +.t1922 {position:absolute;top: 2772px ;} +.t1923 {position:absolute;top: 2776px ;} +.t1924 {position:absolute;top: 2780px ;} +.t1925 {position:absolute;top: 2784px ;} +.t1926 {position:absolute;top: 2788px ;} +.t1927 {position:absolute;top: 2792px ;} +.t1928 {position:absolute;top: 2796px ;} +.t1929 {position:absolute;top: 2800px ;} +.t1930 {position:absolute;top: 2804px ;} +.t1931 {position:absolute;top: 2808px ;} +.t1932 {position:absolute;top: 2812px ;} +.t1933 {position:absolute;top: 2816px ;} +.t1934 {position:absolute;top: 2820px ;} +.t1935 {position:absolute;top: 2824px ;} +.t1936 {position:absolute;top: 2828px ;} +.t1937 {position:absolute;top: 2832px ;} +.t1938 {position:absolute;top: 2836px ;} +.t1939 {position:absolute;top: 2840px ;} +.t1940 {position:absolute;top: 2844px ;} +.t1941 {position:absolute;top: 2848px ;} +.t1942 {position:absolute;top: 2852px ;} +.t1943 {position:absolute;top: 2856px ;} +.t1944 {position:absolute;top: 2860px ;} +.t1945 {position:absolute;top: 2864px ;} +.t1946 {position:absolute;top: 2868px ;} +.t1947 {position:absolute;top: 2872px ;} +.t1948 {position:absolute;top: 2876px ;} +.t1949 {position:absolute;top: 2880px ;} +.t1950 {position:absolute;top: 2884px ;} +.t1951 {position:absolute;top: 2888px ;} +.t1952 {position:absolute;top: 2892px ;} +.t1953 {position:absolute;top: 2896px ;} +.t1954 {position:absolute;top: 2900px ;} +.t1955 {position:absolute;top: 2904px ;} +.t1956 {position:absolute;top: 2908px ;} +.t1957 {position:absolute;top: 2912px ;} +.t1958 {position:absolute;top: 2916px ;} +.t1959 {position:absolute;top: 2920px ;} + +.t2000 {position:absolute;top: 2928px ;} +.t2001 {position:absolute;top: 2932px ;} +.t2002 {position:absolute;top: 2936px ;} +.t2003 {position:absolute;top: 2940px ;} +.t2004 {position:absolute;top: 2944px ;} +.t2005 {position:absolute;top: 2948px ;} +.t2006 {position:absolute;top: 2952px ;} +.t2007 {position:absolute;top: 2956px ;} +.t2008 {position:absolute;top: 2960px ;} +.t2009 {position:absolute;top: 2964px ;} +.t2010 {position:absolute;top: 2968px ;} +.t2011 {position:absolute;top: 2972px ;} +.t2012 {position:absolute;top: 2976px ;} +.t2013 {position:absolute;top: 2980px ;} +.t2014 {position:absolute;top: 2984px ;} +.t2015 {position:absolute;top: 2988px ;} +.t2016 {position:absolute;top: 2992px ;} +.t2017 {position:absolute;top: 2996px ;} +.t2018 {position:absolute;top: 3000px ;} +.t2019 {position:absolute;top: 3004px ;} +.t2020 {position:absolute;top: 3008px ;} +.t2021 {position:absolute;top: 3012px ;} +.t2022 {position:absolute;top: 3016px ;} +.t2023 {position:absolute;top: 3020px ;} +.t2024 {position:absolute;top: 3024px ;} +.t2025 {position:absolute;top: 3028px ;} +.t2026 {position:absolute;top: 3032px ;} +.t2027 {position:absolute;top: 3036px ;} +.t2028 {position:absolute;top: 3040px ;} +.t2029 {position:absolute;top: 3044px ;} +.t2030 {position:absolute;top: 3048px ;} +.t2031 {position:absolute;top: 3052px ;} +.t2032 {position:absolute;top: 3056px ;} +.t2033 {position:absolute;top: 3060px ;} +.t2034 {position:absolute;top: 3064px ;} +.t2035 {position:absolute;top: 3068px ;} +.t2036 {position:absolute;top: 3072px ;} +.t2037 {position:absolute;top: 3076px ;} +.t2038 {position:absolute;top: 3080px ;} +.t2039 {position:absolute;top: 3084px ;} +.t2040 {position:absolute;top: 3088px ;} +.t2041 {position:absolute;top: 3092px ;} +.t2042 {position:absolute;top: 3096px ;} +.t2043 {position:absolute;top: 3100px ;} +.t2044 {position:absolute;top: 3104px ;} +.t2045 {position:absolute;top: 3108px ;} +.t2046 {position:absolute;top: 3112px ;} +.t2047 {position:absolute;top: 3116px ;} +.t2048 {position:absolute;top: 3120px ;} +.t2049 {position:absolute;top: 3124px ;} +.t2050 {position:absolute;top: 3128px ;} +.t2051 {position:absolute;top: 3132px ;} +.t2052 {position:absolute;top: 3136px ;} +.t2053 {position:absolute;top: 3140px ;} +.t2054 {position:absolute;top: 3144px ;} +.t2055 {position:absolute;top: 3148px ;} +.t2056 {position:absolute;top: 3152px ;} +.t2057 {position:absolute;top: 3156px ;} +.t2058 {position:absolute;top: 3160px ;} +.t2059 {position:absolute;top: 3164px ;} + +.t2100 {position:absolute;top: 3172px ;} +.t2101 {position:absolute;top: 3176px ;} +.t2102 {position:absolute;top: 3180px ;} +.t2103 {position:absolute;top: 3184px ;} +.t2104 {position:absolute;top: 3188px ;} +.t2105 {position:absolute;top: 3192px ;} +.t2106 {position:absolute;top: 3196px ;} +.t2107 {position:absolute;top: 3200px ;} +.t2108 {position:absolute;top: 3204px ;} +.t2109 {position:absolute;top: 3208px ;} +.t2110 {position:absolute;top: 3212px ;} +.t2111 {position:absolute;top: 3216px ;} +.t2112 {position:absolute;top: 3220px ;} +.t2113 {position:absolute;top: 3224px ;} +.t2114 {position:absolute;top: 3228px ;} +.t2115 {position:absolute;top: 3232px ;} +.t2116 {position:absolute;top: 3236px ;} +.t2117 {position:absolute;top: 3240px ;} +.t2118 {position:absolute;top: 3244px ;} +.t2119 {position:absolute;top: 3248px ;} +.t2120 {position:absolute;top: 3252px ;} +.t2121 {position:absolute;top: 3256px ;} +.t2122 {position:absolute;top: 3260px ;} +.t2123 {position:absolute;top: 3264px ;} +.t2124 {position:absolute;top: 3268px ;} +.t2125 {position:absolute;top: 3272px ;} +.t2126 {position:absolute;top: 3276px ;} +.t2127 {position:absolute;top: 3280px ;} +.t2128 {position:absolute;top: 3284px ;} +.t2129 {position:absolute;top: 3288px ;} +.t2130 {position:absolute;top: 3292px ;} +.t2131 {position:absolute;top: 3296px ;} +.t2132 {position:absolute;top: 3300px ;} +.t2133 {position:absolute;top: 3304px ;} +.t2134 {position:absolute;top: 3308px ;} +.t2135 {position:absolute;top: 3312px ;} +.t2136 {position:absolute;top: 3316px ;} +.t2137 {position:absolute;top: 3320px ;} +.t2138 {position:absolute;top: 3324px ;} +.t2139 {position:absolute;top: 3328px ;} +.t2140 {position:absolute;top: 3332px ;} +.t2141 {position:absolute;top: 3336px ;} +.t2142 {position:absolute;top: 3340px ;} +.t2143 {position:absolute;top: 3344px ;} +.t2144 {position:absolute;top: 3348px ;} +.t2145 {position:absolute;top: 3352px ;} +.t2146 {position:absolute;top: 3356px ;} +.t2147 {position:absolute;top: 3360px ;} +.t2148 {position:absolute;top: 3364px ;} +.t2149 {position:absolute;top: 3368px ;} +.t2150 {position:absolute;top: 3372px ;} +.t2151 {position:absolute;top: 3376px ;} +.t2152 {position:absolute;top: 3380px ;} +.t2153 {position:absolute;top: 3384px ;} +.t2154 {position:absolute;top: 3388px ;} +.t2155 {position:absolute;top: 3392px ;} +.t2156 {position:absolute;top: 3396px ;} +.t2157 {position:absolute;top: 3400px ;} +.t2158 {position:absolute;top: 3404px ;} +.t2159 {position:absolute;top: 3408px ;} + +.t2200 {position:absolute;top: 3416px ;} +.t2201 {position:absolute;top: 3420px ;} +.t2202 {position:absolute;top: 3424px ;} +.t2203 {position:absolute;top: 3428px ;} +.t2204 {position:absolute;top: 3432px ;} +.t2205 {position:absolute;top: 3436px ;} +.t2206 {position:absolute;top: 3440px ;} +.t2207 {position:absolute;top: 3444px ;} +.t2208 {position:absolute;top: 3448px ;} +.t2209 {position:absolute;top: 3452px ;} +.t2210 {position:absolute;top: 3456px ;} +.t2211 {position:absolute;top: 3460px ;} +.t2212 {position:absolute;top: 3464px ;} +.t2213 {position:absolute;top: 3468px ;} +.t2214 {position:absolute;top: 3472px ;} +.t2215 {position:absolute;top: 3476px ;} +.t2216 {position:absolute;top: 3480px ;} +.t2217 {position:absolute;top: 3484px ;} +.t2218 {position:absolute;top: 3488px ;} +.t2219 {position:absolute;top: 3492px ;} +.t2220 {position:absolute;top: 3496px ;} +.t2221 {position:absolute;top: 3500px ;} +.t2222 {position:absolute;top: 3504px ;} +.t2223 {position:absolute;top: 3508px ;} +.t2224 {position:absolute;top: 3512px ;} +.t2225 {position:absolute;top: 3516px ;} +.t2226 {position:absolute;top: 3520px ;} +.t2227 {position:absolute;top: 3524px ;} +.t2228 {position:absolute;top: 3528px ;} +.t2229 {position:absolute;top: 3532px ;} +.t2230 {position:absolute;top: 3536px ;} +.t2231 {position:absolute;top: 3540px ;} +.t2232 {position:absolute;top: 3544px ;} +.t2233 {position:absolute;top: 3548px ;} +.t2234 {position:absolute;top: 3552px ;} +.t2235 {position:absolute;top: 3556px ;} +.t2236 {position:absolute;top: 3560px ;} +.t2237 {position:absolute;top: 3564px ;} +.t2238 {position:absolute;top: 3568px ;} +.t2239 {position:absolute;top: 3572px ;} +.t2240 {position:absolute;top: 3576px ;} +.t2241 {position:absolute;top: 3580px ;} +.t2242 {position:absolute;top: 3584px ;} +.t2243 {position:absolute;top: 3588px ;} +.t2244 {position:absolute;top: 3592px ;} +.t2245 {position:absolute;top: 3596px ;} +.t2246 {position:absolute;top: 3600px ;} +.t2247 {position:absolute;top: 3604px ;} +.t2248 {position:absolute;top: 3608px ;} +.t2249 {position:absolute;top: 3612px ;} +.t2250 {position:absolute;top: 3616px ;} +.t2251 {position:absolute;top: 3620px ;} +.t2252 {position:absolute;top: 3624px ;} +.t2253 {position:absolute;top: 3628px ;} +.t2254 {position:absolute;top: 3632px ;} +.t2255 {position:absolute;top: 3636px ;} +.t2256 {position:absolute;top: 3640px ;} +.t2257 {position:absolute;top: 3644px ;} +.t2258 {position:absolute;top: 3648px ;} +.t2259 {position:absolute;top: 3652px ;} + +.t2300 {position:absolute;top: 3660px ;} +.t2301 {position:absolute;top: 3664px ;} +.t2302 {position:absolute;top: 3668px ;} +.t2303 {position:absolute;top: 3672px ;} +.t2304 {position:absolute;top: 3676px ;} +.t2305 {position:absolute;top: 3680px ;} +.t2306 {position:absolute;top: 3684px ;} +.t2307 {position:absolute;top: 3688px ;} +.t2308 {position:absolute;top: 3692px ;} +.t2309 {position:absolute;top: 3696px ;} +.t2310 {position:absolute;top: 3700px ;} +.t2311 {position:absolute;top: 3704px ;} +.t2312 {position:absolute;top: 3708px ;} +.t2313 {position:absolute;top: 3712px ;} +.t2314 {position:absolute;top: 3716px ;} +.t2315 {position:absolute;top: 3720px ;} +.t2316 {position:absolute;top: 3724px ;} +.t2317 {position:absolute;top: 3728px ;} +.t2318 {position:absolute;top: 3732px ;} +.t2319 {position:absolute;top: 3736px ;} +.t2320 {position:absolute;top: 3740px ;} +.t2321 {position:absolute;top: 3744px ;} +.t2322 {position:absolute;top: 3748px ;} +.t2323 {position:absolute;top: 3752px ;} +.t2324 {position:absolute;top: 3756px ;} +.t2325 {position:absolute;top: 3760px ;} +.t2326 {position:absolute;top: 3764px ;} +.t2327 {position:absolute;top: 3768px ;} +.t2328 {position:absolute;top: 3772px ;} +.t2329 {position:absolute;top: 3776px ;} +.t2330 {position:absolute;top: 3780px ;} +.t2331 {position:absolute;top: 3784px ;} +.t2332 {position:absolute;top: 3788px ;} +.t2333 {position:absolute;top: 3792px ;} +.t2334 {position:absolute;top: 3796px ;} +.t2335 {position:absolute;top: 3800px ;} +.t2336 {position:absolute;top: 3804px ;} +.t2337 {position:absolute;top: 3808px ;} +.t2338 {position:absolute;top: 3812px ;} +.t2339 {position:absolute;top: 3816px ;} +.t2340 {position:absolute;top: 3820px ;} +.t2341 {position:absolute;top: 3824px ;} +.t2342 {position:absolute;top: 3828px ;} +.t2343 {position:absolute;top: 3832px ;} +.t2344 {position:absolute;top: 3836px ;} +.t2345 {position:absolute;top: 3840px ;} +.t2346 {position:absolute;top: 3844px ;} +.t2347 {position:absolute;top: 3848px ;} +.t2348 {position:absolute;top: 3852px ;} +.t2349 {position:absolute;top: 3856px ;} +.t2350 {position:absolute;top: 3860px ;} +.t2351 {position:absolute;top: 3864px ;} +.t2352 {position:absolute;top: 3868px ;} +.t2353 {position:absolute;top: 3872px ;} +.t2354 {position:absolute;top: 3876px ;} +.t2355 {position:absolute;top: 3880px ;} +.t2356 {position:absolute;top: 3884px ;} +.t2357 {position:absolute;top: 3888px ;} +.t2358 {position:absolute;top: 3892px ;} +.t2359 {position:absolute;top: 3896px ;} + +.t0000 {position:absolute;top: 3904px ;} +.t0001 {position:absolute;top: 3908px ;} +.t0002 {position:absolute;top: 3912px ;} +.t0003 {position:absolute;top: 3916px ;} +.t0004 {position:absolute;top: 3920px ;} +.t0005 {position:absolute;top: 3924px ;} +.t0006 {position:absolute;top: 3928px ;} +.t0007 {position:absolute;top: 3932px ;} +.t0008 {position:absolute;top: 3936px ;} +.t0009 {position:absolute;top: 3940px ;} +.t0010 {position:absolute;top: 3944px ;} +.t0011 {position:absolute;top: 3948px ;} +.t0012 {position:absolute;top: 3952px ;} +.t0013 {position:absolute;top: 3956px ;} +.t0014 {position:absolute;top: 3960px ;} +.t0015 {position:absolute;top: 3964px ;} +.t0016 {position:absolute;top: 3968px ;} +.t0017 {position:absolute;top: 3972px ;} +.t0018 {position:absolute;top: 3976px ;} +.t0019 {position:absolute;top: 3980px ;} +.t0020 {position:absolute;top: 3984px ;} +.t0021 {position:absolute;top: 3988px ;} +.t0022 {position:absolute;top: 3992px ;} +.t0023 {position:absolute;top: 3996px ;} +.t0024 {position:absolute;top: 4000px ;} +.t0025 {position:absolute;top: 4004px ;} +.t0026 {position:absolute;top: 4008px ;} +.t0027 {position:absolute;top: 4012px ;} +.t0028 {position:absolute;top: 4016px ;} +.t0029 {position:absolute;top: 4020px ;} +.t0030 {position:absolute;top: 4024px ;} +.t0031 {position:absolute;top: 4028px ;} +.t0032 {position:absolute;top: 4032px ;} +.t0033 {position:absolute;top: 4036px ;} +.t0034 {position:absolute;top: 4040px ;} +.t0035 {position:absolute;top: 4044px ;} +.t0036 {position:absolute;top: 4048px ;} +.t0037 {position:absolute;top: 4052px ;} +.t0038 {position:absolute;top: 4056px ;} +.t0039 {position:absolute;top: 4060px ;} +.t0040 {position:absolute;top: 4064px ;} +.t0041 {position:absolute;top: 4068px ;} +.t0042 {position:absolute;top: 4072px ;} +.t0043 {position:absolute;top: 4076px ;} +.t0044 {position:absolute;top: 4080px ;} +.t0045 {position:absolute;top: 4084px ;} +.t0046 {position:absolute;top: 4088px ;} +.t0047 {position:absolute;top: 4092px ;} +.t0048 {position:absolute;top: 4096px ;} +.t0049 {position:absolute;top: 4100px ;} +.t0050 {position:absolute;top: 4104px ;} +.t0051 {position:absolute;top: 4108px ;} +.t0052 {position:absolute;top: 4112px ;} +.t0053 {position:absolute;top: 4116px ;} +.t0054 {position:absolute;top: 4120px ;} +.t0055 {position:absolute;top: 4124px ;} +.t0056 {position:absolute;top: 4128px ;} +.t0057 {position:absolute;top: 4132px ;} +.t0058 {position:absolute;top: 4136px ;} +.t0059 {position:absolute;top: 4140px ;} + +.t0100 {position:absolute;top: 4148px ;} +.t0101 {position:absolute;top: 4152px ;} +.t0102 {position:absolute;top: 4156px ;} +.t0103 {position:absolute;top: 4160px ;} +.t0104 {position:absolute;top: 4164px ;} +.t0105 {position:absolute;top: 4168px ;} +.t0106 {position:absolute;top: 4172px ;} +.t0107 {position:absolute;top: 4176px ;} +.t0108 {position:absolute;top: 4180px ;} +.t0109 {position:absolute;top: 4184px ;} +.t0110 {position:absolute;top: 4188px ;} +.t0111 {position:absolute;top: 4192px ;} +.t0112 {position:absolute;top: 4196px ;} +.t0113 {position:absolute;top: 4200px ;} +.t0114 {position:absolute;top: 4204px ;} +.t0115 {position:absolute;top: 4208px ;} +.t0116 {position:absolute;top: 4212px ;} +.t0117 {position:absolute;top: 4216px ;} +.t0118 {position:absolute;top: 4220px ;} +.t0119 {position:absolute;top: 4224px ;} +.t0120 {position:absolute;top: 4228px ;} +.t0121 {position:absolute;top: 4232px ;} +.t0122 {position:absolute;top: 4236px ;} +.t0123 {position:absolute;top: 4240px ;} +.t0124 {position:absolute;top: 4244px ;} +.t0125 {position:absolute;top: 4248px ;} +.t0126 {position:absolute;top: 4252px ;} +.t0127 {position:absolute;top: 4256px ;} +.t0128 {position:absolute;top: 4260px ;} +.t0129 {position:absolute;top: 4264px ;} +.t0130 {position:absolute;top: 4268px ;} +.t0131 {position:absolute;top: 4272px ;} +.t0132 {position:absolute;top: 4276px ;} +.t0133 {position:absolute;top: 4280px ;} +.t0134 {position:absolute;top: 4284px ;} +.t0135 {position:absolute;top: 4288px ;} +.t0136 {position:absolute;top: 4292px ;} +.t0137 {position:absolute;top: 4296px ;} +.t0138 {position:absolute;top: 4300px ;} +.t0139 {position:absolute;top: 4304px ;} +.t0140 {position:absolute;top: 4308px ;} +.t0141 {position:absolute;top: 4312px ;} +.t0142 {position:absolute;top: 4316px ;} +.t0143 {position:absolute;top: 4320px ;} +.t0144 {position:absolute;top: 4324px ;} +.t0145 {position:absolute;top: 4328px ;} +.t0146 {position:absolute;top: 4332px ;} +.t0147 {position:absolute;top: 4336px ;} +.t0148 {position:absolute;top: 4340px ;} +.t0149 {position:absolute;top: 4344px ;} +.t0150 {position:absolute;top: 4348px ;} +.t0151 {position:absolute;top: 4352px ;} +.t0152 {position:absolute;top: 4356px ;} +.t0153 {position:absolute;top: 4360px ;} +.t0154 {position:absolute;top: 4364px ;} +.t0155 {position:absolute;top: 4368px ;} +.t0156 {position:absolute;top: 4372px ;} +.t0157 {position:absolute;top: 4376px ;} +.t0158 {position:absolute;top: 4380px ;} +.t0159 {position:absolute;top: 4384px ;} + +.t0200 {position:absolute;top: 4392px ;} +.t0201 {position:absolute;top: 4396px ;} +.t0202 {position:absolute;top: 4400px ;} +.t0203 {position:absolute;top: 4404px ;} +.t0204 {position:absolute;top: 4408px ;} +.t0205 {position:absolute;top: 4412px ;} +.t0206 {position:absolute;top: 4416px ;} +.t0207 {position:absolute;top: 4420px ;} +.t0208 {position:absolute;top: 4424px ;} +.t0209 {position:absolute;top: 4428px ;} +.t0210 {position:absolute;top: 4432px ;} +.t0211 {position:absolute;top: 4436px ;} +.t0212 {position:absolute;top: 4440px ;} +.t0213 {position:absolute;top: 4444px ;} +.t0214 {position:absolute;top: 4448px ;} +.t0215 {position:absolute;top: 4452px ;} +.t0216 {position:absolute;top: 4456px ;} +.t0217 {position:absolute;top: 4460px ;} +.t0218 {position:absolute;top: 4464px ;} +.t0219 {position:absolute;top: 4468px ;} +.t0220 {position:absolute;top: 4472px ;} +.t0221 {position:absolute;top: 4476px ;} +.t0222 {position:absolute;top: 4480px ;} +.t0223 {position:absolute;top: 4484px ;} +.t0224 {position:absolute;top: 4488px ;} +.t0225 {position:absolute;top: 4492px ;} +.t0226 {position:absolute;top: 4496px ;} +.t0227 {position:absolute;top: 4500px ;} +.t0228 {position:absolute;top: 4504px ;} +.t0229 {position:absolute;top: 4508px ;} +.t0230 {position:absolute;top: 4512px ;} +.t0231 {position:absolute;top: 4516px ;} +.t0232 {position:absolute;top: 4520px ;} +.t0233 {position:absolute;top: 4524px ;} +.t0234 {position:absolute;top: 4528px ;} +.t0235 {position:absolute;top: 4532px ;} +.t0236 {position:absolute;top: 4536px ;} +.t0237 {position:absolute;top: 4540px ;} +.t0238 {position:absolute;top: 4544px ;} +.t0239 {position:absolute;top: 4548px ;} +.t0240 {position:absolute;top: 4552px ;} +.t0241 {position:absolute;top: 4556px ;} +.t0242 {position:absolute;top: 4560px ;} +.t0243 {position:absolute;top: 4564px ;} +.t0244 {position:absolute;top: 4568px ;} +.t0245 {position:absolute;top: 4572px ;} +.t0246 {position:absolute;top: 4576px ;} +.t0247 {position:absolute;top: 4580px ;} +.t0248 {position:absolute;top: 4584px ;} +.t0249 {position:absolute;top: 4588px ;} +.t0250 {position:absolute;top: 4592px ;} +.t0251 {position:absolute;top: 4596px ;} +.t0252 {position:absolute;top: 4600px ;} +.t0253 {position:absolute;top: 4604px ;} +.t0254 {position:absolute;top: 4608px ;} +.t0255 {position:absolute;top: 4612px ;} +.t0256 {position:absolute;top: 4616px ;} +.t0257 {position:absolute;top: 4620px ;} +.t0258 {position:absolute;top: 4624px ;} +.t0259 {position:absolute;top: 4628px ;} + +.t0300 {position:absolute;top: 4636px ;} +.t0301 {position:absolute;top: 4640px ;} +.t0302 {position:absolute;top: 4644px ;} +.t0303 {position:absolute;top: 4648px ;} +.t0304 {position:absolute;top: 4652px ;} +.t0305 {position:absolute;top: 4656px ;} +.t0306 {position:absolute;top: 4660px ;} +.t0307 {position:absolute;top: 4664px ;} +.t0308 {position:absolute;top: 4668px ;} +.t0309 {position:absolute;top: 4672px ;} +.t0310 {position:absolute;top: 4676px ;} +.t0311 {position:absolute;top: 4680px ;} +.t0312 {position:absolute;top: 4684px ;} +.t0313 {position:absolute;top: 4688px ;} +.t0314 {position:absolute;top: 4692px ;} +.t0315 {position:absolute;top: 4696px ;} +.t0316 {position:absolute;top: 4700px ;} +.t0317 {position:absolute;top: 4704px ;} +.t0318 {position:absolute;top: 4708px ;} +.t0319 {position:absolute;top: 4712px ;} +.t0320 {position:absolute;top: 4716px ;} +.t0321 {position:absolute;top: 4720px ;} +.t0322 {position:absolute;top: 4724px ;} +.t0323 {position:absolute;top: 4728px ;} +.t0324 {position:absolute;top: 4732px ;} +.t0325 {position:absolute;top: 4736px ;} +.t0326 {position:absolute;top: 4740px ;} +.t0327 {position:absolute;top: 4744px ;} +.t0328 {position:absolute;top: 4748px ;} +.t0329 {position:absolute;top: 4752px ;} +.t0330 {position:absolute;top: 4756px ;} +.t0331 {position:absolute;top: 4760px ;} +.t0332 {position:absolute;top: 4764px ;} +.t0333 {position:absolute;top: 4768px ;} +.t0334 {position:absolute;top: 4772px ;} +.t0335 {position:absolute;top: 4776px ;} +.t0336 {position:absolute;top: 4780px ;} +.t0337 {position:absolute;top: 4784px ;} +.t0338 {position:absolute;top: 4788px ;} +.t0339 {position:absolute;top: 4792px ;} +.t0340 {position:absolute;top: 4796px ;} +.t0341 {position:absolute;top: 4800px ;} +.t0342 {position:absolute;top: 4804px ;} +.t0343 {position:absolute;top: 4808px ;} +.t0344 {position:absolute;top: 4812px ;} +.t0345 {position:absolute;top: 4816px ;} +.t0346 {position:absolute;top: 4820px ;} +.t0347 {position:absolute;top: 4824px ;} +.t0348 {position:absolute;top: 4828px ;} +.t0349 {position:absolute;top: 4832px ;} +.t0350 {position:absolute;top: 4836px ;} +.t0351 {position:absolute;top: 4840px ;} +.t0352 {position:absolute;top: 4844px ;} +.t0353 {position:absolute;top: 4848px ;} +.t0354 {position:absolute;top: 4852px ;} +.t0355 {position:absolute;top: 4856px ;} +.t0356 {position:absolute;top: 4860px ;} +.t0357 {position:absolute;top: 4864px ;} +.t0358 {position:absolute;top: 4868px ;} +.t0359 {position:absolute;top: 4872px ;} + +.t0400 {position:absolute;top: 4880px ;} +.t0401 {position:absolute;top: 4884px ;} +.t0402 {position:absolute;top: 4888px ;} +.t0403 {position:absolute;top: 4892px ;} +.t0404 {position:absolute;top: 4896px ;} +.t0405 {position:absolute;top: 4900px ;} +.t0406 {position:absolute;top: 4904px ;} +.t0407 {position:absolute;top: 4908px ;} +.t0408 {position:absolute;top: 4912px ;} +.t0409 {position:absolute;top: 4916px ;} +.t0410 {position:absolute;top: 4920px ;} +.t0411 {position:absolute;top: 4924px ;} +.t0412 {position:absolute;top: 4928px ;} +.t0413 {position:absolute;top: 4932px ;} +.t0414 {position:absolute;top: 4936px ;} +.t0415 {position:absolute;top: 4940px ;} +.t0416 {position:absolute;top: 4944px ;} +.t0417 {position:absolute;top: 4948px ;} +.t0418 {position:absolute;top: 4952px ;} +.t0419 {position:absolute;top: 4956px ;} +.t0420 {position:absolute;top: 4960px ;} +.t0421 {position:absolute;top: 4964px ;} +.t0422 {position:absolute;top: 4968px ;} +.t0423 {position:absolute;top: 4972px ;} +.t0424 {position:absolute;top: 4976px ;} +.t0425 {position:absolute;top: 4980px ;} +.t0426 {position:absolute;top: 4984px ;} +.t0427 {position:absolute;top: 4988px ;} +.t0428 {position:absolute;top: 4992px ;} +.t0429 {position:absolute;top: 4996px ;} +.t0430 {position:absolute;top: 5000px ;} +.t0431 {position:absolute;top: 5004px ;} +.t0432 {position:absolute;top: 5008px ;} +.t0433 {position:absolute;top: 5012px ;} +.t0434 {position:absolute;top: 5016px ;} +.t0435 {position:absolute;top: 5020px ;} +.t0436 {position:absolute;top: 5024px ;} +.t0437 {position:absolute;top: 5028px ;} +.t0438 {position:absolute;top: 5032px ;} +.t0439 {position:absolute;top: 5036px ;} +.t0440 {position:absolute;top: 5040px ;} +.t0441 {position:absolute;top: 5044px ;} +.t0442 {position:absolute;top: 5048px ;} +.t0443 {position:absolute;top: 5052px ;} +.t0444 {position:absolute;top: 5056px ;} +.t0445 {position:absolute;top: 5060px ;} +.t0446 {position:absolute;top: 5064px ;} +.t0447 {position:absolute;top: 5068px ;} +.t0448 {position:absolute;top: 5072px ;} +.t0449 {position:absolute;top: 5076px ;} +.t0450 {position:absolute;top: 5080px ;} +.t0451 {position:absolute;top: 5084px ;} +.t0452 {position:absolute;top: 5088px ;} +.t0453 {position:absolute;top: 5092px ;} +.t0454 {position:absolute;top: 5096px ;} +.t0455 {position:absolute;top: 5100px ;} +.t0456 {position:absolute;top: 5104px ;} +.t0457 {position:absolute;top: 5108px ;} +.t0458 {position:absolute;top: 5112px ;} +.t0459 {position:absolute;top: 5116px ;} + +.t0500 {position:absolute;top: 5124px ;} +.t0501 {position:absolute;top: 5128px ;} +.t0502 {position:absolute;top: 5132px ;} +.t0503 {position:absolute;top: 5136px ;} +.t0504 {position:absolute;top: 5140px ;} +.t0505 {position:absolute;top: 5144px ;} +.t0506 {position:absolute;top: 5148px ;} +.t0507 {position:absolute;top: 5152px ;} +.t0508 {position:absolute;top: 5156px ;} +.t0509 {position:absolute;top: 5160px ;} +.t0510 {position:absolute;top: 5164px ;} +.t0511 {position:absolute;top: 5168px ;} +.t0512 {position:absolute;top: 5172px ;} +.t0513 {position:absolute;top: 5176px ;} +.t0514 {position:absolute;top: 5180px ;} +.t0515 {position:absolute;top: 5184px ;} +.t0516 {position:absolute;top: 5188px ;} +.t0517 {position:absolute;top: 5192px ;} +.t0518 {position:absolute;top: 5196px ;} +.t0519 {position:absolute;top: 5200px ;} +.t0520 {position:absolute;top: 5204px ;} +.t0521 {position:absolute;top: 5208px ;} +.t0522 {position:absolute;top: 5212px ;} +.t0523 {position:absolute;top: 5216px ;} +.t0524 {position:absolute;top: 5220px ;} +.t0525 {position:absolute;top: 5224px ;} +.t0526 {position:absolute;top: 5228px ;} +.t0527 {position:absolute;top: 5232px ;} +.t0528 {position:absolute;top: 5236px ;} +.t0529 {position:absolute;top: 5240px ;} +.t0530 {position:absolute;top: 5244px ;} +.t0531 {position:absolute;top: 5248px ;} +.t0532 {position:absolute;top: 5252px ;} +.t0533 {position:absolute;top: 5256px ;} +.t0534 {position:absolute;top: 5260px ;} +.t0535 {position:absolute;top: 5264px ;} +.t0536 {position:absolute;top: 5268px ;} +.t0537 {position:absolute;top: 5272px ;} +.t0538 {position:absolute;top: 5276px ;} +.t0539 {position:absolute;top: 5280px ;} +.t0540 {position:absolute;top: 5284px ;} +.t0541 {position:absolute;top: 5288px ;} +.t0542 {position:absolute;top: 5292px ;} +.t0543 {position:absolute;top: 5296px ;} +.t0544 {position:absolute;top: 5300px ;} +.t0545 {position:absolute;top: 5304px ;} +.t0546 {position:absolute;top: 5308px ;} +.t0547 {position:absolute;top: 5312px ;} +.t0548 {position:absolute;top: 5316px ;} +.t0549 {position:absolute;top: 5320px ;} +.t0550 {position:absolute;top: 5324px ;} +.t0551 {position:absolute;top: 5328px ;} +.t0552 {position:absolute;top: 5332px ;} +.t0553 {position:absolute;top: 5336px ;} +.t0554 {position:absolute;top: 5340px ;} +.t0555 {position:absolute;top: 5344px ;} +.t0556 {position:absolute;top: 5348px ;} +.t0557 {position:absolute;top: 5352px ;} +.t0558 {position:absolute;top: 5356px ;} +.t0559 {position:absolute;top: 5360px ;} + +.t0600 {position:absolute;top: 5368px ;} +.t0601 {position:absolute;top: 5372px ;} +.t0602 {position:absolute;top: 5376px ;} +.t0603 {position:absolute;top: 5380px ;} +.t0604 {position:absolute;top: 5384px ;} +.t0605 {position:absolute;top: 5388px ;} +.t0606 {position:absolute;top: 5392px ;} +.t0607 {position:absolute;top: 5396px ;} +.t0608 {position:absolute;top: 5400px ;} +.t0609 {position:absolute;top: 5404px ;} +.t0610 {position:absolute;top: 5408px ;} +.t0611 {position:absolute;top: 5412px ;} +.t0612 {position:absolute;top: 5416px ;} +.t0613 {position:absolute;top: 5420px ;} +.t0614 {position:absolute;top: 5424px ;} +.t0615 {position:absolute;top: 5428px ;} +.t0616 {position:absolute;top: 5432px ;} +.t0617 {position:absolute;top: 5436px ;} +.t0618 {position:absolute;top: 5440px ;} +.t0619 {position:absolute;top: 5444px ;} +.t0620 {position:absolute;top: 5448px ;} +.t0621 {position:absolute;top: 5452px ;} +.t0622 {position:absolute;top: 5456px ;} +.t0623 {position:absolute;top: 5460px ;} +.t0624 {position:absolute;top: 5464px ;} +.t0625 {position:absolute;top: 5468px ;} +.t0626 {position:absolute;top: 5472px ;} +.t0627 {position:absolute;top: 5476px ;} +.t0628 {position:absolute;top: 5480px ;} +.t0629 {position:absolute;top: 5484px ;} +.t0630 {position:absolute;top: 5488px ;} +.t0631 {position:absolute;top: 5492px ;} +.t0632 {position:absolute;top: 5496px ;} +.t0633 {position:absolute;top: 5500px ;} +.t0634 {position:absolute;top: 5504px ;} +.t0635 {position:absolute;top: 5508px ;} +.t0636 {position:absolute;top: 5512px ;} +.t0637 {position:absolute;top: 5516px ;} +.t0638 {position:absolute;top: 5520px ;} +.t0639 {position:absolute;top: 5524px ;} +.t0640 {position:absolute;top: 5528px ;} +.t0641 {position:absolute;top: 5532px ;} +.t0642 {position:absolute;top: 5536px ;} +.t0643 {position:absolute;top: 5540px ;} +.t0644 {position:absolute;top: 5544px ;} +.t0645 {position:absolute;top: 5548px ;} +.t0646 {position:absolute;top: 5552px ;} +.t0647 {position:absolute;top: 5556px ;} +.t0648 {position:absolute;top: 5560px ;} +.t0649 {position:absolute;top: 5564px ;} +.t0650 {position:absolute;top: 5568px ;} +.t0651 {position:absolute;top: 5572px ;} +.t0652 {position:absolute;top: 5576px ;} +.t0653 {position:absolute;top: 5580px ;} +.t0654 {position:absolute;top: 5584px ;} +.t0655 {position:absolute;top: 5588px ;} +.t0656 {position:absolute;top: 5592px ;} +.t0657 {position:absolute;top: 5596px ;} +.t0658 {position:absolute;top: 5600px ;} +.t0659 {position:absolute;top: 5604px ;} + +.t0700 {position:absolute;top: 5612px ;} +.t0701 {position:absolute;top: 5616px ;} +.t0702 {position:absolute;top: 5620px ;} +.t0703 {position:absolute;top: 5624px ;} +.t0704 {position:absolute;top: 5628px ;} +.t0705 {position:absolute;top: 5632px ;} +.t0706 {position:absolute;top: 5636px ;} +.t0707 {position:absolute;top: 5640px ;} +.t0708 {position:absolute;top: 5644px ;} +.t0709 {position:absolute;top: 5648px ;} +.t0710 {position:absolute;top: 5652px ;} +.t0711 {position:absolute;top: 5656px ;} +.t0712 {position:absolute;top: 5660px ;} +.t0713 {position:absolute;top: 5664px ;} +.t0714 {position:absolute;top: 5668px ;} +.t0715 {position:absolute;top: 5672px ;} +.t0716 {position:absolute;top: 5676px ;} +.t0717 {position:absolute;top: 5680px ;} +.t0718 {position:absolute;top: 5684px ;} +.t0719 {position:absolute;top: 5688px ;} +.t0720 {position:absolute;top: 5692px ;} +.t0721 {position:absolute;top: 5696px ;} +.t0722 {position:absolute;top: 5700px ;} +.t0723 {position:absolute;top: 5704px ;} +.t0724 {position:absolute;top: 5708px ;} +.t0725 {position:absolute;top: 5712px ;} +.t0726 {position:absolute;top: 5716px ;} +.t0727 {position:absolute;top: 5720px ;} +.t0728 {position:absolute;top: 5724px ;} +.t0729 {position:absolute;top: 5728px ;} +.t0730 {position:absolute;top: 5732px ;} +.t0731 {position:absolute;top: 5736px ;} +.t0732 {position:absolute;top: 5740px ;} +.t0733 {position:absolute;top: 5744px ;} +.t0734 {position:absolute;top: 5748px ;} +.t0735 {position:absolute;top: 5752px ;} +.t0736 {position:absolute;top: 5756px ;} +.t0737 {position:absolute;top: 5760px ;} +.t0738 {position:absolute;top: 5764px ;} +.t0739 {position:absolute;top: 5768px ;} +.t0740 {position:absolute;top: 5772px ;} +.t0741 {position:absolute;top: 5776px ;} +.t0742 {position:absolute;top: 5780px ;} +.t0743 {position:absolute;top: 5784px ;} +.t0744 {position:absolute;top: 5788px ;} +.t0745 {position:absolute;top: 5792px ;} +.t0746 {position:absolute;top: 5796px ;} +.t0747 {position:absolute;top: 5800px ;} +.t0748 {position:absolute;top: 5804px ;} +.t0749 {position:absolute;top: 5808px ;} +.t0750 {position:absolute;top: 5812px ;} +.t0751 {position:absolute;top: 5816px ;} +.t0752 {position:absolute;top: 5820px ;} +.t0753 {position:absolute;top: 5824px ;} +.t0754 {position:absolute;top: 5828px ;} +.t0755 {position:absolute;top: 5832px ;} +.t0756 {position:absolute;top: 5836px ;} +.t0757 {position:absolute;top: 5840px ;} +.t0758 {position:absolute;top: 5844px ;} +.t0759 {position:absolute;top: 5848px ;} Index: trunk/install/php/titlelist.php =================================================================== --- trunk/install/php/titlelist.php (リビジョン 119) +++ trunk/install/php/titlelist.php (リビジョン 1) @@ -16,20 +16,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - ?> @@ -44,14 +28,9 @@ fetch(); - if (! $rowdata) { - die_exit("番組データがありません
      "); - } - - $query2 = " -SELECT COUNT(*) AS cnt FROM foltia_program - "; -$rs2 = sql_query($con, $query2, "DBクエリに失敗しました"); -$rowdata2 = $rs2->fetch(); - if (! $rowdata2) { - die_exit("番組データがありません
      "); - } -//行数取得 -$dtcnt = $rowdata2[0]; + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { + die_exit("番組データがありません
      "); + + } ?> @@ -85,5 +53,4 @@
      - 全番組リストを表示します。

      -columnCount(); - -//Autopager -echo "
      "; -?> - + $maxcols = pg_num_fields($rs); + ?> @@ -109,38 +72,28 @@ - + \n"); - + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); //TID echo("\n"); + htmlspecialchars($rowdata[0]) . "\">" . + htmlspecialchars($rowdata[0]) . "\n"); //タイトル - echo("\n"); + echo("\n"); print "\n"; - echo("\n"); - } while ($rowdata = $rs->fetch()); - + } ?> -
      " . - htmlspecialchars($rowdata[0]) . "" . - htmlspecialchars($rowdata[1]) . "" . + htmlspecialchars($rowdata[1]) . "mp4
      - Index: trunk/install/php/delepgp.php =================================================================== --- trunk/install/php/delepgp.php (リビジョン 107) +++ trunk/install/php/delepgp.php (リビジョン 1) @@ -16,20 +16,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - - ?> @@ -41,17 +25,21 @@ foltia:delete EPG Program - "); } +$con = m_connect(); $now = date("YmdHi"); +?> + +fetch(); - $rs->closeCursor(); - - if (!is_array($rowdata) || empty($rowdata)) { - die_exit("登録番組がありません
      "); + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + + if ($maxrows == 0) { + die_exit("登録番組がありません
      "); } + $rowdata = pg_fetch_row($rs, 0); $pid = htmlspecialchars($rowdata[0]); @@ -115,7 +102,6 @@ DELETE FROM foltia_subtitle - WHERE foltia_subtitle.pid = ? AND foltia_subtitle.tid = 0 "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); + WHERE foltia_subtitle.pid = $pid AND foltia_subtitle.tid = 0 "; + $rs = m_query($con, $query, "DBクエリに失敗しました"); } }else{ Index: trunk/install/php/reserveepgcomp.php =================================================================== --- trunk/install/php/reserveepgcomp.php (リビジョン 122) +++ trunk/install/php/reserveepgcomp.php (リビジョン 1) @@ -19,20 +19,4 @@ */ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ -if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; -} else { -login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); -} -}//end if login - - ?> @@ -45,4 +29,5 @@ foltia:EPG予約:Error\n"; die_exit("登録番組がありません
      "); @@ -65,26 +49,6 @@ print " foltia:EPG予約:完了 \n"; +$con = m_connect(); $now = date("YmdHi"); -//タイトル取得 - $query = " - SELECT epgid,startdatetime,enddatetime,lengthmin, ontvchannel,epgtitle,epgdesc,epgcategory , - stationname , stationrecch ,stationid - FROM foltia_epg , foltia_station - WHERE epgid = ? AND foltia_station.ontvcode = foltia_epg.ontvchannel - "; - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($epgid)); -$rowdata = $rs->fetch(); -if (! $rowdata) { - die_exit("登録番組がありません。もう一度EPGに戻り操作して下さい。
      "); -}else{ -$stationid = $rowdata[10]; -$subtitle = $rowdata[5] . $rowdata[6]; -$startdatetime = $rowdata[1]; -$enddatetime = $rowdata[2]; -$lengthmin = $rowdata[3]; -} - - - // - DB登録作業 @@ -94,25 +58,21 @@ //min pidを探す $query = "SELECT min(pid) FROM foltia_subtitle "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + if ($maxrows == 0){ $insertpid = -1 ; }else{ + $rowdata = pg_fetch_row($rs, 0); $insertpid = $rowdata[0]; - if ($insertpid > 0){ - $insertpid = -1; - }else{ - $insertpid-- ; - } + $insertpid-- ; } // next 話数を探す $query = "SELECT max(countno) FROM foltia_subtitle WHERE tid = 0"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - if (! $rowdata) { + $rs = m_query($con, $query, "DBクエリに失敗しました"); + $maxrows = pg_num_rows($rs); + if ($maxrows == 0){ $nextcno = 1 ; }else{ + $rowdata = pg_fetch_row($rs, 0); $nextcno = $rowdata[0]; $nextcno++ ; @@ -121,45 +81,23 @@ //INSERT if ($demomode){ - print "下記予約を完了いたしました。
      "; }else{ -$userclass = getuserclass($con); -if ( $userclass <= 2){ -/* -pid -tid -stationid -countno -subtitle -startdatetime -enddatetime -startoffset -lengthmin -m2pfilename -pspfilename -epgaddedby -*/ +$query = " +insert into foltia_subtitle +values ( '$insertpid','0','$stationid', + '$nextcno','$subtitle','$startdatetime','$enddatetime','0' ,'$lengthmin')"; -$memberid = getmymemberid($con); - $query = " -insert into foltia_subtitle (pid ,tid ,stationid , countno ,subtitle , -startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby ) -values ( ?,'0',?,?,?,?,?,'0',?,?)"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($insertpid,$stationid,$nextcno,$subtitle,$startdatetime,$enddatetime,$lengthmin,$memberid)); + $rs = m_query($con, $query, "DBクエリに失敗しました"); - //addatq.pl - //キュー入れプログラムをキック - //引数 TID チャンネルID - //echo("$toolpath/perl/addatq.pl $tid $station"); +//addatq.pl +//キュー入れプログラムをキック +//引数 TID チャンネルID +//echo("$toolpath/perl/addatq.pl $tid $station"); $oserr = system("$toolpath/perl/addatq.pl 0 0"); - print "下記予約を完了いたしました。
      "; -}else{ - print "EPG予約を行う権限がありません。"; -}// end if $userclass <= 2 + }//end if demomode - +print "下記予約を完了いたしました。
      "; }else{ @@ -168,12 +106,17 @@ } +?> -print "\n"; -print ""; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n
      放送開始".htmlspecialchars($startdatetime)."
      放送終了".htmlspecialchars($enddatetime)."
      局コード".htmlspecialchars($stationid)."
      尺(分)".htmlspecialchars($lengthmin)."
      番組名".htmlspecialchars($subtitle)."
      "; + + + 放送開始$startdatetime + 放送終了$enddatetime + 局コード$stationid + 尺(分)$lengthmin + 番組名$subtitle + + +"; ?> Index: trunk/install/php/m.php =================================================================== --- trunk/install/php/m.php (リビジョン 128) +++ (リビジョン ) @@ -1,311 +1,0 @@ - - - - - - "; - -print "foltia:番組手動予約 -"; -}//end function printtitle() - -printtitle(); -?> - -
      - -
      -

      -番組手動予約 -

      -
      -全項目手動指定で予約します。

      \n"; -}else{ - -$lengthmin = getgetnumform(lengthmin); -$recstid = getgetnumform(recstid); -$pname = getgetform(pname); -//$usedigital = getgetnumform(usedigital); - -//確認 -$startdatetime = "$startdate"."$starttime"; -if (foldatevalidation($startdatetime)){ -//print "valid"; -}else{ - $errflag = 1; - $errmsg = "日付が不正です。"; -} -if ($lengthmin < 361){ -//valid -}else{ - $errflag = 2; - $errmsg = "録画時間は360分で区切ってください。"; -} -//局確認 -if ($recstid != ""){ -$query = " -SELECT stationname -FROM foltia_station -WHERE stationid = ? "; -// $stationvalid = m_query($con, $query, "DBクエリに失敗しました"); - $stationvalid = sql_query($con, $query, "DBクエリに失敗しました",array($recstid)); - $recstationname = $stationvalid->fetch(); - $stationvalid->closeCursor(); - - if (!is_array($recstationname) || empty($recstationname)) { - $errflag = 3; - $errmsg = "放送局設定が異常です。"; - } -}else{ - $errflag = 2; - $errmsg = "録画する局を設定してください。"; -} -//デジタル優先 -/*if ($usedigital == 1){ -}else{ - $usedigital = 0; -} -*/ -//正しければ -if ($errflag == 0){ -//重複があるか? -//未チェック - -//デモモードじゃなかったら書き込み -$enddatetime = calcendtime($startdatetime,$lengthmin); - -//時刻検査 -if (($startdatetime > $now ) && ($enddatetime > $now ) && ($enddatetime > $startdatetime ) ){ - -//min pidを探す -$query = "SELECT min(pid) FROM foltia_subtitle "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - $rs->closeCursor(); - if (! $rowdata) { - $insertpid = -1 ; - }else{ - if ($rowdata[0] > 0) { - $insertpid = -1 ; - }else{ - $insertpid = $rowdata[0]; - $insertpid-- ; - } - } -// next 話数を探す -$query = "SELECT max(countno) FROM foltia_subtitle WHERE tid = 0"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - $rs->closeCursor(); - if (! $rowdata) { - $nextcno = 1 ; - }else{ - $nextcno = $rowdata[0]; - $nextcno++ ; - } - -//INSERT -if ($demomode){ -}else{ - $userclass = getuserclass($con); - if ( $userclass <= 2){ - $memberid = getmymemberid($con); - - $query = " - insert into foltia_subtitle (pid ,tid ,stationid , countno ,subtitle , -startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby ) - values ( ?,'0',?,?,?,?,?,'0',?,?)"; - -// $rs = m_query($con, $query, "DBクエリに失敗しました"); -//print "【DEBUG】$insertpid,$recstid,$nextcno,$pname,$startdatetime,$enddatetime ,$lengthmin,$memberid
      \n"; - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($insertpid,$recstid,$nextcno,$pname,$startdatetime,$enddatetime ,$lengthmin,$memberid)); - - //addatq.pl - //キュー入れプログラムをキック - //引数 TID チャンネルID - //echo("$toolpath/perl/addatq.pl $tid $station"); - //exec("$toolpath/perl/addatq.pl 0 0"); - $oserr = system("$toolpath/perl/addatq.pl 0 0"); - }else{ - print "EPG予約を行う権限がありません。"; - }// end if $userclass <= 2 -}//end if demomode - -print "下記予約を完了いたしました。
      "; -//結果表示 -print "録画開始:"; -echo foldate2print($startdatetime); -print "
      -録画終了:"; -echo foldate2print($enddatetime); -print "
      -録画尺: $lengthmin 分
      -録画局:$recstationname[0]
      -番組名:$pname
      -"; -exit(); -}else{ -print "時刻が不正なために予約できませんでした。
      "; - -} - - -}else{ - print "入力項目が正しくなさそうです。$errmsg
      \n"; -} - -}// 初回表示かデータ処理か -?> - -

      放送日: - " /> - 年月日 Ex.

      -

      録画開始時刻: - " /> - 時分 Ex.

      -

      - 録画尺: - "/> - 分 (最長360分)

      - -

      録画局: - 0 -UNION -SELECT DISTINCT stationid,stationname,stationrecch ,digitalch -FROM foltia_station -WHERE digitalch > 0 -UNION -SELECT DISTINCT stationid,stationname,stationrecch ,digitalch -FROM foltia_station -WHERE stationrecch = -2 -ORDER BY x ASC"; - -$stations = sql_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $stations->fetch(); - -if ($rowdata) { - do { - if ($recstid == $rowdata[0]){ - print " $rowdata[1] ($rowdata[2]ch / $rowdata[3]ch) \n"; - }elseif( $rowdata[2] == -2){ - print " $rowdata[1] (RADIKO) \n"; - }else{ - print " $rowdata[1] ($rowdata[2]ch / $rowdata[3]ch) \n"; - } - } while ($rowdata = $stations->fetch()); -}else{ -print "放送局データベースが正しくセットアップされていません。録画可能局がありません"; -} -$stations->closeCursor(); -//外部入力チャンネル -$query = " -SELECT stationid as x ,stationname,stationrecch -FROM foltia_station -WHERE stationrecch > -2 AND stationrecch < 1 -ORDER BY x ASC"; - -// $stations = m_query($con, $query, "DBクエリに失敗しました"); - $stations = sql_query($con, $query, "DBクエリに失敗しました"); -$rowdata = $stations->fetch(); -if ($rowdata) { - do { - if ($rowdata[0] != 0){ - if ($recstid == $rowdata[0]){ - print " $rowdata[1] \n"; - }else{ - print " $rowdata[1] \n"; - } - - } - } while ($rowdata = $stations->fetch()); -} -$stations->closeCursor(); -/* -print "

      デジタル録画を優先:"; - -if ($usedigital == 1){ -print " する  - しない  -"; -}else{ -print " する  - しない  -"; -} -*/ -?> -

      番組名: - " /> -

      - -  - - - - Index: trunk/install/php/accountregist.php =================================================================== --- trunk/install/php/accountregist.php (リビジョン 94) +++ (リビジョン ) @@ -1,153 +1,0 @@ - - - - - - - - "; - -print "foltia:新規アカウント登録 -"; -}//end function printtitle() - -printtitle(); -?> - - -

      -新規アカウント登録 -

      -
      -新規アカウント登録をします。

      \n"; - -}else{ -//すでにそのユーザが存在しているかどうか確認 -if ($username != ""){ -$query = " -SELECT count(memberid) -FROM foltia_envpolicy -WHERE foltia_envpolicy.name = ? -"; -// $isaccountexist = m_query($con, $query, "DBクエリに失敗しました"); - $isaccountexist = sql_query($con, $query, "DBクエリに失敗しました",array($username)); - - $isaccountexistncount = $isaccountexist->fetchColumn(0); - - if ($isaccountexistncount == 0){ - //valid - }else{ - $errflag = 1; - $errmsg = "そのユーザ名は既に使われています。"; - } -} -if ($userpasswd == ""){ - $errflag = 2; - $errmsg = "パスワードが不適切です。半角英数を指定して下さい。"; -} - - -if ($errflag == 0){ -// next midを探す -$query = " -SELECT max(memberid) -FROM foltia_envpolicy -"; - $rs = m_query($con, $query, "DBクエリに失敗しました"); - $maxid = $rs->fetchColumn(0); - if ($maxid) { - $nextcno = $maxid + 1; - }else{ - $nextcno = 1; - } - -//登録 -//INSERT -if ($demomode){ -}else{ -/* -ユーザクラス -0:特権管理者 -1:管理者:予約削除、ファイル削除が出来る -2:利用者:EPG追加、予約追加が出来る -3:ビュアー:ファイルダウンロードが出来る -4:ゲスト:インターフェイスが見れる -*/ -$remotehost = gethostbyaddr($_SERVER['REMOTE_ADDR']); - -$query = " -insert into foltia_envpolicy -values ( ?,'2',?,?,now(),?)"; -//print "$query
      \n"; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rs = sql_query($con, $query, "DBクエリに失敗しました",array($nextcno,$username,$userpasswd,$remotehost)); - -print "次のアカウントを登録しました。
      -ログイン名:$username
      -パスワード:$userpasswd"; - -if ($environmentpolicytoken != ""){ - print "+セキュリティコード
      \n"; -} -print "ログイン
      \n"; - -print " - -"; - $oserr = system("$toolpath/perl/envpolicyupdate.pl"); -exit; - -}//endif デモモード -}else{//errorフラグあったら -print "$errmsg / $errflag
      \n"; - -}//end if エラーじゃなければ - -}//end if "" -?> - -
      -

      登録ユーザ名: - - (半角英数のみ)

      -

      登録パスワード: - - (半角英数のみ)

      - -  -
      - - - Index: trunk/install/php/view_syabas.php =================================================================== --- trunk/install/php/view_syabas.php (リビジョン 94) +++ (リビジョン ) @@ -1,86 +1,0 @@ -|0|0|http://servername/foltia/tv/filename.m2p| - -参考URL -http://www.geocities.co.jp/SiliconValley-Cupertino/2647/tec.html - -*/ - -include("./foltialib.php"); -$con = m_connect(); - -if ($useenvironmentpolicy == 1){ - if (!isset($_SERVER['PHP_AUTH_USER'])) { - header("WWW-Authenticate: Basic realm=\"foltia\""); - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - exit; - } else { - login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - } -}//end if login - - -$pid = getgetnumform(pid); - - -if ($pid == "") { - exit; -} - -$query = " -SELECT -foltia_program.tid, -stationname, -foltia_program.title, -foltia_subtitle.countno, -foltia_subtitle.subtitle, -foltia_subtitle.startdatetime , -foltia_subtitle.lengthmin , -foltia_subtitle.pid , -foltia_subtitle.m2pfilename , -foltia_subtitle.pspfilename -FROM foltia_subtitle , foltia_program ,foltia_station -WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid - AND foltia_subtitle.pid = ? "; -// $rs = m_query($con, $query, "DBクエリに失敗しました"); -$rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); -$rowdata = $rs->fetch(); -if (! $rowdata) { - print ""; - exit; -}else{ -$title = $rowdata[2]; -$episode = $rowdata[3]; -$subtitle = $rowdata[4]; -$m2pfilename = $rowdata[8]; -$serveruri = getserveruri(); -} - -print "\n"; -print "\n"; - -print "$title"; -print " 第". "$episode" . "話 "; -print "$subtitle"; -print "|0|0|"; -print "http://$serveruri$httpmediamappath/$m2pfilename"; -print "|"; - -?> - - - Index: trunk/install/php/mp4player.php =================================================================== --- trunk/install/php/mp4player.php (リビジョン 135) +++ (リビジョン ) @@ -1,140 +1,0 @@ -fetch(); - -//$title = htmlspecialchars(mb_convert_encoding($rowdata[0],"UTF-8", "EUC-JP")); -$title = htmlspecialchars($rowdata[0]); - if ($rowdata[1] == ""){ - $countno = ""; - }else{ - $countno = "第".htmlspecialchars($rowdata[1])."話"; - } -//$subtitle = htmlspecialchars(mb_convert_encoding($rowdata[2],"UTF-8", "EUC-JP")); -$subtitle = htmlspecialchars($rowdata[2]); -$tid = htmlspecialchars($rowdata[3]); -$filename = htmlspecialchars($rowdata[4]); - -}else{//引数なしエラー処理 - -header("Status: 404 Not Found",TRUE,404); -print " - - - \n"; - print " foltia HTML5 Video PlayerNo pid."; - exit ; -} - -if ($filename == "") {//ファイルなしなしエラー処理 -header("Status: 404 Not Found",TRUE,404); -print " - - - \n"; - print " foltia HTML5 Video PlayerFile not found."; - exit ; -} - - -print "\n\n\n\n -foltia HTML5 Video Player / $title $countno $subtitle\n"; -$mp4videofileurl = "http://". getserverfqdn() ."$httpmediamappath/$tid.localized/mp4/$filename"; -?> - - - - - - - - - - - - - -
      - - - -

      Download Video: - - HTML5 Video Player by VideoJS -

      -
      - -" -?> - - Index: trunk/install/php/myfoltia.php =================================================================== --- trunk/install/php/myfoltia.php (リビジョン 70) +++ (リビジョン ) @@ -1,19 +1,0 @@ -